One document matched: draft-ietf-eap-statemachine-00.ps


%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: draft-ietf-eap-statemachine-00.dvi
%%Pages: 32
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentFonts: Times-Roman Times-Bold Courier Helvetica Helvetica-Bold
%%+ Helvetica-Oblique Helvetica-BoldOblique Times-Italic
%%+ Times-BoldItalic Courier-Bold Courier-Oblique Courier-BoldOblique
%%+ Symbol
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -o draft-ietf-eap-statemachine-00.ps
%+ draft-ietf-eap-statemachine-00.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource:  TeX output 2003.09.18:0540
%%BeginProcSet: texc.pro
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
(LaserWriter 16/600)]{A length product length le{A length product exch 0
exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end

%%EndProcSet
%%BeginProcSet: 8r.enc
% @@psencodingfile@{
%   author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
%   version = "0.6",
%   date = "22 June 1996",
%   filename = "8r.enc",
%   email = "kb@@mail.tug.org",
%   address = "135 Center Hill Rd. // Plymouth, MA 02360",
%   codetable = "ISO/ASCII",
%   checksum = "119     662    4424",
%   docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX."
% @}
% 
% Idea is to have all the characters normally included in Type 1 fonts
% available for typesetting. This is effectively the characters in Adobe
% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
% 
% Character code assignments were made as follows:
% 
% (1) the Windows ANSI characters are almost all in their Windows ANSI
% positions, because some Windows users cannot easily reencode the
% fonts, and it makes no difference on other systems. The only Windows
% ANSI characters not available are those that make no sense for
% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
% (173). quotesingle and grave are moved just because it's such an
% irritation not having them in TeX positions.
% 
% (2) Remaining characters are assigned arbitrarily to the lower part
% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
% 
% (3) Y&Y Lucida Bright includes some extra text characters; in the
% hopes that other PostScript fonts, perhaps created for public
% consumption, will include them, they are included starting at 0x12.
% 
% (4) Remaining positions left undefined are for use in (hopefully)
% upward-compatible revisions, if someday more characters are generally
% available.
% 
% (5) hyphen appears twice for compatibility with both ASCII and Windows.
% 
/TeXBase1Encoding [
% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
  /.notdef /dotaccent /fi /fl
  /fraction /hungarumlaut /Lslash /lslash
  /ogonek /ring /.notdef
  /breve /minus /.notdef 
% These are the only two remaining unencoded characters, so may as
% well include them.
  /Zcaron /zcaron 
% 0x10
 /caron /dotlessi 
% (unusual TeX characters available in, e.g., Lucida Bright)
 /dotlessj /ff /ffi /ffl 
 /.notdef /.notdef /.notdef /.notdef
 /.notdef /.notdef /.notdef /.notdef
 % very contentious; it's so painful not having quoteleft and quoteright
 % at 96 and 145 that we move the things normally found there down to here.
 /grave /quotesingle 
% 0x20 (ASCII begins)
 /space /exclam /quotedbl /numbersign
 /dollar /percent /ampersand /quoteright
 /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
% 0x30
 /zero /one /two /three /four /five /six /seven
 /eight /nine /colon /semicolon /less /equal /greater /question
% 0x40
 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
% 0x50
 /P /Q /R /S /T /U /V /W
 /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
% 0x60
 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
% 0x70
 /p /q /r /s /t /u /v /w
 /x /y /z /braceleft /bar /braceright /asciitilde
 /.notdef % rubout; ASCII ends
% 0x80
 /.notdef /.notdef /quotesinglbase /florin
 /quotedblbase /ellipsis /dagger /daggerdbl
 /circumflex /perthousand /Scaron /guilsinglleft
 /OE /.notdef /.notdef /.notdef
% 0x90
 /.notdef /.notdef /.notdef /quotedblleft
 /quotedblright /bullet /endash /emdash
 /tilde /trademark /scaron /guilsinglright
 /oe /.notdef /.notdef /Ydieresis
% 0xA0
 /.notdef % nobreakspace
 /exclamdown /cent /sterling
 /currency /yen /brokenbar /section
 /dieresis /copyright /ordfeminine /guillemotleft
 /logicalnot
 /hyphen % Y&Y (also at 45); Windows' softhyphen
 /registered
 /macron
% 0xD0
 /degree /plusminus /twosuperior /threesuperior
 /acute /mu /paragraph /periodcentered
 /cedilla /onesuperior /ordmasculine /guillemotright
 /onequarter /onehalf /threequarters /questiondown
% 0xC0
 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
 /Egrave /Eacute /Ecircumflex /Edieresis
 /Igrave /Iacute /Icircumflex /Idieresis
% 0xD0
 /Eth /Ntilde /Ograve /Oacute
 /Ocircumflex /Otilde /Odieresis /multiply
 /Oslash /Ugrave /Uacute /Ucircumflex
 /Udieresis /Yacute /Thorn /germandbls
% 0xE0
 /agrave /aacute /acircumflex /atilde
 /adieresis /aring /ae /ccedilla
 /egrave /eacute /ecircumflex /edieresis
 /igrave /iacute /icircumflex /idieresis
% 0xF0
 /eth /ntilde /ograve /oacute
 /ocircumflex /otilde /odieresis /divide
 /oslash /ugrave /uacute /ucircumflex
 /udieresis /yacute /thorn /ydieresis
] def

%%EndProcSet
%%BeginProcSet: texnansi.enc
% @psencodingfile{
%   author = "Y&Y, Inc.",
%   version = "1.1",
%   date = "1 December 1996",
%   filename = "texnansi.enc",
%   email = "help@YandY.com",
%   address = "45 Walden Street // Concord, MA 01742, USA",
%   codetable = "ISO/ASCII",
%   checksum = "xx",
%   docstring = "Encoding for fonts in Adobe Type 1 format for use with TeX."
% }
%
% The idea is to have all 228 characters normally included in Type 1 text
% fonts (plus a few more) available for typesetting.  This is effectively
% the character set in Adobe Standard Encoding, ISO Latin 1, plus a few more.
%
% Character code assignments were made as follows:
%
% (1) The character layout largely matches `ASCII' in the 32 -- 126 range,
% except for `circumflex' in 94 and `tilde' in 126, to match `TeX text'
% (`asciicircumflex' and `asciitilde' appear in 158 and 142 instead).
%
% (2) The character layout matches `Windows ANSI' in almost all places,
% except for `quoteright' in 39 and `quoteleft' in 96 to match ASCII
% (`quotesingle' and `grave' appear in 129 and 18 instead).
%
% (3) The character layout matches `TeX typewriter' used by CM text fonts
% in most places (except for discordant positions such as hungarumlaut
% (instead of braceright), dotaccent (instead of underscore) etc.
%
% (4) Remaining characters are assigned arbitrarily to the `control character'
% range (0 -- 31), avoiding 0, 9, 10 and 13 in case we meet dumb software
% - similarly one should really avoid 127 and 128 if possible.
% In addition, the 8 open slots in Windows ANSI between 128 and 159 are used.
%
% (5) Y&Y Lucida Bright includes some extra ligatures and such; ff, ffi, ffl,
% and `dotlessj,' these are included 11 -- 15, and 17.
%
% (6) Hyphen appears both at 45 and 173 for compatibility with both ASCII
% and Windows ANSI.
%
% (7) It doesn't really matter where ligatures appear (both real, such as ffi,
% and pseudo such as ---) since these should not be accessed directly, only
% via ligature information in the TFM file.
%
% SAMPLE USAGE (in `psfonts.map' file for DVIPS):
% 
% lbr LucidaBright "TeXnANSIEncoding ReEncodeFont" <texnansi.enc <lbr.pfb
%
% This tells DVIPS that the font called `lbr' in TeX has PostScript 
% FontName `LucidaBright.'  It also asks DVIPS to expand the file `lbr.pfb'
% into PFA form, to include the attached `texnansi.enc' encoding vector,
% and to then actually reencode the font based on that encoding vector.
%
% Revised 1996 June 1 by adding second position for `fl' to avoid Acrobat bug.
% Revised 1996 June 1 by adding second position for `fraction' for same reason.
% Revised 1997 Oct 1 by adding cwm  (used in boundary char TFM code)
% Revised 1998 Mar 1 by adding Unicode for Euro character
%
/TeXnANSIEncoding [
/.notdef % 0
/Euro % /Uni20AC 1
/.notdef % 2
/.notdef % 3
/fraction %	4
/dotaccent %	5
/hungarumlaut %	6
/ogonek	%	7
/fl	%	8
/.notdef % /fraction %	9	not used (see 4), backward compatability only
/cwm	%	10	not used, except boundary char internally maybe
/ff    %	11
/fi    %	12
/.notdef % /fl    %	13	not used (see 8), backward compatability only
/ffi   %	14
/ffl   %	15
/dotlessi %	16
/dotlessj %	17
/grave %	18
/acute %	19
/caron %	20
/breve %	21
/macron %	22
/ring  %	23
/cedilla %	24
/germandbls %	25
/ae    %	26
/oe    %	27
/oslash %	28
/AE    %	29
/OE    %	30
/Oslash %	31
/space %	32	% /suppress in TeX text
/exclam %	33
/quotedbl %	34	% /quotedblright in TeX text
/numbersign %	35
/dollar %	36
/percent %	37
/ampersand %	38
/quoteright %	39	% /quotesingle in ANSI
/parenleft %	40
/parenright %	41
/asterisk %	42
/plus  %	43
/comma %	44
/hyphen %	45
/period %	46
/slash %	47
/zero  %	48
/one   %	49
/two   %	50
/three %	51
/four  %	52
/five  %	53
/six   %	54
/seven %	55
/eight %	56
/nine  %	57
/colon %	58
/semicolon %	59
/less  %	60	% /exclamdown in Tex text
/equal %	61
/greater %	62	% /questiondown in TeX text
/question %	63
/at %	64
/A %	65
/B %	66
/C %	67
/D %	68
/E %	69
/F %	70
/G %	71
/H %	72
/I %	73
/J %	74
/K %	75
/L %	76
/M %	77
/N %	78
/O %	79
/P %	80
/Q %	81
/R %	82
/S %	83
/T %	84
/U %	85
/V %	86
/W %	87
/X %	88
/Y %	89
/Z %	90
/bracketleft %	91
/backslash %	92	% /quotedblleft in TeX text
/bracketright %	93
/circumflex %	94	% /asciicircum in ASCII
/underscore %	95	% /dotaccent in TeX text
/quoteleft %	96	% /grave accent in ANSI
/a %	97
/b %	98
/c %	99
/d %	100
/e %	101
/f %	102
/g %	103
/h %	104
/i %	105
/j %	106
/k %	107
/l %	108
/m %	109
/n %	110
/o %	111
/p %	112
/q %	113
/r %	114
/s %	115
/t %	116
/u %	117
/v %	118
/w %	119
/x %	120
/y %	121
/z %	122
/braceleft %	123	% /endash in TeX text
/bar   %	124	% /emdash in TeX test
/braceright %	125	% /hungarumlaut in TeX text
/tilde %	126	% /asciitilde in ASCII
/dieresis %	127	not used (see 168), use higher up instead
/Lslash	%	128	this position is unfortunate, but now too late to fix
/quotesingle %	129
/quotesinglbase %	130
/florin %	131
/quotedblbase %	132
/ellipsis %	133
/dagger %	134
/daggerdbl %	135
/circumflex %	136
/perthousand %	137
/Scaron %	138
/guilsinglleft %	139
/OE    %	140
/Zcaron %	141
/asciicircum %	142
/minus %	143
/lslash %	144
/quoteleft %	145
/quoteright %	146
/quotedblleft %	147
/quotedblright %	148
/bullet %	149
/endash %	150
/emdash %	151
/tilde %	152
/trademark %	153
/scaron %	154
/guilsinglright %	155
/oe    %	156
/zcaron %	157
/asciitilde %	158
/Ydieresis %	159
/nbspace %	160	% /space (no break space)
/exclamdown %	161
/cent  %	162
/sterling %	163
/currency %	164
/yen   %	165
/brokenbar %	166
/section %	167
/dieresis %	168
/copyright %	169
/ordfeminine %	170
/guillemotleft %	171
/logicalnot %	172
/sfthyphen %	173 % /hyphen (hanging hyphen)
/registered %	174
/macron %	175
/degree %	176
/plusminus %	177
/twosuperior %	178
/threesuperior %	179
/acute %	180
/mu    %	181
/paragraph %	182
/periodcentered %	183
/cedilla %	184
/onesuperior %	185
/ordmasculine %	186
/guillemotright %	187
/onequarter %	188
/onehalf %	189
/threequarters %	190
/questiondown %	191
/Agrave %	192
/Aacute %	193
/Acircumflex %	194
/Atilde %	195
/Adieresis %	196
/Aring %	197
/AE    %	198
/Ccedilla %	199
/Egrave %	200
/Eacute %	201
/Ecircumflex %	202
/Edieresis %	203
/Igrave %	204
/Iacute %	205
/Icircumflex %	206
/Idieresis %	207
/Eth   %	208
/Ntilde %	209
/Ograve %	210
/Oacute %	211
/Ocircumflex %	212
/Otilde %	213
/Odieresis %	214
/multiply %	215	% OE in T1
/Oslash %	216
/Ugrave %	217
/Uacute %	218
/Ucircumflex %	219
/Udieresis %	220
/Yacute %	221
/Thorn %	222
/germandbls %	223
/agrave %	224
/aacute %	225
/acircumflex %	226
/atilde %	227
/adieresis %	228
/aring %	229
/ae    %	230
/ccedilla %	231
/egrave %	232
/eacute %	233
/ecircumflex %	234
/edieresis %	235
/igrave %	236
/iacute %	237
/icircumflex %	238
/idieresis %	239
/eth   %	240
/ntilde %	241
/ograve %	242
/oacute %	243
/ocircumflex %	244
/otilde %	245
/odieresis %	246
/divide %	247	% oe in T1
/oslash %	248
/ugrave %	249
/uacute %	250
/ucircumflex %	251
/udieresis %	252
/yacute %	253
/thorn %	254
/ydieresis %	255	% germandbls in T1
] def

%%EndProcSet
%%BeginProcSet: tx8r.enc
% 8r.enc (0.6, 1-jul-98, by S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry) renamed
/TeXBase1Encoding [
/.notdef
/dotaccent
/fi
/fl
/fraction
/hungarumlaut
/Lslash
/lslash
/ogonek
/ring
/.notdef
/breve
/minus
/.notdef
/Zcaron
/zcaron
/caron
/dotlessi
/dotlessj
/ff
/ffi
/ffl
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/grave
/quotesingle
/space
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quoteright
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/quoteleft
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/.notdef
/.notdef
/quotesinglbase
/florin
/quotedblbase
/ellipsis
/dagger
/daggerdbl
/circumflex
/perthousand
/Scaron
/guilsinglleft
/OE
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/quotedblleft
/quotedblright
/bullet
/endash
/emdash
/tilde
/trademark
/scaron
/guilsinglright
/oe
/.notdef
/.notdef
/Ydieresis
/.notdef
/exclamdown
/cent
/sterling
/currency
/yen
/brokenbar
/section
/dieresis
/copyright
/ordfeminine
/guillemotleft
/logicalnot
/hyphen
/registered
/macron
/degree
/plusminus
/twosuperior
/threesuperior
/acute
/mu
/paragraph
/periodcentered
/cedilla
/onesuperior
/ordmasculine
/guillemotright
/onequarter
/onehalf
/threequarters
/questiondown
/Agrave
/Aacute
/Acircumflex
/Atilde
/Adieresis
/Aring
/AE
/Ccedilla
/Egrave
/Eacute
/Ecircumflex
/Edieresis
/Igrave
/Iacute
/Icircumflex
/Idieresis
/Eth
/Ntilde
/Ograve
/Oacute
/Ocircumflex
/Otilde
/Odieresis
/multiply
/Oslash
/Ugrave
/Uacute
/Ucircumflex
/Udieresis
/Yacute
/Thorn
/germandbls
/agrave
/aacute
/acircumflex
/atilde
/adieresis
/aring
/ae
/ccedilla
/egrave
/eacute
/ecircumflex
/edieresis
/igrave
/iacute
/icircumflex
/idieresis
/eth
/ntilde
/ograve
/oacute
/ocircumflex
/otilde
/odieresis
/divide
/oslash
/ugrave
/uacute
/ucircumflex
/udieresis
/yacute
/thorn
/ydieresis
] def

%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
def end

%%EndProcSet
%%BeginProcSet: special.pro
%!
TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
{userdict/md get type/dicttype eq{userdict begin md length 10 add md
maxlength ge{/md md dup length 20 add dict copy def}if end md begin
/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
save N userdict maxlength dict begin/magscale true def normalscale
currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict
begin/SpecialSave save N gsave normalscale currentpoint TR
@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{
CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N
/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end}
repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N
/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
1 startangle endangle arc savematrix setmatrix}N end

%%EndProcSet
TeXDict begin 39158280 55380996 1000 600 600
(draft-ietf-eap-statemachine-00.dvi) @start
%DVIPSBitmapFont: Fa cmmi10 10 2
/Fa 2 63 df<EF0380EF0FC0173FEFFF80933803FE00EE0FF8EE3FE0EEFF80DB03FEC7FC
ED0FF8ED3FE0EDFF80DA03FEC8FCEC0FF8EC3FE0ECFF80D903FEC9FCEB0FF8EB3FE0EBFF
80D803FECAFCEA0FF8EA3FE0EA7F8000FECBFCA2EA7F80EA3FE0EA0FF8EA03FEC66C7EEB
3FE0EB0FF8EB03FE903800FF80EC3FE0EC0FF8EC03FE913800FF80ED3FE0ED0FF8ED03FE
923800FF80EE3FE0EE0FF8EE03FE933800FF80EF3FC0170FEF0380323279AD41>60
D<126012FCB4FCEA7FC0EA1FF0EA07FCEA01FF38007FC0EB1FF0EB07FCEB01FF9038007F
C0EC1FF0EC07FCEC01FF9138007FC0ED1FF0ED07FCED01FF9238007FC0EE1FF0EE07FCEE
01FF9338007F80EF1FC0A2EF7F80933801FF00EE07FCEE1FF0EE7FC04B48C7FCED07FCED
1FF0ED7FC04A48C8FCEC07FCEC1FF0EC7FC04948C9FCEB07FCEB1FF0EB7FC04848CAFCEA
07FCEA3FF0EA7FC048CBFC12FC1270323279AD41>62 D E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fb cmsy10 10 4
/Fb 4 107 df<EB1FF0EBFFFE487F000714C04814E04814F04814F8A24814FCA3B612FE
A96C14FCA36C14F8A26C14F06C14E06C14C0000114006C5BEB1FF01F1F7BA42A>15
D<EC01F8140FEC3F80ECFC00495A495A495AA2130F5CB3A7131F5C133F49C7FC13FEEA03
F8EA7FE048C8FCEA7FE0EA03F8EA00FE137F6D7E131F80130FB3A7801307A26D7E6D7E6D
7EEC3F80EC0FF814011D537ABD2A>102 D<12FCEAFFC0EA07F0EA01FCEA007E7F80131F
80130FB3A7801307806D7E6D7EEB007EEC1FF0EC07F8EC1FF0EC7E00495A495A495A5C13
0F5CB3A7131F5C133F91C7FC137E485AEA07F0EAFFC000FCC8FC1D537ABD2A>I<126012
F0B3B3B3B3A91260045377BD17>106 D E
%EndDVIPSBitmapFont
/Fc 131[50 4[50 50 50 50 50 50 1[50 50 50 1[50 50 1[50
50 50 1[50 50 50 1[50 4[50 8[50 2[50 2[50 50 6[50 2[50
50 2[50 1[50 12[50 1[50 45[{TeXBase1Encoding ReEncodeFont}31
83.022 /Courier rf /Fd 134[42 1[60 42 46 28 32 37 46
46 42 46 69 23 46 1[23 46 42 28 37 46 37 46 42 10[60
1[55 46 60 1[51 1[60 78 55 2[32 2[51 55 1[60 55 60 7[42
42 42 42 42 42 42 42 42 42 1[21 28 3[28 28 37[46 2[{
TeXBase1Encoding ReEncodeFont}52 83.022 /Times-Bold rf
/Fe 134[60 1[86 60 66 40 47 53 66 66 60 66 100 33 66
1[33 66 60 40 53 66 53 66 60 12[80 66 86 1[73 1[86 113
3[47 2[73 80 1[86 80 86 7[60 60 60 60 60 60 60 60 60
60 8[40 36[66 2[{TeXBase1Encoding ReEncodeFont}47 119.552
/Times-Bold rf /Ff 134[50 1[72 50 55 33 39 44 1[55 50
55 83 28 55 1[28 55 1[33 44 55 44 55 50 13[55 2[61 1[72
94 3[39 2[61 66 72 1[66 72 9[50 50 50 50 50 50 50 50
1[25 33 42[55 2[{TeXBase1Encoding ReEncodeFont}42 99.6264
/Times-Bold rf /Fg 107[37 25[37 42 42 60 42 42 23 32
28 42 42 42 42 65 23 42 23 23 42 42 28 37 42 37 42 37
3[28 1[28 51 60 60 78 60 60 51 46 55 60 46 60 60 74 51
60 32 28 60 60 46 51 60 55 55 60 76 2[47 1[23 23 42 42
42 42 42 42 42 42 42 42 23 21 28 21 47 1[28 28 28 65
4[28 29[46 46 2[{TeXBase1Encoding ReEncodeFont}81 83.022
/Times-Roman rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%PaperSize: A4

%%EndSetup
%%Page: 1 1
1 0 bop 0 568 a Fg(EAP)21 b(W)-7 b(orking)19 b(Group)2481
b(J.)21 b(V)-11 b(ollbrecht)0 667 y(Internet-Draft)2229
b(V)-11 b(ollbrecht)19 b(Consulting)g(LLC)0 767 y(Expires:)24
b(March)c(18,)f(2004)2450 b(P)-9 b(.)20 b(Eronen)3397
867 y(Nokia)3259 966 y(N.)g(Petroni)2819 1066 y(Uni)n(v)o(ersity)f(of)h
(Maryland)3329 1166 y(Y)-11 b(.)21 b(Ohba)3423 1265 y(T)-8
b(AIS)2934 1365 y(September)18 b(18,)i(2003)778 1638
y Ff(State)26 b(Machines)f(f)n(or)g(EAP)g(P)n(eer)h(and)f(A)-5
b(uthenticator)1153 1754 y(draft-ietf-eap-statemachine-00)0
2300 y Fe(Status)30 b(of)f(this)h(Memo)0 2585 y Fg(This)20
b(document)e(is)k(an)e(Internet-Draft)d(and)j(is)h(in)f(full)g
(conformance)e(with)i(all)h(pro)o(visions)d(of)i(Section)g(10)f(of)h
(RFC2026.)0 2784 y(Internet-Drafts)c(are)h(w)o(orking)g(documents)f(of)
h(the)h(Internet)f(Engineering)e(T)-7 b(ask)18 b(F)o(orce)f(\(IETF\),)g
(its)h(areas,)h(and)e(its)i(w)o(ork-)0 2884 y(ing)h(groups.)j(Note)d
(that)h(other)e(groups)g(may)h(also)g(distrib)n(ute)g(w)o(orking)e
(documents)h(as)i(Internet-Drafts.)0 3083 y(Internet-Drafts)k(are)i
(draft)g(documents)e(v)n(alid)i(for)g(a)g(maximum)f(of)h(six)g(months)g
(and)f(may)h(be)g(updated,)g(replaced,)h(or)0 3183 y(obsoleted)22
b(by)g(other)g(documents)f(at)j(an)o(y)e(time.)33 b(It)23
b(is)h(inappropriate)c(to)j(use)g(Internet-Drafts)e(as)i(reference)e
(material)i(or)0 3282 y(to)d(cite)h(them)f(other)f(than)h(as)h(\224w)o
(ork)e(in)i(progress.)-6 b(\224)0 3482 y(The)20 b(list)h(of)f(current)f
(Internet-Drafts)f(can)i(be)g(accessed)g(at)h(http://www)-5
b(.ietf.or)o(g/ietf/1id-abstracts.txt.)0 3681 y(The)20
b(list)h(of)f(Internet-Draft)e(Shado)n(w)h(Directories)h(can)g(be)g
(accessed)g(at)h(http://www)-5 b(.ietf.or)o(g/shado)n(w)g(.h)o(tml.)0
3880 y(This)20 b(Internet-Draft)e(will)j(e)o(xpire)e(on)h(March)f(18,)h
(2004.)0 4260 y Fe(Copyright)31 b(Notice)0 4545 y Fg(Cop)o(yright)19
b(\(C\))h(The)g(Internet)f(Society)h(\(2003\).)j(All)d(Rights)h(Reserv)
o(ed.)0 4925 y Fe(Abstract)0 5210 y Fg(This)15 b(document)f(describes)g
(a)i(set)g(of)f(state)h(machines)e(for)h(EAP)g(Peer)m(,)h(EAP)g
(Standalone)d(Authenticator)h(\(non-passthrough\),)0
5310 y(EAP)33 b(Back)o(end)e(Authenticator)g(\(for)g(use)i(on)e(AAA)i
(serv)o(ers\),)h(and)e(EAP)h(Full)g(Authenticator)d(\(for)h(both)h
(local)g(and)p eop
%%Page: 2 2
2 1 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y(passthrough\).)31
b(This)23 b(set)h(of)f(state)g(machines)g(sho)n(ws)g(ho)n(w)f(EAP)i
(can)e(be)h(implemented)f(to)h(support)e(deplo)o(yment)g(in)i(ei-)0
490 y(ther)g(a)g(Peer/AP)h(or)f(Peer/AP/AAA)g(Serv)o(er)f(en)m
(vironment.)31 b(The)23 b(Peer)g(and)f(Standalone)g(Authenticator)f
(machines)i(are)0 589 y(illustrati)n(v)o(e)c(of)h(ho)n(w)g(the)g(EAP)g
(protocol)e(de\002ned)h(in)h([I-D.ietf-eap-rfc2284bis])14
b(may)20 b(be)g(implemented.)j(The)c(Back)o(end)0 689
y(and)29 b(Full/P)o(assthrough)e(Authenticators)g(illustrate)i(ho)n(w)g
(EAP/RADIUS)g(protocol)f(support)f(de\002ned)i(in)g([RFC3579])0
789 y(may)20 b(be)g(implemented.)j(Where)d(there)g(are)g(dif)n
(ferences)e([I-D.ietf-eap-rfc2284bis]/[)o(RFC3579)o(])d(are)20
b(authoritati)n(v)o(e.)0 988 y(This)h(document)d(describes)j(a)g(state)
g(machine)f(based)g(on)g(an)h(EAP)g(\224Switch\224)f(model.)26
b(This)20 b(model)g(includes)g(e)n(v)o(ents)g(and)0 1088
y(actions)26 b(for)g(the)g(interaction)f(between)h(the)g(EAP)h(Switch)f
(and)g(EAP)h(methods.)42 b(The)26 b(State)h(Machine)e(and)h(associated)
0 1187 y(model)19 b(are)h(informati)n(v)o(e)e(only)-5
b(.)24 b(Implementations)18 b(may)h(achie)n(v)o(e)g(the)i(same)f
(results)h(using)e(dif)n(ferent)g(methods.)0 1386 y(A)i(brief)e
(description)g(of)h(the)g(EAP)h(\224Switch\224)f(model)f(is)i(gi)n(v)o
(en)e(in)h(the)h(Introduction)c(section.)0 1586 y(The)31
b(authors)f(belie)n(v)o(e)h(this)h(document)d(corresponds)g(to)j(the)f
(current)f(state)i(of)f(re)n(visions)g(to)g(the)h(de\002ning)e
([I-D/ietf-)0 1685 y(eap-rfc2284bis]/[RFC3579])24 b(documents.)52
b(The)30 b(intent)f(is)i(for)e(this)h(document)e(to)i(synchronize)d
(with)j(the)g(de\002ning)0 1785 y(documents)18 b(when)i(the)o(y)g(are)g
(released,)f(and)h(if)g(discrepancies)f(are)h(found)f(the)h(de\002ning)
f(documents)f(are)j(authoritati)n(v)o(e.)0 2165 y Fe(Contents)0
2450 y Fd(1)83 b(Speci\002cation)19 b(of)h(Requir)o(ements)2374
b(4)0 2732 y(2)83 b(The)21 b(EAP)f(Switch)h(Model)2601
b(4)0 3015 y(3)83 b(Notational)18 b(con)m(v)o(entions)h(used)i(in)g
(state)f(diagrams)1811 b(6)125 3214 y Fg(3.1)85 b(Notational)20
b(speci\002cs)44 b(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)154 b(6)125 3413 y(3.2)85
b(State)21 b(Machine)f(Symbols)36 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h
(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)154 b(7)125
3612 y(3.3)85 b(Document)19 b(authority)33 b(.)41 b(.)h(.)f(.)g(.)g(.)h
(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)154
b(8)0 3895 y Fd(4)83 b(P)n(eer)20 b(State)g(Machine)2743
b(8)125 4094 y Fg(4.1)85 b(Interf)o(ace)19 b(between)h(peer)f(state)i
(machine)e(and)h(lo)n(wer)g(layer)56 b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h
(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)154
b(9)315 4293 y(4.1.1)98 b(V)-9 b(ariables)20 b(\(lo)n(wer)f(layer)h(to)
g(peer\))50 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(10)315 4492 y(4.1.2)98 b(V)-9 b(ariables)20 b(\(peer)f(to)h(lo)n(wer)
g(layer\))50 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(10)315 4692 y(4.1.3)98 b(Constants)46 b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)
h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(11)125 4891 y(4.2)85 b(Interf)o(ace)19 b(between)h(peer)f(state)i
(machine)e(and)h(methods)j(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f
(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(11)125 5090 y(4.3)85 b(Peer)21 b(state)g(machine)e(local)h(v)n
(ariables)75 b(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h
(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
113 b(12)315 5289 y(4.3.1)98 b(Long-term)18 b(\(maintained)g(between)i
(pack)o(ets\))64 b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g
(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(12)0
5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)986 b(Expires)19
b(March)g(18,)h(2004)984 b([P)o(age)20 b(2])p eop
%%Page: 3 3
3 2 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)315 390 y(4.3.2)98
b(Short-term)19 b(\(not)g(maintained)g(between)g(pack)o(ets\))58
b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)113 b(13)125 589 y(4.4)85 b(Peer)21 b(state)g(machine)e
(procedures)65 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)113 b(13)125 789 y(4.5)85 b(Peer)21 b(state)g(machine)e(states)
61 b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)113 b(13)0 1071 y Fd(5)83 b(Standalone)19 b(A)l(uthenticator)g
(State)g(Machine)1951 b(14)125 1270 y Fg(5.1)85 b(Interf)o(ace)19
b(between)h(standalone)f(authenticator)f(state)j(machine)e(and)g(lo)n
(wer)h(layer)75 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(15)315 1469 y(5.1.1)98 b(V)-9 b(ariables)20 b(\(lo)n(wer)f(layer)h
(to)g(standalone)f(authenticator\))67 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g
(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(16)315
1669 y(5.1.2)98 b(V)-9 b(ariables)20 b(\(standalone)e(authenticator)h
(to)h(lo)n(wer)g(layer\))68 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(16)315 1868 y(5.1.3)98
b(Constants)46 b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)
f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(17)125 2067
y(5.2)85 b(Interf)o(ace)19 b(between)h(standalone)f(authenticator)f
(state)j(machine)e(and)g(methods)42 b(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)113 b(17)125 2267 y(5.3)85 b(Standalone)19
b(authenticator)f(state)j(machine)e(local)i(v)n(ariables)h(.)41
b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)113 b(18)315 2466 y(5.3.1)98 b(Long-term)18
b(\(maintained)g(between)i(pack)o(ets\))64 b(.)42 b(.)f(.)g(.)g(.)h(.)f
(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(18)315 2665 y(5.3.2)98 b(Short-term)19 b(\(not)g(maintained)g
(between)g(pack)o(ets\))58 b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g
(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(18)125
2864 y(5.4)85 b(EAP)21 b(standalone)e(authenticator)f(procedures)74
b(.)41 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)
h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(19)125
3064 y(5.5)85 b(EAP)21 b(standalone)e(authenticator)f(states)70
b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)
f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(20)0 3346 y Fd(6)83 b(EAP)20 b(Back)o(end)h(A)l(uthenticator)2381
b(21)125 3545 y Fg(6.1)85 b(Interf)o(ace)19 b(between)h(back)o(end)e
(authenticator)h(state)h(machine)f(and)h(lo)n(wer)g(layer)29
b(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(21)315 3744 y(6.1.1)98 b(V)-9 b(ariables)20 b(\(AAA)g(interf)o(ace)f
(to)i(back)o(end)d(authenticator\))30 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g
(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(21)315
3944 y(6.1.2)98 b(V)-9 b(ariables)20 b(\(back)o(end)e(authenticator)g
(to)j(AAA)f(interf)o(ace\))31 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f
(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(21)125 4143
y(6.2)85 b(Interf)o(ace)19 b(between)h(back)o(end)e(authenticator)h
(state)h(machine)f(and)h(methods)59 b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)113 b(23)125 4342 y(6.3)85 b(Back)o(end)20
b(authenticator)e(state)j(machine)e(local)h(v)n(ariables)40
b(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)113 b(23)125 4541 y(6.4)85 b(EAP)21
b(back)o(end)e(authenticator)f(procedures)29 b(.)41 b(.)g(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)113 b(23)125 4741 y(6.5)85 b(EAP)21
b(back)o(end)e(authenticator)f(states)25 b(.)41 b(.)g(.)h(.)f(.)g(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(24)0 5023 y Fd(7)83
b(EAP)20 b(Full)h(A)l(uthenticator)2546 b(24)125 5222
y Fg(7.1)85 b(Interf)o(ace)19 b(between)h(full)g(authenticator)e(state)
j(machine)e(and)h(lo)n(wer)f(layers)34 b(.)41 b(.)g(.)g(.)h(.)f(.)g(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(24)0 5656 y(V)-11 b(ollbrecht,)19
b(et)i(al.)986 b(Expires)19 b(March)g(18,)h(2004)984
b([P)o(age)20 b(3])p eop
%%Page: 4 4
4 3 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)315 390 y(7.1.1)98
b(V)-9 b(ariables)20 b(\(AAA)g(interf)o(ace)f(to)i(full)f
(authenticator\))65 b(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(24)315 589 y(7.1.2)98
b(V)-9 b(ariables)20 b(\(full)g(authenticator)e(to)i(AAA)h(interf)o
(ace\))66 b(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)113 b(26)315 789 y(7.1.3)98 b(Constants)46
b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)113 b(27)125 988 y(7.2)85 b(Interf)o(ace)19
b(between)h(full)g(authenticator)e(state)j(machine)e(and)h(methods)32
b(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(27)125 1187 y(7.3)85 b(Full)21 b(authenticator)d(state)j(machine)e
(local)h(v)n(ariables)71 b(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h
(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(27)315 1386 y(7.3.1)98 b(Short-term)19 b(\(not)g(maintained)g
(between)g(pack)o(ets\))58 b(.)41 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g
(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113 b(27)125
1586 y(7.4)85 b(EAP)21 b(full)f(authenticator)e(procedures)65
b(.)41 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)
h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(27)125 1785 y(7.5)85 b(EAP)21 b(full)f(authenticator)e(states)61
b(.)42 b(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)113
b(28)0 2067 y Fd(8)83 b(Implementation)20 b(Considerations)2268
b(29)0 2350 y(9)83 b(Security)19 b(Considerations)2541
b(29)0 2632 y(10)41 b(Ackno)o(wledgments)2742 b(29)0
3012 y Fe(1)119 b(Speci\002cation)32 b(of)e(Requir)n(ements)0
3297 y Fg(In)25 b(this)h(document,)f(se)n(v)o(eral)f(w)o(ords)h(are)h
(used)f(to)g(signify)g(the)h(requirements)d(of)i(the)h
(speci\002cation.)39 b(These)26 b(w)o(ords)f(are)0 3396
y(often)30 b(capitalized.)55 b(The)30 b(k)o(e)o(y)g(w)o(ords)g
(\224MUST\224,)j(\224MUST)d(NO)m(T\224,)j(\224REQ)o(UIRED\224,)g
(\224SHALL\224,)g(\224SHALL)d(NO)m(T\224,)0 3496 y(\224SHOULD\224,)23
b(\224SHOULD)h(NO)m(T\224,)f(\224RECOMMENDED\224,)g(\224MA)-9
b(Y\224,)24 b(and)e(\224OPTION)m(AL\224)h(in)g(this)g(document)e(are)i
(to)0 3596 y(be)d(interpreted)f(as)h(described)f(in)i([RFC2119].)0
3976 y Fe(2)119 b(The)31 b(EAP)e(Switch)j(Model)0 4261
y Fg(This)24 b(document)e(of)n(fers)h(a)i(proposed)d(state)j(machine)e
(for)g(RFCs)j([I-D.ietf-eap-rfc2284b)o(is])19 b(and)k([RFC3579])g(.)37
b(There)0 4360 y(are)22 b(state)i(machines)d(for)h(the)h(peer)m(,)f
(the)g(standalone)g(authenticator)m(,)e(a)j(back)o(end)e(authenticator)
f(and)i(a)h(full/passthrough)0 4460 y(authenticator)-5
b(.)25 b(Accompan)o(ying)18 b(each)i(state)i(machine)e(diagram)f(is)j
(a)f(description)e(of)i(the)g(v)n(ariables,)f(the)h(functions)e(and)0
4560 y(the)h(states)h(in)g(the)f(diagram.)k(Whene)n(v)o(er)18
b(possible,)i(the)g(same)g(notation)f(has)i(been)e(used)h(in)g(each)g
(of)g(the)g(state)h(machines.)0 4759 y(An)k(EAP)g(authentication)d
(consists)k(of)e(one)g(or)h(more)e(EAP)i(methods)f(in)h(sequence)e
(follo)n(wed)h(by)g(an)h(EAP)g(Success)g(or)0 4858 y(EAP)20
b(F)o(ailure)f(sent)h(from)f(the)h(Authenticator)e(to)i(the)f(peer)-5
b(.)25 b(The)20 b(EAP)g(Switches)g(control)e(ne)o(gotiation)g(of)h(EAP)
i(methods)0 4958 y(and)f(sequences)f(of)h(methods.)0
5157 y(At)g(both)f(the)h(peer)g(and)f(authenticator)f(one)h(or)h(more)f
(EAP)h(methods)f(e)o(xist.)25 b(The)19 b(EAP)i(switches)f(select)g
(which)g(methods)0 5257 y(each)g(is)h(willing)f(to)g(use,)h(and)e(ne)o
(gotiate)g(between)g(themselv)o(es)h(to)g(pick)g(a)h(method)d(or)i
(sequence)f(of)h(methods.)0 5656 y(V)-11 b(ollbrecht,)19
b(et)i(al.)986 b(Expires)19 b(March)g(18,)h(2004)984
b([P)o(age)20 b(4])p eop
%%Page: 5 5
5 4 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)299 369 y
Fc(Peer)647 b(Peer)99 b(|)g(Authenticator)346 b(Auth)299
469 y(Method)846 b(|)1095 b(Method)648 569 y(\\)747 b(|)946
b(/)747 668 y(\\)648 b(|)846 b(/)797 768 y(Peer)448 b(|)647
b(Auth)797 868 y(EAP)199 b(<-----|---------->)96 b(EAP)797
967 y(Switch)348 b(|)647 b(Switch)1313 1349 y Fg(Figure)20
b(1:)25 b(EAP)c(Switch)f(Model)0 1699 y(Note)g(that)g(the)h(methods)e
(may)g(also)i(ha)n(v)o(e)f(state)h(machines.)j(The)19
b(details)i(of)f(these)g(are)g(out)g(of)g(scope)g(for)f(this)i(paper)-5
b(.)697 1879 y Fc(Peer)99 b(|)h(Authenticator)645 b(|)49
b(Backend)996 1979 y(|)747 b(/)100 b(Local)248 b(|)996
2078 y(|)648 b(/)199 b(Method)f(|)697 2178 y(Peer)99
b(|)399 b(Auth)796 b(|)398 b(Backend)697 2278 y(EAP)50
b(--|----->)98 b(EAP)846 b(|)299 b(->)49 b(EAP)648 2377
y(Switch)f(|)349 b(Switch)746 b(|)149 b(/)199 b(Server)996
2477 y(|)648 b(\\)697 b(|/)996 2576 y(|)747 b(\\)50 b(passthrough|)996
2676 y(|)1395 b(|)1226 3158 y Fg(Figure)20 b(2:)25 b(EAP)c(P)o
(assthrough)d(Model)0 3440 y(The)f(Full/P)o(assthrough)e(state)j
(machine)f(allo)n(ws)g(a)h(N)m(AS)g(or)f(Edge)f(De)n(vice)h(to)h(pass)g
(EAP)f(messages)h(to)f(a)h(Back)o(end)f(Serv)o(er)0 3539
y(where)h(the)i(real)f(Authentication)e(Method)h(resides.)24
b(This)c(paper)e(includes)g(a)i(state)g(machine)d(for)i(the)g(EAP)h
(authenticator)0 3639 y(that)26 b(supports)f(both)g(local)h(and)f
(passthrough)f(methods)h(as)h(well)h(as)f(a)h(state)f(machine)f(for)g
(the)h(back)o(end)f(authenticator)0 3739 y(e)o(xisting)k(at)i(the)g
(AAA)f(serv)o(er)-5 b(.)55 b(A)31 b(simple)f(\224Standalone\224)e
(authenticator)h(is)i(also)f(pro)o(vided)e(to)i(sho)n(w)g(a)h(basic,)i
(non-)0 3838 y(passthrough)18 b(authenticator')-5 b(s)19
b(beha)n(vior)-5 b(.)0 4038 y(This)26 b(document)f(describes)g(a)i(set)
g(of)f(State)h(Machines)e(that)i(can)f(manage)e(EAP)j(authentication)d
(from)h(the)i(peer)e(to)i(an)0 4137 y(EAP)18 b(method)d(on)i(the)g
(Authenticator)f(or)h(from)f(the)h(Peer)g(through)e(the)j
(Authenticator)d(passthrough)g(method)h(to)h(the)g(EAP)0
4237 y(method)i(on)h(the)g(Back)o(end)f(EAP)i(serv)o(er)-5
b(.)0 4436 y(The)34 b(state)g(diagrams)f(presented)g(in)h(this)g
(document)e(ha)n(v)o(e)i(been)f(coordinated)f(with)i(the)g(diagrams)e
(in)j([IEEE.802-)0 4536 y(1aa.2003].)50 b(The)30 b(format)e(of)h(the)h
(diagrams)e(is)j(adapted)d(from)h(the)g(format)g(therein.)52
b(Portions)29 b(of)g(a)h(v)o(ersion)f(of)g(this)0 4635
y(document)18 b(are)i(included)f(as)i(Appendix)d(F)j(of)f
([IEEE.802-1aa.2003)o(].)0 5656 y(V)-11 b(ollbrecht,)19
b(et)i(al.)986 b(Expires)19 b(March)g(18,)h(2004)984
b([P)o(age)20 b(5])p eop
%%Page: 6 6
6 5 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y Fe(3)119
b(Notational)30 b(con)-5 b(v)o(entions)31 b(used)f(in)h(state)d
(diagrams)0 692 y Ff(3.1)99 b(Notational)24 b(speci\002cs)0
947 y Fg(The)15 b(follo)n(wing)e(state)j(diagrams)f(ha)n(v)o(e)f(been)h
(completed)e(based)i(on)g(the)g(con)m(v)o(entions)e(speci\002ed)h(in)i
([IEEE.802-1aa.2003)o(],)0 1047 y(section)k(8.2.1.)j(The)d(complete)f
(te)o(xt)h(is)i(reproduced)17 b(here:)0 1246 y(State)j(diagrams)f(are)h
(used)f(to)h(represent)e(the)i(operation)e(of)h(the)h(protocol)e(by)h
(a)h(number)e(of)i(cooperating)d(state)j(machines)0 1346
y(each)29 b(comprising)f(a)i(group)d(of)i(connected,mutually)d(e)o
(xclusi)n(v)o(e)i(states.)54 b(Only)29 b(one)g(state)h(of)f(each)g
(machine)f(can)i(be)0 1445 y(acti)n(v)o(e)20 b(at)g(an)o(y)g(gi)n(v)o
(en)f(time.)0 1645 y(Each)27 b(state)i(is)f(represented)e(in)i(the)g
(state)g(diagram)f(as)h(a)g(rectangular)e(box,)i(di)n(vided)f(into)g
(tw)o(o)h(parts)g(by)f(a)h(horizontal)0 1744 y(line.)39
b(The)25 b(upper)e(part)i(contains)f(the)h(state)h(identi\002er)m(,)f
(written)g(in)g(upper)e(case)j(letters.)39 b(The)25 b(lo)n(wer)g(part)f
(contains)g(an)o(y)0 1844 y(procedures)18 b(that)i(are)g(e)o(x)o
(ecuted)f(on)g(entry)h(to)g(the)g(state.)0 2043 y(All)27
b(permissible)f(transitions)h(between)e(states)j(are)f(represented)e
(by)h(arro)n(ws,)h(the)g(arro)n(whead)d(denoting)h(the)i(direction)0
2143 y(of)g(the)g(possible)f(transition.)45 b(Labels)27
b(attached)f(to)h(arro)n(ws)g(denote)e(the)i(condition\(s\))e(that)i
(must)g(be)g(met)g(in)g(order)f(for)0 2242 y(the)e(transition)f(to)i
(tak)o(e)f(place.)36 b(All)25 b(conditions)d(are)i(e)o(xpressions)f
(that)h(e)n(v)n(aluate)f(to)h(TR)m(UE)g(or)g(F)-6 b(ALSE;)25
b(if)f(a)g(condition)0 2342 y(e)n(v)n(aluates)d(to)h(TR)m(UE,)f(then)g
(the)h(condition)e(is)i(met.)30 b(The)21 b(label)g(UCT)i(denotes)d(an)i
(unconditional)d(transition)i(\(i.e.,)g(UCT)0 2442 y(al)o(w)o(ays)h(e)n
(v)n(aluates)e(to)i(TR)m(UE\).)e(A)i(transition)f(that)g(is)h(global)e
(in)i(nature)e(\(i.e.,)h(a)h(transition)e(that)h(occurs)g(from)f(an)o
(y)h(of)g(the)0 2541 y(possible)d(states)g(if)h(the)e(condition)f
(attached)h(to)h(the)g(arro)n(w)f(is)i(met\))f(is)g(denoted)f(by)g(an)h
(open)f(arro)n(w;)g(i.e.,)h(no)g(speci\002c)g(state)0
2641 y(is)25 b(identi\002ed)e(as)h(the)g(origin)e(of)i(the)g
(transition.)34 b(When)24 b(the)g(condition)d(associated)j(with)g(a)g
(global)f(transition)g(is)h(met,)h(it)0 2741 y(supersedes)18
b(all)i(other)e(e)o(xit)h(conditions)f(including)f(UCT)-6
b(.)20 b(The)e(special)i(global)e(condition)f(BEGIN)i(supersedes)g(all)
g(other)0 2840 y(global)26 b(conditions,)h(and)f(once)g(asserted)h
(remains)f(asserted)h(until)f(all)i(state)f(blocks)f(ha)n(v)o(e)h(e)o
(x)o(ecuted)e(to)i(the)f(point)g(that)0 2940 y(v)n(ariable)19
b(assignments)h(and)f(other)h(consequences)e(of)i(their)g(e)o(x)o
(ecution)e(remain)h(unchanged.)0 3139 y(On)d(entry)f(to)i(a)f(state,)h
(the)g(procedures)c(de\002ned)i(for)h(the)g(state)h(\(if)f(an)o(y\))f
(are)h(e)o(x)o(ecuted)e(e)o(xactly)h(once,)h(in)g(the)g(order)f(that)h
(the)o(y)0 3239 y(appear)21 b(on)g(the)h(page.)29 b(Each)21
b(action)g(is)i(deemed)e(to)h(be)f(atomic;)i(i.e.,)f(e)o(x)o(ecution)d
(of)j(a)g(procedure)d(completes)i(before)g(the)0 3338
y(ne)o(xt)h(sequential)f(procedure)f(starts)k(to)e(e)o(x)o(ecute.)31
b(No)22 b(procedures)f(e)o(x)o(ecute)g(outside)g(of)i(a)g(state)g
(block.)31 b(The)22 b(procedures)0 3438 y(in)29 b(only)f(one)g(state)i
(block)e(e)o(x)o(ecute)f(at)i(a)g(time,)i(e)n(v)o(en)d(if)h(the)g
(conditions)e(for)h(e)o(x)o(ecution)f(of)i(state)g(blocks)f(in)h(dif)n
(ferent)0 3538 y(state)g(machines)e(are)i(satis\002ed,)h(and)e(all)h
(procedures)d(in)j(an)f(e)o(x)o(ecuting)e(state)j(block)e(complete)h(e)
o(x)o(ecution)e(before)h(the)0 3637 y(transition)19 b(to)h(and)f(e)o(x)
o(ecution)e(of)j(an)o(y)e(other)h(state)i(block)d(occurs,)h(i.e.,)h
(the)f(e)o(x)o(ecution)f(of)h(an)o(y)g(state)h(block)f(appears)g(to)h
(be)0 3737 y(atomic)e(with)g(respect)g(to)g(the)h(e)o(x)o(ecution)d(of)
i(an)o(y)f(other)h(state)h(block)e(and)h(the)g(transition)f(condition)g
(to)h(that)g(state)h(from)f(the)0 3836 y(pre)n(vious)h(state)j(is)g(TR)
m(UE)f(when)f(e)o(x)o(ecution)f(commences.)25 b(The)c(order)f(of)g(e)o
(x)o(ecution)f(of)i(state)g(blocks)g(in)g(dif)n(ferent)e(state)0
3936 y(machines)f(is)h(unde\002ned)d(e)o(xcept)i(as)h(constrained)e(by)
h(their)g(transition)f(conditions.A)g(v)n(ariable)g(that)i(is)g(set)g
(to)g(a)g(particular)0 4036 y(v)n(alue)i(in)h(a)h(state)g(block)e
(retains)h(this)g(v)n(alue)f(until)h(a)h(subsequent)d(state)j(block)e
(e)o(x)o(ecutes)g(a)h(procedure)e(that)i(modi\002es)g(the)0
4135 y(v)n(alue.)0 4335 y(On)c(completion)f(of)h(all)h(of)g(the)f
(procedures)e(within)j(a)f(state,)i(all)f(e)o(xit)f(conditions)f(for)h
(the)g(state)i(\(including)c(all)j(conditions)0 4434
y(associated)25 b(with)h(global)e(transitions\))h(are)g(e)n(v)n
(aluated)f(continuously)f(until)j(one)f(of)g(the)g(conditions)f(is)j
(met.)40 b(The)26 b(label)0 4534 y(ELSE)g(denotes)f(a)h(transition)f
(that)g(occurs)g(if)h(none)f(of)h(the)f(other)g(conditions)g(for)g
(transitions)g(from)g(the)g(state)i(are)e(met)0 4633
y(\(i.e.,)20 b(ELSE)g(e)n(v)n(aluates)f(to)i(TR)m(UE)f(if)h(all)g
(other)e(possible)h(e)o(xit)g(conditions)f(from)g(the)h(state)h(e)n(v)n
(aluate)f(to)g(F)-6 b(ALSE\).)20 b(Where)0 4733 y(tw)o(o)j(or)f(more)g
(e)o(xit)g(conditions)f(with)i(the)f(same)h(le)n(v)o(el)f(of)g
(precedence)f(become)g(TR)m(UE)i(simultaneously)-5 b(,)21
b(the)h(choice)g(as)0 4833 y(to)e(which)g(e)o(xit)g(condition)e(causes)
j(the)f(state)h(transition)e(to)i(tak)o(e)f(place)g(is)h(arbitrary)-5
b(.)0 5032 y(Where)20 b(it)g(is)h(necessary)e(to)h(split)g(a)h(state)f
(machine)f(description)f(across)i(more)f(than)h(one)f(diagram,)f(a)i
(transition)f(between)0 5132 y(tw)o(o)k(states)h(that)f(appear)f(on)g
(dif)n(ferent)g(diagrams)g(is)h(represented)e(by)i(an)g(e)o(xit)g(arro)
n(w)f(dra)o(wn)f(with)i(dashed)g(lines,)g(plus)g(a)0
5231 y(reference)d(to)j(the)f(diagram)e(that)i(contains)g(the)g
(destination)f(state.)31 b(Similarly)-5 b(,)21 b(dashed)g(arro)n(ws)h
(and)f(a)i(dashed)e(state)h(box)0 5331 y(are)e(used)g(on)f(the)h
(destination)f(diagram)f(to)j(sho)n(w)e(the)h(transition)f(to)h(the)g
(destination)f(state.)26 b(In)19 b(a)i(state)g(machine)d(that)i(has)0
5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)986 b(Expires)19
b(March)g(18,)h(2004)984 b([P)o(age)20 b(6])p eop
%%Page: 7 7
7 6 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y(been)i(split)h(in)g
(this)g(w)o(ay)-5 b(,)21 b(an)o(y)g(global)f(transitions)h(that)h(can)f
(cause)h(entry)e(to)i(states)g(de\002ned)f(in)h(one)e(of)i(the)f
(diagrams)g(are)0 490 y(deemed)f(to)i(be)g(potential)f(e)o(xit)g
(conditions)f(for)h(all)i(of)e(the)h(states)g(of)g(the)f(state)i
(machine,)d(re)o(gardless)g(of)i(which)f(diagram)0 589
y(the)f(state)h(box)o(es)e(appear)g(in.)0 789 y(Should)f(a)i
(con\003ict)f(e)o(xist)g(between)g(the)g(interpretation)e(of)i(a)h
(state)g(diagram)e(and)h(either)g(the)g(corresponding)d(global)i(tran-)
0 888 y(sition)j(tables)g(or)g(the)g(te)o(xtual)f(description)g
(associated)h(with)g(the)g(state)g(machine,)f(the)h(state)h(diagram)e
(tak)o(es)h(precedence.)0 988 y(The)26 b(interpretation)e(of)j(the)f
(special)h(symbols)f(and)f(operators)g(used)i(in)f(the)h(state)g
(diagrams)e(is)j(as)f(de\002ned)e(in)i(Section)0 1088
y(3.2;)22 b(these)f(symbols)g(and)g(operators)f(are)i(deri)n(v)o(ed)d
(from)i(the)g(notation)g(of)g(the)g(C++)h(programming)d(language,)g
(ISO/IEC)0 1187 y(14882.)32 b(If)23 b(a)g(boolean)f(v)n(ariable)g(is)i
(described)e(in)h(this)h(clause)f(as)h(being)e(set)i(it)g(has)f(or)g
(is)h(assigned)f(the)g(v)n(alue)f(TR)m(UE,)h(if)0 1287
y(reset)d(or)g(clear)g(the)h(v)n(alue)e(F)-6 b(ALSE.)0
1486 y(In)29 b(addition)f(to)i(the)f(abo)o(v)o(e)f(notation,)i(there)f
(are)h(a)f(couple)g(of)g(clari\002cations)g(speci\002c)g(to)h(this)g
(document.)51 b(First,)32 b(all)0 1586 y(boolean)19 b(v)n(ariables)h
(are)g(initialized)h(to)g(F)-6 b(ALSE)20 b(before)g(the)g(state)i
(machine)d(e)o(x)o(ecution)g(be)o(gins.)25 b(Second,)20
b(the)g(follo)n(wing)0 1685 y(notational)f(shorthand)f(is)j(speci\002c)
g(to)f(this)h(document:)125 1968 y Fb(\017)41 b Fa(<)p
Fg(v)n(ariable)p Fa(>)18 b Fg(=)i Fa(<)p Fg(e)o(xpression1)p
Fa(>)e Fb(j)i Fa(<)p Fg(e)o(xpression2)p Fa(>)e Fb(j)j
Fg(...)208 2100 y(Ex)o(ecution)i(of)j(a)g(statement)f(of)h(this)g(form)
e(will)j(result)f(in)f Fa(<)p Fg(v)n(ariable)p Fa(>)f
Fg(ha)n(ving)h(a)h(v)n(alue)f(of)g(e)o(xactly)g(one)g(of)h(the)208
2200 y(e)o(xpressions.)d(The)18 b(logic)g(for)h(which)f(of)g(those)h(e)
o(xpressions)e(gets)i(e)o(x)o(ecuted)e(is)j(outside)e(of)g(the)h(state)
h(machine)d(and)208 2300 y(could)i(be)h(en)m(vironmental,)d
(con\002gurable,)g(or)j(based)g(on)g(another)e(state)j(machine)e(such)h
(as)h(that)g(of)e(the)i(Method.)0 2637 y Ff(3.2)99 b(State)26
b(Machine)g(Symbols)125 2836 y Fb(\017)41 b Fg(\()20
b(\))208 2969 y(Used)27 b(to)g(force)g(the)g(precedence)e(of)i
(operators)e(in)j(Boolean)e(e)o(xpressions)g(and)h(to)g(delimit)g(the)g
(ar)o(gument\(s\))e(of)208 3069 y(actions)20 b(within)f(state)i(box)o
(es.)125 3235 y Fb(\017)41 b Fg(;)208 3368 y(Used)27
b(as)h(a)f(terminating)f(delimiter)h(for)f(actions)h(within)g(state)h
(box)o(es.)45 b(Where)27 b(a)h(state)f(box)g(contains)f(multiple)208
3467 y(actions,)19 b(the)h(order)f(of)h(e)o(x)o(ecution)e(follo)n(ws)i
(the)g(normal)f(English)h(language)e(con)m(v)o(entions)g(for)h(reading)
g(te)o(xt.)125 3633 y Fb(\017)41 b Fg(=)208 3766 y(Assignment)16
b(action.)24 b(The)17 b(v)n(alue)g(of)g(the)h(e)o(xpression)e(to)i(the)
f(right)g(of)h(the)f(operator)f(is)j(assigned)e(to)g(the)h(v)n(ariable)
e(to)208 3866 y(the)21 b(left)h(of)f(the)g(operator)-5
b(.)27 b(Where)21 b(this)h(operator)e(is)i(used)f(to)h(de\002ne)e
(multiple)h(assignments,)g(e.g.,)g(a)h(=)f(b)h(=)g(X)g(the)208
3965 y(action)f(causes)i(the)g(v)n(alue)e(of)h(the)h(e)o(xpression)e
(follo)n(wing)g(the)h(right-most)f(assignment)h(operator)e(to)j(be)f
(assigned)208 4065 y(to)e(all)h(of)f(the)g(v)n(ariables)f(that)h
(appear)f(to)i(the)f(left)g(of)g(the)h(right-most)d(assignment)i
(operator)-5 b(.)125 4231 y Fb(\017)41 b Fg(!)208 4364
y(Logical)19 b(NO)m(T)h(operator)-5 b(.)125 4530 y Fb(\017)41
b Fg(&&)208 4663 y(Logical)19 b(AND)i(operator)-5 b(.)125
4829 y Fb(\017)41 b(jj)208 4962 y Fg(Logical)19 b(OR)i(operator)-5
b(.)125 5128 y Fb(\017)41 b Fg(if...then...)208 5260
y(Conditional)29 b(action.)56 b(If)31 b(the)g(Boolean)f(e)o(xpression)f
(follo)n(wing)g(the)i(if)g(e)n(v)n(aluates)f(to)h(TR)m(UE,)g(then)f
(the)h(action)208 5360 y(follo)n(wing)18 b(the)i(then)g(is)h(e)o(x)o
(ecuted.)0 5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)986
b(Expires)19 b(March)g(18,)h(2004)984 b([P)o(age)20 b(7])p
eop
%%Page: 8 8
8 7 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)125 390 y
Fb(\017)41 b(f)20 b Fg(statement)g(1,)g(...)25 b(statement)20
b(N)g Fb(g)208 523 y Fg(Compound)e(statement.)26 b(Braces)21
b(are)g(used)f(to)h(group)e(statements)i(that)g(are)f(e)o(x)o(ecuted)f
(together)g(as)j(if)f(the)o(y)f(were)g(a)208 623 y(single)g(statement.)
125 789 y Fb(\017)41 b Fg(!=)208 922 y(Inequality)-5
b(.)31 b(Ev)n(aluates)23 b(to)g(TR)m(UE)g(if)h(the)f(e)o(xpression)e
(to)j(the)f(left)g(of)g(the)g(operator)f(is)i(not)f(equal)f(in)i(v)n
(alue)e(to)i(the)208 1021 y(e)o(xpression)18 b(to)i(the)h(right.)125
1187 y Fb(\017)41 b Fg(==)208 1320 y(Equality)-5 b(.)60
b(Ev)n(aluates)31 b(to)i(TR)m(UE)f(if)h(the)g(e)o(xpression)d(to)j(the)
g(left)f(of)g(the)h(operator)d(is)k(equal)e(in)g(v)n(alue)g(to)h(the)
208 1420 y(e)o(xpression)18 b(to)i(the)h(right.)125 1586
y Fb(\017)41 b Fa(<)208 1719 y Fg(Less)23 b(than.)32
b(Ev)n(aluates)22 b(to)h(TR)m(UE)f(if)h(the)g(v)n(alue)f(of)h(the)f(e)o
(xpression)f(to)i(the)g(left)g(of)f(the)h(operator)e(is)j(less)f(than)g
(the)208 1818 y(v)n(alue)c(of)h(the)g(e)o(xpression)f(to)h(the)g
(right.)125 1984 y Fb(\017)41 b Fa(>)208 2117 y Fg(Greater)18
b(than.)24 b(Ev)n(aluates)18 b(to)h(TR)m(UE)g(if)g(the)g(v)n(alue)f(of)
g(the)h(e)o(xpression)e(to)i(the)g(left)g(of)g(the)f(operator)f(is)j
(greater)e(than)208 2217 y(the)i(v)n(alue)f(of)h(the)g(e)o(xpression)f
(to)h(the)h(right.)125 2383 y Fb(\017)41 b Fa(>)p Fg(=)208
2516 y(Greater)20 b(than)g(or)h(equal)f(to.)27 b(Ev)n(aluates)20
b(to)h(TR)m(UE)g(if)g(the)g(v)n(alue)f(of)g(the)h(e)o(xpression)e(to)i
(the)g(left)g(of)g(the)g(operator)e(is)208 2615 y(either)g(greater)h
(than)f(or)h(equal)g(to)g(the)g(v)n(alue)g(of)g(the)g(e)o(xpression)f
(to)h(the)g(right.)125 2781 y Fb(\017)41 b Fg(+)208 2914
y(Arithmetic)19 b(addition)g(operator)-5 b(.)125 3080
y Fb(\017)41 b Fg(-)208 3213 y(Arithmetic)19 b(subtraction)g(operator)
-5 b(.)0 3550 y Ff(3.3)99 b(Document)26 b(authority)0
3806 y Fg(Should)18 b(a)i(con\003ict)f(e)o(xist)g(between)g(the)g
(interpretation)e(of)i(a)h(state)g(diagram)e(and)h(either)g(the)g
(corresponding)d(global)i(tran-)0 3905 y(sition)j(tables)g(or)g(the)g
(te)o(xtual)f(description)g(associated)h(with)g(the)g(state)g(machine,)
f(the)h(state)h(diagram)e(tak)o(es)h(precedence.)0 4005
y(When)f(a)g(discrepanc)o(y)e(occurs)h(between)g(an)o(y)g(part)h(of)f
(this)i(document)d(\(te)o(xt)h(or)h(diagram\))e(and)h(an)o(y)g(of)h
(the)g(related)f(docu-)0 4104 y(ments)e(\()h([I-D.ietf-eap-rfc2284b)o
(is],)13 b([RFC3579],)j(etc.\))24 b(the)18 b(latter)f(\(the)g(other)g
(document\))e(is)j(considered)e(authoritati)n(v)o(e)0
4204 y(and)k(tak)o(es)g(precedence.)0 4584 y Fe(4)119
b(P)n(eer)30 b(State)g(Machine)0 4869 y Fg(The)20 b(follo)n(wing)g(is)h
(a)g(diagram)f(of)g(the)h(EAP)g(Peer)g(state)h(machine.)j(Also)c
(included)e(is)j(an)f(e)o(xplanation)d(of)j(the)g(primiti)n(v)o(es)0
4969 y(and)f(procedures)e(referenced)g(in)i(the)g(diagram,)f(as)i(well)
f(as)h(a)g(clari\002cation)e(of)h(notation.)0 5168 y(\(see)g
(draft-ietf-eap-statemachine-00.p)o(s)15 b(for)20 b(missing)g(diagram)f
(if)h(reading)f([.txt])h(v)o(ersion\))0 5656 y(V)-11
b(ollbrecht,)19 b(et)i(al.)986 b(Expires)19 b(March)g(18,)h(2004)984
b([P)o(age)20 b(8])p eop
%%Page: 9 9
9 8 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)18 4143 y
@beginspecial 0 @llx 0 @lly 591 @urx 636 @ury 4276 @rwi
@setspecial
%%BeginDocument: ../../../diagrams/eap_peer_27062003a.eps
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: ImageMark Software Labs
%%For: () ()
%%Title: C:\USERS\IETF\EAP\State machines\eap_peer_27062003a.eps
%%CreationDate: () ()
%%BoundingBox: 0 0 591 636
%%DocumentProcessColors: Black
%%ColorUsage:Color
%%DocumentFonts: Helvetica
%%+Helvetica-Bold
%%+Helvetica-Oblique
%%+Helvetica-BoldOblique
%%+Times-Roman
%%+Times-Bold
%%+Times-Italic
%%+Times-BoldItalic
%%+Courier
%%+Courier-Bold
%%+Courier-Oblique
%%+Courier-BoldOblique
%%+Symbol
%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
%%+ procset Adobe_screens_AI5 1.0 0
%%+ procset Adobe_typography_AI5 1.0 0
%%+ procset Adobe_ColorImage_AI6 1.1 0
%%+ procset Adobe_blend_AI5 1.0 0
%%+ procset Adobe_pattern_AI5 1.0 0
%%+ procset Adobe_Illustrator_AI5 1.0 0
%AI5_FileFormat 3.0
%AI3_ColorUsage: Color
%AI3_TemplateBox: 0 0 591 636
%AI3_TileBox: 0 0 591 636
%AI3_DocumentPreview: None
%%Template:
%%PageOrigin:0.0000 0.0000
%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%%EndComments
%%BeginProlog
%%BeginResource: procset Adobe_level2_AI5 1.2 0
%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
%%Version: 1.2 0
%%CreationDate: (04/10/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /Adobe_level2_AI5 25 dict dup begin
	put
	/packedarray where not
	{
		userdict begin
		/packedarray
		{
			array astore readonly
		} bind def
		/setpacking /pop load def
		/currentpacking false def
	 end
		0
	} if
	pop
	userdict /defaultpacking currentpacking put true setpacking
	/initialize
	{
		Adobe_level2_AI5 begin
	} bind def
	/terminate
	{
		currentdict Adobe_level2_AI5 eq
		{
		 end
		} if
	} bind def
	mark
	/setcustomcolor where not
	{
		/findcmykcustomcolor
		{
			0
			6 packedarray
		} bind def
		/findrgbcustomcolor
		{
			1
			5 packedarray
		} bind def
		/setcustomcolor
		{
			exch 
			aload pop 
			0 eq
			{
				pop
				4
				{
					4 index mul
					4 1 roll
				} repeat
				5 -1 roll pop
				setcmykcolor
			}
			{
				pop
				3
				{
					1 exch sub
					3 index mul 
					1 exch sub
					3 1 roll
				} repeat
				4 -1 roll pop
				setrgbcolor
			} ifelse
		}
		def
	} if
	
	/gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
	userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
	userdict /level2?
	systemdict /languagelevel known dup
	{
		pop systemdict /languagelevel get 2 ge
	} if
	put
/level2ScreenFreq
{
 begin
		60
		HalftoneType 1 eq
		{
			pop Frequency
		} if
		HalftoneType 2 eq
		{
			pop GrayFrequency
		} if
		HalftoneType 5 eq
		{
			pop Default level2ScreenFreq
		} if
 end
} bind def
userdict /currentScreenFreq  
	level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
level2? not
	{
		/setcmykcolor where not
		{
			/setcmykcolor
			{
				exch .11 mul add exch .59 mul add exch .3 mul add
				1 exch sub setgray
			} def
		} if
		/currentcmykcolor where not
		{
			/currentcmykcolor
			{
				0 0 0 1 currentgray sub
			} def
		} if
		/setoverprint where not
		{
			/setoverprint /pop load def
		} if
		/selectfont where not
		{
			/selectfont
			{
				exch findfont exch
				dup type /arraytype eq
				{
					makefont
				}
				{
					scalefont
				} ifelse
				setfont
			} bind def
		} if
		/cshow where not
		{
			/cshow
			{
				[
				0 0 5 -1 roll aload pop
				] cvx bind forall
			} bind def
		} if
	} if
	cleartomark
	/anyColor?
	{
		add add add 0 ne
	} bind def
	/testColor
	{
		gsave
		setcmykcolor currentcmykcolor
		grestore
	} bind def
	/testCMYKColorThrough
	{
		testColor anyColor?
	} bind def
	userdict /composite?
	level2?
	{
		gsave 1 1 1 1 setcmykcolor currentcmykcolor grestore
		add add add 4 eq
	}
	{
		1 0 0 0 testCMYKColorThrough
		0 1 0 0 testCMYKColorThrough
		0 0 1 0 testCMYKColorThrough
		0 0 0 1 testCMYKColorThrough
		and and and
	} ifelse
	put
	composite? not
	{
		userdict begin
		gsave
		/cyan? 1 0 0 0 testCMYKColorThrough def
		/magenta? 0 1 0 0 testCMYKColorThrough def
		/yellow? 0 0 1 0 testCMYKColorThrough def
		/black? 0 0 0 1 testCMYKColorThrough def
		grestore
		/isCMYKSep? cyan? magenta? yellow? black? or or or def
		/customColor? isCMYKSep? not def
	 end
	} if
 end defaultpacking setpacking
%%EndResource
%%BeginResource: procset Adobe_typography_AI5 1.0 1
%%Title: (Typography Operators)
%%Version: 1.0 
%%CreationDate:(03/26/93) ()
%%Copyright: ((C) 1987-1993 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_typography_AI5 54 dict dup begin
put
/initialize
{
 begin
 begin
	Adobe_typography_AI5 begin
	Adobe_typography_AI5
	{
		dup xcheck
		{
			bind
		} if
		pop pop
	} forall
 end
 end
 end
	Adobe_typography_AI5 begin
} def
/terminate
{
	currentdict Adobe_typography_AI5 eq
	{
	 end
	} if
} def
/modifyEncoding
{
	/_tempEncode exch ddef
	/_pntr 0 ddef
	{
		counttomark -1 roll
		dup type dup /marktype eq
		{
			pop pop exit
		}
		{
			/nametype eq
			{
				_tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
				put
			}
			{
				/_pntr exch ddef
			} ifelse
		} ifelse
	} loop
	_tempEncode
} def
/TE
{
	StandardEncoding 256 array copy modifyEncoding
	/_nativeEncoding exch def
} def
%
/TZ
{
	dup type /arraytype eq
	{
		/_wv exch def
	}
	{
		/_wv 0 def
	} ifelse
	/_useNativeEncoding exch def
	pop pop
	findfont _wv type /arraytype eq
	{
		_wv makeblendedfont
	} if
	dup length 2 add dict
 begin
	mark exch
	{
		1 index /FID ne
		{
			def
		} if
		cleartomark mark
	} forall
	pop
	/FontName exch def
	counttomark 0 eq
	{
		1 _useNativeEncoding eq
		{
			/Encoding _nativeEncoding def
		} if
		cleartomark
	}
	{
		/Encoding load 256 array copy
		modifyEncoding /Encoding exch def
	} ifelse
	FontName currentdict
 end
	definefont pop
} def
/tr
{
	_ax _ay 3 2 roll
} def
/trj
{
	_cx _cy _sp _ax _ay 6 5 roll
} def
/a0
{
	/Tx
	{
		dup
		currentpoint 3 2 roll
		tr _psf
		newpath moveto
		tr _ctm _pss
	} ddef
	/Tj
	{
		dup
		currentpoint 3 2 roll
		trj _pjsf
		newpath moveto
		trj _ctm _pjss
	} ddef
} def
/a1
{
	/Tx
	{
		dup currentpoint 4 2 roll gsave
		dup currentpoint 3 2 roll
		tr _psf
		newpath moveto
		tr _ctm _pss
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll gsave
		dup currentpoint 3 2 roll
		trj _pjsf
		newpath moveto
		trj _ctm _pjss
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/e0
{
	/Tx
	{
		tr _psf
	} ddef
	/Tj
	{
		trj _pjsf
	} ddef
} def
/e1
{
	/Tx
	{
		dup currentpoint 4 2 roll gsave
		tr _psf
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll gsave
		trj _pjsf
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/i0
{
	/Tx
	{
		tr sp
	} ddef
	/Tj
	{
		trj jsp
	} ddef
} def
/i1
{
	W N
} def
/o0
{
	/Tx
	{
		tr sw rmoveto
	} ddef
	/Tj
	{
		trj swj rmoveto
	} ddef
} def
/r0
{
	/Tx
	{
		tr _ctm _pss
	} ddef
	/Tj
	{
		trj _ctm _pjss
	} ddef
} def
/r1
{
	/Tx
	{
		dup currentpoint 4 2 roll currentpoint gsave newpath moveto
		tr _ctm _pss
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll currentpoint gsave newpath moveto
		trj _ctm _pjss
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/To
{
	pop _ctm currentmatrix pop
} def
/TO
{
	iTe _ctm setmatrix newpath
} def
/Tp
{
	pop _tm astore pop _ctm setmatrix
	_tDict begin
	/W
	{
	} def
	/h
	{
	} def
} def
/TP
{
 end
	iTm 0 0 moveto
} def
/Tr
{
	_render 3 le
	{
		currentpoint newpath moveto
	} if
	dup 8 eq
	{
		pop 0
	}
	{
		dup 9 eq
		{
			pop 1
		} if
	} ifelse
	dup /_render exch ddef
	_renderStart exch get load exec
} def
/iTm
{
	_ctm setmatrix _tm concat 0 _rise translate _hs 1 scale
} def
/Tm
{
	_tm astore pop iTm 0 0 moveto
} def
/Td
{
	_mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
} def
/iTe
{
	_render -1 eq
	{
	}
	{
		_renderEnd _render get dup null ne
		{
			load exec
		}
		{
			pop
		} ifelse
	} ifelse
	/_render -1 ddef
} def
/Ta
{
	pop
} def
/Tf
{
	dup 1000 div /_fScl exch ddef
%
	selectfont
} def
/Tl
{
	pop
	0 exch _leading astore pop
} def
/Tt
{
	pop
} def
/TW
{
	3 npop
} def
/Tw
{
	/_cx exch ddef
} def
/TC
{
	3 npop
} def
/Tc
{
	/_ax exch ddef
} def
/Ts
{
	/_rise exch ddef
	currentpoint
	iTm
	moveto
} def
/Ti
{
	3 npop
} def
/Tz
{
	100 div /_hs exch ddef
	iTm
} def
/TA
{
	pop
} def
/Tq
{
	pop
} def
/Th
{
	pop pop pop pop pop
} def
/TX
{
	pop
} def
/Tk
{
	exch pop _fScl mul neg 0 rmoveto
} def
/TK
{
	2 npop
} def
/T*
{
	_leading aload pop neg Td
} def
/T*-
{
	_leading aload pop Td
} def
/T-
{
	_hyphen Tx
} def
/T+
{
} def
/TR
{
	_ctm currentmatrix pop
	_tm astore pop
	iTm 0 0 moveto
} def
/TS
{
	currentfont 3 1 roll
	/_Symbol_ _fScl 1000 mul selectfont
	
	0 eq
	{
		Tx
	}
	{
		Tj
	} ifelse
	setfont
} def
/Xb
{
	pop pop
} def
/Tb /Xb load def
/Xe
{
	pop pop pop pop
} def
/Te /Xe load def
/XB
{
} def
/TB /XB load def
currentdict readonly pop
end
setpacking
%%EndResource
%%BeginResource: procset Adobe_screens_AI5 1.2 0
%%Title: (Adobe Illustrator (R) Version 5.0 Custom Halftone Screens ProcSet)
%%Version: 1.2 0
%%CreationDate: (03/24/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
systemdict begin
userdict /Adobe_screens_AI5 15 dict dup begin
put
/initialize
{
	Adobe_screens_AI5 begin
	/screenid
		deviceDPI 600 gt composite? not or
		{
		-1
		}
		{
			deviceDPI currentScreenFreq 
			dup dup 60 ge exch 150 le and deviceDPI 300 le and
		{
			pop 60
		} if
		div 1.41421 div 0.5 add cvi
		} ifelse
	def
	
	2 screenid eq
	{
		/customsize 16 def
		/customdata /customdata2 def
		setcustomscreen
	} if
	
	3 screenid eq
	{
		/customsize 24 def
		/customdata /customdata3 def
		setcustomscreen
	} if
	
	4 screenid eq
	{
		/customsize 16 def
		/customdata /customdata4 def
		setcustomscreen
	} if
	
	5 screenid eq
	{
		/customsize 20 def
		/customdata /customdata5 def
		setcustomscreen
	} if
	
	6 screenid eq
	{
		/customsize 24 def
		/customdata /customdata6 def
		setcustomscreen
	} if
	
	7 screenid eq
	{
		/customsize 28 def
		/customdata /customdata7 def
		setcustomscreen
	} if
	
	8 screenid eq
	{
		/customsize 16 def
		/customdata /customdata8 def
		setcustomscreen
	} if
} def
/terminate
{
	currentdict Adobe_screens_AI5 eq
	{
	 end
	} if
} def
/setcustomscreen
{
	deviceDPI customsize div 0
	{
		1 add 2 div customsize mul cvi exch
		1 add 2 div customsize mul cvi exch
		customsize mul add
		customdata load exch get 256 div
	} setscreen
} def
/customdata2 28 28 mul string def
currentfile customdata2 readhexstring
4180E8694988E2634382EA6B4B8AE061A01939C8A81737C2A21B3BCAAA1636C0
F8795998F6775796FA7B5B9AF57656952ED8B80727D6B60F2FDABA0626D5B50E
4E8DE6674786EE6F4F8EE5664685ED6EAD1434C6A61F3FCEAE1232C5A51E3ECD
F3745493FE7F5F9EF1725291FD7E5E9D24D3B30C2CDEBE0222D1B10A2ADDBD04
4483EB6C4C8BE1624281E96A4A89E364A31C3CCBAB1535C1A11A3AC9A91838C3
FB7C5C9BF4755594F97A5A99F778589730DBBB0525D4B40D2DD9B90828D7B710
508FE4654584EC6D4D8CE7684887EF70AF1131C4A41D3DCCAC1333C7A72040CF
F0715190FC7D5D9CF2735392FF80609F21D0B00929DCBC0323D2B20B2BDFBF01
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata3 28 28 mul string def
currentfile customdata3 readhexstring
011DC7F5E73D0421CBF3E43A021EC8F6E83E0522CCF2E43A2B648BC4A0762F68
8AC39E732C658CC5A177306989C29D72D5B6521A6192D9B55219608FD6B6531B
6193DAB451185F8FFCEE440C28D2FCED430B27D1FDEF450C29D3FBEC420A26D0
BEA77D366F83BCA77C356E87BFA87E377082BBA67B346D86145B99E0AE4A1259
98DFB14E155C9AE1AD4A115897DEB04D0623CDF4E63C0420CAF8EA400723CDF4
E53B031FC9F7E93F316988C19F752E678EC6A378326A88C09F742D668DC6A278
DBB350175E91D8B8551C6395DCB24F165D90D7B7541C6294FAEC420925CFFFF1
470E2BD5F9EB410824CEFEF0460D2AD4BAA57A336C85BEAA80397180B9A47933
6B84BDA97F387181105797DDAF4C145A9CE3AB480F5696DDAE4B13599BE2AC49
021EC8F6E83E0522CCF2E43A011DC7F5E73D0421CBF3E43A2C658CC5A1773069
89C29D722B648BC4A0762F688AC39E73D6B6531B6193DAB451185F8FD5B6521A
6192D9B55219608FFDEF450C29D3FBEC420A26D0FCEE440C28D2FCED430B27D1
BFA87E377082BBA67B346D86BEA77D366F83BCA77C356E87155C9AE1AD4A1158
97DEB04D145B99E0AE4A125998DFB14E0723CDF4E53B031FC9F7E93F0623CDF4
E63C0420CAF8EA40326A88C09F742D668DC6A278316988C19F752E678EC6A378
DCB24F165D90D7B7541C6294DBB350175E91D8B8551C6395F9EB410824CEFEF0
460D2AD4FAEC420925CFFFF1470E2BD5B9A479336B84BDA97F387181BAA57A33
6C85BEAA803971800F5696DDAE4B13599BE2AC49105797DDAF4C145A9CE3AB48
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata4 28 28 mul string def
currentfile customdata4 readhexstring
1139B8E0FAD2531B133BBAE2F8D05119417180A6AE9A7B4B437382A5AD987949
C08867272F6F92CAC28A66262E6E90C8E8DE5F070F37B6F2EADD5E060E36B5F0
FED6571F173FBEE6FDD5561E163EBDE5AB9E7F4F477786A1A99D7E4E467685A3
2C6C96CEC68E62222A6A95CDC58D64240C34B3F6EED95A020A32B1F5EDDB5C04
143CBBE3F9D1521A123AB9E1FBD3541C447483A4AC997A4A427281A7AF9B7C4C
C38B65252D6D91C9C1896828307093CBEBDC5D050D35B4F1E9DF60081038B7F3
FCD4551D153DBCE4FFD758201840BFE7A89C7D4D457584A2AA9F8050487887A0
296994CCC48C63232B6B97CFC78F61210931B0F4ECDA5B030B33B2F7EFD85901
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata5 28 28 mul string def
currentfile customdata5 readhexstring
010B34C3EBFCF7CE3F16020C35C4EDFBF6CD3E15102552A4D6EADDB5632B1126
54A5D5EADCB3622A3958768499C19E8C7C5E3A59778498C19D8B7B5DC8A99370
47334C7587AFC9AA936F46324B7485AEF1E5BC6B1E0A2351A3D8F2E4BC6A1E09
2351A2D7FFF9D14219050F38C6EFFEF9D04118040E37C6EFE8E0B7662D142856
A8D3E7DFB7652D132856A7D4BF9C8E7F603D5B7A8195BE9A8E7E603C5B798297
314A7389B2CCAD906D442F497289B1CBAC926E4508214FA1DBF4E2B9671B0720
4EA0DAF4E3BA691C030D36C5EDFBF6CD3F16010C34C3ECFDF8CF4017122654A6
D4E9DDB4622A112553A5D6EBDEB5642C3B59788397C09C8B7C5D3A58778599C2
9E8C7D5FCAAB926E46314B7486AFC8AA947048334D7587B0F2E4BB691D082250
A1D8F1E6BD6B1F0A2452A3D9FDF8CF4118030E36C5EEFFFAD1421A050F38C7F0
E6DFB6642C132755A7D3E8E1B8662E152957A8D2BE9A8D7E5F3B5A798296BF9B
8F80613D5C7B80952F487188B1CAAC916D443049728AB3CCAE906C43061F4D9F
DAF3E2BA681C07214FA0DBF5E1B8671A00000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata6 28 28 mul string def
currentfile customdata6 readhexstring
081A44B6E0F2FDECC150250C091B45B6E1F3FCEBC04F240C1D336199C7D8DCD3
A56C37221E33619AC8D7DBD2A46B36214864798091AEB1958C7E694C49657A81
90ADB0948B7D684BB99D8475593C405C7888A1BEBA9E8574583B3F5B7888A0BD
E4CBAA712E1215326098CFE8E4CCA9712D1114315F97CEE7F5F1C6552B040719
43B5DFFAF6F0C6542A03061842B4DEF9FFEDC352270E0B1C47B8E3F4FEECC251
260D0A1C46B7E2F4DAD5A76E39232035639CCAD5D9D4A66D38231F34629BC9D6
AF938E806A4E4A677C838FABAE928D7F694D4A667B828FAC3E5A778AA3BFBC9F
8772563A3D597689A2BEBB9F8673573A14305E97D1EAE6CDA76F2B0F132F5D96
D0E9E5CDA8702C10051742B3DDFCF8EEC4522801041641B2DDFBF7EFC5532902
091B45B6E1F3FCEBC04F240C081A44B6E0F2FDECC150250C1E33619AC8D7DBD2
A46B36211D336199C7D8DCD3A56C372249657A8190ADB0948B7D684B48647980
91AEB1958C7E694CBA9E8574583B3F5B7888A0BDB99D8475593C405C7888A1BE
E4CCA9712D1114315F97CEE7E4CBAA712E1215326098CFE8F6F0C6542A030618
42B4DEF9F5F1C6552B04071943B5DFFAFEECC251260D0A1C46B7E2F4FFEDC352
270E0B1C47B8E3F4D9D4A66D38231F34629BC9D6DAD5A76E39232035639CCAD5
AE928D7F694D4A667B828FACAF938E806A4E4A677C838FAB3D597689A2BEBB9F
8673573A3E5A778AA3BFBC9F8772563A132F5D96D0E9E5CDA8702C1014305E97
D1EAE6CDA76F2B0F041641B2DDFBF7EFC5532902051742B3DDFCF8EEC4522801
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata7 28 28 mul string def
currentfile customdata7 readhexstring
01061B44B7E1F5FEFBE6BD4A210C01071B45B8E1F6FDFBE6BC4A200B09132A54
A7D1EAF5EED9B05D331609142B55A8D2EAF4EED9AF5C32161D2D3D6993C1CBE0
CEC59B7140301E2E3D6A93C0CADFCDC49A713F3047576C7B828DA2B6A48F867E
6F5A48576C7C828CA1B6A38F867E6E59BAAA958A78634E4451667A8498ADBAAB
968977624E4350657A8398ADE3D4C99F7539251A273C6892C2D7E4D4C89E7539
241A273B6891C1D6F8F2DDB460371005122A53A7D0ECF9F2DDB360360F051229
53A6D0EBFFFDE8BE4C220D03081D46B9E3F7FFFCE7BD4B210D02071C46B8E2F7
F3F0DBB15E34180B152C56A9D3E8F3EFDAB05D34170A142C55A9D2E9DFCCC69C
7341321F2F3F6B94BFC9DECCC59C7241311F2E3E6A94BFCAB5A38E8780705B49
596D7D808BA0B4A28D877F6F5B48586D7C818BA043506479859AAFBCAC978876
614C424F64798499AEBBAB968977624D19263B6791C3D8E5D6C79D7337231825
3A6690C3D7E5D5C79E74382304112952A5CFEDFAF0DBB25E350E03102851A5CE
ECF9F1DCB25F360E01071B45B8E1F6FDFBE6BC4A200B01061B44B7E1F5FEFBE6
BD4A210C09142B55A8D2EAF4EED9AF5C321609132A54A7D1EAF5EED9B05D3316
1E2E3D6A93C0CADFCDC49A713F301D2D3D6993C1CBE0CEC59B71403048576C7C
828CA1B6A38F867E6E5947576C7B828DA2B6A48F867E6F5ABAAB968977624E43
50657A8398ADBAAA958A78634E4451667A8498ADE4D4C89E7539241A273B6891
C1D6E3D4C99F7539251A273C6892C2D7F9F2DDB360360F05122953A6D0EBF8F2
DDB460371005122A53A7D0ECFFFCE7BD4B210D02071C46B8E2F7FFFDE8BE4C22
0D03081D46B9E3F7F3EFDAB05D34170A142C55A9D2E9F3F0DBB15E34180B152C
56A9D3E8DECCC59C7241311F2E3E6A94BFCADFCCC69C7341321F2F3F6B94BFC9
B4A28D877F6F5B48586D7C818BA0B5A38E8780705B49596D7D808BA0424F6479
8499AEBBAB968977624D43506479859AAFBCAC978876614C18253A6690C3D7E5
D5C79E74382319263B6791C3D8E5D6C79D73372303102851A5CEECF9F1DCB25F
360E04112952A5CFEDFAF0DBB25E350E
pop pop
/customdata8 28 28 mul string def
currentfile customdata8 readhexstring
050F2747B6D6EEF8FEF4DCBC4D2D1507111D375F9EC6E0E9EBE6CCA4653D1F13
2939556F8EA8C1D1D3C3AE9475573B2B4961717D808999B1B39B8B867F73634B
B8A090827A6A5A42445C6C7C8492A2BAD8C8AA97785232222434546E8DACCADA
F0E2CFA768401A0A0C1C365E9DC5E4F2FAF7DFBF50301802040E2646B5D5EDFC
FFF5DDBD4E2E160806102848B7D7EFF9EAE7CDA5663E2014121E38609FC7E1E8
D2C2AF9576583C2C2A3A56708FA9C0D0B29A8A878074644C4A62727E818898B0
435B6B7B8593A3BBB9A19183796959412333536D8CADCBDBD9C9AB9677513121
0B1B355D9CC4E5F3F1E3CEA6673F1909030D2545B4D4ECFDFBF6DEBE4F2F1701
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset AGM_Gradient_Sep 1.0 0
%%Title: (AGM Gradient Procset)
%%Version: 1.0 0
%%CreationDate: (4/26/96) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /AGM_Gradient_Sep 5 dict dup begin put
/AGM_Gradient_Sep_private 100 dict def
/initialize{
	AGM_Gradient_Sep begin
	AGM_Gradient_Sep_private begin
	_compositeJob{
		initializeSinglePassSeps
	}{
		initializeMultiPassSeps
	}ifelse
	initializeSeps
	AGM_Gradient_private begin
		/_fillSD newSpotDict def
		/_rampSD newSpotDict def
		/_nCustomColorSD nd
 end
	AGM_Gradient_Sep_private 
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
	AGM_Gradient_Sep
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
 end
	
	currentdict readonly pop	
 end
}def
/terminate{
	currentdict AGM_Gradient_Sep eq{
	 end
	}if
}def
 
AGM_Gradient_Sep_private begin
/initializeSeps{
	_noImage not _level2PS not and{
		/_whiteBytes 1 makeByte8 pt
		/knockOut{
			8 setImageParms _whiteBytes /_image load 5 execImage
		}def
		/linealFill{
			mySave
			8 setImageParms
			_color{
				_nCustomColorSD begin
					cyan magenta yellow black
					_spotColor{
						spot1 begin
							/tintImage tintValue 1 exch sub makeByte8 def
					 end
						spot2 begin
							/tintImage tintValue 1 exch sub makeByte8 def
					 end
					}if
			 end
				4{
					makeByte8 4 1 roll
				}repeat
				true 4 _nCustomColorSD ncolorimage
			}{
				_nCustomColorSD/black get 1 exch sub makeByte8 
				_nCustomColorSD bwImage
			}ifelse
			myRestore
		}def
	}{
		 /knockOut{
			gsave
			false setoverprint
			1 setgray 
			0 0 1 1 rectfill
			grestore
		}def
	}ifelse
	/newSpotDict{
		11 dict dup begin
			/nSpots 2 def
			/spot1 7 dict def
			/spot2 7 dict def
	 end
	}def
	/initSpotData
	{
	 begin
			/name nd
			/tintImage nd
			/tintValue nd
			/spot_C nd
			/spot_M nd
			/spot_Y nd
			/spot_K nd
	 end
	}def
	/initSpotDict{
	 begin
			/cyanInk false def
			/magentaInk false def
			/yellowInk false def
			/blackInk false def
			/cyan nd
			/magenta nd
			/yellow nd
			/black nd
			spot1 initSpotData
			spot2 initSpotData
	 end
	}def
	/copySpotDict{
		/_dst xp
	 begin
			cyanInk magentaInk yellowInk blackInk
			cyan magenta yellow black
			spot1 spot2
	 end
		_dst begin
			/spot1 spot1 maxlength dict def
			/spot2 spot2 maxlength dict def
			spot2 copy pop
			spot1 copy pop
			/black xd
			/yellow xd
			/magenta xd
			/cyan xd
			/blackInk xd
			/yellowInk xd
			/magentaInk xd
			/cyanInk xd
	 end
	}def
	/setCustomColor
	{
		1 index /Black eq{
			6 1 roll 5 npop
			1 exch sub
			setgray
		}{
			6 1 roll _ccAry1 astore exch
			dup null eq{
				pop 0
			}if
			setcustomcolor
		}ifelse
	}def
	/setCStop{
		/_colorStyle exch pt
		
		_colorStyle 0 eq{
			0 0 0
			4 -1 roll
			1 exch sub
			_spotColor{
				/_colorStyle 3 pt
				/Black
				1 index
				1 exch sub
			}if
		}if
		_colorStyle 2 eq{
			3 npop
		}if
		_rampSD _fillSD copySpotDict
		
		_colorStyle 4 eq{ 
			pop
			9 2 roll 3 npop 6 -2 roll
		} if
		
		_colorStyle 3 eq _colorStyle 4 eq or{
				
			_fillSD begin
				exch
				dup spot1/name get eq{
					spot1 spot2
				}{
					spot2 spot1
				}ifelse
			 begin
				 begin
						/name xd
						1 exch sub /tintValue xd
						4{
							tintValue mul 4 1 roll
						}repeat
						_spotColor not{
							/tintValue null def
						}if
				 end
					/tintValue 0 def
			 end
		 end
		}if
		_fillSD nsetcustomcolor
	}def
	/renderCMYK{
		spot1/name get null eq
		spot2/name get null eq and
		dup not{
			pop
			spot1 spotConverted
		}if
		dup not{
			pop
			spot2 spotConverted
		}if
	}def
	/fill_ /fill load def
	/fillOvp{
		currentoverprint{
			_inRipSep{
				currentcolorspace 0 get
				dup /DeviceGray eq
				1 index /DeviceCMYK eq or{
					pop
					currentcmykcolor add add add 0 eq{
						newpath
					}if
				}{
					/Separation eq{
						currentcolor 0 eq{
							newpath
						}if
					}if
				}ifelse
			}{
				currentgray 1 eq{
					newpath
				}if
			}ifelse
		}if
		fill_
	}def
	/fill{
		_nCustomColorSD begin
			renderCMYK
			{
				fillOvp
			}{
				spot1 begin
					gsave
					name null ne{
						spot_C spot_M spot_Y spot_K name tintValue setCustomColor
					}{
						1 setgray
					}ifelse
					fillOvp 
					grestore
			 end
				spot2 begin
					name null ne{
						gsave
						true setoverprint
						spot_C spot_M spot_Y spot_K name tintValue setCustomColor
						fillOvp
						grestore
					}if
			 end
				newpath
			}ifelse
	 end
	}def
	/expandSpot{
		_spotColor{
			/_len xp
			_rampSD begin
				spot1 begin
					tintImage null ne{
						tintImage _len expandOne /tintImage xd
					}if
			 end
				spot2 begin
					tintImage null ne{
						tintImage _len expandOne /tintImage xd
					}if
			 end
		 end
		}{
			pop
		}ifelse
	}def
	/rampImage{
		_rampSD begin
			_color{
				/cyanInk _cyanData 0 ne def
				/magentaInk _magentaData 0 ne def
				/yellowInk _yellowData 0 ne def
				/blackInk _blackData 0 ne def
				_nSamples setImageParms
				_nSamples expandSpot
				_cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
				true 4 _rampSD ncolorimage
			}{
				/cyanInk false def
				/magentaInk false def
				/yellowInk false def
				/blackInk true def
				_nSamples setImageParms 
				_blackData _rampSD bwImage
			}ifelse
	 end
	}def
	/nsetcustomcolor where{
		pop
	}{
		/nsetcustomcolor
		{
			/_nCustomColorSD xp
			_nCustomColorSD begin
				4 copy
				/black xd
				/yellow xd
				/magenta xd
				/cyan xd
				4 copy
				0 ne /blackInk xd
				0 ne /yellowInk xd
				0 ne /magentaInk xd
				0 ne /cyanInk xd
		 end
			setcmykcolor
		}def
	}ifelse
	/nsetcustomcolorend where{
		pop
	}{
		/nsetcustomcolorend
		{
			/_nCustomColorSD null pt
		}def
	}ifelse
}def
/initializeSinglePassSeps{
	/_decodeNorm	[0 1] pt
	/_decodeInvert 	[1 0] pt
	/spotConverted
	{
	 begin
			name null eq{
				false
			}{
				tintValue null eq tintImage null eq and{
					true
				}{
					false
					currentpagedevice/SeparationOrder get{name eq or}forall
					not
				}ifelse
			}ifelse
	 end
	}def
	/dictImage
	{
		20 dict dup begin
			/Dict xd
			/Decode xd
			/DataSource xd
			/ImageMatrix xd
			/BitsPerComponent xd
			/Height xd
			/Width xd
			/ImageType 1 def
			Dict
	 end
		/_image load 1 execImage
	}def
	/bwImage{
	 begin
			gsave
			currentoverprint{
				blackInk{
					[/Separation /Black /DeviceGray{}] setcolorspace
					_decodeInvert dictImage
				}{
					5 npop
				}ifelse
			}{
				/DeviceGray setcolorspace
				_decodeNorm dictImage
			}ifelse
			grestore
	 end
	}def
	/ncolorimage where{
		pop
	}{
		/ncolorimage{
		 begin
				renderCMYK
				{
					cyanInk 
					magentaInk and
					yellowInk and
					blackInk and
					not
					currentoverprint 
					and
					{
						pop pop
						gsave
						cyanInk{
							8 copy
							[/Separation /Cyan /DeviceGray{}] setcolorspace
							3 npop
							_decodeNorm dictImage
						}if
						magentaInk{
							8 copy
							[/Separation /Magenta /DeviceGray{}] setcolorspace
							4 -1 roll
							3 npop
							_decodeNorm dictImage
						}if
						yellowInk{
							8 copy
							[/Separation /Yellow /DeviceGray{}] setcolorspace
							4 -2 roll
							3 npop
							_decodeNorm dictImage
						}if
						blackInk{
							4 -3 roll
							[/Separation /Black /DeviceGray{}] setcolorspace
							3 npop
							_decodeNorm dictImage
						}{
							8 npop
						}ifelse
						grestore
					}{
						/_colorimage load 10 execImage
					}ifelse
				}{
					6 npop
					gsave
					spot1 begin
						name null ne tintImage null ne and{
							[/Separation name /DeviceGray{}] setcolorspace
							4 copy
							tintImage 
							name /Black eq{
								_decodeNorm
							}{
								_decodeInvert
							}ifelse 
							dictImage
						}{
							1 setgray fill
						}ifelse
				 end
					spot2 begin
						true setoverprint
						name null ne tintImage null ne and{
							[/Separation name /DeviceGray{}] setcolorspace
							tintImage 
							name /Black eq{
								_decodeNorm
							}{
								_decodeInvert
							}ifelse 
							dictImage
						}{
							4 npop
							1 setgray fill
						}ifelse
				 end
					grestore
				}ifelse
		 end
		}def
	}ifelse
}def
/initializeMultiPassSeps{
	/_isCMYKSep
		_cyanPlate _magentaPlate or _yellowPlate or _blackPlate or
	pt
	/invertXfer{
		[
		{
			1 exch sub
		}/exec load systemdict /currenttransfer get exec /exec load
		] cvx systemdict /settransfer get exec
	}def
	/ccThrough{
		gsave
		1 setCustomColor
		currentcmykcolor
		grestore
		add add add 0 ne
	}def
	/spotConverted
	{
	 begin
			_isCMYKSep not{
				false
			}{
				name null eq{
					false
				}{
					tintValue null eq tintImage null eq and{
						true
					}{
						spot_C spot_M spot_Y spot_K name ccThrough
					}ifelse
				}ifelse
			}ifelse
	 end
	}def
	/spotChannel
	{
		_isCMYKSep{
			pop false
		}{
		 begin
				name null eq{
					false
				}{
					spot_C spot_M spot_Y spot_K name ccThrough 
				}ifelse
		 end
		}ifelse
	}def
	/getChannelData
	{
		_isCMYKSep dup{
			pop renderCMYK
		}if
		{
			_blackPlate{
				4 1 roll 3 npop blackInk
			}{
				_yellowPlate{
					4 2 roll 3 npop yellowInk
				}{
					_magentaPlate{
						4 3 roll 3 npop magentaInk
					}{
						3 npop cyanInk
					}ifelse
				}ifelse
			}ifelse
			{
				true /nonZeroData
			}{
				true /zeroData
			}ifelse
		}{
			4 npop
			spot1/name get null ne 
			spot1 spotChannel and{
				spot1/tintImage get dup null ne{
					false /nonZeroData
				}{
					pop false /noData
				}ifelse
			}{
				spot2/name get null ne 
				spot2 spotChannel and{
					spot2/tintImage get dup null ne{
						false /nonZeroData
					}{
						pop false /noData
					}ifelse
				}{
					false /noData
				}ifelse
			}ifelse
		}ifelse
	}def
	/renderChannelData
	{
		/_tmp xp
		_tmp /nonZeroData ne currentoverprint and{
			pop
			_tmp /zeroData eq{pop}if
			4 npop
		}{
			_tmp /nonZeroData eq{
				{
					invertXfer
				}if
					systemdict/image
				get 5 execImage
			}{
				pop
				_tmp /zeroData eq{pop}if
				4 npop
				knockOut
			}ifelse
		}ifelse
	}def
	/bwImage{
	 begin
			gsave
			dup dup dup
			getChannelData
			exch pop false exch
			renderChannelData
			grestore
	 end
	}def
	/ncolorimage{
	 begin
			pop pop
			gsave
			spot2/name get null ne spot2 spotChannel and{
				true setoverprint
			}if
			getChannelData 
			renderChannelData
			grestore
	 end
	}def
}def
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset AGM_Gradient 1.0 0
%%Title: (AGM Gradient Procset)
%%Version: 1.0 0
%%CreationDate: (4/26/96) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /AGM_Gradient 20 dict dup begin put
/AGM_Gradient_private 200 dict def
/initialize
{
	AGM_Gradient begin
	AGM_Gradient_private begin
	initializeVars
	
	/bd systemdict/mark get def
	/ed
		_level2PS 
		{
			(>>)
		}{
			(counttomark 2 idiv dup dict begin {def} repeat pop currentdict end)
		} ifelse
	cvx def
	
	_level2PS{
		initializeLev2
	}{
		initializeLev1
	}ifelse
	
	queryDevice
	
	initializeShading
	initializeOps
	_producingSeps{
		AGM_Gradient_Sep/initialize get exec
	}{
		initializeComposite
	}ifelse
	_illustrator{
		/f{}def
		/F{}def
		/s{}def
		/S{}def
		/b{}def
		/B{}def
	}if
	/image where{
		/image get /_image xd
	}if
	/colorimage where{
		/colorimage get /_colorimage xd
	}if
	/rectfill where dup{
		exch pop not _producingSeps or
	}{
		not
	}ifelse
	{
		/rectfill{
			gsave
			newpath
			4 2 roll moveto
			1 index 0 rlineto
			0 1 index rlineto
			1 index neg 0 rlineto
			pop pop
			closepath
			fill
			grestore
		}def
	}if
	/linealImage _noImage{
		/rectImage load
	}{
		_producingSeps{
			AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
			/rampImage load
		 end
		}{
			/rampImage load
		}ifelse
	}ifelse
	def
	AGM_Gradient_private
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
	AGM_Gradient
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
 end
	
	currentdict readonly pop
 end
}def
/initializeAI
{
	pop pop 
	AGM_Gradient/AGM_Gradient_private get /_illustrator true put
	AGM_Gradient/initialize get exec
		AGM_Gradient begin
}def
/unload{
	systemdict/languagelevel known{
		systemdict/languagelevel get 2 ge{
			userdict/AGM_Gradient_Sep 2 copy known{
				undef
			}{
				pop pop
			}ifelse
			userdict/AGM_Gradient 2 copy known{
				undef
			}{
				pop pop
			}ifelse
		}if
	}if
}def
/terminate{
	currentdict AGM_Gradient eq{
	 end
	}if
}def
 
AGM_Gradient_private begin
/initializeVars{
	/_d255 256 array def
	0 1 255{
		_d255 exch dup 255 div put
	}bind for
	/_d255- 256 array def
	0 1 255{
		_d255- exch 1 _d255 2 index get sub put
	}bind for
	/_sSave nd
	/_dUserSpace matrix defaultmatrix def
	/_bUMatrix matrix def
	/_imageMatrix matrix def
	/_saveMatrix matrix def
	/_xm matrix def
	/_ccAry1 5 array def
	/_level2PS 
		systemdict/languagelevel known dup{
			pop systemdict/languagelevel get 2 ge
		}if
	def
	/_level3PS
		_level2PS systemdict/shfill known and
	def
	currentdict /_illustrator known not{
		/_illustrator false def
	}if
	
}def
/initializeOps
{
	AGM_Gradient begin
	currentdict/Bc known not{
		/Bc{
		
			_renderFlag 2 eq{
				6 npop
			}{
				pushBSpace
				_rampIndex 0 eq{
					pop pop
					setCStop
				}if
				linealFill
				popBSpace
			}ifelse
		
		}def
	}if
	
	currentdict/Bg known not{
		/Bg{
			10 npop
			/_gradName xp
			/_renderFlag xp
		
			_renderFlag 2 ne{
		
				_illustrator{
					_of setoverprint
				}if
		
				_illustrator _eo and _renderFlag 3 eq or{
					eoclip
				}{
					clip
				}ifelse
		
				_gradNames _gradName 2 copy known{
					get
					mark exch aload pop
					/_gradType xp
					1 sub dup /_rampIndex xp
					/_maxRampIndex xp
					mark exch aload pop
					0 0
				}if
				pop pop
				getRampData
			}{
				mark mark
			}ifelse
		}def
	}if
	
	currentdict/Bm known not{
		/Bm{
			_renderFlag 2 ne{
				_gradType 0 eq{
					linealRamp
				}{
					radialGrad
				}ifelse
			}{
				6 npop
			}ifelse
		}def
	}if
	
	currentdict/Bh known not{
		/Bh{
			2 npop
			/_yHi xp
			/_xHi xp
			/_radHilite _xHi 0 ne _yHi 0 ne or pt
		}def
	}if
	
	currentdict/Bn known not{
		/Bn{
			AGM_Gradient_private begin
				dict /_gradNames xp
		 end
		}def
	}if
	
	currentdict/Bd known not{
		/Bd{
			AGM_Gradient begin
			AGM_Gradient_private begin
				/_nColorsBd xp
				/_gradType xp
				/_gradName xp
		}def
	}if
	
	currentdict/BD known not{
		/BD{
				currentdict/_gradNames known not{
					/_gradNames 20 dict def
				}if
				] _nColorsBd _gradType
				]  _gradName exch /_gradNames xput
		 end
		 end
		}def
	}if
	
	currentdict/Bb known not{
		/Bb{
		
			AGM_Gradient begin
			AGM_Gradient_private begin
			_producingSeps{
				AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
			}if
			mySave
		}def
	}if
	
	currentdict/BB known not{
		/BB{
		
			/_tmp xp
			cleartomark cleartomark
		
			_tmp dup
			_renderFlag
		
			myRestore
		
			_producingSeps{
			 end
			}if
		
			_illustrator
		 end
		 end
		
			{
				2 ne exch 0 gt and{
					2 eq{
						s
					}{
						S
					}ifelse
				}{
					pop newpath
				}ifelse
			}{
				pop newpath
			}ifelse
		
		
		}def
	}if
	
	currentdict/Xm known not{
		/Xm{
			_xm astore pop
		}def
	}if
	
 end
}def
/queryDevice{
	/_inRipSep
		_level2PS{
			currentpagedevice/Separations 2 copy known{
				get
			}{
				pop pop false
			}ifelse
		}{
			false
		}ifelse
	def
	/_noImage /lv1Fix where{
		pop lv1Fix
	}{
		false
	}ifelse
	def
	/_useShells where{
		pop
	}{
		/_useShells true def
	}ifelse
	
	/_useSmoothShade where{
		pop
	}{
		/_useSmoothShade false def 
	}ifelse
	/_cyanPlate 1 0 0 0 testCMYKColorThrough def
	/_magentaPlate 0 1 0 0 testCMYKColorThrough def
	/_yellowPlate 0 0 1 0 testCMYKColorThrough def
	/_blackPlate 0 0 0 1 testCMYKColorThrough def
	/_compositeJob
		_cyanPlate _magentaPlate and _yellowPlate and _blackPlate and
	def
	/_compositeSpotDevice where{
		pop
	}{
		/_compositeSpotDevice _compositeJob not _inRipSep or{
			1
		}{
			0
		}ifelse
		def
	}ifelse
	/_producingSeps _compositeSpotDevice 0 ne def
	/_deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt def
	/_dpiThreshold where{
		pop
	}{
		/_dpiThreshold 600 def
	}ifelse
	/_screenFreqThreshold where{
		pop
	}{
		/_screenFreqThreshold 150 def
	}ifelse
	/_contoneDevice where{
		pop
	}{
		/_contoneDevice false def
	}ifelse
	/_subSampleOK 
		_deviceDPI _dpiThreshold le 
		currentScreenFreq _screenFreqThreshold le and 
		_contoneDevice not and 
		_producingSeps not and
	def
}def
/initializeLev1{
	/makeByte8{
		/_tmp 0 pt
		255 mul cvi
		8 string 8{
			dup _tmp 3 index put 
			/_tmp _tmp 1 add pt
		}repeat
		exch pop
	}def
	/currentScreenFreq{
		currentscreen pop pop
	}def
	/_byte 1 string def
	/colorimage where{
		pop
	}{
		/colorimage{
			pop pop
			/_blackTmp xp
			/_yellowTmp xp
			/_magentaTmp xp
			/_cyanTmp xp
			/_cnt 0 pt
			[
			_byte dup 0
			_cyanTmp 
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .3 /mul cvx
			_magentaTmp
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .59 /mul cvx
			_yellowTmp
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .11 /mul cvx
			_blackTmp 
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx
			/add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
			/dup cvx 0 /lt cvx{
				pop 0
			}/if cvx
			/dup cvx 1 /gt cvx{
				pop 1
			}/if cvx
			255 /mul cvx /cvi cvx
			256 /mod cvx
			/dup cvx 0 /lt cvx{
				pop 0
			}/if cvx
			/put cvx
			/_cnt dup cvx 1 /add cvx /pt cvx
			] cvx
			bind
			/_image load 5 execImage
		}def
	}ifelse
}def
/initializeLev2{
	/level2ScreenFreq{
	 begin
		60
		HalftoneType 1 eq{
			pop Frequency
		}if
		HalftoneType 2 eq{
			pop GrayFrequency
		}if
		HalftoneType 5 eq{
			pop Default level2ScreenFreq
		}if
		 end
	}def
	/currentScreenFreq{
		currenthalftone level2ScreenFreq
	}def
}def
/initializeShading{
	_useSmoothShade _level3PS and{
		/_usingSmoothShade true pt
		initializeLev3_Ops
	}{
		/_usingSmoothShade false pt
	}ifelse
}def
/initializeLev3_Ops
{
	/initShFill{
		/_index _gradType 0 eq {0}{_maxRampIndex 1 sub} ifelse pt
		/_rampFuncsArray _maxRampIndex array pt
		/_boundsArray _maxRampIndex 1 sub array pt
		/_encodeArray _maxRampIndex 2 mul array pt
		/_beginCoord _rampPoint pt
		/_colorSpace null pt
		/_firstFill _rampIndex _maxRampIndex eq pt
		/_lastFill false pt
	}def
	/getRampColorSpace{
		_nSamples 1 gt{ 
			/_ndx 0 pt
			[blendColor] cvx exec
		}if
		/_C0 [currentcolor] pt
		/_C0_Space currentcolorspace pt
		
		_nSamples 1 gt{ 
			/_ndx _nSamples 1 sub pt
			[blendColor] cvx exec
		}if
		/_C1 [currentcolor] pt
		/_C1_Space currentcolorspace pt
		
		_C0_Space _C1_Space eq{
			/_rampColorSpace _C0_Space pt
		}{
			(colorspace conflict!) ==
			showpage
			stop
		}ifelse
		
		_spotColor{
			nsetcustomcolorend
		}if
	}def
	/linealShFill{
		popBSpace
		_xm aload pop pushBSpace
		
		/_size _index 1 add pt
		_size _maxRampIndex lt {
			/_rampFuncsArray _rampFuncsArray 0 _size getinterval pt
			/_boundsArray _boundsArray 0 _size 1 sub getinterval pt
			/_encodeArray _encodeArray 0 _size 2 mul getinterval pt
		}if
		
		bd
			/ShadingType 2
			/ColorSpace _colorSpace
			/Function 
				bd
					/FunctionType 3
					/Domain [0 1]
					/Functions _rampFuncsArray
					/Bounds _boundsArray
					/Encode _encodeArray
				ed
			/Extend [_firstFill _lastFill]
			/Domain [0 1] 
			/Coords [_beginCoord 0 _endCoord 0]
		ed
		shfill
	}def
	
	/radialShFill{
		/_size _maxRampIndex _index sub pt
		_size _maxRampIndex lt {
			/_rampFuncsArray _rampFuncsArray _index _size getinterval pt
			/_boundsArray _boundsArray _index _size 1 sub getinterval pt
			/_encodeArray _encodeArray _index 2 mul _size 2 mul getinterval pt
		}if
		
		/_rampLen _beginCoord _endCoord sub pt
		bd
			/ShadingType 3
			/ColorSpace _colorSpace
			/Function 
				bd
					/FunctionType 3
					/Domain [0 1]
					/Functions _rampFuncsArray
					/Bounds _boundsArray
					/Encode _encodeArray
				ed
			/Extend [_lastFill _firstFill]
			/Domain [0 1] 
			/Coords [_xHi _rampLen mul _yHi _rampLen mul _endCoord 0 0 _beginCoord] 
		ed
		shfill
		
		_radHilite{
			_xHi _rampLen mul _yHi _rampLen mul translate
		}if
	}def
	
	/fillRamp{ 
	
	
		/_invert _midPoint 0.5 lt pt
		_rampIndex _maxRampIndex eq {
			initShFill
		}if
		
		getRampColorSpace
		
		_colorSpace null eq{
			/_colorSpace _rampColorSpace pt
		}{
			_colorSpace _rampColorSpace ne{
				/_index _index 1 
				_gradType 0 eq{
					sub pt
					linealShFill
				}{
					add pt
					radialShFill
				}ifelse
				initShFill
				/_colorSpace _rampColorSpace pt
			} if
		}ifelse
		/_endCoord _endPoint pt	
		_rampFuncsArray _index
		bd
			/FunctionType 2
			/Domain [0 1]
			/N 0.5 log _invert{1 _midPoint sub}{_midPoint}ifelse log div
			_gradType 0 eq{
				_invert{/C1}{/C0}ifelse _C0
				_invert{/C0}{/C1}ifelse _C1
			}{
				_invert{/C0}{/C1}ifelse _C1
				_invert{/C1}{/C0}ifelse _C0
			}ifelse
		ed
		put
		
		_rampIndex 1 ne{
			_boundsArray _index _gradType 1 eq{1 sub}if _endCoord put
		} if
		
		0 1 _invert {exch}if
		_encodeArray _index 2 mul 1 add 3 -1 roll put
		_encodeArray _index 2 mul 3 -1 roll put
		_rampIndex 1 eq {
			/_lastFill true pt
			_gradType 0 eq{
				linealShFill
			}{
				radialShFill
			}ifelse
		}if
		/_index _index 1 
		_gradType 0 eq{
			add pt
		}{
			sub pt
		}ifelse
	}def
	
	/radialRamp
		/fillRamp load def
	
	/rampImage
		/fillRamp load def
	
	AGM_Gradient begin
	/Bc{
		6 npop
	}def
	
 end
	
	
}def
/initializeComposite{
	/bwImage{
		pop /_image load 5 execImage 
	}def
	currentdict/rampImage known not{
		/rampImage{
			_color{
				_nSamples setImageParms
	
				
				_rgbRamp{
					_redData _greenData _blueData _nSamples 3 expandColor
					true 3 null ncolorimage
				}{
					_cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
					true 4 null ncolorimage
				}ifelse
			}{
				_nSamples setImageParms _blackData null bwImage
			}ifelse
		}def
	}if
	/setCStop{
		/_colorStyle exch pt
		_colorStyle 0 eq{
			1 exch sub
			0 0 0
			4 -1 roll
		}if
		
		_colorStyle 2 eq{
			setrgbcolor 4 npop
		}if
		
		_colorStyle 3 eq{
			1 exch sub /_tmp xp
			pop
			4{
				_tmp mul 4 1 roll
			}repeat
		}if
		
		_colorStyle 4 eq{
			3 -1 roll pop pop
			1 exch sub /_tmp xp
			3{
				1 exch sub _tmp mul 1 exch sub 3 1 roll
			}repeat
			setrgbcolor 
			4 npop
		}if
		_colorStyle 2 ne _colorStyle 4 ne and{
			null nsetcustomcolor
		}if
	}def
	/nsetcustomcolor
	{
		pop setcmykcolor
	}def
	/nsetcustomcolorend
	{
	}def
	/ncolorimage{
		pop 
		/_colorimage load 10 execImage
	}def
	_noImage not _level2PS not and{
		/linealFill{
			8 setImageParms
			_color{
				currentcmykcolor
				4{
					makeByte8 4 1 roll
				}repeat
				true 4 null ncolorimage
			}{
				currentgray makeByte8 null bwImage
			}ifelse
		}def
	}if
}def
/npop{
	{pop}repeat
}def
/xd{
	exch def
}def
/nd{
	null def
}def
/pt{
	AGM_Gradient_private 3 1 roll put
}def
/xp{
	exch pt
}def
/xput{
	dup load dup length exch maxlength eq{
		dup dup load dup
		length 2 mul dict copy def
	}if
	load begin
		def
  end
}def
/mySave{
	save /_sSave xp
}def
/myRestore{
	_sSave type /savetype eq{
		_sSave restore
	}if
}def
/gMark{
	counttomark 2 add -1 roll
}def
/execImage{
	/_tmp xp
	{
		exec
	}stopped{
		$error /errorname get /undefinedresult ne{
			stop
		}{
			_tmp npop
		}ifelse
	}if
}def
/pushBSpace{
	newpath gsave
	_bUMatrix astore concat 
}def
/popBSpace{
	grestore
}def
/setImageParms{
	1 8 2 index 0 0 1 0 0 _imageMatrix astore
}def
/linealFill{
	0 0 1 1 rectfill
}def
/testCMYKColorThrough{
	gsave
	setcmykcolor currentcmykcolor
	grestore
	add add add 0 ne
}def
/expandOne	{
	/_tmp xp
	dup type /stringtype ne{
		_tmp string
		exch
		dup 0 ne{
			255 mul cvi
			0 1 _tmp 1 sub{
				3 copy
				exch put pop
			}for
		}if
		pop
	}if
}def
/expandColor{
	/_channels xp
	/_len xp
	_channels{
		_len expandOne _channels 1 roll
	}repeat
}def
/blendColor{
	
	_color{
		_rgbRamp _producingSeps not and{
			_redData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_greenData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_blueData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			/setrgbcolor cvx
		}{
			_cyanData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_magentaData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_yellowData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_blackData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
	
			_spotColor{
				_rampSD begin
					/_rampSD cvx /begin cvx
	
					spot1 begin
						tintImage dup type /stringtype eq{
							/_ndx cvx /get cvx _d255- /exch cvx /get cvx
						}{
							dup null ne{
								name type /nametype ne{
									1 exch sub
								}if
							}if
						}ifelse
				 end
					/spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
	
					spot2 begin
						tintImage dup type /stringtype eq{
							/_ndx cvx /get cvx _d255- /exch cvx /get cvx
						}{
							dup null ne{
								name type /nametype ne{
									1 exch sub
								}if
							}if
						}ifelse
				 end
					/spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
					/end cvx
			 end
				/_rampSD cvx
				/nsetcustomcolor cvx
			}{
				/setcmykcolor cvx
			}ifelse
		}ifelse
	}{
		_blackData /_ndx cvx /get cvx
		_d255 /exch cvx /get cvx
		
		_usingSmoothShade{
			1 /exch cvx /sub cvx 0 0 0 4 -1 /roll cvx /setcmykcolor cvx
		}{
			 /setgray cvx
		}ifelse
	}ifelse
}def
/linealRamp{
	pushBSpace
	_ramp{
		linealImage
	}{
		linealFill
	}ifelse
	popBSpace
	/_rampIndex _rampIndex 1 sub pt
	_rampIndex 0 gt{
		getRampData
	}if
}def
/radialGrad{
	/_firstShell true pt
	_usingSmoothShade not{
		fill
	}if
	pushBSpace
	
	_radHilite{
		_xHi _yHi _bUMatrix idtransform /_yHi xp /_xHi xp
		_rampPoint 1 lt{
			1 _rampPoint sub dup _xHi mul exch _yHi mul translate
		}if
	}if
	_rampIndex{
			radialRamp
		/_rampIndex _rampIndex 1 sub pt
		_rampIndex 0 gt{
			getRampData
		}if
	}repeat
	
	popBSpace
	
}def
/getNSamples{
	0 exch
	{
		dup type /stringtype eq{
			length exch pop exit
		}if
		pop
	}forall
	dup 0 eq{
		pop 1
	}if
}def
/getRampData{
	/_rampType gMark pt
	/_color _rampType 0 gt pt
	/_ccRGB _rampType 5 eq _rampType 6 eq or pt
	/_rgbRamp _rampType 4 eq _ccRGB or pt
	/_ccProcess _rampType 2 eq _rampType 3 eq or pt
	_producingSeps{
		_rampSD initSpotDict
		/_spotColor _ccProcess _ccRGB or pt
	}{
		/_spotColor false pt
	}ifelse
	/_ramp true pt
	100 div /_rampPoint xp
	100 div /_midPoint xp
	
	dup /_colorStyle xp
	_colorStyle 0 eq{ 
		2
	}{
		_colorStyle 1 eq{ 
			5
		}{
			_colorStyle 2 eq{
				8
			}{
				_colorStyle 3 eq{
					_producingSeps{
						_rampSD begin
							spot1 begin
								/name 3 index def
								/spot_K 4 index def
								/spot_Y 5 index def
								/spot_M 6 index def
								/spot_C 7 index def
						 end
					 end
					}if
					7
				}{
					_producingSeps{
						_rampSD begin
							spot1 begin
								/name 4 index def
								/spot_K 8 index def
								/spot_Y 9 index def
								/spot_M 10 index def
								/spot_C 11 index def
						 end
					 end
					}if
					11
				} ifelse
			}ifelse
		}ifelse
	}ifelse
	/_tmp xp
	_tmp index 100 div /_endPoint xp
	
	_gradType 1 eq{
		_tmp 1 add index 100 div /_midPoint xp
	}if
	
	_producingSeps{
		_tmp 2 add index /_nextColorStyle xp
		_nextColorStyle 3 eq{
			/_tmp _tmp 4 add pt
			_tmp index dup
			_rampSD begin
				spot1 /name get ne{
					spot2 begin
						/name xd
						/spot_K _tmp 2 add index def
						/spot_Y _tmp 3 add index def
						/spot_M _tmp 4 add index def
						/spot_C _tmp 5 add index def
				 end
				}{
					pop
				}ifelse
		 end
		}if
		_nextColorStyle 4 eq{
			/_tmp _tmp 5 add pt
			_tmp index dup
			_rampSD begin
				spot1 /name get ne{
					spot2 begin
						/name xd
						/spot_K _tmp 5 add index def
						/spot_Y _tmp 6 add index def
						/spot_M _tmp 7 add index def
						/spot_C _tmp 8 add index def
				 end
				}{
					pop
				}ifelse
		 end
		}if
	}if
	_rampType 3 eq _rampType 6 eq or{
		/_tint2Data gMark pt
	}if
	_ccProcess _ccRGB or{
		/_tint1Data gMark pt
	}if
	_rgbRamp{
		/_blueData gMark pt
		/_greenData gMark pt
		/_redData gMark pt
	}if
	
	_producingSeps{
		_rampSD begin
			_ccProcess _ccRGB or{
				_rampType 3 eq _rampType 6 eq or{
					spot2 begin
						/tintImage _gradType 0 eq{
							_tint2Data
						}{
							_tint1Data
						}ifelse
						def
						name null eq{
							/name /Black def
						}if
				 end
				}if
				spot1 begin
					/tintImage _gradType 0 eq _rampType 2 eq or _rampType 5 eq or{
						_tint1Data
					}{
						_tint2Data
					}ifelse
					def
					_rampType 2 eq _rampType 5 eq or{
						name null eq{
							/name spot2 /name get def
							spot2 /name null put
						}if
					}{
						name null eq{
							/name /Black def
						}if
					}ifelse
			 end
			}if
	 end
	}if
	/_blackData gMark pt
	_rampType 0 gt{
		counttomark 4 add -3 roll
		/_yellowData xp
		/_magentaData xp
		/_cyanData xp
	}if
	_ramp{
		/_nSamples
			[
			_rampType 0 eq {_blackData}if
			_rampType 1 eq {_cyanData _magentaData _yellowData _blackData}if
			_rampType 2 eq {_cyanData _magentaData _yellowData _blackData _tint1Data}if
			_rampType 3 eq {_cyanData _magentaData _yellowData _blackData _tint1Data _tint2Data}if
			_rampType 4 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData}if
			_rampType 5 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data}if
			_rampType 6 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data _tint2Data}if
			] getNSamples pt
		_usingSmoothShade not {/_ramp _nSamples 1 gt pt} if
	} if
	
	setCStop
}def
/rectImage{
	gsave
	/_sInc 1 pt
	/_bInc 1 _nSamples div pt
	/_uRampLen 1 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt pt
	/_pChange _uRampLen 0 eq{0}{_nSamples _uRampLen div}ifelse pt
	0
	_nSamples
	[
	/dup cvx
	/_ndx /exch cvx /pt cvx
	blendColor
	0 0 _bInc 1 /rectfill cvx
	_bInc 0 /translate cvx
	_sInc /add cvx
	] cvx
	bind
	repeat
	pop
	_spotColor{
		nsetcustomcolorend
	}if
	grestore
}def
/radialInit{
	/_nRadSamples _nSamples dup 0 eq{pop 1}if pt
	/_sInc -1 pt
	/_rampLen _rampPoint _endPoint sub pt
	/_bInc _rampLen _nSamples div neg pt
	/_optimize false pt
	_subSampleOK{
		/_uRampLen
			_rampLen 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
			0 _rampLen dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
			2 copy lt{
				exch
			}if pop
		pt
		/_pChange 
			_uRampLen 0 eq{
				0
			}{
				_nSamples _uRampLen div
			}ifelse
		pt
		_pChange .5 gt dup /_optimize xp{
			/_nRadSamples _uRampLen 2 div round cvi dup 1 le{pop 2}if pt
			/_bInc _rampLen _nRadSamples div neg pt
			/_sInc _nSamples 1 sub _nRadSamples 1 sub div neg pt
		}if
	}if
	_radHilite{
		/_xBCInc _xHi _rampLen mul _nRadSamples div pt
		/_yBCInc _yHi _rampLen mul _nRadSamples div pt
	}if
}def
currentdict/radialRamp known not{
	/radialRamp{
	
		/_saveMatrix _saveMatrix currentmatrix def
		
		radialInit
	
		_rampPoint
	
		_nSamples 1 sub
	
		_nRadSamples 
		[
			/dup cvx
	
			_optimize{
				/round cvx /cvi cvx
			}if
	
			/_ndx /exch cvx /pt cvx
			
			_useShells{
				/_firstShell cvx{
					/_firstShell false pt
				}{
					0 0 3 index 360 0 arcn fill
				}/ifelse cvx
			}if
	
			blendColor
	
			_useShells{
				0 0 3 /index cvx 0 360 /arc cvx 
			}{
				0 0 3 /index cvx 0 360 /arc cvx /fill cvx
			}ifelse
	
			/exch cvx _bInc /add cvx /exch cvx
	
			_sInc /add cvx
	
			_radHilite{
				_xBCInc _yBCInc /translate cvx
			}if
		] cvx bind
		repeat
	
		pop pop
	
		_saveMatrix setmatrix
	
		_radHilite{
			_xHi _rampLen mul _yHi _rampLen mul translate
		}if
		
		_useShells _rampIndex 1 eq and{
			fill
		}if
		_spotColor{
			nsetcustomcolorend
		}if
	
		
	}def
}if
end
end
defaultpacking setpacking
%%EndResource
%%BeginProcSet: Adobe_ColorImage_AI6 1.1 0
userdict /Adobe_ColorImage_AI6 known not
{
	userdict /Adobe_ColorImage_AI6 24 dict put 
} if
userdict /Adobe_ColorImage_AI6 get begin
/initialize
{ 
	Adobe_ColorImage_AI6 begin
	Adobe_ColorImage_AI6
	{
		dup type /arraytype eq
		{
			dup xcheck
			{
				bind
			} if
		} if
		pop pop
	} forall
} def
/terminate { end } def
currentdict /Adobe_ColorImage_AI6_Vars known not
{
	/Adobe_ColorImage_AI6_Vars 15 dict def
} if
Adobe_ColorImage_AI6_Vars begin
	/channelcount 0 def
	/sourcecount 0 def
	/sourcearray 4 array def
	/plateindex -1 def
	/XIMask 0 def
	/XIBinary 0 def
	/XIChannelCount 0 def
	/XIBitsPerPixel 0 def
	/XIImageHeight 0 def
	/XIImageWidth 0 def
	/XIImageMatrix null def
	/XIBuffer null def
	/XIDataProc null def
	/XIVersion 6 def
end
/WalkRGBString null def
/WalkCMYKString null def
/StuffRGBIntoGrayString null def
/RGBToGrayImageProc null def
/StuffCMYKIntoGrayString null def
/CMYKToGrayImageProc null def
/ColorImageCompositeEmulator null def
/SeparateCMYKImageProc null def
/FourEqual null def
/TestPlateIndex null def
currentdict /_colorimage known not
{
	/colorimage where
	{
		/colorimage get /_colorimage exch def
	}
	{
		/_colorimage null def
	} ifelse
} if
/_currenttransfer systemdict /currenttransfer get def
/colorimage null def
/XI null def
/WalkRGBString
{
	0 3 index
	dup length 1 sub 0 3 3 -1 roll
	{
		3 getinterval { } forall
		5 index exec
		3 index
	} for
	
	 5 { pop } repeat
} def
/WalkCMYKString
{
	0 3 index
	dup length 1 sub 0 4 3 -1 roll
	{
		4 getinterval { } forall
		
		6 index exec
		
		3 index
		
	} for
	
	5 { pop } repeat
	
} def
/StuffRGBIntoGrayString
{
	.11 mul exch
	
	.59 mul add exch
	
	.3 mul add
	
	cvi 3 copy put
	
	pop 1 add
} def
/RGBToGrayImageProc
{	
	Adobe_ColorImage_AI6_Vars begin 
		sourcearray 0 get exec
		dup length 3 idiv string
		dup 3 1 roll 
		
		/StuffRGBIntoGrayString load exch
		WalkRGBString
 end
} def
/StuffCMYKIntoGrayString
{
	exch .11 mul add
	
	exch .59 mul add
	
	exch .3 mul add
	
	dup 255 gt { pop 255 } if
	
	255 exch sub cvi 3 copy put
	
	pop 1 add
} def
/CMYKToGrayImageProc
{	
	Adobe_ColorImage_AI6_Vars begin
		sourcearray 0 get exec
		dup length 4 idiv string
		dup 3 1 roll 
		
		/StuffCMYKIntoGrayString load exch
		WalkCMYKString
 end
} def
/ColorImageCompositeEmulator
{
	pop true eq
	{
		Adobe_ColorImage_AI6_Vars /sourcecount get 5 add { pop } repeat
	}
	{
		Adobe_ColorImage_AI6_Vars /channelcount get 1 ne
		{
			Adobe_ColorImage_AI6_Vars begin
				sourcearray 0 3 -1 roll put
			
				channelcount 3 eq 
				{ 
					/RGBToGrayImageProc 
				}
				{ 
					/CMYKToGrayImageProc
				} ifelse
				load
		 end
		} if
		image
	} ifelse
} def
/SeparateCMYKImageProc
{	
	Adobe_ColorImage_AI6_Vars begin
		sourcecount 0 ne
		{
			sourcearray plateindex get exec
		}
		{			
			sourcearray 0 get exec
			
			dup length 4 idiv string
			
			0 2 index
			
			plateindex 4 2 index length 1 sub
			{
				get 255 exch sub
				
				3 copy put pop 1 add
				
				2 index
			} for
			pop pop exch pop
		} ifelse
 end
} def
	
/FourEqual
{
	4 index ne
	{
		pop pop pop false
	}
	{
		4 index ne
		{
			pop pop false
		}
		{
			4 index ne
			{
				pop false
			}
			{
				4 index eq
			} ifelse
		} ifelse
	} ifelse
} def
/TestPlateIndex
{
	Adobe_ColorImage_AI6_Vars begin
		/plateindex -1 def
		/setcmykcolor where
		{
			pop
			gsave
			1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
			grestore
			1 0 0 0 FourEqual 
			{ 
				/plateindex 0 def
			}
			{
				0 1 0 0 FourEqual
				{ 
					/plateindex 1 def
				}
				{
					0 0 1 0 FourEqual
					{
						/plateindex 2 def
					}
					{
						0 0 0 1 FourEqual
						{ 
							/plateindex 3 def
						}
						{
							0 0 0 0 FourEqual
							{
								/plateindex 5 def
							} if
						} ifelse
					} ifelse
				} ifelse
			} ifelse
			pop pop pop pop
		} if
		plateindex
 end
} def
/colorimage
{
	Adobe_ColorImage_AI6_Vars begin
		/channelcount 1 index def
		/sourcecount 2 index 1 eq { channelcount 1 sub } { 0 } ifelse def
		4 sourcecount add index dup 
		8 eq exch 1 eq or not
 end
	
	{
		/_colorimage load null ne
		{
			_colorimage
		}
		{
			Adobe_ColorImage_AI6_Vars /sourcecount get
			7 add { pop } repeat
		} ifelse
	}
	{
		dup 3 eq
		TestPlateIndex
		dup -1 eq exch 5 eq or or
		{
			/_colorimage load null eq
			{
				ColorImageCompositeEmulator
			}
			{
				dup 1 eq
				{
					pop pop image
				}
				{
					Adobe_ColorImage_AI6_Vars /plateindex get 5 eq
					{
						gsave
						
						0 _currenttransfer exec
						1 _currenttransfer exec
						eq
						{ 0 _currenttransfer exec 0.5 lt }
						{ 0 _currenttransfer exec 1 _currenttransfer exec gt } ifelse
						
						{ { pop 0 } } { { pop 1 } } ifelse
						systemdict /settransfer get exec
					} if
					
					_colorimage
					
					Adobe_ColorImage_AI6_Vars /plateindex get 5 eq
					{
						grestore
					} if
				} ifelse
			} ifelse
		}
		{
			dup 1 eq
			{
				pop pop
				image
			}
			{
				pop pop
				Adobe_ColorImage_AI6_Vars begin
					sourcecount -1 0
					{			
						exch sourcearray 3 1 roll put
					} for
					/SeparateCMYKImageProc load
			 end
				systemdict /image get exec
			} ifelse
		} ifelse
	} ifelse
} def
/XG
{
	pop pop
} def
/XF
{
	13 {pop} repeat
} def
/Xh
{
	Adobe_ColorImage_AI6_Vars begin
		gsave
		/XIMask exch 0 ne def
		/XIImageHeight exch def
		/XIImageWidth exch def
		/XIImageMatrix exch def
		0 0 moveto
		XIImageMatrix concat
		XIImageWidth XIImageHeight scale
		
		XIMask
		{
			/_lp /null ddef
			_fc
			/_lp /imagemask ddef
		}
		if
		/XIVersion 7 def
 end
} def
/XH
{
	Adobe_ColorImage_AI6_Vars begin
		/XIVersion 6 def
		grestore
 end
} def
/XI
{
	Adobe_ColorImage_AI6_Vars begin
		gsave
		/XIMask exch 0 ne def
		/XIBinary exch 0 ne def
		pop
		pop
		/XIChannelCount exch def
		/XIBitsPerPixel exch def
		/XIImageHeight exch def
		/XIImageWidth exch def
		pop pop pop pop
		/XIImageMatrix exch def
		XIBitsPerPixel 1 eq
		{
			XIImageWidth 8 div ceiling cvi
		}
		{
			XIImageWidth XIChannelCount mul
		} ifelse
		/XIBuffer exch string def
		XIBinary
		{
			/XIDataProc { currentfile XIBuffer readstring pop } def
			XIVersion 6 le
			{
				currentfile 128 string readline pop pop
			}
			if
		}
		{
			/XIDataProc { currentfile XIBuffer readhexstring pop } def
		} ifelse
		
		XIVersion 6 le
		{
			0 0 moveto
			XIImageMatrix concat
			XIImageWidth XIImageHeight scale
			XIMask
			{
				/_lp /null ddef
				_fc
				/_lp /imagemask ddef
			} if
		} if
		
		XIMask
		{
			XIImageWidth XIImageHeight
			false
			[ XIImageWidth 0 0 XIImageHeight neg 0 0 ]
			/XIDataProc load
			imagemask
		}
		{
			XIImageWidth XIImageHeight
			XIBitsPerPixel
			[ XIImageWidth 0 0 XIImageHeight neg 0 0 ]
			/XIDataProc load
			
			XIChannelCount 1 eq
			{
				gsave
				0 setgray
				image
				grestore
			}
			{
				false
				XIChannelCount
				colorimage
			} ifelse
		} ifelse
		grestore
 end
} def
end
%%EndProcSet
%%BeginResource: procset Adobe_Illustrator_AI5 1.1 0
%%Title: (Adobe Illustrator (R) Version 5.0 Full Prolog)
%%Version: 1.1 0
%%CreationDate: (3/7/1994) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_Illustrator_AI5_vars 81 dict dup begin
put
/_eo false def
/_lp /none def
/_pf
{
} def
/_ps
{
} def
/_psf
{
} def
/_pss
{
} def
/_pjsf
{
} def
/_pjss
{
} def
/_pola 0 def
/_doClip 0 def
/cf currentflat def
/_tm matrix def
/_renderStart
[
/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
] def
/_renderEnd
[
null null null null /i1 /i1 /i1 /i1
] def
/_render -1 def
/_rise 0 def
/_ax 0 def
/_ay 0 def
/_cx 0 def
/_cy 0 def
/_leading
[
0 0
] def
/_ctm matrix def
/_mtx matrix def
/_sp 16#020 def
/_hyphen (-) def
/_fScl 0 def
/_cnt 0 def
/_hs 1 def
/_nativeEncoding 0 def
/_useNativeEncoding 0 def
/_tempEncode 0 def
/_pntr 0 def
/_tDict 2 dict def
/_wv 0 def
/Tx
{
} def
/Tj
{
} def
/CRender
{
} def
/_AI3_savepage
{
} def
/_gf null def
/_cf 4 array def
/_if null def
/_of false def
/_fc
{
} def
/_gs null def
/_cs 4 array def
/_is null def
/_os false def
/_sc
{
} def
/_pd 1 dict def
/_ed 15 dict def
/_pm matrix def
/_fm null def
/_fd null def
/_fdd null def
/_sm null def
/_sd null def
/_sdd null def
/_i null def
/discardSave null def
/buffer 256 string def
/beginString null def
/endString null def
/endStringLength null def
/layerCnt 1 def
/layerCount 1 def
/perCent (%) 0 get def
/perCentSeen? false def
/newBuff null def
/newBuffButFirst null def
/newBuffLast null def
/clipForward? false def
end
userdict /Adobe_Illustrator_AI5 known not {
	userdict /Adobe_Illustrator_AI5 91 dict put
} if
userdict /Adobe_Illustrator_AI5 get begin
/initialize
{
	Adobe_Illustrator_AI5 dup begin
	Adobe_Illustrator_AI5_vars begin
	discardDict
	{
		bind pop pop
	} forall
	dup /nc get begin
	{
		dup xcheck 1 index type /operatortype ne and
		{
			bind
		} if
		pop pop
	} forall
 end
	newpath
} def
/terminate
{
 end
 end
} def
/_
null def
/ddef
{
	Adobe_Illustrator_AI5_vars 3 1 roll put
} def
/xput
{
	dup load dup length exch maxlength eq
	{
		dup dup load dup
		length 2 mul dict copy def
	} if
	load begin
	def
 end
} def
/npop
{
	{
		pop
	} repeat
} def
/sw
{
	dup length exch stringwidth
	exch 5 -1 roll 3 index mul add
	4 1 roll 3 1 roll mul add
} def
/swj
{
	dup 4 1 roll
	dup length exch stringwidth
	exch 5 -1 roll 3 index mul add
	4 1 roll 3 1 roll mul add
	6 2 roll /_cnt 0 ddef
	{
		1 index eq
		{
			/_cnt _cnt 1 add ddef
		} if
	} forall
	pop
	exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop
} def
/ss
{
	4 1 roll
	{
		2 npop
		(0) exch 2 copy 0 exch put pop
		gsave
		false charpath currentpoint
		4 index setmatrix
		stroke
		grestore
		moveto
		2 copy rmoveto
	} exch cshow
	3 npop
} def
/jss
{
	4 1 roll
	{
		2 npop
		(0) exch 2 copy 0 exch put
		gsave
		_sp eq
		{
			exch 6 index 6 index 6 index 5 -1 roll widthshow
			currentpoint
		}
		{
			false charpath currentpoint
			4 index setmatrix stroke
		} ifelse
		grestore
		moveto
		2 copy rmoveto
	} exch cshow
	6 npop
} def
/sp
{
	{
		2 npop (0) exch
		2 copy 0 exch put pop
		false charpath
		2 copy rmoveto
	} exch cshow
	2 npop
} def
/jsp
{
	{
		2 npop
		(0) exch 2 copy 0 exch put
		_sp eq
		{
			exch 5 index 5 index 5 index 5 -1 roll widthshow
		}
		{
			false charpath
		} ifelse
		2 copy rmoveto
	} exch cshow
	5 npop
} def
/pl
{
	transform
	0.25 sub round 0.25 add exch
	0.25 sub round 0.25 add exch
	itransform
} def
/setstrokeadjust where
{
	pop true setstrokeadjust
	/c
	{
		curveto
	} def
	/C
	/c load def
	/v
	{
		currentpoint 6 2 roll curveto
	} def
	/V
	/v load def
	/y
	{
		2 copy curveto
	} def
	/Y
	/y load def
	/l
	{
		lineto
	} def
	/L
	/l load def
	/m
	{
		moveto
	} def
}
{
	/c
	{
		pl curveto
	} def
	/C
	/c load def
	/v
	{
		currentpoint 6 2 roll pl curveto
	} def
	/V
	/v load def
	/y
	{
		pl 2 copy curveto
	} def
	/Y
	/y load def
	/l
	{
		pl lineto
	} def
	/L
	/l load def
	/m
	{
		pl moveto
	} def
} ifelse
/d
{
	setdash
} def
/cf
{
} def
/i
{
	dup 0 eq
	{
		pop cf
	} if
	setflat
} def
/j
{
	setlinejoin
} def
/J
{
	setlinecap
} def
/M
{
	setmiterlimit
} def
/w
{
	setlinewidth
} def
/XR
{
	0 ne
	/_eo exch ddef
} def
/H
{
} def
/h
{
	closepath
} def
/N
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			_eo {eoclip} {clip} ifelse /_doClip 0 ddef
		} if
		newpath
	}
	{
		/CRender
		{
			N
		} ddef
	} ifelse
} def
/n
{
	N
} def
/F
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
			/_doClip 0 ddef
		}
		{
			_pf
		} ifelse
	}
	{
		/CRender
		{
			F
		} ddef
	} ifelse
} def
/f
{
	closepath
	F
} def
/S
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
			/_doClip 0 ddef
		}
		{
			_ps
		} ifelse
	}
	{
		/CRender
		{
			S
		} ddef
	} ifelse
} def
/s
{
	closepath
	S
} def
/B
{
	_pola 0 eq
	{
		_doClip 1 eq
		gsave F grestore
		{
			gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
			/_doClip 0 ddef
		}
		{
			S
		} ifelse
	}
	{
		/CRender
		{
			B
		} ddef
	} ifelse
} def
/b
{
	closepath
	B
} def
/W
{
	/_doClip 1 ddef
} def
/*
{
	count 0 ne
	{
		dup type /stringtype eq
		{
			pop
		} if
	} if
	newpath
} def
/u
{
} def
/U
{
} def
/q
{
	_pola 0 eq
	{
		gsave
	} if
} def
/Q
{
	_pola 0 eq
	{
		grestore
	} if
} def
/*u
{
	_pola 1 add /_pola exch ddef
} def
/*U
{
	_pola 1 sub /_pola exch ddef
	_pola 0 eq
	{
		CRender
	} if
} def
/D
{
	pop
} def
/*w
{
} def
/*W
{
} def
/`
{
	/_i save ddef
	clipForward?
	{
		nulldevice
	} if
	6 1 roll 4 npop
	concat pop
	userdict begin
	/showpage
	{
	} def
	0 setgray
	0 setlinecap
	1 setlinewidth
	0 setlinejoin
	10 setmiterlimit
	[] 0 setdash
	/setstrokeadjust where {pop false setstrokeadjust} if
	newpath
	0 setgray
	false setoverprint
} def
/~
{
 end
	_i restore
} def
/O
{
	0 ne
	/_of exch ddef
	/_lp /none ddef
} def
/R
{
	0 ne
	/_os exch ddef
	/_lp /none ddef
} def
/g
{
	/_gf exch ddef
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_gf setgray
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/G
{
	/_gs exch ddef
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_gs setgray
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/k
{
	_cf astore pop
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_cf aload pop setcmykcolor
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/K
{
	_cs astore pop
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_cs aload pop setcmykcolor
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/x
{
	/_gf exch ddef
	findcmykcustomcolor
	/_if exch ddef
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_if _gf 1 exch sub setcustomcolor
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/X
{
	/_gs exch ddef
	findcmykcustomcolor
	/_is exch ddef
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_is _gs 1 exch sub setcustomcolor
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/A
{
	pop
} def
/annotatepage
{
userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
} def
/XT {
	pop pop
} def
/discard
{
	save /discardSave exch store
	discardDict begin
	/endString exch store
	gt38?
	{
		2 add
	} if
	load
	stopped
	pop
 end
	discardSave restore
} bind def
userdict /discardDict 7 dict dup begin
put
/pre38Initialize
{
	/endStringLength endString length store
	/newBuff buffer 0 endStringLength getinterval store
	/newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
	/newBuffLast newBuff endStringLength 1 sub 1 getinterval store
} def
/shiftBuffer
{
	newBuff 0 newBuffButFirst putinterval
	newBuffLast 0
	currentfile read not
	{
	stop
	} if
	put
} def
0
{
	pre38Initialize
	mark
	currentfile newBuff readstring exch pop
	{
		{
			newBuff endString eq
			{
				cleartomark stop
			} if
			shiftBuffer
		} loop
	}
	{
	stop
	} ifelse
} def
1
{
	pre38Initialize
	/beginString exch store
	mark
	currentfile newBuff readstring exch pop
	{
		{
			newBuff beginString eq
			{
				/layerCount dup load 1 add store
			}
			{
				newBuff endString eq
				{
					/layerCount dup load 1 sub store
					layerCount 0 eq
					{
						cleartomark stop
					} if
				} if
			} ifelse
			shiftBuffer
		} loop
	} if
} def
2
{
	mark
	{
		currentfile buffer readline not
		{
		stop
		} if
		endString eq
		{
			cleartomark stop
		} if
	} loop
} def
3
{
	/beginString exch store
	/layerCnt 1 store
	mark
	{
		currentfile buffer readline not
		{
		stop
		} if
		dup beginString eq
		{
			pop /layerCnt dup load 1 add store
		}
		{
			endString eq
			{
				layerCnt 1 eq
				{
					cleartomark stop
				}
				{
					/layerCnt dup load 1 sub store
				} ifelse
			} if
		} ifelse
	} loop
} def
end
userdict /clipRenderOff 15 dict dup begin
put
{
	/n /N /s /S /f /F /b /B
}
{
	{
		_doClip 1 eq
		{
			/_doClip 0 ddef _eo {eoclip} {clip} ifelse
		} if
		newpath
	} def
} forall
/Tr /pop load def
/Bb {} def
/BB /pop load def
/Bg {12 npop} def
/Bm {6 npop} def
/Bc /Bm load def
/Bh {4 npop} def
end
/Lb
{
	4 npop
	6 1 roll
	pop
	4 1 roll
	pop pop pop
	0 eq
	{
		0 eq
		{
			(%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
		}
		{
			
			/clipForward? true def
			
			/Tx /pop load def
			/Tj /pop load def
			
			currentdict end clipRenderOff begin begin
		} ifelse
	}
	{
		0 eq
		{
			save /discardSave exch store
		} if
	} ifelse
} bind def
/LB
{
	discardSave dup null ne
	{
		restore
	}
	{
		pop
		clipForward?
		{
			currentdict
		 end
		 end
		 begin
					
			/clipForward? false ddef
		} if
	} ifelse
} bind def
/Pb
{
	pop pop
	0 (%AI5_EndPalette) discard
} bind def
/Np
{
	0 (%AI5_End_NonPrinting--) discard
} bind def
/Ln /pop load def
/Ap
/pop load def
/Ar
{
	72 exch div
	0 dtransform dup mul exch dup mul add sqrt
	dup 1 lt
	{
		pop 1
	} if
	setflat
} def
/Mb
{
	q
} def
/Md
{
} def
/MB
{
	Q
} def
/nc 3 dict def
nc begin
/setgray
{
	pop
} bind def
/setcmykcolor
{
	4 npop
} bind def
/setcustomcolor
{
	2 npop
} bind def
currentdict readonly pop
end
end
setpacking
%%EndResource
%%BeginResource: procset Adobe_blend_AI5 1.4 0
%%Title: (Adobe Illustrator (R) Version 5.0 Blend ProcSet)
%%Version: 1.4 0
%%CreationDate: (11/19/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /Adobe_blend_AI5 70 dict dup begin
put
/bd
{
	bind def
} bind def
/xs
{
	exch store
} bd
/nullProc
{
	{
	}
} def
/initialize
{
	pop pop
	Adobe_blend_AI5 begin
		Adobe_blend_AI5_vars begin
			/_contoneDevice where
			{
				pop
			}
			{
				/_contoneDevice false def	
			} ifelse
					
			/_dpiThreshold where
			{
				pop
			}
			{	
				/_dpiThreshold 600 def
			} ifelse
			
			/_screenFreqThreshold where
			{
				pop
			}
			{	
				/_screenFreqThreshold 150 def
			} ifelse
			
			/tRectOK? deviceDPI _dpiThreshold le currentScreenFreq _screenFreqThreshold le and _contoneDevice not and def
	/invertXfer
	{
		[
		{
			1 exch sub
				} /exec load systemdict/currenttransfer get exec /exec load
				] cvx systemdict/settransfer get exec
			} bd
			/spotDict 3 dict dup begin
				/nSpots 2 def
				/spot1 7 dict def
				/spot2 7 dict def
		 end
			def
			composite?
			{
				/_setgray_ /setgray load def
				/_fill_ /fill load def
				/_image_ /image load def
			}
			{
				/_setgray_ systemdict/setgray get def
				/_fill_ systemdict/fill get def
				/_image_ systemdict/image get def
			} ifelse
		} bd
		/terminate
		{
			currentdict Adobe_blend_AI5_vars eq
			{
		 end
			currentdict Adobe_blend_AI5 eq
			{
		 end
		} if
	} if
} bd
/_compositeSpotDevice where
{
 begin
		_compositeSpotDevice 0 ne {userdict /composite? true put} if
 end
}
{
	/_compositeSpotDevice 0 def	
} ifelse
	
/nullString () def
/d255 256 array def
0 1 255
{
	d255 exch dup 255 div put
} bind for
/d255- 256 array def
0 1 255
{
	d255- exch 1 d255 2 index get sub put
} bind for
/dUserSpace matrix defaultmatrix def
currentdict /Adobe_blend_AI5_vars 89 dict dup begin
put
{
	/f /F /s /S /b /B
}
{
	null def
} bind forall
/byte 1 string def
/sSave null def
/setSSave
{
	save /sSave exch store
} bind def
/Bm null def
/doBlend null def
/startC? false def
/endC? false def
/fCMYK? null def
/startTint 0 def
/endTint 0 def
/bSMatrix matrix def
/bUMatrix matrix def
/dMatrix matrix def
/inLine? true def
/pTState? false def
/bHi? false def
/yHi 0 def
/xHi 0 def
/noImg /lv1Fix where
{
	pop lv1Fix
}
{
	false
} ifelse
def
/ccAry1 5 array def
/ccTint 0 def
/spotColor? false def
/colorimage? true def
[
/tint1Data
/tint2Data
/spotDict
/bAxis
/ubAxis
/pChange
/optimize?
/nSamples
/sInc
/blendProc
/_bn
/xBCInc
/yBCInc
/bInc
/bRender
/cBName
/cBType
/nColors
/color?
/blend?
/colorType
/cData
/cDataLen
/bDataLen
/rampPoint
/midPoint
/endPoint
/blendLength
/blackData
/yeData
/mgData
/cyData
/cnt1
/ndx
/_fill
/tmp
counttomark
{
	null def
} bind
repeat
pop
currentdict
end
currentdict
end
exch
begin
begin
/unitSq
{
	0 0 moveto 0 1 lineto 1 1 lineto 1 0 lineto closepath
} bd
/gMark
{
	counttomark 2 add -1 roll
} bd
/setCustomColor
{
	dup /ccTint exch store
	1 exch sub 6 1 roll
	ccAry1 astore
	exch setcustomcolor
} bd
/currentCustomColor
{
	ccAry1 aload pop ccTint
} bd
/nsetcustomcolor where 
{
	pop
}
{
	/nsetcustomcolor
	{
		pop setcmykcolor	
	} bd
} ifelse
/nsetcustomcolorend where 
{
	pop
}
{
	/nsetcustomcolorend
	{
	} bd
} ifelse
/setBSpace
{
	newpath bUMatrix astore concat unitSq
} bd
/setCStop
{
	dup 0 eq
	{
		pop
		
		spotColor?
			{
			dup 1 exch sub /ccTint exch def
			ccAry1 4 /Black put
			} if
		setgray
	}
	{
		1 eq
		{
			setcmykcolor
		}
		{
			composite? not colorType 2 lt and
			{
				forceCMYK
			}
			{
				setCustomColor
			} ifelse
		} ifelse
	} ifelse
} bd
/makeByte
{
	/tmp 0 store
	255 mul cvi
	8 string 8
	{
		dup tmp 3 index put /tmp tmp 1 add store
	} repeat
	exch pop
} bd
/setImgSpace
{
	cDataLen 1 8
	2 index 0 0 1 0 0 dMatrix astore
} bd
/bwImage
{
	setImgSpace cData /_image_ load
	{
		exec
	} stopped
	{
		$error /errorname get /undefinedresult ne
		{
			stop
		}
		{
			pop pop pop pop pop
		} ifelse
	} if
} bd
level2?
{
	/bFill
	{
		_fill
	} def
	/bCImg
	{
		/cDataLen bDataLen store
		setImgSpace
		setSSave
		expandSpot
		cyData mgData yeData cData
		expandCMYK
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
} if
/expandOne
{
			dup type /stringtype ne
			{
				cDataLen string
				exch
				dup 0 ne
				{
					255 mul cvi
					0 1 cDataLen 1 sub
					{
						3 copy
						exch put pop
					} for
				} if
				pop
			} if
} bd
/expandSpot
{
	spotColor?
	{
		spotDict begin
			spot1 begin
				tintImage type /nulltype ne
				{
					tintImage expandOne /tintImage exch def
				} if
		  end
			spot2 begin
				tintImage type /nulltype ne
				{
					tintImage expandOne /tintImage exch def
				} if
		  end
	 end
	} if
} bd
/expandCMYK
{
	4
	{
		expandOne 4 1 roll
	} repeat
} bd
/colorimage where dup
{
	exch pop
	
	/ncolorimage where
	{
		pop
	}
	{
		/ncolorimage {pop colorimage} bd
	} ifelse
} if
not
{
	/ncolorimage where 
	{
		pop
	}
	{
		/colorimage? false store
		/ncolorimage
		{
			pop pop pop
	
		setSSave
		/blackData xs
		/yeData xs
		/mgData xs
		/cyData xs
		/cnt1 0 store
		[
		byte dup 0
		cyData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .3 /mul cvx
		}
		{
			.3 mul
		} ifelse
		mgData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .59 /mul cvx
		}
		{
			.59 mul
		} ifelse
		yeData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .11 /mul cvx
		}
		{
			.11 mul
		} ifelse
		blackData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx
		} if
		/add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
		/dup cvx 0 /lt cvx
		{
			pop 0
		} /if cvx
		/dup cvx 1 /gt cvx
		{
			pop 1
		} /if cvx
		255 /mul cvx /cvi cvx
		256 /mod cvx
		/dup cvx 0 /lt cvx
		{
			pop 0
		} /if cvx
		/put cvx
		/cnt1 dup cvx 1 /add cvx /store cvx
		] cvx
		bind
			_image_ 
		sSave restore
	} bd
	} ifelse
} if
level2? not
{
	/bCImg
	{
		/cDataLen bDataLen store
		setImgSpace
		setSSave
		expandSpot
		cyData mgData yeData cData
		colorimage? 
		{
			expandCMYK
		} if
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
	/bwFill
	{
		setSSave
		/cDataLen 8 store
		/cData currentgray makeByte store
		bwImage
		sSave restore
	} bd
	/c1ImgFill
	{
		setSSave
		/cDataLen 8 store
		setImgSpace
		spotColor?
		{
			spotDict begin
				spot1 begin
					currentCustomColor makeByte /tintImage exch def
					/name exch def
					/spot_K exch def
					/spot_Y exch def
					/spot_M exch def
					/spot_C exch def
			 end
				spot2 initSpotData
		 end
		} if
		currentcmykcolor
		4
		{
			makeByte 4 1 roll
		} repeat
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
	/bFill
	noImg
	{
		{
			_fill
		}
	}
	{
		{
			color?
			{
				c1ImgFill
			}
			{
				bwFill
			} ifelse
		}
	} ifelse
	bd
} if
composite?
{
	/bCFun
	{
		color?
		{
			cyData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			mgData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			yeData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			cData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			spotColor?
			{
				spotDict begin
					/spotDict cvx /begin cvx
					spot1 begin
						tintImage dup type /stringtype eq
						{
							/ndx cvx /get cvx d255- /exch cvx /get cvx
						}
						{
							dup type /nulltype ne 
							{
								name type /nametype ne {1 exch sub} if
							} if
						} ifelse
				 end
					/spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
					spot2 begin
						tintImage dup type /stringtype eq
						{
							/ndx cvx /get cvx d255- /exch cvx /get cvx
						}
						{
							dup type /nulltype ne 
							{
								name type /nametype ne {1 exch sub} if
							} if
						} ifelse
				 end
					/spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
					/end cvx
			 end
				/spotDict cvx
				/nsetcustomcolor cvx
			}
			{
				/setcmykcolor cvx
			} ifelse
		}
		{
			cData /ndx cvx /get cvx
			d255 /exch cvx /get cvx
			/setgray cvx
		} ifelse
	} bd
	/Bc
	{
		newpath
		gsave
		setBSpace
		nColors 1 eq
		{
			pop pop
			setCStop
		} if
		bFill
		grestore
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			linImg
		}
		{
			bFill
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/rdBm
	{
		/nColors dup load 1 sub store
		_fill
		gsave
		bUMatrix astore concat
		bHi?
		{
			xHi yHi bUMatrix idtransform /yHi exch store /xHi exch store
			rampPoint 1 lt
			{
				1 rampPoint sub dup xHi mul exch yHi mul translate
			} if
		} if
		nColors
		{
			0 0 rampPoint 0 360 arc
			_fill
			blend? bHi? or
			{
				rdBlend
			} if
			nColors 1 gt
			{
				getRData
			} if
			/nColors dup load 1 sub store
		} repeat
		/nColors 1 store
		grestore
	} bd
	/cGetRData
	{
		setCStop
		/blend?
		cData type /stringtype eq
		dup not color? and
		{
			pop
			cyData type /stringtype eq
			mgData type /stringtype eq
			yeData type /stringtype eq
			or or
		} if
		store
	} def
	/cGetRData
} if
/eCStop
{
	mark
	1 index 3 mul 3 add dup 8 gt
	{
		pop 8
	} if
	1 roll
	cleartomark
} bd
composite? not
{
	/knockOut
	level2?
	{
		{
			0 0 0 0 setcmykcolor _fill
		}
	}
	{
		/bFill noImg
		{
			{
				_fill
			}
		}
		{
			{
				_of true eq
				{
					currentgray 1 ne
					{
						bwFill
					} if
				}
				{
					bwFill
				} ifelse
			}
		} ifelse
		def
		/whiteByte 1 makeByte def
		noImg
		{
			{
				0 0 0 0 setcmykcolor _fill
			}
		}
		{
			{
				cBType 0 eq
				{
					setSSave
					/cData whiteByte store
					/cDataLen 8 store
					bwImage
					sSave restore
				}
				{
					_fill
				} ifelse
			}
		} ifelse
	} ifelse
	bd
	/bCFun
	{
		cData dup type /stringtype ne
		{
			color?
			{
				1 exch sub
			} if
		}
		{
			/ndx cvx /get cvx
			color? customColor? not and
			{
				d255-
			}
			{
				d255
			} ifelse
			/exch cvx /get cvx
		} ifelse
		/_setgray_ cvx
	} bd
	/eCCBlend
	{
		dup 3 eq
		{
			pop
			mark 7 1 roll
			6 copy ccThrough? dup /blend? xs
			{
				/startC? true store
				setCustomColor
				customColor?
				{
					/cData tint1Data store
					setCDataLen
				} if
				/endC?
				3 index 3 eq
				{
					4 index 1 ne
				}
				{
					false
				} ifelse
				store
			} if
			cleartomark
			stop
		} if
		1 eq
		{
			pop pop pop
		} if
		pop
		/startC? false store
		6
		{
			8 index
		} repeat
		ccThrough? dup /blend? xs
		{
			/endC? true store
			blend? not
			{
				stop
			} if
			customColor?
			{
				/cData tint1Data store
				setCDataLen
			} if
		} if
	} bd
	/handleOP
	{
		_of not
		{
			knockOut
		} if
	} bd
	/handleROP
	{
		_of not
		{
			0 0 0 0 setcmykcolor _fill
		}
		{
			newpath	
		} ifelse
	} bd
	/rdBm
	{
		/nColors dup load 1 sub store
		blend? 
		{
			_fill
		}
		{
			handleROP
		} ifelse
		gsave
		bUMatrix astore concat
		bHi?
		{
			xHi yHi bUMatrix idtransform /yHi exch store /xHi exch store
			rampPoint 1 lt
			{
				1 rampPoint sub dup xHi mul exch yHi mul translate
			} if
		} if
		nColors
		{
			0 0 rampPoint 0 360 arc
			blend?
			{
				cData type /stringtype ne bHi? not and
				{
					cData color?
					{
						1 exch sub
					} if
					_setgray_ 
					_fill_ 
				}
				{
					cData type /stringtype ne
					{
						/cDataLen 1 store
						/bDataLen 1 store
					} if
					rdBlend
				} ifelse
			}
			{
				
				handleROP
				
				pTState?
				{
					/bAxis rampPoint endPoint sub store
					xHi bAxis mul yHi bAxis mul translate
				} if
			} ifelse
				
			nColors 1 gt
			{
				getRData
			} if
			/nColors dup load 1 sub store
		} repeat
		/nColors 1 store
		grestore
	} bd
	/ccThrough?
	{
		gsave
		pop 0 setCustomColor
		currentcmykcolor
		grestore
		anyColor?
	} bd
	/forceCMYK
	{
		exch pop
		1 exch sub 5 1 roll
		4
		{
			4 index mul 4 1 roll
		} repeat
		0
		cCMYKData dup /cData ne
		{
			dup /yeData eq
			{
				pop 1 add
			}
			{
				/mgData eq
				{
					2
				}
				{
					3
				} ifelse
				add
			} ifelse
			0
		} if
		pop
		index
		0 eq
		{
			pop pop pop pop 0 0 0 0
		} if
		setcmykcolor
		pop
		/fCMYK? true store
	} bd
	/endCapSepBc
	{
		pop pop
		dup 0 eq
		{
			pop
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				colorType 1 eq
				{
					forceCMYK
				}
				{
					fCMYK?
					{
						forceCMYK
					}
					{
						setCustomColor
					} ifelse
				} ifelse
			} ifelse
		} ifelse
		currentcmykcolor anyColor? 
		blend? and
		{
			bFill
		}
		{
			handleOP
		} ifelse
		
	} bd
} if
/cCMYKData 0 def
composite? dup not
{
	pop customColor?
} if
not
{
	/cCMYKData
	/cyData /mgData /yeData /cData
	black? not
	{
		yellow?
		{
			exch
		}
		{
			magenta?
			{
				3
			}
			{
				4
			} ifelse
			-1 roll
		} ifelse
	} if
	4 1 roll pop pop pop
	store
	/Bc
	{
		gsave
		setBSpace
		nColors 1 gt
		{
			
			blend? currentcmykcolor anyColor? and
			{
				bFill
			}
			{
				handleOP
			} ifelse
		}
		{
			endCapSepBc
		} ifelse
		grestore
		newpath
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			cCMYKData load dup type /stringtype eq
			{
				dup length /cDataLen xs
				/cData xs
				gsave
				colorType 0 ne noImg not and
				{
					invertXfer
				} if
				linImg
				grestore
			}
			{
				pop bFill
			} ifelse
		}
		{
			handleOP
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/cmykGetRData
	{
		/fCMYK? false store
		blend?
		{
			{
				cmykDataProcs colorType get exec
			} stopped
			pop
			blend?
			{
				/cData cCMYKData load store
				setCDataLen
			} if
		} if
	} def
	/cmykDataProcs
	[
	{
		pop
		black? dup /blend? xs
		{
			setgray
			0
		} if
		pop
	}
	{
		cCMYKData load dup type /stringtype ne
		{
			0 0 0
			cyan? not
			{
				4 magenta?
				{
					1
				}
				{
					yellow?
					{
						2
					}
					{
						3
					} ifelse
				} ifelse
				roll
			} if
			4 copy add add add 0 eq
			{
				/blend? false store
			} if
			
			setcmykcolor
			/startC? true store
			/endC? true store
			eCStop
			stop
		} if
		pop
		dup 0 eq
		{
			pop
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				forceCMYK
			} ifelse
		} ifelse
	} bind
	/eCCBlend load
	{
		cBType 1 eq
		{
			tint1Data tint2Data
			/tint1Data xs
			/tint2Data xs
		} if
		0 eq
		{
			black?
			{
				setgray
			}
			{
				0 0 0 4 -1 roll 1 exch sub setcmykcolor
			} ifelse
			black?
			{
				/blend? true store
			} if
			6
			{
				8 index
			} repeat
			ccThrough?
			{
				/blend? true store
			}
			{
				black?
				{
					/cData tint1Data store
					setCDataLen
				}
				{
					/blend? false store
				} ifelse
			} ifelse
		}
		{
			mark 7 1 roll
			6 copy ccThrough?
			{
				forceCMYK
				pop
				stop
			} if
			9 index 0 eq
			{
				black? dup /blend? xs
				{
					pop 1 setgray
					/cData tint2Data store
					setCDataLen
					0
				} if
				pop
			}
			{
				/blend?
				6
				{
					16 index
				} repeat
				ccThrough?
				store
				blend?
				{
					forceCMYK
				} if
			} ifelse
			cleartomark
		} ifelse
	} bind
	] def
	/cmykGetRData
} if
composite? dup not
{
	pop isCMYKSep?
} if
not
{
	/endCapSepBc
	{
		/white? false store
		pop pop
		dup 0 eq
		{
			pop
			/white? 1 index 1 eq store
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				setCustomColor
			} ifelse
		} ifelse
%
		currentcmykcolor anyColor?
		endC? or
		blend? and
		{
			bFill
		}
		{
			handleOP
		} ifelse
	} bd
	/Bc
	{
		gsave
		setBSpace
		nColors 1 gt
		{
			blend? startC? and
			{
				bFill
			}
			{
				handleOP
			} ifelse
		}
		{
			endCapSepBc
		} ifelse
		grestore
		newpath
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			cData type /stringtype eq
			{
				linImg
			}
			{
				bFill
			} ifelse
		}
		{
			handleOP
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/discardCMY
	{
		counttomark 4 add -3 roll pop pop pop
	} bd
	/testTopCC
	{
		6 copy ccThrough?
	} bd
	/getCRamp
	{
		{
			ccDataProcs colorType 2 sub get exec
		} stopped pop
		blend? cDataLen 0 eq and
		{
			/cDataLen bDataLen store
		} if
	} bd
	/ccGetRData
	{
		/fCMYK? false store
		/startC? false store
		/endC? false store
		colorType 2 lt
		{
			/blend? false def
		} if
		blend?
		{
			getCRamp
		}
		{
			setCStop
		} ifelse
		blend?
		{
			/blend? cData 1 ne store
			blend?
			{
				cData dup type /stringtype ne
				{
					1 exch sub /cData xs 0
				} if
				pop
			} if
		} if
	} def
	/ccDataProcs
	[
	/eCCBlend load
	{
		cBType 1 eq
		{
			tint1Data tint2Data
			/tint1Data xs
			/tint2Data xs
		} if
		0 eq
		{
			/blend? false store
			pop
		}
		{
			mark 7 1 roll
			testTopCC
			{
				/blend? 1 index 1 ne store
				/startC? blend? store
				/endC? false store
				blend? not
				{
					cleartomark stop
				} if
				/cData tint1Data store
				setCDataLen
				setCustomColor
				pop
				stop
			} if
			cleartomark
		} ifelse
		2 index 0 eq
		{
			/blend? false store
		}
		{
			mark 6
			{
				9 index
			} repeat
			testTopCC dup /blend? xs
			{
				/blend? 1 index 1 ne store
				/endC? blend? store
				/startC? false store
				blend? not
				{
					cleartomark stop
				} if
				/cData tint2Data store
				setCDataLen
			} if
			cleartomark
		} ifelse
	} bind
	] def
	/ccGetRData
} if
load Adobe_blend_AI5_vars /getData 3 -1 roll put
/setCDataLen
{
	/cDataLen 0 cData dup type /stringtype eq
	{
		length exch
	} if
	pop store
} bd
/initSpotData
{
 begin
		/name null def
		/tintImage null def
		/tintValue null def
		/spot_C  null def
		/spot_M  null def
		/spot_Y  null def
		/spot_K  null def
 end
} bd
/getRData
{
	/colorType gMark store
	_compositeSpotDevice 0 ne
	{
		spotDict begin
			spot1 initSpotData
			spot2 initSpotData
	 end
		/spotColor? colorType 2 eq colorType 3 eq or def
	} 
	{
		/spotColor? false store
	} ifelse
	/blend? true store
	0 0 0 0 setcmykcolor
	100 div /rampPoint xs
% (between 13 and 87%) 
	100 div /midPoint xs
	dup 0 eq
	{
		2
	}
	{
		dup 1 eq
		{
			5
		}
		{
			_compositeSpotDevice 0 ne
			{
				spotDict begin
					spot1 begin
						/name 3 index def
						/spot_K 4 index def
						/spot_Y 5 index def
						/spot_M 6 index def
						/spot_C 7 index def
				 end
			 end
			} if
			7
		} ifelse
	} ifelse
	/tmp exch def
	tmp index 100 div /endPoint xs
	_compositeSpotDevice 0 ne
	{
		tmp 2 add index 3 eq
		{
			/tmp tmp 4 add def
			tmp index dup 
			spotDict begin
				spot1/name get ne
				{
					spot2 begin
						/name exch def
						/spot_K tmp 2 add index def
						/spot_Y tmp 3 add index def
						/spot_M tmp 4 add index def
						/spot_C tmp 5 add index def
				 end
				}
				{
					pop
				} ifelse
		 end
		} if
	} if
	/color? colorType 0 gt store
	
	colorType 3 eq
	{
		/tint2Data gMark store
	} if
	
	colorType 2 ge
	{
		/tint1Data gMark store
	} if
	_compositeSpotDevice 0 ne
	{
		spotDict begin
		
			colorType 2 ge
			{
				colorType 3 eq
				{
					spot2 begin
						/tintImage cBType 0 eq {tint2Data} {tint1Data} ifelse def
						name null eq {/name /Black def} if
				 end
				} if
				spot1 begin
					/tintImage cBType 0 eq colorType 2 eq or {tint1Data} {tint2Data} ifelse def
					colorType 2 eq 
					{
						name null eq 
						{
							/name spot2/name get def
							spot2/name null put
						} if
					}
					{
						name null eq {/name /Black def} if
					} ifelse
			 end
			} if
	 end
	} if
	
	/cData gMark store
	setCDataLen
	colorType 0 gt
	{
		counttomark 4 add -3 roll
		/yeData xs
		/mgData xs
		/cyData xs
	} if
	blend?
	{
		/bDataLen
		cDataLen dup 0 eq color? and
		{
			[
			cyData mgData yeData
			]
			{
				dup type /stringtype eq
				{
					length exch pop exit
				} if
				pop
			} forall
		} if
		store
		bDataLen 0 eq
		{
			/bDataLen 1 store
		} if
		getData
		blend?
		{
			composite? cDataLen 0 eq and
			{
				/cDataLen bDataLen store
			} if
		} if
	}
	{
		setCStop
	} ifelse
} bd
/Bg
{
	0 0 0 0 setcmykcolor
	6
	{
		pop
	} repeat
	/blendLength xs
	pop pop pop
	/cBName xs
	/bRender xs
	bRender 2 ne
	{
		composite? not
		{
			_of setoverprint
		} if
		_eo {eoclip} {clip} ifelse
		_bn cBName 2 copy known
		{
			get
			mark exch aload pop
			/cBType xs
			/nColors xs
			mark exch aload pop
			0 0
		} if
		pop pop
		getRData
		cBType 0 eq
		{
			/linealBm
		}
		{
			bHi?
			{
				/pTState? nColors 2 gt store
			} if
			/doBlend /rdBlend load store
			/rdBm
		} ifelse
	}
	{
		inLine? not
		{
			mark mark
		} if
		/Bc dup
		{
			cleartomark mark
		} bd
		/nullProc
	} ifelse
	load /Bm xs
} bd
/linImg
noImg
{
	{
		newpath doRctBlend
	}
}
{
	{
		/doBlend
		color? composite? and
		{
			/bCImg
		}
		{
			/bwImage
		} ifelse
		load
		store
	
		0 0 moveto
		tRectOK? composite? and
		{
			{
				mark
				0 1 dtransform atan cvi 90 mod 0 eq
				1 0 dtransform atan cvi 90 mod 0 eq
			} stopped
			{
				cleartomark
			}
			{
				and exch pop
				{
					newpath
					doRctBlend
				}
				{
					doBlend
				} ifelse
			} ifelse
		}
		{
			doBlend
		} ifelse
	} 
} ifelse
bd
/doRctBlend
{
	gsave
	/sInc 1 store
	/nSamples bDataLen store
	/bInc 1 bDataLen div store
	/ubAxis 1 0 dtransform dUserSpace idtransform dup mul exch dup mul add sqrt store
	/pChange ubAxis 0 eq
	{
		0
	}
	{
		bDataLen ubAxis div
	} ifelse
	store
	pChange .5 gt noImg not and dup /optimize? xs
	{
		/nSamples ubAxis 2 div round cvi dup 1 le
		{
			pop 2
		} if
		store
		/bInc 1 nSamples div store
		/sInc bDataLen 1 sub nSamples 1 sub div store
	} if
	0
	nSamples
	[
	/dup cvx
	optimize?
	{
		/round cvx /cvi cvx
	} if
	/ndx /exch cvx /store cvx
	bCFun
	/rectfill where dup
	{
		exch pop _compositeSpotDevice 1 ne and
	} if
	{
		0 0 bInc 1 /rectfill cvx	
	}
	{
		0 0 /moveto cvx
		bInc 0 /lineto cvx
		bInc 1 /lineto cvx
		0 1 /lineto cvx
		/closepath cvx
		/_fill_ cvx
	} ifelse
	bInc 0 /translate cvx
	sInc /add cvx
	] cvx
	bind
	repeat
	pop
	spotColor? {nsetcustomcolorend} if
	
	grestore
} bd
/rdPrep
{
	/nSamples bDataLen dup 0 eq
	{
		pop 1
	} if
	store
	/sInc -1 store
	/bAxis rampPoint endPoint sub store
	/bInc bAxis bDataLen div neg store
	/optimize? false store
	tRectOK?
	{
		/ubAxis
		bAxis 0 dtransform dUserSpace idtransform dup mul exch dup mul add sqrt
		0 bAxis dtransform dUserSpace idtransform dup mul exch dup mul add sqrt
		2 copy lt
		{
			exch
		} if
		pop store
		/pChange ubAxis 0 eq
		{
			0
		}
		{
			bDataLen ubAxis div
		} ifelse
		store
		pChange .5 gt noImg not and dup /optimize? xs
		{
			/nSamples ubAxis 2 div round cvi dup 1 le
			{
				pop 2
			} if
			store
			/bInc bAxis nSamples div neg store
			/sInc bDataLen 1 sub nSamples 1 sub div neg store
		} if
	} if
	bHi?
	{
		/xBCInc xHi bAxis mul nSamples div store
		/yBCInc yHi bAxis mul nSamples div store
	} if
} bd
/rdBlend
{
	newpath
	gsave
	rdPrep
	rampPoint
	bDataLen 1 sub
	nSamples
	[
	/dup cvx
	optimize?
	{
		/round cvx /cvi cvx
	} if
	/ndx /exch cvx /store cvx
	bCFun
	0 0 3 /index cvx 0 360 /arc cvx /_fill_ cvx
	/exch cvx bInc /add cvx /exch cvx
	sInc /add cvx
	bHi?
	{
		xBCInc yBCInc /translate cvx
	} if
	] cvx
	bind
	repeat
	pop pop
	spotColor? {nsetcustomcolorend} if
	grestore
	pTState?
	{
		xHi bAxis mul yHi bAxis mul translate
	} if
} bd
/Bh
{
	pop pop
	/pTState? false store
	2 copy 0 ne exch 0 ne or dup /bHi? xs
	{
		/yHi xs
		/xHi xs
		0 0
	} if
	pop pop
} bd
/BD
{
	inLine? not
	{
		] nColors cBType
		] _bn cBName 3 -1 roll put
 end
} if
} bd
/Bn
{
1 add dict
dup nullString null put
/_bn xs
} bd
/Bd
{
Adobe_blend_AI5_vars begin
	3 -1 roll dup nullString eq dup
	{
		setSSave
	} if
	/inLine? exch def
	/cBName exch def
	/nColors exch def
	/cBType exch def
} bd
/Bb
{
	sSave null eq
	{
		Adobe_blend_AI5_vars begin
		setSSave
	} if
	composite?
	{
		/_fill /fill load store
	}
	{
		/__fill /fill load store
			/_fill
			{
				_of true eq
				{
					currentgray 1 ne
					{
						__fill
					} if
				}
				{
					__fill
				} ifelse
			} def
	} ifelse
	/fill
	{
	} def
	} bd
	/BB
	{
	/cBType xs
	cleartomark cleartomark
	cBType dup
	bRender
	sSave dup type /savetype eq
	{
		restore 0
	} if
	pop
	currentdict Adobe_blend_AI5_vars eq
	{
	 end
	} if
	2 ne exch 0 gt and
	{
		2 eq
		{
			s
		}
		{
			S
		} ifelse
	}
	{
		pop newpath
	} ifelse
} bd
currentdict readonly pop
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset Adobe_pattern_AI5 1.1 0
%%Title: (Adobe Illustrator (R) Version 5.0 Pattern Operators)
%%Version: 1.1 0
%%CreationDate: (03/26/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_Illustrator_AI5 known not {
	userdict /Adobe_Illustrator_AI5 95 dict put
} if
userdict /Adobe_Illustrator_AI5 get begin
/@
{
} def
/&
{
} def
/dp
{
	dup null eq
	{
		pop
		_dp 0 ne
		{
			0 1 _dp 1 sub _dl mod
			{
				_da exch get 3 get
			} for
			_dp 1 sub _dl mod 1 add packedarray
			_da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll
			definepattern pop
		} if
	}
	{
		_dp 0 ne _dp _dl mod 0 eq and
		{
			null dp
		} if
		7 packedarray _da exch _dp _dl mod exch put
		_dp _dl mod _da 0 get 4 get 2 packedarray
		/_dp _dp 1 add def
	} ifelse
} def
/E
{
	_ed begin
	dup 0 get type /arraytype ne
	{
		0
		{
			dup 1 add index type /arraytype eq
			{
				1 add
			}
			{
				exit
			} ifelse
		} loop
		array astore
	} if
	/_dd exch def
	/_ury exch def
	/_urx exch def
	/_lly exch def
	/_llx exch def
	/_n exch def
	/_y 0 def
	/_dl 4 def
	/_dp 0 def
	/_da _dl array def
	0 1 _dd length 1 sub
	{
		/_d exch _dd exch get def
		0 2 _d length 2 sub
		{
			/_x exch def
			/_c _d _x get _ ne def
			/_r _d _x 1 add get cvlit def
			_r _ ne
			{
				_urx _llx sub _ury _lly sub
				[
				1 0 0 1 0 0
				]
				[
				/save cvx
				_llx neg _lly neg /translate cvx
				_c
				{
					nc /begin cvx
				} if
				_r dup type /stringtype eq
				{
					cvx
				}
				{
					{
						exec
					} /forall cvx
				} ifelse
				_c
				{
					/end cvx
				} if
				/restore cvx
				] cvx
				/_fn 12 _n length add string def
				_y _fn cvs pop
				/_y _y 1 add def
				_fn 12 _n putinterval
				_fn _c false dp
				_d exch _x 1 add exch put
			} if
		} for
	} for
	null dp
	_n _dd /_pd
 end
	xput
} def
/fc
{
	_fm dup concatmatrix pop
} def
/p
{
	/_fm exch ddef
	9 -2 roll _pm translate fc
	7 -2 roll _pm scale fc
	5 -1 roll _pm rotate fc
	4 -2 roll exch 0 ne
	{
		dup _pm rotate fc
		1 -1 _pm scale fc
		neg _pm rotate fc
	}
	{
		pop
	} ifelse
	dup _pm rotate fc
	exch dup sin exch cos div 1 0 0 1 0 6 2 roll
	_pm astore fc
	neg _pm rotate fc
	_pd exch get /_fdd exch ddef
	/_pf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					patternfill
				}
				{
					pop
					fill
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		newpath
	} ddef
	/_psf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					9 copy 6 npop patternashow
				}
				{
					pop
					6 copy 3 npop hvashow
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		sw rmoveto
	} ddef
	/_pjsf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					12 copy 6 npop patternawidthshow
				}
				{
					pop 9 copy 3 npop hvawidthshow
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		swj rmoveto
	} ddef
	/_lp /none ddef
} def
/sc
{
	_sm dup concatmatrix pop
} def
/P
{
	/_sm exch ddef
	9 -2 roll _pm translate sc
	7 -2 roll _pm scale sc
	5 -1 roll _pm rotate sc
	4 -2 roll exch 0 ne
	{
		dup _pm rotate sc
		1 -1 _pm scale sc
		neg _pm rotate sc
	}
	{
		pop
	} ifelse
	dup _pm rotate sc
	exch dup sin exch cos div 1 0 0 1 0 6 2 roll
	_pm astore sc
	neg _pm rotate sc
	_pd exch get /_sdd exch ddef
	/_ps
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					patternstroke
				}
				{
					pop stroke
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		newpath
	} ddef
	/_pss
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					10 copy 6 npop patternashowstroke
				}
				{
					pop 7 copy 3 npop ss
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		pop sw rmoveto
	} ddef
	/_pjss
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					13 copy 6 npop patternawidthshowstroke
				}
				{
					pop 10 copy 3 npop jss
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		pop swj rmoveto
	} ddef
	/_lp /none ddef
} def
end
userdict /Adobe_pattern_AI5 18 dict dup begin
put
/initialize
{
	/definepattern where
	{
		pop
	}
	{
	 begin
	 begin
		Adobe_pattern_AI5 begin
		Adobe_pattern_AI5
		{
			dup xcheck
			{
				bind
			} if
			pop pop
		} forall
		mark
		cachestatus 7 1 roll pop pop pop pop exch pop exch
		{
			{
				10000 add
				dup 2 index gt
				{
					exit
				} if
				dup setcachelimit
			} loop
		} stopped
		cleartomark
	 end 	
		
	 end
	 end
		
		Adobe_pattern_AI5 begin
	} ifelse
} def
/terminate
{
	currentdict Adobe_pattern_AI5 eq
	{
	 end
	} if
} def
errordict
/nocurrentpoint
{
	pop
	stop
} put
errordict
/invalidaccess
{
	pop
	stop
} put
/patternencoding
256 array def
0 1 255
{
	patternencoding exch ( ) 2 copy exch 0 exch put cvn put
} for
/definepattern
{
	17 dict begin
	/uniform exch def
	/cache exch def
	/key exch def
	/procarray exch def
	/mtx exch matrix invertmatrix def
	/height exch def
	/width exch def
	/ctm matrix currentmatrix def
	/ptm matrix def
	/str 32 string def
	/slice 9 dict def
	slice /s 1 put
	slice /q 256 procarray length div sqrt floor cvi put
	slice /b 0 put
	/FontBBox
	[
	0 0 0 0
	] def
	/FontMatrix mtx matrix copy def
	/Encoding patternencoding def
	/FontType 3 def
	/BuildChar
	{
		exch
	 begin
		/setstrokeadjust where {pop true setstrokeadjust} if
		slice begin
		dup q dup mul mod s idiv /i exch def
		dup q dup mul mod s mod /j exch def
		q dup mul idiv procarray exch get
		/xl j width s div mul def
		/xg j 1 add width s div mul def
		/yl i height s div mul def
		/yg i 1 add height s div mul def
		uniform
		{
			1 1
		}
		{
			width 0 dtransform
			dup mul exch dup mul add sqrt dup 1 add exch div
			0 height dtransform
			dup mul exch dup mul add sqrt dup 1 add exch div
		} ifelse
		width 0 cache
		{
			xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul
			setcachedevice
		}
		{
			setcharwidth
		} ifelse
		gsave
		scale
		newpath
		xl yl moveto
		xg yl lineto
		xg yg lineto
		xl yg lineto
		closepath
		clip
		newpath
	 end
	 end
		exec
		grestore
	} def
	key currentdict definefont
 end
} def
/patterncachesize
{
	gsave
	newpath
	0 0 moveto
	width 0 lineto
	width height lineto
	0 height lineto
	closepath
	patternmatrix setmatrix
	pathbbox
	exch ceiling 4 -1 roll floor sub 3 1 roll
	ceiling exch floor sub
	mul 1 add
	grestore
} def
/patterncachelimit
{
	cachestatus 7 1 roll 6 npop 8 mul
} def
/patternpath
{
	exch dup begin
	setfont
	ctm setmatrix
	concat
	slice exch /b exch slice /q get dup mul mul put
	FontMatrix concat
	uniform
	{
		width 0 dtransform round width div exch round width div exch
		0 height dtransform round height div exch height div exch
		0 0 transform round exch round exch
		ptm astore setmatrix
	}
	{
		ptm currentmatrix pop
	} ifelse
	{
		currentpoint
	} stopped not
	{
		2 npop
		pathbbox
		true
		4 index 3 index eq
		4 index 3 index eq
		and
		{
			pop false
			{
				{
					2 npop
				}
				{
					3 npop true
				}
				{
					7 npop true
				}
				{
					pop true
				} pathforall
			} stopped
			{
				5 npop true
			} if
		} if
		{
			height div ceiling height mul 4 1 roll
			width div ceiling width mul 4 1 roll
			height div floor height mul 4 1 roll
			width div floor width mul 4 1 roll
			2 index sub height div ceiling cvi exch
			3 index sub width div ceiling cvi exch
			4 2 roll moveto
			FontMatrix mtx invertmatrix
			dup dup 4 get exch 5 get rmoveto
			ptm ptm concatmatrix pop
			slice /s
			patterncachesize patterncachelimit div ceiling sqrt ceiling cvi
			dup slice /q get gt
			{
				pop slice /q get
			} if
			put
			0 1 slice /s get dup mul 1 sub
			{
				slice /b get add
				gsave
				0 1 str length 1 sub
				{
					str exch 2 index put
				} for
				pop
				dup
				{
					gsave
					ptm setmatrix
					1 index str length idiv
					{
						str show
					} repeat
					1 index str length mod str exch 0 exch getinterval show
					grestore
					0 height rmoveto
				} repeat
				grestore
			} for
			2 npop
		}
		{
			4 npop
		} ifelse
	} if
 end
} def
/patternclip
{
	_eo {eoclip} {clip} ifelse
} def
/patternstrokepath
{
	strokepath
} def
/patternmatrix
matrix def
/patternfill
{
	dup type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get
	} if
	gsave
	patternclip
	Adobe_pattern_AI5 /patternpath get exec
	grestore
	newpath
} def
/patternstroke
{
	dup type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get
	} if
	gsave
	patternstrokepath
	true
	{
		{
			{
				newpath
				moveto
			}
			{
				lineto
			}
			{
				curveto
			}
			{
				closepath
				3 copy
				Adobe_pattern_AI5 /patternfill get exec
			} pathforall
			3 npop
		} stopped
		{
			5 npop
			patternclip
			Adobe_pattern_AI5 /patternfill get exec
		} if
	}
	{
		patternclip
		Adobe_pattern_AI5 /patternfill get exec
	} ifelse
	grestore
	newpath
} def
/vpatternawidthshow
{
	6 1 roll
	/_hvay exch ddef
	/_hvax exch ddef
	/_hvwb exch ddef
	/_hvcy exch ddef
	/_hvcx exch ddef
	
	{
		dup cstring
		dup length 1 eq
		_charorientation 1 eq
		and
		{
			-90 rotate
			currentpoint
			_fontRotateAdjust add
			moveto
			gsave
			false charpath currentpoint
			5 index 5 index 5 index Adobe_pattern_AI5 /patternfill get exec
			grestore
			_fontRotateAdjust sub
			moveto
			_hvwb eq { _hvcx _hvcy rmoveto } if
			_hvax _hvay rmoveto
			90 rotate
		}
		{
			currentpoint
			_fontHeight sub
			_hvax sub
			3 index _hvwb eq { _hvcx sub } if
			currentpoint
			exch 4 index stringwidth pop 2 div sub
			exch _fontAscent sub
			moveto
			gsave
			2 index false charpath
			6 index 6 index 6 index Adobe_pattern_AI5 /patternfill get exec
			grestore
			newpath moveto pop pop
		} ifelse
	} cforall
	3 npop
} def
/hpatternawidthshow
{
	{
		dup cstring exch
		gsave
		3 index eq { 5 index 5 index rmoveto } if
		false charpath currentpoint
		9 index 9 index 9 index
		Adobe_pattern_AI5 /patternfill get exec
		grestore
		newpath moveto
		2 copy rmoveto
	} cforall
	8 npop
} def
/patternashow
{
0 0 0 6 3 roll
patternawidthshow
} def
/patternawidthshow
{
	6 index type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get 7 1 roll
	} if
	_lineorientation 0 eq { hpatternawidthshow } { vpatternawidthshow } ifelse
} def
/vpatternawidthshowstroke
{
	7 1 roll
	6 1 roll
	/_hvay exch ddef
	/_hvax exch ddef
	/_hvwb exch ddef
	/_hvcy exch ddef
	/_hvcx exch ddef
	{
		dup cstring
		dup length 1 eq
		_charorientation 1 eq
		and
		{
			-90 rotate
			currentpoint
			_fontRotateAdjust add
			moveto
			gsave
			false charpath currentpoint
			3 index setmatrix
			6 index 6 index 6 index Adobe_pattern_AI5 /patternstroke get exec
			grestore
			_fontRotateAdjust sub
			moveto
			_hvwb eq { _hvcx _hvcy rmoveto } if
			_hvax _hvay rmoveto
			90 rotate
		}
		{
			currentpoint
			_fontHeight sub
			_hvax sub
			3 index _hvwb eq { _hvcx sub } if
			currentpoint
			exch 4 index stringwidth pop 2 div sub
			exch _fontAscent sub
			moveto
			gsave
			2 index false charpath
			4 index setmatrix
			7 index 7 index 7 index Adobe_pattern_AI5 /patternstroke get exec
			grestore
			newpath moveto pop pop
		} ifelse
	} cforall
	4 npop
} def
/hpatternawidthshowstroke
{
	7 1 roll
	{
		dup cstring exch
		gsave
		3 index eq { 5 index 5 index rmoveto } if
		false charpath currentpoint
		7 index setmatrix
		10 index 10 index 10 index
		Adobe_pattern_AI5 /patternstroke get exec
		grestore
		newpath moveto
		2 copy rmoveto
	} cforall
	9 npop
} def
/patternashowstroke
{
	0 0 0 7 3 roll
	patternawidthshowstroke
} def
/patternawidthshowstroke
{
	7 index type /dicttype eq
	{
		patternmatrix /patternmatrix get 8 1 roll
	} if
	_lineorientation 0 eq { hpatternawidthshowstroke } { vpatternawidthshowstroke } ifelse
} def
end
setpacking
%%EndResource
%%EndProlog
%%BeginSetup
Adobe_level2_AI5 /initialize get exec
Adobe_screens_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_blend_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_pattern_AI5 /initialize get exec
Adobe_ColorImage_AI6 /initialize get exec
Adobe_Illustrator_AI5 /initialize get exec
[
39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase
133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 
138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 
147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 
152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 
159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 
170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 
177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 
183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 
188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 
194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 
200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 
206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 
212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 
217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 
223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 
229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 
235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 
240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 
246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 
252/udieresis 253/yacute 254/thorn 255/ydieresis
TE
%AI3_BeginEncoding: _Helvetica Helvetica
[
/_Helvetica/Helvetica 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-Bold Helvetica-Bold
[
/_Helvetica-Bold/Helvetica-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-Oblique Helvetica-Oblique
[
/_Helvetica-Oblique/Helvetica-Oblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-BoldOblique Helvetica-BoldOblique
[
/_Helvetica-BoldOblique/Helvetica-BoldOblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Roman Times-Roman
[
/_Times-Roman/Times-Roman 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Bold Times-Bold
[
/_Times-Bold/Times-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Italic Times-Italic
[
/_Times-Italic/Times-Italic 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-BoldItalic Times-BoldItalic
[
/_Times-BoldItalic/Times-BoldItalic 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier Courier
[
/_Courier/Courier 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-Bold Courier-Bold
[
/_Courier-Bold/Courier-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-Oblique Courier-Oblique
[
/_Courier-Oblique/Courier-Oblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-BoldOblique Courier-BoldOblique
[
/_Courier-BoldOblique/Courier-BoldOblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Symbol Symbol
[
/_Symbol/Symbol 0 0 1 TZ
%AI3_EndEncoding AdobeType
%%EndSetup

1 XR

u
 [] 0 d
0.0000 w
  0.000 0.000 0.000 1.000 K
1 J
1 j
  187.4875 452.8453 m
  187.4875 264.2795 L
  355.8070 264.2795 L
  355.8070 163.6473 L
  379.2879 163.6473 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  0.000 0.000 0.000 1.000 K
  378.5691 166.4027 m
  386.8353 163.6473 L
  378.5691 160.8918 L
  378.5691 166.4027 L
F
U
u
  0.000 0.000 0.000 0.000 k
  489.1448 621.5241 m
  571.0882 621.5241 L
  571.0882 625.9567 L
  489.1448 625.9567 L
  489.1448 621.5241 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  39.5341 535.2679 m
  565.4576 535.2679 L
  565.4576 548.0865 L
  39.5341 548.0865 L
  39.5341 535.2679 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 295.5474 538.8619 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(IDLE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  39.5341 521.7304 m
  565.4576 521.7304 L
  565.4576 535.2679 L
  39.5341 535.2679 L
  39.5341 521.7304 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 45.5241 526.1631 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(idleWhile \r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 80.6256 526.1631 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(= ClientTimeout\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  447.8136 478.4825 m
  566.5358 478.4825 L
  566.5358 492.0200 L
  447.8136 492.0200 L
  447.8136 478.4825 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 473.4509 482.7953 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SEND_RESPONSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  447.8136 433.6772 m
  566.5358 433.6772 L
  566.5358 478.4825 L
  447.8136 478.4825 L
  447.8136 433.6772 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 453.8037 469.2579 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(lastId = reqId\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 453.8037 459.6739 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(lastRespData = eapRespData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 453.8037 450.2097 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapReq = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 453.8037 440.6256 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapResp = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  507.1148 492.0200 m
  507.1148 505.4376 L
  506.0366 505.4376 L
  506.0366 513.5840 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  503.2812 512.9850 m
  506.0366 521.2512 L
  508.7920 512.9850 L
  503.2812 512.9850 L
F
U
u
  0.000 0.000 0.000 0.000 k
  497.4110 500.1664 m
  515.8602 500.1664 L
  515.8602 511.5474 L
  497.4110 511.5474 L
  497.4110 500.1664 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 498.3694 503.1614 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  106.7421 609.9035 m
  170.8353 609.9035 L
  170.8353 625.5973 L
  106.7421 625.5973 L
  106.7421 609.9035 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 120.8785 616.4925 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(DISABLED\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  106.7421 585.7038 m
  170.8353 585.7038 L
  170.8353 609.9035 L
  106.7421 609.9035 L
  106.7421 585.7038 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 112.7321 600.6789 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapRestart =\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 112.7321 591.2146 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  241.9967 620.8053 m
  364.7920 620.8053 L
  364.7920 634.4626 L
  241.9967 634.4626 L
  241.9967 620.8053 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 285.4842 625.2379 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(INITIALIZE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  241.9967 575.5208 m
  364.7920 575.5208 L
  364.7920 620.8053 L
  241.9967 620.8053 L
  241.9967 575.5208 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 247.8669 611.7005 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(selectedMethod = NONE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 247.8669 602.1165 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(methodState = NONE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 247.8669 592.6522 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(allowNotifications = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 247.8669 583.0682 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(decision = FAIL | COND_SUCC\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  170.8353 605.5907 m
  184.1331 605.5907 L
  184.1331 604.9917 L
  234.4493 604.9917 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  233.7304 607.7471 m
  241.9967 604.9917 L
  233.7304 602.1165 L
  233.7304 607.7471 L
F
U
u
  0.000 0.000 0.000 0.000 k
  183.0549 599.9601 m
  228.2196 599.9601 L
  228.2196 611.2213 L
  183.0549 611.2213 L
  183.0549 599.9601 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 184.1331 602.8353 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(portEnabled\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  322.0233 478.4825 m
  441.5840 478.4825 L
  441.5840 492.0200 L
  322.0233 492.0200 L
  322.0233 478.4825 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 365.8702 482.7953 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(DISCARD\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  322.0233 452.3661 m
  441.5840 452.3661 L
  441.5840 478.4825 L
  322.0233 478.4825 L
  322.0233 452.3661 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 328.0133 469.2579 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapReq = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 328.0133 459.6739 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapNoResp = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  381.9235 492.0200 m
  382.1631 492.0200 L
  382.1631 514.1830 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  379.4077 513.4642 m
  382.1631 521.7304 L
  384.9185 513.4642 L
  379.4077 513.4642 L
F
U
u
  0.000 0.000 0.000 0.000 k
  372.4592 501.0050 m
  390.7887 501.0050 L
  390.7887 512.3860 L
  372.4592 512.3860 L
  372.4592 501.0050 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 373.5374 504.0000 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  218.9950 452.8453 m
  218.9950 286.8020 L
  369.2246 286.8020 L
  369.2246 252.6589 L
  379.6473 252.6589 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  378.9285 255.4143 m
  387.1947 252.6589 L
  378.9285 249.9035 L
  378.9285 255.4143 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  387.1947 77.2712 m
  521.7304 77.2712 L
  521.7304 92.4859 L
  387.1947 92.4859 L
  387.1947 77.2712 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 430.4426 83.2612 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(RETRANSMIT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  387.1947 63.6140 m
  521.7304 63.6140 L
  521.7304 77.2712 L
  387.1947 77.2712 L
  387.1947 63.6140 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 393.0649 68.0466 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapRespData = lastRespData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  166.2829 522.3295 m
  166.2829 499.8070 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  169.0383 500.5258 m
  166.2829 492.2596 L
  163.5275 500.5258 L
  169.0383 500.5258 L
F
U
u
  0.000 0.000 0.000 0.000 k
  151.5474 502.0832 m
  181.2579 502.0832 L
  181.2579 513.4642 L
  151.5474 513.4642 L
  151.5474 502.0832 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 152.5058 505.0782 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(eapReq\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  86.2562 605.5907 m
  99.3145 605.5907 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  98.5957 608.3461 m
  106.7421 605.5907 L
  98.5957 602.8353 L
  98.5957 608.3461 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 22.2829 608.2263 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(\(!portEnabled ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 28.7521 598.7621 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapRestart\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 67.8070 598.7621 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  387.1947 122.5557 m
  521.7304 122.5557 L
  521.7304 136.0932 L
  387.1947 136.0932 L
  387.1947 122.5557 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 428.1664 126.9884 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(NOTIFICATION\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  387.1947 107.3411 m
  521.7304 107.3411 L
  521.7304 122.5557 L
  387.1947 122.5557 L
  387.1947 107.3411 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 393.0649 113.3311 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapRespData = buildNotify\(reqId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  273.8636 452.2463 m
  273.8636 434.8752 L
  345.6240 434.8752 L
  345.6240 444.6988 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  342.8686 444.0998 m
  345.6240 452.3661 L
  348.3794 444.0998 L
  342.8686 444.0998 L
F
U
u
  0.000 0.000 0.000 0.000 k
  300.5790 429.4842 m
  319.0283 429.4842 L
  319.0283 440.8652 L
  300.5790 440.8652 L
  300.5790 429.4842 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 301.5374 432.4792 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  129.2646 452.8453 m
  129.2646 199.3478 L
  326.5757 199.3478 L
  326.5757 77.9900 L
  379.6473 77.9900 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  378.9285 80.8652 m
  387.1947 77.9900 L
  378.9285 75.2346 L
  378.9285 80.8652 L
F
U
u
0.0000 w
  158.3760 452.8453 m
  158.3760 230.7354 L
  341.1913 230.7354 L
  341.1913 120.9983 L
  379.2879 120.9983 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  378.5691 123.7537 m
  386.8353 120.9983 L
  378.5691 118.2429 L
  378.5691 123.7537 L
F
U
u
0.0000 w
  251.3411 452.2463 m
  251.3411 353.1714 L
  313.9967 353.1714 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  313.3977 355.9268 m
  321.5441 353.1714 L
  313.3977 350.4160 L
  313.3977 355.9268 L
F
U
u
0.0000 w
  521.4908 234.2097 m
  558.1498 234.2097 L
  558.1498 433.6772 L
S
U
u
  521.7304 122.4359 m
  558.1498 122.4359 L
  558.1498 433.6772 L
S
U
u
  521.7304 77.1514 m
  558.1498 77.1514 L
  558.1498 433.6772 L
S
U
u
  522.3295 355.2080 m
  558.1498 355.2080 L
  558.1498 426.1298 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  555.3943 425.4110 m
  558.1498 433.6772 L
  560.9052 425.4110 L
  555.3943 425.4110 L
F
U
u
  0.000 0.000 0.000 0.000 k
  213.9634 194.3161 m
  303.5740 194.3161 L
  303.5740 205.6972 L
  213.9634 205.6972 L
  213.9634 194.3161 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 214.9218 197.3111 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxReq && reqId == lastId\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  303.3344 575.5208 m
  303.3344 562.1032 L
  302.4958 562.1032 L
  302.4958 555.6339 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  305.2512 556.3527 m
  302.4958 548.0865 L
  299.7404 556.3527 L
  305.2512 556.3527 L
F
U
u
  0.000 0.000 0.000 0.000 k
  293.3910 556.7121 m
  311.8403 556.7121 L
  311.8403 568.0932 L
  293.3910 568.0932 L
  293.3910 556.7121 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 294.4692 559.7072 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  96.7987 452.2463 m
  96.7987 179.1015 L
  235.8869 179.1015 L
  235.8869 122.7953 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  238.6423 123.3943 m
  235.8869 115.1281 L
  233.1314 123.3943 L
  238.6423 123.3943 L
F
U
u
0.0000 w
  62.5358 452.2463 m
  62.5358 162.3295 L
  99.4343 162.3295 L
  99.4343 122.7953 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  102.1897 123.3943 m
  99.4343 115.1281 L
  96.6789 123.3943 L
  102.1897 123.3943 L
F
U
u
  0.000 0.000 0.000 0.000 k
  172.9917 128.5458 m
  290.7554 128.5458 L
  290.7554 168.6789 L
  172.9917 168.6789 L
  172.9917 128.5458 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 182.5757 160.2928 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(\(methodState != CONT\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 186.5291 150.7088 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(\(rxFailure && decision !=\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 196.3527 141.1248 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(UNCOND_SUCC\) ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 173.9501 131.5408 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(rxSuccess && decision==FAIL\)\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  69.1248 133.2180 m
  129.3844 133.2180 L
  129.3844 154.1830 L
  69.1248 154.1830 L
  69.1248 133.2180 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 74.2762 145.7970 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxSuccess &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 70.0832 136.2130 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(decision != FAIL\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  39.5341 530.8353 m
  30.6689 530.8353 L
  30.6689 22.1631 L
  99.4343 22.1631 L
  99.4343 61.6972 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  96.6789 60.9784 m
  99.4343 69.2446 L
  102.1897 60.9784 L
  96.6789 60.9784 L
F
U
u
0.0000 w
  39.5341 538.8619 m
  21.0849 538.8619 L
  21.0849 9.8236 L
  221.2712 9.8236 L
  221.2712 79.6672 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  218.5158 78.9484 m
  221.2712 87.2146 L
  224.0266 78.9484 L
  218.5158 78.9484 L
F
U
u
  0.000 0.000 0.000 0.000 k
  529.3977 116.5657 m
  547.7271 116.5657 L
  547.7271 127.9468 L
  529.3977 127.9468 L
  529.3977 116.5657 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 530.2363 119.5607 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  529.3977 71.1614 m
  547.7271 71.1614 L
  547.7271 82.5424 L
  529.3977 82.5424 L
  529.3977 71.1614 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 530.2363 74.1564 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  387.1947 258.6489 m
  521.7304 258.6489 L
  521.7304 272.1864 L
  387.1947 272.1864 L
  387.1947 258.6489 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 428.6456 262.9617 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(GET_METHOD\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  387.1947 197.0715 m
  521.7304 197.0715 L
  521.7304 258.6489 L
  387.1947 258.6489 L
  387.1947 197.0715 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 393.0649 249.4243 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(if \(allowMethod\(reqMethod\)\) {\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 393.0649 239.9601 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   selectedMethod = reqMethod\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 393.0649 230.3760 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   methodState = INIT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 393.0649 220.7920 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(} else {\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 393.0649 211.2080 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapRespData = buildNak\(reqId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 393.0649 201.6240 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(}\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  454.5225 272.1864 m
  454.5225 285.7238 L
  454.7621 285.7238 L
  454.7621 294.9484 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  452.0067 294.2296 m
  454.7621 302.4958 L
  457.5175 294.2296 L
  452.0067 294.2296 L
F
U
u
0.0000 w
  382.1631 409.5973 m
  382.1631 423.2546 L
  382.4027 423.2546 L
  382.4027 444.6988 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  379.6473 443.9800 m
  382.4027 452.2463 L
  385.1581 443.9800 L
  379.6473 443.9800 L
F
U
u
  0.000 0.000 0.000 0.000 k
  528.6789 228.2196 m
  547.2479 228.2196 L
  547.2479 239.6007 L
  528.6789 239.6007 L
  528.6789 228.2196 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 529.7571 231.2146 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  203.3012 260.9251 m
  319.8669 260.9251 L
  319.8669 269.9101 L
  203.3012 269.9101 L
  203.3012 260.9251 L
F
U
u
  0.000 0.000 0.000 0.000 k
  199.3478 319.8669 m
  272.1864 319.8669 L
  272.1864 328.8519 L
  199.3478 328.8519 L
  199.3478 319.8669 L
F
U
u
  0.000 0.000 0.000 0.000 k
  221.8702 361.7970 m
  309.6839 361.7970 L
  309.6839 411.3943 L
  221.8702 411.3943 L
  221.8702 361.7970 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 248.7055 403.0083 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxReq &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 232.0532 393.4243 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(reqId != lastId\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 239.7205 383.9601 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(reqMethod ==\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 229.7770 374.3760 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(selectedMethod\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 222.9484 364.7920 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(methodState != DONE\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  194.7953 292.5524 m
  305.9700 292.5524 L
  305.9700 342.1498 L
  194.7953 342.1498 L
  194.7953 292.5524 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 198.3894 333.7637 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxReq && \(reqId != lastId\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 199.1082 324.1797 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(selectedMethod == NONE ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 217.9168 314.7155 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(EapTunnelled\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 199.2280 305.1314 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(reqMethod != IDENTITY &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 195.7537 295.5474 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(reqMethod != NOTIFICATION\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  364.1930 412.5923 m
  400.0133 412.5923 L
  400.0133 423.9734 L
  364.1930 423.9734 L
  364.1930 412.5923 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 365.1514 415.5874 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(!intCheck\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  521.7304 321.0649 m
  555.1547 321.0649 L
  555.3943 322.1431 L
  555.9933 323.1015 L
  557.0715 323.8203 L
  558.1498 324.0599 L
  559.3478 323.8203 L
  560.3062 323.1015 L
  560.9052 322.1431 L
  561.1448 321.0649 L
  573.3644 321.0649 L
  573.3644 40.0133 L
  275.9002 40.0133 L
  275.9002 80.5058 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  273.1448 79.7870 m
  275.9002 88.0532 L
  278.6556 79.7870 L
  273.1448 79.7870 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  387.1947 165.2047 m
  521.7304 165.2047 L
  521.7304 178.7421 L
  387.1947 178.7421 L
  387.1947 165.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 438.1098 169.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(IDENTITY\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  387.1947 149.9900 m
  521.7304 149.9900 L
  521.7304 165.2047 L
  387.1947 165.2047 L
  387.1947 149.9900 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 393.0649 156.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapRespData = buildIdentity\(reqId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  521.7304 165.2047 m
  558.1498 165.2047 L
  558.1498 433.6772 L
S
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  196.4725 225.7038 m
  319.8669 225.7038 L
  319.8669 235.7671 L
  196.4725 235.7671 L
  196.4725 225.7038 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 208.4526 275.5408 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxReq && \(reqId != lastId\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 209.2912 265.9567 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(selectedMethod == NONE ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 227.9800 256.3727 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(EapTunnelled\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 213.6040 246.9085 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(reqMethod == IDENTITY\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 206.8952 230.1364 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(rxReq && \(reqId != lastId\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 195.5141 220.5524 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(reqMethod == NOTIFICATION\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 228.0998 210.9684 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(allowNotifications\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  529.3977 159.2146 m
  547.7271 159.2146 L
  547.7271 170.5957 L
  529.3977 170.5957 L
  529.3977 159.2146 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 530.2363 162.2097 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  530.3561 349.8170 m
  548.9251 349.8170 L
  548.9251 361.1980 L
  530.3561 361.1980 L
  530.3561 349.8170 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 531.3145 352.8120 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  175.6273 101.9501 m
  295.1880 101.9501 L
  295.1880 115.1281 L
  175.6273 115.1281 L
  175.6273 101.9501 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 220.4326 106.0233 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(FAILURE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  175.6273 88.2928 m
  295.1880 88.2928 L
  295.1880 101.9501 L
  175.6273 101.9501 L
  175.6273 88.2928 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 181.4975 92.7255 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapFail = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  39.5341 101.9501 m
  159.2146 101.9501 L
  159.2146 115.1281 L
  39.5341 115.1281 L
  39.5341 101.9501 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 81.9434 106.0233 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SUCCESS\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  39.5341 69.2446 m
  159.2146 69.2446 L
  159.2146 101.9501 L
  39.5341 101.9501 L
  39.5341 69.2446 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 45.5241 92.8453 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(if \(eapKeyData != NONE\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 45.5241 83.2612 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapKeyAvailable = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 45.5241 73.6772 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapSuccess = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  379.6473 35.1015 m
  530.5957 35.1015 L
  530.5957 46.3627 L
  379.6473 46.3627 L
  379.6473 35.1015 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 380.7255 37.9767 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(methodState==DONE && decision==FAIL\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  399.7737 276.3794 m
  510.2296 276.3794 L
  510.2296 287.7604 L
  399.7737 287.7604 L
  399.7737 276.3794 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 400.7321 279.3744 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(selectedMethod == reqMethod\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  39.5341 478.6023 m
  293.0316 478.6023 L
  293.0316 492.2596 L
  39.5341 492.2596 L
  39.5341 478.6023 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 147.7138 483.0349 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(RECEIVED\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  39.5341 452.2463 m
  293.0316 452.2463 L
  293.0316 478.6023 L
  39.5341 478.6023 L
  39.5341 452.2463 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 45.5241 469.4975 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(\(rxReq, rxSuccess, rxFailure, reqId, reqMethod\) =\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 45.5241 459.9135 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   parseEapReq\(eapReqData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  322.0233 396.1797 m
  521.7304 396.1797 L
  521.7304 409.7171 L
  322.0233 409.7171 L
  322.0233 396.1797 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 407.5607 400.6123 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(METHOD\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  322.0233 302.4958 m
  521.7304 302.4958 L
  521.7304 396.1797 L
  322.0233 396.1797 L
  322.0233 302.4958 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 328.0133 387.0749 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(intCheck = m.integrityCheck\(eapReqData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 328.0133 377.4908 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(intCheck\) {\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 328.0133 367.9068 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   m.process\(eapReqData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 328.0133 358.3228 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   methodState = CONT | MAY_CONT | DONE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 328.0133 348.7388 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   decision = FAIL | COND_SUCC | UNCOND_SUCC\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 328.0133 339.1547 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   allowNotifications = TRUE | FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 328.0133 329.5707 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapRespData = m.buildResp\(reqId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 328.0133 319.9867 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   \r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 334.8419 319.9867 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapKeyData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 378.8087 319.9867 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
( = NONE | m.getKey\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 328.0133 310.5225 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(}\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  38.6955 26.3561 m
  159.0948 26.3561 L
  159.0948 56.7854 L
  38.6955 56.7854 L
  38.6955 26.3561 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 39.7737 48.3993 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(\(altAccept && decision != FAIL\) ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 65.5308 38.8153 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(idleWhile == 0 &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 44.9251 29.3511 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(decision == UNCOND_SUCC\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  161.1314 15.5740 m
  275.3012 15.5740 L
  275.3012 74.7554 L
  161.1314 74.7554 L
  161.1314 15.5740 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 199.3478 66.3694 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(altReject ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 184.7321 56.7854 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(idleWhile == 0 &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 162.0899 47.2013 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(decision != UNCOND_SUCC\) ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 193.7171 37.6173 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(altAccept &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 171.6739 28.1531 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(methodState != CONT &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 186.6489 18.5691 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(decision == FAIL\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
%%PageTrailer
gsave annotatepage grestore showpage
%%Trailer
Adobe_Illustrator_AI5 /terminate get exec
Adobe_pattern_AI5 /terminate get exec
Adobe_blend_AI5 /terminate get exec
Adobe_ColorImage_AI6 /terminate get exec
Adobe_typography_AI5 /terminate get exec
Adobe_screens_AI5 /terminate get exec
Adobe_level2_AI5 /terminate get exec
%%EOF

%%EndDocument
 @endspecial 1224 4325 a(Figure)h(3:)25 b(EAP)c(Peer)f(State)h(Machine)
0 4675 y Ff(4.1)99 b(Interface)26 b(between)h(peer)f(state)f(machine)h
(and)f(lo)o(wer)g(lay)o(er)0 4931 y Fg(The)e(lo)n(wer)h(layer)f
(presents)g(messages)h(to)g(the)f(EAP)h(peer)g(state)g(machine)e(by)i
(storing)f(the)g(pack)o(et)g(in)h(eapReqData)f(and)0
5030 y(setting)c(the)f(eapReq)g(signal)h(to)f(TR)m(UE.)h(Note)f(that)h
(despite)f(the)h(name)f(of)g(the)g(signal,)h(the)g(lo)n(wer)f(layer)g
(does)g(not)g(actually)0 5130 y(inspect)i(the)g(contents)g(of)g(the)g
(EAP)g(pack)o(et)g(\(it)g(could)g(be)g(a)g(Success)h(or)f(F)o(ailure)g
(message)g(instead)g(of)g(a)g(Request\).)0 5329 y(When)h(the)f(EAP)i
(peer)e(state)h(machine)f(has)h(\002nished)g(processing)e(the)i
(message)f(it)i(sets)g(either)e(eapResp)h(or)g(eapNoResp.)0
5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)986 b(Expires)19
b(March)g(18,)h(2004)984 b([P)o(age)20 b(9])p eop
%%Page: 10 10
10 9 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y(If)e(it)h(sets)g
(eapResp,)g(the)f(corresponding)d(response)i(pack)o(et)h(is)h(stored)e
(in)i(eapRespData.)23 b(The)17 b(lo)n(wer)g(layer)g(is)h(responsible)0
490 y(for)23 b(actually)g(transmitting)g(this)i(message.)35
b(When)24 b(the)g(EAP)g(peer)g(state)g(machine)f(authentication)f(is)i
(complete)f(it)i(will)0 589 y(set)c(eapSuccess)f(or)g(eapF)o(ailure)f
(to)h(indicate)g(to)g(the)g(lo)n(wer)g(layer)g(that)g(the)g
(authentication)e(has)j(succeeded)e(or)g(f)o(ailed.)0
910 y Fd(4.1.1)81 b(V)-8 b(ariables)20 b(\(lo)o(wer)g(lay)o(er)g(to)g
(peer\))125 1109 y Fb(\017)41 b Fg(eapReq)19 b(\(boolean\))208
1242 y(set)k(to)f(TR)m(UE)g(in)g(lo)n(wer)g(layer)m(,)g(F)-6
b(ALSE)22 b(in)g(peer)g(state)h(machine.)29 b(Indicates)22
b(there)f(is)i(a)g(request)f(a)n(v)n(ailable)f(in)i(the)208
1342 y(lo)n(wer)c(layer)-5 b(.)125 1508 y Fb(\017)41
b Fg(eapReqData)19 b(\(EAP)h(pack)o(et\))208 1641 y(set)h(in)f(lo)n
(wer)g(layer)f(when)h(eapReq)g(is)h(set)g(to)f(TR)m(UE.)g(The)g
(contents)f(of)h(the)h(a)n(v)n(ailable)e(request.)125
1807 y Fb(\017)41 b Fg(portEnabled)17 b(\(boolean\))208
1940 y(Indicates)33 b(that)i(there)f(is)h(a)g(v)n(alid)f(port)g(to)h
(use)g(for)f(the)g(communication.)65 b(If)35 b(at)g(an)o(y)e(point)h
(the)h(port)e(is)j(not)208 2039 y(a)n(v)n(ailable,)27
b(portEnabled)e(is)i(set)h(to)f(F)-6 b(ALSE)27 b(and)f(the)h(state)h
(machine)d(transitions)i(to)g(DISABLED)g(\(or)f(B)m(A)m(CK-)208
2139 y(END)p 384 2139 25 4 v 29 w(DISABLED\).)125 2305
y Fb(\017)41 b Fg(idleWhile)20 b(\(inte)o(ger\))208 2438
y(outside)f(timer)h(used)g(to)g(indicate)g(ho)n(w)g(long)f(the)h(peer)g
(has)g(w)o(aited)h(for)e(a)i(ne)n(w)f(\(v)n(alid\))f(request.)125
2604 y Fb(\017)41 b Fg(altAccept)19 b(\(boolean\))208
2737 y(alternate)g(indication)g(of)h(success,)g(as)h(described)e(in)i
([I-D.ietf-eap-rfc2284b)o(is].)125 2903 y Fb(\017)41
b Fg(altReject)20 b(\(boolean\))208 3035 y(alternate)f(indication)g(of)
h(f)o(ailure,)f(as)i(described)e(in)h([I-D.ietf-eap-rfc2284bis].)0
3356 y Fd(4.1.2)81 b(V)-8 b(ariables)20 b(\(peer)h(to)f(lo)o(wer)g(lay)
o(er\))125 3555 y Fb(\017)41 b Fg(eapResp)20 b(\(boolean\))208
3688 y(Set)g(to)h(TR)m(UE)f(in)g(peer)g(state)h(machine,)e(F)-6
b(ALSE)20 b(in)g(lo)n(wer)g(layer)-5 b(.)25 b(Indicates)19
b(there)h(is)h(a)g(response)e(to)h(be)h(sent.)125 3854
y Fb(\017)41 b Fg(eapNoResp)19 b(\(boolean\))208 3987
y(Set)24 b(to)h(TR)m(UE)f(in)g(peer)g(state)g(machine,)g(F)-6
b(ALSE)24 b(in)h(lo)n(wer)e(layer)-5 b(.)37 b(Indicates)23
b(the)i(request)e(has)h(been)g(processed,)208 4087 y(b)n(ut)c(there)f
(is)j(no)d(response)h(to)g(send.)125 4253 y Fb(\017)41
b Fg(eapSuccess)19 b(\(boolean\))208 4386 y(Set)d(to)g(TR)m(UE)g(in)g
(peer)f(state)h(machine,)g(F)-6 b(ALSE)16 b(in)f(lo)n(wer)h(layer)-5
b(.)23 b(Indicates)15 b(the)h(Peer)g(has)g(reached)e(the)i(SUCCESS)208
4485 y(state.)125 4651 y Fb(\017)41 b Fg(eapF)o(ail)19
b(\(boolean\))208 4784 y(Set)e(to)g(TR)m(UE)g(in)f(peer)h(state)g
(machine,)f(F)-6 b(ALSE)17 b(in)g(lo)n(wer)f(layer)-5
b(.)24 b(Indicates)16 b(the)h(Peer)f(has)h(reached)f(the)h(F)-6
b(AILURE)208 4884 y(state.)125 5050 y Fb(\017)41 b Fg(eapRespData)19
b(\(EAP)i(P)o(ack)o(et\))208 5183 y(Set)d(in)g(peer)f(state)i(machine)d
(when)h(eapResp)h(is)h(set)f(to)g(TR)m(UE.)g(The)f(EAP)h(pack)o(et)g
(which)f(is)i(the)e(response)g(to)h(send.)0 5656 y(V)-11
b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19 b(March)h(18,)f(2004)964
b([P)o(age)19 b(10])p eop
%%Page: 11 11
11 10 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)125 390 y
Fb(\017)41 b Fg(eapK)n(e)o(yData)18 b(\(EAP)j(K)n(e)o(y\))208
519 y(Set)28 b(in)f(peer)g(state)h(machine)e(when)h(k)o(e)o(ying)f
(material)h(becomes)f(a)n(v)n(ailable.)46 b(Set)28 b(during)e(the)h
(METHOD)g(state.)208 619 y(Note)d(that)h(this)g(document)d(does)j(not)f
(yet)h(de\002ne)f(the)g(structure)g(of)g(the)h(type)f(\224EAP)h(K)n(e)o
(y\224.)37 b(W)-7 b(e)26 b(e)o(xpect)e(it)h(to)g(be)208
718 y(de\002ned)19 b(in)h([I-D.aboba-pppe)o(xt-k)o(e)n(y-)o(pro)o(blem)
o(].)125 876 y Fb(\017)41 b Fg(eapK)n(e)o(yA)-6 b(v)n(ailable)17
b(\(boolean\))208 1005 y(Set)j(to)f(TR)m(UE)h(in)f(the)h(SUCCESS)h
(state)f(if)g(k)o(e)o(ying)d(material)j(is)g(a)n(v)n(ailable.)k(The)19
b(actual)g(k)o(e)o(y)g(is)i(stored)e(in)g(eapK)n(e)o(y-)208
1104 y(Data.)0 1421 y Fd(4.1.3)81 b(Constants)125 1621
y Fb(\017)41 b Fg(ClientT)m(imeout)19 b(\(inte)o(ger\))208
1749 y(Con\002gurable)f(amount)h(of)h(time)g(to)g(w)o(ait)h(for)f(a)g
(v)n(alid)g(request)g(before)e(aborting.)125 1907 y Fb(\017)41
b Fg(EapT)l(unnelled)17 b(\(boolean\))208 2036 y(Indication)h(of)i
(whether)f(EAP)i(is)g(running)d(inside)i(a)g(protected)f(tunnel)g(or)h
(not.)0 2370 y Ff(4.2)99 b(Interface)26 b(between)h(peer)f(state)f
(machine)h(and)f(methods)0 2625 y Fg(IN:)20 b(eapReqData)g(\(includes)f
(reqId\))0 2824 y(OUT)l(:)h(intCheck,)g(eapRespData,)f(allo)n
(wNoti\002cations,)g(decision)0 3023 y(IN/OUT)l(:)h(methodState,)f
(\(method-speci\002c)e(state\))0 3223 y(If)j(methodState==INIT)-6
b(,)17 b(the)j(method)f(starts)i(by)f(initializing)g(its)h(o)n(wn)e
(method-speci\002c)f(state.)0 3422 y(Ne)o(xt,)23 b(the)f(method)f(must)
i(decide)f(whether)f(to)i(process)f(the)h(pack)o(et)f(or)g(silently)g
(discard)g(it.)33 b(If)22 b(the)h(pack)o(et)f(looks)g(lik)o(e)h(it)0
3521 y(w)o(asn')o(t)c(sent)g(by)g(the)g(le)o(gitimate)f(authenticator)f
(\(for)i(instance,)f(it)i(has)f(in)m(v)n(alid)f(MIC,)h(this)h(case)g
(should)e(ne)n(v)o(er)f(occur)m(,)h(and)0 3621 y(the)23
b(method)e(treats)i(MIC)g(f)o(ailures)f(as)i(non-f)o(atal\),)d(the)h
(method)f(can)i(set)g(intCheck=F)-6 b(ALSE.)21 b(In)i(this)g(case,)g
(the)g(method)0 3721 y(should)c(not)h(modify)f(an)o(y)g(other)g(v)n
(ariables.)0 3920 y(If)h(the)g(method)f(decides)h(to)g(process)g(the)g
(pack)o(et,)f(it)i(beha)n(v)o(es)f(as)h(follo)n(ws.)125
4182 y Fb(\017)41 b Fg(Updates)19 b(its)j(o)n(wn)d(method-speci\002c)f
(state.)125 4340 y Fb(\017)41 b Fg(If)19 b(the)g(method)f(has)h(deri)n
(v)o(ed)e(k)o(e)o(ying)h(material)h(it)h(w)o(ants)f(to)g(e)o(xport,)f
(stores)h(the)h(k)o(e)o(ying)d(material)i(to)g(eapK)n(e)o(yData.)125
4497 y Fb(\017)41 b Fg(Creates)20 b(a)h(response)e(pack)o(et)h(\(with)g
(the)g(same)g(identi\002er)g(as)h(the)f(request\),)f(and)h(stores)g(it)
h(to)f(eapRespData.)125 4655 y Fb(\017)41 b Fg(Sets)21
b(intCheck=TR)m(UE.)0 4917 y(Ne)o(xt,)f(the)g(method)f(must)h(update)f
(methodState)g(and)h(decision)f(according)f(to)i(the)h(follo)n(wing)d
(rules.)125 5179 y Fb(\017)41 b Fg(methodState=CONT)l(:)208
5308 y(The)20 b(method)e(al)o(w)o(ays)j(continues)e(at)i(this)g(point)f
(\(and)f(the)h(peer)g(w)o(ants)h(to)f(continue)f(it\).)26
b(The)20 b(decision)f(v)n(ariable)h(is)208 5407 y(al)o(w)o(ays)g(set)h
(to)g(F)-6 b(AIL.)0 5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)965
b(Expires)19 b(March)h(18,)f(2004)964 b([P)o(age)19 b(11])p
eop
%%Page: 12 12
12 11 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)125 390 y
Fb(\017)41 b Fg(methodState=MA)-9 b(Y)p 862 390 25 4
v 27 w(CONT)l(:)208 523 y(At)23 b(this)g(point,)f(the)h(authenticator)d
(can)j(decide)f(either)g(to)h(continue)e(the)h(method)g(or)g(end)g(the)
g(con)m(v)o(ersation.)30 b(The)208 623 y(decision)20
b(v)n(ariable)f(tells)j(us)f(what)g(to)g(do)f(in)h(the)g(case)g(the)g
(con)m(v)o(ersation)d(ends.)26 b(If)21 b(the)g(current)e(situation)h
(does)h(not)208 722 y(satisfy)f(the)g(peer')-5 b(s)20
b(security)f(polic)o(y)g(\(that)h(is,)g(if)h(the)f(authenticator)e(no)n
(w)h(decides)h(to)g(allo)n(w)g(access,)g(the)g(peer)g(will)208
822 y(not)f(use)i(it\),)f(set)h(decision=F)-6 b(AIL.)19
b(Otherwise,)g(set)i(decision=COND)p 2298 822 V 29 w(SUCC.)125
988 y Fb(\017)41 b Fg(methodState=DONE:)208 1121 y(The)19
b(method)g(al)o(w)o(ays)i(continues)e(at)i(this)f(point,)f(\(or)h(the)g
(peer)g(sees)h(no)f(point)f(in)i(continuing)c(it\).)208
1254 y(If)23 b(either)g(\(a\))g(the)g(authenticator)e(has)j(informed)d
(us)j(that)f(it)h(will)g(not)f(allo)n(w)g(access,)i(or)e(\(b\))g(we')l
(re)f(not)h(willing)g(to)208 1353 y(talk)h(to)h(this)g(authenticator)e
(\(e.g.)37 b(our)24 b(security)g(polic)o(y)f(is)j(not)e(satis\002ed\),)
i(set)f(decision=F)-6 b(AIL.)23 b(\(Note)h(that)h(this)208
1453 y(state)f(can)g(occur)f(e)n(v)o(en)h(if)g(the)g(method)f(still)i
(has)f(additional)f(messages)h(left,)i(if)e(continuing)e(it)j(can')o(t)
e(change)g(the)208 1553 y(peer')-5 b(s)20 b(decision)f(to)h(success\).)
208 1685 y(If)e(both)g(\(a\))g(the)h(serv)o(er)f(has)h(informed)d(us)j
(that)g(it)g(will)h(allo)n(w)e(access)i(and)e(the)g(ne)o(xt)g(pack)o
(et)g(will)i(be)e(EAP)h(Success,)208 1785 y(and)g(\(b\))h(we')l(re)f
(willing)h(to)h(use)f(this)h(access,)f(set)h(decision=UNCOND)p
2336 1785 V 29 w(SUCC.)208 1918 y(Otherwise,)i(we)g(don')o(t)e(kno)n(w)
g(what)i(the)g(serv)o(er')-5 b(s)22 b(decision)g(is,)i(b)n(ut)f(are)g
(willing)g(to)f(use)h(the)g(access)h(if)f(the)f(serv)o(er)208
2017 y(allo)n(ws.)j(In)20 b(this)g(case,)h(set)g(decision=COND)p
1562 2017 V 28 w(SUCC.)0 2300 y(Finally)-5 b(,)33 b(the)d(method)g
(must)h(set)g(the)g(allo)n(wNoti\002cations)f(v)n(ariable.)55
b(If)31 b(the)g(ne)n(w)f(methodState)f(is)j(either)f(CONT)g(or)0
2399 y(MA)-9 b(Y)p 190 2399 V 30 w(CONT)j(,)20 b(and)f(the)h(method)e
(speci\002cation)h(does)h(not)f(forbid)g(the)g(use)h(of)g
(Noti\002cation)f(messages,)h(set)g(allo)n(wNoti\002-)0
2499 y(cations=TR)m(UE.)f(Otherwise,)h(set)h(allo)n(wNoti\002cations=F)
-6 b(ALSE.)0 2836 y Ff(4.3)99 b(P)n(eer)26 b(state)f(machine)g(local)g
(v)o(ariables)0 3092 y Fd(4.3.1)81 b(Long-term)20 b(\(maintained)f
(between)i(pack)o(ets\))125 3291 y Fb(\017)41 b Fg(selectMethod)19
b(\(EAP)h(T)-7 b(ype\))208 3424 y(Set)20 b(in)h(GET)p
587 3424 V 29 w(METHOD)f(state.)26 b(The)19 b(method)g(the)h(peer)g
(belie)n(v)o(es)g(to)g(be)g(currently)e(\224in)j(progress\224)125
3590 y Fb(\017)41 b Fg(methodState)18 b(\(enumeration\))208
3722 y(As)j(described)d(abo)o(v)o(e.)125 3889 y Fb(\017)41
b Fg(lastId)20 b(\(inte)o(ger\))208 4021 y(Set)g(in)h(SEND)p
642 4021 V 29 w(RESPONSE)g(state.)26 b(The)20 b(EAP)g(identi\002er)g(v)
n(alue)g(of)f(the)i(last)g(request.)125 4187 y Fb(\017)41
b Fg(lastRespData)20 b(\(EAP)h(pack)o(et\))208 4320 y(Set)f(in)h(SEND)p
642 4320 V 29 w(RESPONSE)g(state.)26 b(The)20 b(EAP)g(pack)o(et)g(last)
h(sent)g(from)e(the)h(peer)-5 b(.)125 4486 y Fb(\017)41
b Fg(decision)19 b(\(enumeration\))208 4619 y(As)i(described)d(abo)o(v)
o(e)0 4901 y(NO)m(TE:)25 b(EAP)h(type)f(can)g(be)h(normal)e(type)h
(\(0..253,255\),)d(or)k(an)f(e)o(xtended)f(type)h(consisting)f(of)i
(type)f(254,)g(V)-9 b(endor)n(-Id,)0 5001 y(and)20 b(V)-9
b(endor)n(-T)i(ype.)0 5656 y(V)c(ollbrecht,)19 b(et)i(al.)965
b(Expires)19 b(March)h(18,)f(2004)964 b([P)o(age)19 b(12])p
eop
%%Page: 13 13
13 12 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y Fd(4.3.2)81
b(Short-term)19 b(\(not)h(maintained)g(between)g(pack)o(ets\))125
589 y Fb(\017)41 b Fg(rxReq)19 b(\(boolean\))208 722
y(Set)h(in)h(RECEIVED)f(state.)26 b(Indicates)19 b(the)h(current)f
(recei)n(v)o(ed)g(pack)o(et)g(is)j(an)e(EAP)g(request.)125
888 y Fb(\017)41 b Fg(rxSuccess)19 b(\(boolean\))208
1021 y(Set)h(in)h(RECEIVED)f(state.)26 b(Indicates)19
b(the)h(current)f(recei)n(v)o(ed)g(pack)o(et)g(is)j(an)e(EAP)g
(Success.)125 1187 y Fb(\017)41 b Fg(rxF)o(ailure)18
b(\(boolean\))208 1320 y(Set)i(in)h(RECEIVED)f(state.)26
b(Indicates)19 b(the)h(current)f(recei)n(v)o(ed)g(pack)o(et)g(is)j(an)e
(EAP)g(F)o(ailure.)125 1486 y Fb(\017)41 b Fg(reqId)18
b(\(inte)o(ger\))208 1619 y(Set)i(in)h(RECEIVED)f(state.)26
b(The)19 b(identi\002er)h(v)n(alue)g(associated)g(with)g(the)g(current)
f(EAP)i(request.)125 1785 y Fb(\017)41 b Fg(reqMethod)18
b(\(EAP)i(type\))208 1918 y(Set)g(in)h(RECEIVED)f(state.)26
b(The)19 b(method)g(type)h(of)g(the)g(current)f(EAP)i(request)125
2084 y Fb(\017)41 b Fg(intCheck)19 b(\(boolean\))208
2217 y(Set)h(in)h(METHOD)f(state.)25 b(Indicates)20 b(whether)f(the)h
(method)f(has)h(decided)f(to)i(accept)e(the)i(current)e(pack)o(et.)0
2554 y Ff(4.4)99 b(P)n(eer)26 b(state)f(machine)g(pr)n(ocedur)n(es)125
2753 y Fb(\017)41 b Fg(parseEapReq\(\))208 2886 y(Determine)21
b(the)h(code,)f(identi\002er)h(v)n(alue,)f(and)h(type)f(of)h(the)g
(current)f(request.)30 b(Also)22 b(checks)g(that)g(the)g(length)f
(\002eld)208 2986 y(is)g(not)f(longer)e(than)i(the)g(recei)n(v)o(ed)f
(pack)o(et.)125 3152 y Fb(\017)41 b Fg(b)n(uildNotify\(\))208
3285 y(Create)20 b(the)g(appropriate)e(noti\002cation)h(response.)125
3451 y Fb(\017)41 b Fg(b)n(uildIdentity\(\))208 3583
y(Create)20 b(the)g(appropriate)e(identity)i(response.)125
3749 y Fb(\017)41 b Fg(m.inte)o(grityCheck\(\))208 3882
y(Method-speci\002c)18 b(procedure)g(to)i(test)h(for)f(the)g(v)n
(alidity)f(of)h(a)h(message.)125 4048 y Fb(\017)41 b
Fg(m.process\(\))208 4181 y(Method)19 b(procedure)e(to)k(parse)f(and)f
(process)h(a)h(request)e(for)h(that)g(method.)125 4347
y Fb(\017)41 b Fg(m.getK)n(e)o(y\(\))208 4480 y(Method)19
b(procedure)e(to)k(obtain)e(k)o(e)o(y)g(material)h(for)g(use)g(by)g
(EAP)h(or)f(lo)n(wer)f(layers.)0 4817 y Ff(4.5)99 b(P)n(eer)26
b(state)f(machine)g(states)125 5017 y Fb(\017)41 b Fg(DISABLED)208
5149 y(This)28 b(state)g(is)h(reached)e(an)o(ytime)f(service)i(from)f
(the)g(lo)n(wer)h(layer)f(is)i(interrupted)d(or)h(una)n(v)n(ailable.)47
b(Immediate)208 5249 y(transition)19 b(to)h(INITIALIZE)e(occurs)i(when)
f(the)i(port)e(becomes)g(enabled.)0 5656 y(V)-11 b(ollbrecht,)19
b(et)i(al.)965 b(Expires)19 b(March)h(18,)f(2004)964
b([P)o(age)19 b(13])p eop
%%Page: 14 14
14 13 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)125 390 y
Fb(\017)41 b Fg(INITIALIZE)208 523 y(Initializes)20 b(v)n(ariables)f
(when)h(the)g(state)h(machine)e(is)i(acti)n(v)n(ated.)125
689 y Fb(\017)41 b Fg(IDLE)208 822 y(The)19 b(state)i(machine)e(spends)
h(most)g(of)g(its)h(time)g(here,)e(w)o(aiting)h(for)g(something)e(to)j
(happen.)125 988 y Fb(\017)41 b Fg(RECEIVED)208 1121
y(This)20 b(state)h(is)g(entered)e(when)h(an)g(EAP)g(pack)o(et)g(is)h
(recei)n(v)o(ed:)j(the)c(pack)o(et)g(header)f(is)i(parsed)e(here.)125
1287 y Fb(\017)41 b Fg(GET)p 375 1287 25 4 v 29 w(METHOD)208
1420 y(This)21 b(state)i(is)f(entered)f(when)g(a)h(request)f(for)g(a)h
(ne)n(w)f(type)g(comes)h(in:)28 b(either)21 b(the)h(correct)e(method)h
(is)h(started,)g(or)f(a)208 1519 y(Nak)f(response)f(is)i(b)n(uilt.)125
1685 y Fb(\017)41 b Fg(METHOD)208 1818 y(The)18 b(method)f(processing)g
(happens)g(here:)24 b(the)18 b(request)g(from)g(the)g(authenticator)f
(is)i(processed,)f(and)g(an)g(appropri-)208 1918 y(ate)i(response)f
(pack)o(et)h(is)h(b)n(uilt.)125 2084 y Fb(\017)41 b Fg(SEND)p
430 2084 V 29 w(RESPONSE)208 2217 y(This)20 b(state)h(signals)f(the)g
(lo)n(wer)g(layer)g(that)g(a)h(response)e(pack)o(et)h(is)h(ready)e(to)h
(be)g(sent.)125 2383 y Fb(\017)41 b Fg(DISCARD)208 2516
y(This)19 b(state)i(signals)f(the)f(lo)n(wer)h(layer)f(that)g(the)h
(request)f(w)o(as)i(discarded,)d(and)h(no)g(response)g(pack)o(et)g
(will)h(be)g(sent)g(at)208 2615 y(this)g(time.)125 2781
y Fb(\017)41 b Fg(IDENTITY)-8 b(:)208 2914 y(Handles)19
b(requests)h(for)g(Identity)f(method,)f(and)i(b)n(uilds)g(a)h
(response.)125 3080 y Fb(\017)41 b Fg(NO)m(TIFICA)-9
b(TION)208 3213 y(Handles)19 b(requests)h(for)g(Noti\002cation)f
(method,)g(and)g(b)n(uilds)h(a)h(response.)125 3379 y
Fb(\017)41 b Fg(RETRANSMIT)208 3512 y(Retransmits)20
b(the)g(pre)n(vious)f(response)g(pack)o(et.)125 3678
y Fb(\017)41 b Fg(SUCCESS)208 3811 y(A)20 b(\002nal)h(state)g
(indicating)d(success.)125 3977 y Fb(\017)41 b Fg(F)-6
b(AILURE)208 4110 y(A)20 b(\002nal)h(state)g(indicating)d(f)o(ailure.)0
4489 y Fe(5)119 b(Standalone)32 b(A)-6 b(uthenticator)31
b(State)e(Machine)0 4775 y Fg(The)24 b(follo)n(wing)f(is)i(a)f(diagram)
f(of)h(the)h(\224Standalone\224)d(EAP)j(Authenticator)d(state)j
(machine.)36 b(This)24 b(diagram)f(should)h(be)0 4874
y(used)19 b(for)g(those)h(interested)f(in)g(a)h(self-contained,)e(or)h
(non-passthrough,)d(authenticator)-5 b(.)23 b(Included)17
b(is)k(an)f(e)o(xplanation)d(of)0 4974 y(the)j(primiti)n(v)o(es)f(and)h
(procedures)e(referenced)g(in)i(the)h(diagram,)d(as)j(well)g(as)g(a)f
(clari\002cation)g(of)g(notation.)0 5173 y(\(see)g
(draft-ietf-eap-statemachine-00.p)o(s)15 b(for)20 b(missing)g(diagram)f
(if)h(reading)f([.txt])h(v)o(ersion\))0 5656 y(V)-11
b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19 b(March)h(18,)f(2004)964
b([P)o(age)19 b(14])p eop
%%Page: 15 15
15 14 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)18 3729 y
@beginspecial 0 @llx 0 @lly 600 @urx 576 @ury 4276 @rwi
@setspecial
%%BeginDocument: ../../../diagrams/20030912_standalone_authenticator.eps
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: ImageMark Software Labs
%%For: () ()
%%Title: C:\USERS\IETF\EAP\State machines\AuthenticatorSplit\20030912_standalone_authenticator.eps
%%CreationDate: () ()
%%BoundingBox: 0 0 600 576
%%DocumentProcessColors: Black
%%ColorUsage:Color
%%DocumentFonts: Helvetica
%%+Helvetica-Bold
%%+Helvetica-Oblique
%%+Helvetica-BoldOblique
%%+Times-Roman
%%+Times-Bold
%%+Times-Italic
%%+Times-BoldItalic
%%+Courier
%%+Courier-Bold
%%+Courier-Oblique
%%+Courier-BoldOblique
%%+Symbol
%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
%%+ procset Adobe_screens_AI5 1.0 0
%%+ procset Adobe_typography_AI5 1.0 0
%%+ procset Adobe_ColorImage_AI6 1.1 0
%%+ procset Adobe_blend_AI5 1.0 0
%%+ procset Adobe_pattern_AI5 1.0 0
%%+ procset Adobe_Illustrator_AI5 1.0 0
%AI5_FileFormat 3.0
%AI3_ColorUsage: Color
%AI3_TemplateBox: 0 0 600 576
%AI3_TileBox: 0 0 600 576
%AI3_DocumentPreview: None
%%Template:
%%PageOrigin:0.0000 0.0000
%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%%EndComments
%%BeginProlog
%%BeginResource: procset Adobe_level2_AI5 1.2 0
%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
%%Version: 1.2 0
%%CreationDate: (04/10/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /Adobe_level2_AI5 25 dict dup begin
	put
	/packedarray where not
	{
		userdict begin
		/packedarray
		{
			array astore readonly
		} bind def
		/setpacking /pop load def
		/currentpacking false def
	 end
		0
	} if
	pop
	userdict /defaultpacking currentpacking put true setpacking
	/initialize
	{
		Adobe_level2_AI5 begin
	} bind def
	/terminate
	{
		currentdict Adobe_level2_AI5 eq
		{
		 end
		} if
	} bind def
	mark
	/setcustomcolor where not
	{
		/findcmykcustomcolor
		{
			0
			6 packedarray
		} bind def
		/findrgbcustomcolor
		{
			1
			5 packedarray
		} bind def
		/setcustomcolor
		{
			exch 
			aload pop 
			0 eq
			{
				pop
				4
				{
					4 index mul
					4 1 roll
				} repeat
				5 -1 roll pop
				setcmykcolor
			}
			{
				pop
				3
				{
					1 exch sub
					3 index mul 
					1 exch sub
					3 1 roll
				} repeat
				4 -1 roll pop
				setrgbcolor
			} ifelse
		}
		def
	} if
	
	/gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
	userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
	userdict /level2?
	systemdict /languagelevel known dup
	{
		pop systemdict /languagelevel get 2 ge
	} if
	put
/level2ScreenFreq
{
 begin
		60
		HalftoneType 1 eq
		{
			pop Frequency
		} if
		HalftoneType 2 eq
		{
			pop GrayFrequency
		} if
		HalftoneType 5 eq
		{
			pop Default level2ScreenFreq
		} if
 end
} bind def
userdict /currentScreenFreq  
	level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
level2? not
	{
		/setcmykcolor where not
		{
			/setcmykcolor
			{
				exch .11 mul add exch .59 mul add exch .3 mul add
				1 exch sub setgray
			} def
		} if
		/currentcmykcolor where not
		{
			/currentcmykcolor
			{
				0 0 0 1 currentgray sub
			} def
		} if
		/setoverprint where not
		{
			/setoverprint /pop load def
		} if
		/selectfont where not
		{
			/selectfont
			{
				exch findfont exch
				dup type /arraytype eq
				{
					makefont
				}
				{
					scalefont
				} ifelse
				setfont
			} bind def
		} if
		/cshow where not
		{
			/cshow
			{
				[
				0 0 5 -1 roll aload pop
				] cvx bind forall
			} bind def
		} if
	} if
	cleartomark
	/anyColor?
	{
		add add add 0 ne
	} bind def
	/testColor
	{
		gsave
		setcmykcolor currentcmykcolor
		grestore
	} bind def
	/testCMYKColorThrough
	{
		testColor anyColor?
	} bind def
	userdict /composite?
	level2?
	{
		gsave 1 1 1 1 setcmykcolor currentcmykcolor grestore
		add add add 4 eq
	}
	{
		1 0 0 0 testCMYKColorThrough
		0 1 0 0 testCMYKColorThrough
		0 0 1 0 testCMYKColorThrough
		0 0 0 1 testCMYKColorThrough
		and and and
	} ifelse
	put
	composite? not
	{
		userdict begin
		gsave
		/cyan? 1 0 0 0 testCMYKColorThrough def
		/magenta? 0 1 0 0 testCMYKColorThrough def
		/yellow? 0 0 1 0 testCMYKColorThrough def
		/black? 0 0 0 1 testCMYKColorThrough def
		grestore
		/isCMYKSep? cyan? magenta? yellow? black? or or or def
		/customColor? isCMYKSep? not def
	 end
	} if
 end defaultpacking setpacking
%%EndResource
%%BeginResource: procset Adobe_typography_AI5 1.0 1
%%Title: (Typography Operators)
%%Version: 1.0 
%%CreationDate:(03/26/93) ()
%%Copyright: ((C) 1987-1993 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_typography_AI5 54 dict dup begin
put
/initialize
{
 begin
 begin
	Adobe_typography_AI5 begin
	Adobe_typography_AI5
	{
		dup xcheck
		{
			bind
		} if
		pop pop
	} forall
 end
 end
 end
	Adobe_typography_AI5 begin
} def
/terminate
{
	currentdict Adobe_typography_AI5 eq
	{
	 end
	} if
} def
/modifyEncoding
{
	/_tempEncode exch ddef
	/_pntr 0 ddef
	{
		counttomark -1 roll
		dup type dup /marktype eq
		{
			pop pop exit
		}
		{
			/nametype eq
			{
				_tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
				put
			}
			{
				/_pntr exch ddef
			} ifelse
		} ifelse
	} loop
	_tempEncode
} def
/TE
{
	StandardEncoding 256 array copy modifyEncoding
	/_nativeEncoding exch def
} def
%
/TZ
{
	dup type /arraytype eq
	{
		/_wv exch def
	}
	{
		/_wv 0 def
	} ifelse
	/_useNativeEncoding exch def
	pop pop
	findfont _wv type /arraytype eq
	{
		_wv makeblendedfont
	} if
	dup length 2 add dict
 begin
	mark exch
	{
		1 index /FID ne
		{
			def
		} if
		cleartomark mark
	} forall
	pop
	/FontName exch def
	counttomark 0 eq
	{
		1 _useNativeEncoding eq
		{
			/Encoding _nativeEncoding def
		} if
		cleartomark
	}
	{
		/Encoding load 256 array copy
		modifyEncoding /Encoding exch def
	} ifelse
	FontName currentdict
 end
	definefont pop
} def
/tr
{
	_ax _ay 3 2 roll
} def
/trj
{
	_cx _cy _sp _ax _ay 6 5 roll
} def
/a0
{
	/Tx
	{
		dup
		currentpoint 3 2 roll
		tr _psf
		newpath moveto
		tr _ctm _pss
	} ddef
	/Tj
	{
		dup
		currentpoint 3 2 roll
		trj _pjsf
		newpath moveto
		trj _ctm _pjss
	} ddef
} def
/a1
{
	/Tx
	{
		dup currentpoint 4 2 roll gsave
		dup currentpoint 3 2 roll
		tr _psf
		newpath moveto
		tr _ctm _pss
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll gsave
		dup currentpoint 3 2 roll
		trj _pjsf
		newpath moveto
		trj _ctm _pjss
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/e0
{
	/Tx
	{
		tr _psf
	} ddef
	/Tj
	{
		trj _pjsf
	} ddef
} def
/e1
{
	/Tx
	{
		dup currentpoint 4 2 roll gsave
		tr _psf
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll gsave
		trj _pjsf
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/i0
{
	/Tx
	{
		tr sp
	} ddef
	/Tj
	{
		trj jsp
	} ddef
} def
/i1
{
	W N
} def
/o0
{
	/Tx
	{
		tr sw rmoveto
	} ddef
	/Tj
	{
		trj swj rmoveto
	} ddef
} def
/r0
{
	/Tx
	{
		tr _ctm _pss
	} ddef
	/Tj
	{
		trj _ctm _pjss
	} ddef
} def
/r1
{
	/Tx
	{
		dup currentpoint 4 2 roll currentpoint gsave newpath moveto
		tr _ctm _pss
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll currentpoint gsave newpath moveto
		trj _ctm _pjss
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/To
{
	pop _ctm currentmatrix pop
} def
/TO
{
	iTe _ctm setmatrix newpath
} def
/Tp
{
	pop _tm astore pop _ctm setmatrix
	_tDict begin
	/W
	{
	} def
	/h
	{
	} def
} def
/TP
{
 end
	iTm 0 0 moveto
} def
/Tr
{
	_render 3 le
	{
		currentpoint newpath moveto
	} if
	dup 8 eq
	{
		pop 0
	}
	{
		dup 9 eq
		{
			pop 1
		} if
	} ifelse
	dup /_render exch ddef
	_renderStart exch get load exec
} def
/iTm
{
	_ctm setmatrix _tm concat 0 _rise translate _hs 1 scale
} def
/Tm
{
	_tm astore pop iTm 0 0 moveto
} def
/Td
{
	_mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
} def
/iTe
{
	_render -1 eq
	{
	}
	{
		_renderEnd _render get dup null ne
		{
			load exec
		}
		{
			pop
		} ifelse
	} ifelse
	/_render -1 ddef
} def
/Ta
{
	pop
} def
/Tf
{
	dup 1000 div /_fScl exch ddef
%
	selectfont
} def
/Tl
{
	pop
	0 exch _leading astore pop
} def
/Tt
{
	pop
} def
/TW
{
	3 npop
} def
/Tw
{
	/_cx exch ddef
} def
/TC
{
	3 npop
} def
/Tc
{
	/_ax exch ddef
} def
/Ts
{
	/_rise exch ddef
	currentpoint
	iTm
	moveto
} def
/Ti
{
	3 npop
} def
/Tz
{
	100 div /_hs exch ddef
	iTm
} def
/TA
{
	pop
} def
/Tq
{
	pop
} def
/Th
{
	pop pop pop pop pop
} def
/TX
{
	pop
} def
/Tk
{
	exch pop _fScl mul neg 0 rmoveto
} def
/TK
{
	2 npop
} def
/T*
{
	_leading aload pop neg Td
} def
/T*-
{
	_leading aload pop Td
} def
/T-
{
	_hyphen Tx
} def
/T+
{
} def
/TR
{
	_ctm currentmatrix pop
	_tm astore pop
	iTm 0 0 moveto
} def
/TS
{
	currentfont 3 1 roll
	/_Symbol_ _fScl 1000 mul selectfont
	
	0 eq
	{
		Tx
	}
	{
		Tj
	} ifelse
	setfont
} def
/Xb
{
	pop pop
} def
/Tb /Xb load def
/Xe
{
	pop pop pop pop
} def
/Te /Xe load def
/XB
{
} def
/TB /XB load def
currentdict readonly pop
end
setpacking
%%EndResource
%%BeginResource: procset Adobe_screens_AI5 1.2 0
%%Title: (Adobe Illustrator (R) Version 5.0 Custom Halftone Screens ProcSet)
%%Version: 1.2 0
%%CreationDate: (03/24/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
systemdict begin
userdict /Adobe_screens_AI5 15 dict dup begin
put
/initialize
{
	Adobe_screens_AI5 begin
	/screenid
		deviceDPI 600 gt composite? not or
		{
		-1
		}
		{
			deviceDPI currentScreenFreq 
			dup dup 60 ge exch 150 le and deviceDPI 300 le and
		{
			pop 60
		} if
		div 1.41421 div 0.5 add cvi
		} ifelse
	def
	
	2 screenid eq
	{
		/customsize 16 def
		/customdata /customdata2 def
		setcustomscreen
	} if
	
	3 screenid eq
	{
		/customsize 24 def
		/customdata /customdata3 def
		setcustomscreen
	} if
	
	4 screenid eq
	{
		/customsize 16 def
		/customdata /customdata4 def
		setcustomscreen
	} if
	
	5 screenid eq
	{
		/customsize 20 def
		/customdata /customdata5 def
		setcustomscreen
	} if
	
	6 screenid eq
	{
		/customsize 24 def
		/customdata /customdata6 def
		setcustomscreen
	} if
	
	7 screenid eq
	{
		/customsize 28 def
		/customdata /customdata7 def
		setcustomscreen
	} if
	
	8 screenid eq
	{
		/customsize 16 def
		/customdata /customdata8 def
		setcustomscreen
	} if
} def
/terminate
{
	currentdict Adobe_screens_AI5 eq
	{
	 end
	} if
} def
/setcustomscreen
{
	deviceDPI customsize div 0
	{
		1 add 2 div customsize mul cvi exch
		1 add 2 div customsize mul cvi exch
		customsize mul add
		customdata load exch get 256 div
	} setscreen
} def
/customdata2 28 28 mul string def
currentfile customdata2 readhexstring
4180E8694988E2634382EA6B4B8AE061A01939C8A81737C2A21B3BCAAA1636C0
F8795998F6775796FA7B5B9AF57656952ED8B80727D6B60F2FDABA0626D5B50E
4E8DE6674786EE6F4F8EE5664685ED6EAD1434C6A61F3FCEAE1232C5A51E3ECD
F3745493FE7F5F9EF1725291FD7E5E9D24D3B30C2CDEBE0222D1B10A2ADDBD04
4483EB6C4C8BE1624281E96A4A89E364A31C3CCBAB1535C1A11A3AC9A91838C3
FB7C5C9BF4755594F97A5A99F778589730DBBB0525D4B40D2DD9B90828D7B710
508FE4654584EC6D4D8CE7684887EF70AF1131C4A41D3DCCAC1333C7A72040CF
F0715190FC7D5D9CF2735392FF80609F21D0B00929DCBC0323D2B20B2BDFBF01
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata3 28 28 mul string def
currentfile customdata3 readhexstring
011DC7F5E73D0421CBF3E43A021EC8F6E83E0522CCF2E43A2B648BC4A0762F68
8AC39E732C658CC5A177306989C29D72D5B6521A6192D9B55219608FD6B6531B
6193DAB451185F8FFCEE440C28D2FCED430B27D1FDEF450C29D3FBEC420A26D0
BEA77D366F83BCA77C356E87BFA87E377082BBA67B346D86145B99E0AE4A1259
98DFB14E155C9AE1AD4A115897DEB04D0623CDF4E63C0420CAF8EA400723CDF4
E53B031FC9F7E93F316988C19F752E678EC6A378326A88C09F742D668DC6A278
DBB350175E91D8B8551C6395DCB24F165D90D7B7541C6294FAEC420925CFFFF1
470E2BD5F9EB410824CEFEF0460D2AD4BAA57A336C85BEAA80397180B9A47933
6B84BDA97F387181105797DDAF4C145A9CE3AB480F5696DDAE4B13599BE2AC49
021EC8F6E83E0522CCF2E43A011DC7F5E73D0421CBF3E43A2C658CC5A1773069
89C29D722B648BC4A0762F688AC39E73D6B6531B6193DAB451185F8FD5B6521A
6192D9B55219608FFDEF450C29D3FBEC420A26D0FCEE440C28D2FCED430B27D1
BFA87E377082BBA67B346D86BEA77D366F83BCA77C356E87155C9AE1AD4A1158
97DEB04D145B99E0AE4A125998DFB14E0723CDF4E53B031FC9F7E93F0623CDF4
E63C0420CAF8EA40326A88C09F742D668DC6A278316988C19F752E678EC6A378
DCB24F165D90D7B7541C6294DBB350175E91D8B8551C6395F9EB410824CEFEF0
460D2AD4FAEC420925CFFFF1470E2BD5B9A479336B84BDA97F387181BAA57A33
6C85BEAA803971800F5696DDAE4B13599BE2AC49105797DDAF4C145A9CE3AB48
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata4 28 28 mul string def
currentfile customdata4 readhexstring
1139B8E0FAD2531B133BBAE2F8D05119417180A6AE9A7B4B437382A5AD987949
C08867272F6F92CAC28A66262E6E90C8E8DE5F070F37B6F2EADD5E060E36B5F0
FED6571F173FBEE6FDD5561E163EBDE5AB9E7F4F477786A1A99D7E4E467685A3
2C6C96CEC68E62222A6A95CDC58D64240C34B3F6EED95A020A32B1F5EDDB5C04
143CBBE3F9D1521A123AB9E1FBD3541C447483A4AC997A4A427281A7AF9B7C4C
C38B65252D6D91C9C1896828307093CBEBDC5D050D35B4F1E9DF60081038B7F3
FCD4551D153DBCE4FFD758201840BFE7A89C7D4D457584A2AA9F8050487887A0
296994CCC48C63232B6B97CFC78F61210931B0F4ECDA5B030B33B2F7EFD85901
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata5 28 28 mul string def
currentfile customdata5 readhexstring
010B34C3EBFCF7CE3F16020C35C4EDFBF6CD3E15102552A4D6EADDB5632B1126
54A5D5EADCB3622A3958768499C19E8C7C5E3A59778498C19D8B7B5DC8A99370
47334C7587AFC9AA936F46324B7485AEF1E5BC6B1E0A2351A3D8F2E4BC6A1E09
2351A2D7FFF9D14219050F38C6EFFEF9D04118040E37C6EFE8E0B7662D142856
A8D3E7DFB7652D132856A7D4BF9C8E7F603D5B7A8195BE9A8E7E603C5B798297
314A7389B2CCAD906D442F497289B1CBAC926E4508214FA1DBF4E2B9671B0720
4EA0DAF4E3BA691C030D36C5EDFBF6CD3F16010C34C3ECFDF8CF4017122654A6
D4E9DDB4622A112553A5D6EBDEB5642C3B59788397C09C8B7C5D3A58778599C2
9E8C7D5FCAAB926E46314B7486AFC8AA947048334D7587B0F2E4BB691D082250
A1D8F1E6BD6B1F0A2452A3D9FDF8CF4118030E36C5EEFFFAD1421A050F38C7F0
E6DFB6642C132755A7D3E8E1B8662E152957A8D2BE9A8D7E5F3B5A798296BF9B
8F80613D5C7B80952F487188B1CAAC916D443049728AB3CCAE906C43061F4D9F
DAF3E2BA681C07214FA0DBF5E1B8671A00000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata6 28 28 mul string def
currentfile customdata6 readhexstring
081A44B6E0F2FDECC150250C091B45B6E1F3FCEBC04F240C1D336199C7D8DCD3
A56C37221E33619AC8D7DBD2A46B36214864798091AEB1958C7E694C49657A81
90ADB0948B7D684BB99D8475593C405C7888A1BEBA9E8574583B3F5B7888A0BD
E4CBAA712E1215326098CFE8E4CCA9712D1114315F97CEE7F5F1C6552B040719
43B5DFFAF6F0C6542A03061842B4DEF9FFEDC352270E0B1C47B8E3F4FEECC251
260D0A1C46B7E2F4DAD5A76E39232035639CCAD5D9D4A66D38231F34629BC9D6
AF938E806A4E4A677C838FABAE928D7F694D4A667B828FAC3E5A778AA3BFBC9F
8772563A3D597689A2BEBB9F8673573A14305E97D1EAE6CDA76F2B0F132F5D96
D0E9E5CDA8702C10051742B3DDFCF8EEC4522801041641B2DDFBF7EFC5532902
091B45B6E1F3FCEBC04F240C081A44B6E0F2FDECC150250C1E33619AC8D7DBD2
A46B36211D336199C7D8DCD3A56C372249657A8190ADB0948B7D684B48647980
91AEB1958C7E694CBA9E8574583B3F5B7888A0BDB99D8475593C405C7888A1BE
E4CCA9712D1114315F97CEE7E4CBAA712E1215326098CFE8F6F0C6542A030618
42B4DEF9F5F1C6552B04071943B5DFFAFEECC251260D0A1C46B7E2F4FFEDC352
270E0B1C47B8E3F4D9D4A66D38231F34629BC9D6DAD5A76E39232035639CCAD5
AE928D7F694D4A667B828FACAF938E806A4E4A677C838FAB3D597689A2BEBB9F
8673573A3E5A778AA3BFBC9F8772563A132F5D96D0E9E5CDA8702C1014305E97
D1EAE6CDA76F2B0F041641B2DDFBF7EFC5532902051742B3DDFCF8EEC4522801
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata7 28 28 mul string def
currentfile customdata7 readhexstring
01061B44B7E1F5FEFBE6BD4A210C01071B45B8E1F6FDFBE6BC4A200B09132A54
A7D1EAF5EED9B05D331609142B55A8D2EAF4EED9AF5C32161D2D3D6993C1CBE0
CEC59B7140301E2E3D6A93C0CADFCDC49A713F3047576C7B828DA2B6A48F867E
6F5A48576C7C828CA1B6A38F867E6E59BAAA958A78634E4451667A8498ADBAAB
968977624E4350657A8398ADE3D4C99F7539251A273C6892C2D7E4D4C89E7539
241A273B6891C1D6F8F2DDB460371005122A53A7D0ECF9F2DDB360360F051229
53A6D0EBFFFDE8BE4C220D03081D46B9E3F7FFFCE7BD4B210D02071C46B8E2F7
F3F0DBB15E34180B152C56A9D3E8F3EFDAB05D34170A142C55A9D2E9DFCCC69C
7341321F2F3F6B94BFC9DECCC59C7241311F2E3E6A94BFCAB5A38E8780705B49
596D7D808BA0B4A28D877F6F5B48586D7C818BA043506479859AAFBCAC978876
614C424F64798499AEBBAB968977624D19263B6791C3D8E5D6C79D7337231825
3A6690C3D7E5D5C79E74382304112952A5CFEDFAF0DBB25E350E03102851A5CE
ECF9F1DCB25F360E01071B45B8E1F6FDFBE6BC4A200B01061B44B7E1F5FEFBE6
BD4A210C09142B55A8D2EAF4EED9AF5C321609132A54A7D1EAF5EED9B05D3316
1E2E3D6A93C0CADFCDC49A713F301D2D3D6993C1CBE0CEC59B71403048576C7C
828CA1B6A38F867E6E5947576C7B828DA2B6A48F867E6F5ABAAB968977624E43
50657A8398ADBAAA958A78634E4451667A8498ADE4D4C89E7539241A273B6891
C1D6E3D4C99F7539251A273C6892C2D7F9F2DDB360360F05122953A6D0EBF8F2
DDB460371005122A53A7D0ECFFFCE7BD4B210D02071C46B8E2F7FFFDE8BE4C22
0D03081D46B9E3F7F3EFDAB05D34170A142C55A9D2E9F3F0DBB15E34180B152C
56A9D3E8DECCC59C7241311F2E3E6A94BFCADFCCC69C7341321F2F3F6B94BFC9
B4A28D877F6F5B48586D7C818BA0B5A38E8780705B49596D7D808BA0424F6479
8499AEBBAB968977624D43506479859AAFBCAC978876614C18253A6690C3D7E5
D5C79E74382319263B6791C3D8E5D6C79D73372303102851A5CEECF9F1DCB25F
360E04112952A5CFEDFAF0DBB25E350E
pop pop
/customdata8 28 28 mul string def
currentfile customdata8 readhexstring
050F2747B6D6EEF8FEF4DCBC4D2D1507111D375F9EC6E0E9EBE6CCA4653D1F13
2939556F8EA8C1D1D3C3AE9475573B2B4961717D808999B1B39B8B867F73634B
B8A090827A6A5A42445C6C7C8492A2BAD8C8AA97785232222434546E8DACCADA
F0E2CFA768401A0A0C1C365E9DC5E4F2FAF7DFBF50301802040E2646B5D5EDFC
FFF5DDBD4E2E160806102848B7D7EFF9EAE7CDA5663E2014121E38609FC7E1E8
D2C2AF9576583C2C2A3A56708FA9C0D0B29A8A878074644C4A62727E818898B0
435B6B7B8593A3BBB9A19183796959412333536D8CADCBDBD9C9AB9677513121
0B1B355D9CC4E5F3F1E3CEA6673F1909030D2545B4D4ECFDFBF6DEBE4F2F1701
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset AGM_Gradient_Sep 1.0 0
%%Title: (AGM Gradient Procset)
%%Version: 1.0 0
%%CreationDate: (4/26/96) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /AGM_Gradient_Sep 5 dict dup begin put
/AGM_Gradient_Sep_private 100 dict def
/initialize{
	AGM_Gradient_Sep begin
	AGM_Gradient_Sep_private begin
	_compositeJob{
		initializeSinglePassSeps
	}{
		initializeMultiPassSeps
	}ifelse
	initializeSeps
	AGM_Gradient_private begin
		/_fillSD newSpotDict def
		/_rampSD newSpotDict def
		/_nCustomColorSD nd
 end
	AGM_Gradient_Sep_private 
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
	AGM_Gradient_Sep
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
 end
	
	currentdict readonly pop	
 end
}def
/terminate{
	currentdict AGM_Gradient_Sep eq{
	 end
	}if
}def
 
AGM_Gradient_Sep_private begin
/initializeSeps{
	_noImage not _level2PS not and{
		/_whiteBytes 1 makeByte8 pt
		/knockOut{
			8 setImageParms _whiteBytes /_image load 5 execImage
		}def
		/linealFill{
			mySave
			8 setImageParms
			_color{
				_nCustomColorSD begin
					cyan magenta yellow black
					_spotColor{
						spot1 begin
							/tintImage tintValue 1 exch sub makeByte8 def
					 end
						spot2 begin
							/tintImage tintValue 1 exch sub makeByte8 def
					 end
					}if
			 end
				4{
					makeByte8 4 1 roll
				}repeat
				true 4 _nCustomColorSD ncolorimage
			}{
				_nCustomColorSD/black get 1 exch sub makeByte8 
				_nCustomColorSD bwImage
			}ifelse
			myRestore
		}def
	}{
		 /knockOut{
			gsave
			false setoverprint
			1 setgray 
			0 0 1 1 rectfill
			grestore
		}def
	}ifelse
	/newSpotDict{
		11 dict dup begin
			/nSpots 2 def
			/spot1 7 dict def
			/spot2 7 dict def
	 end
	}def
	/initSpotData
	{
	 begin
			/name nd
			/tintImage nd
			/tintValue nd
			/spot_C nd
			/spot_M nd
			/spot_Y nd
			/spot_K nd
	 end
	}def
	/initSpotDict{
	 begin
			/cyanInk false def
			/magentaInk false def
			/yellowInk false def
			/blackInk false def
			/cyan nd
			/magenta nd
			/yellow nd
			/black nd
			spot1 initSpotData
			spot2 initSpotData
	 end
	}def
	/copySpotDict{
		/_dst xp
	 begin
			cyanInk magentaInk yellowInk blackInk
			cyan magenta yellow black
			spot1 spot2
	 end
		_dst begin
			/spot1 spot1 maxlength dict def
			/spot2 spot2 maxlength dict def
			spot2 copy pop
			spot1 copy pop
			/black xd
			/yellow xd
			/magenta xd
			/cyan xd
			/blackInk xd
			/yellowInk xd
			/magentaInk xd
			/cyanInk xd
	 end
	}def
	/setCustomColor
	{
		1 index /Black eq{
			6 1 roll 5 npop
			1 exch sub
			setgray
		}{
			6 1 roll _ccAry1 astore exch
			dup null eq{
				pop 0
			}if
			setcustomcolor
		}ifelse
	}def
	/setCStop{
		/_colorStyle exch pt
		
		_colorStyle 0 eq{
			0 0 0
			4 -1 roll
			1 exch sub
			_spotColor{
				/_colorStyle 3 pt
				/Black
				1 index
				1 exch sub
			}if
		}if
		_colorStyle 2 eq{
			3 npop
		}if
		_rampSD _fillSD copySpotDict
		
		_colorStyle 4 eq{ 
			pop
			9 2 roll 3 npop 6 -2 roll
		} if
		
		_colorStyle 3 eq _colorStyle 4 eq or{
				
			_fillSD begin
				exch
				dup spot1/name get eq{
					spot1 spot2
				}{
					spot2 spot1
				}ifelse
			 begin
				 begin
						/name xd
						1 exch sub /tintValue xd
						4{
							tintValue mul 4 1 roll
						}repeat
						_spotColor not{
							/tintValue null def
						}if
				 end
					/tintValue 0 def
			 end
		 end
		}if
		_fillSD nsetcustomcolor
	}def
	/renderCMYK{
		spot1/name get null eq
		spot2/name get null eq and
		dup not{
			pop
			spot1 spotConverted
		}if
		dup not{
			pop
			spot2 spotConverted
		}if
	}def
	/fill_ /fill load def
	/fillOvp{
		currentoverprint{
			_inRipSep{
				currentcolorspace 0 get
				dup /DeviceGray eq
				1 index /DeviceCMYK eq or{
					pop
					currentcmykcolor add add add 0 eq{
						newpath
					}if
				}{
					/Separation eq{
						currentcolor 0 eq{
							newpath
						}if
					}if
				}ifelse
			}{
				currentgray 1 eq{
					newpath
				}if
			}ifelse
		}if
		fill_
	}def
	/fill{
		_nCustomColorSD begin
			renderCMYK
			{
				fillOvp
			}{
				spot1 begin
					gsave
					name null ne{
						spot_C spot_M spot_Y spot_K name tintValue setCustomColor
					}{
						1 setgray
					}ifelse
					fillOvp 
					grestore
			 end
				spot2 begin
					name null ne{
						gsave
						true setoverprint
						spot_C spot_M spot_Y spot_K name tintValue setCustomColor
						fillOvp
						grestore
					}if
			 end
				newpath
			}ifelse
	 end
	}def
	/expandSpot{
		_spotColor{
			/_len xp
			_rampSD begin
				spot1 begin
					tintImage null ne{
						tintImage _len expandOne /tintImage xd
					}if
			 end
				spot2 begin
					tintImage null ne{
						tintImage _len expandOne /tintImage xd
					}if
			 end
		 end
		}{
			pop
		}ifelse
	}def
	/rampImage{
		_rampSD begin
			_color{
				/cyanInk _cyanData 0 ne def
				/magentaInk _magentaData 0 ne def
				/yellowInk _yellowData 0 ne def
				/blackInk _blackData 0 ne def
				_nSamples setImageParms
				_nSamples expandSpot
				_cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
				true 4 _rampSD ncolorimage
			}{
				/cyanInk false def
				/magentaInk false def
				/yellowInk false def
				/blackInk true def
				_nSamples setImageParms 
				_blackData _rampSD bwImage
			}ifelse
	 end
	}def
	/nsetcustomcolor where{
		pop
	}{
		/nsetcustomcolor
		{
			/_nCustomColorSD xp
			_nCustomColorSD begin
				4 copy
				/black xd
				/yellow xd
				/magenta xd
				/cyan xd
				4 copy
				0 ne /blackInk xd
				0 ne /yellowInk xd
				0 ne /magentaInk xd
				0 ne /cyanInk xd
		 end
			setcmykcolor
		}def
	}ifelse
	/nsetcustomcolorend where{
		pop
	}{
		/nsetcustomcolorend
		{
			/_nCustomColorSD null pt
		}def
	}ifelse
}def
/initializeSinglePassSeps{
	/_decodeNorm	[0 1] pt
	/_decodeInvert 	[1 0] pt
	/spotConverted
	{
	 begin
			name null eq{
				false
			}{
				tintValue null eq tintImage null eq and{
					true
				}{
					false
					currentpagedevice/SeparationOrder get{name eq or}forall
					not
				}ifelse
			}ifelse
	 end
	}def
	/dictImage
	{
		20 dict dup begin
			/Dict xd
			/Decode xd
			/DataSource xd
			/ImageMatrix xd
			/BitsPerComponent xd
			/Height xd
			/Width xd
			/ImageType 1 def
			Dict
	 end
		/_image load 1 execImage
	}def
	/bwImage{
	 begin
			gsave
			currentoverprint{
				blackInk{
					[/Separation /Black /DeviceGray{}] setcolorspace
					_decodeInvert dictImage
				}{
					5 npop
				}ifelse
			}{
				/DeviceGray setcolorspace
				_decodeNorm dictImage
			}ifelse
			grestore
	 end
	}def
	/ncolorimage where{
		pop
	}{
		/ncolorimage{
		 begin
				renderCMYK
				{
					cyanInk 
					magentaInk and
					yellowInk and
					blackInk and
					not
					currentoverprint 
					and
					{
						pop pop
						gsave
						cyanInk{
							8 copy
							[/Separation /Cyan /DeviceGray{}] setcolorspace
							3 npop
							_decodeNorm dictImage
						}if
						magentaInk{
							8 copy
							[/Separation /Magenta /DeviceGray{}] setcolorspace
							4 -1 roll
							3 npop
							_decodeNorm dictImage
						}if
						yellowInk{
							8 copy
							[/Separation /Yellow /DeviceGray{}] setcolorspace
							4 -2 roll
							3 npop
							_decodeNorm dictImage
						}if
						blackInk{
							4 -3 roll
							[/Separation /Black /DeviceGray{}] setcolorspace
							3 npop
							_decodeNorm dictImage
						}{
							8 npop
						}ifelse
						grestore
					}{
						/_colorimage load 10 execImage
					}ifelse
				}{
					6 npop
					gsave
					spot1 begin
						name null ne tintImage null ne and{
							[/Separation name /DeviceGray{}] setcolorspace
							4 copy
							tintImage 
							name /Black eq{
								_decodeNorm
							}{
								_decodeInvert
							}ifelse 
							dictImage
						}{
							1 setgray fill
						}ifelse
				 end
					spot2 begin
						true setoverprint
						name null ne tintImage null ne and{
							[/Separation name /DeviceGray{}] setcolorspace
							tintImage 
							name /Black eq{
								_decodeNorm
							}{
								_decodeInvert
							}ifelse 
							dictImage
						}{
							4 npop
							1 setgray fill
						}ifelse
				 end
					grestore
				}ifelse
		 end
		}def
	}ifelse
}def
/initializeMultiPassSeps{
	/_isCMYKSep
		_cyanPlate _magentaPlate or _yellowPlate or _blackPlate or
	pt
	/invertXfer{
		[
		{
			1 exch sub
		}/exec load systemdict /currenttransfer get exec /exec load
		] cvx systemdict /settransfer get exec
	}def
	/ccThrough{
		gsave
		1 setCustomColor
		currentcmykcolor
		grestore
		add add add 0 ne
	}def
	/spotConverted
	{
	 begin
			_isCMYKSep not{
				false
			}{
				name null eq{
					false
				}{
					tintValue null eq tintImage null eq and{
						true
					}{
						spot_C spot_M spot_Y spot_K name ccThrough
					}ifelse
				}ifelse
			}ifelse
	 end
	}def
	/spotChannel
	{
		_isCMYKSep{
			pop false
		}{
		 begin
				name null eq{
					false
				}{
					spot_C spot_M spot_Y spot_K name ccThrough 
				}ifelse
		 end
		}ifelse
	}def
	/getChannelData
	{
		_isCMYKSep dup{
			pop renderCMYK
		}if
		{
			_blackPlate{
				4 1 roll 3 npop blackInk
			}{
				_yellowPlate{
					4 2 roll 3 npop yellowInk
				}{
					_magentaPlate{
						4 3 roll 3 npop magentaInk
					}{
						3 npop cyanInk
					}ifelse
				}ifelse
			}ifelse
			{
				true /nonZeroData
			}{
				true /zeroData
			}ifelse
		}{
			4 npop
			spot1/name get null ne 
			spot1 spotChannel and{
				spot1/tintImage get dup null ne{
					false /nonZeroData
				}{
					pop false /noData
				}ifelse
			}{
				spot2/name get null ne 
				spot2 spotChannel and{
					spot2/tintImage get dup null ne{
						false /nonZeroData
					}{
						pop false /noData
					}ifelse
				}{
					false /noData
				}ifelse
			}ifelse
		}ifelse
	}def
	/renderChannelData
	{
		/_tmp xp
		_tmp /nonZeroData ne currentoverprint and{
			pop
			_tmp /zeroData eq{pop}if
			4 npop
		}{
			_tmp /nonZeroData eq{
				{
					invertXfer
				}if
					systemdict/image
				get 5 execImage
			}{
				pop
				_tmp /zeroData eq{pop}if
				4 npop
				knockOut
			}ifelse
		}ifelse
	}def
	/bwImage{
	 begin
			gsave
			dup dup dup
			getChannelData
			exch pop false exch
			renderChannelData
			grestore
	 end
	}def
	/ncolorimage{
	 begin
			pop pop
			gsave
			spot2/name get null ne spot2 spotChannel and{
				true setoverprint
			}if
			getChannelData 
			renderChannelData
			grestore
	 end
	}def
}def
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset AGM_Gradient 1.0 0
%%Title: (AGM Gradient Procset)
%%Version: 1.0 0
%%CreationDate: (4/26/96) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /AGM_Gradient 20 dict dup begin put
/AGM_Gradient_private 200 dict def
/initialize
{
	AGM_Gradient begin
	AGM_Gradient_private begin
	initializeVars
	
	/bd systemdict/mark get def
	/ed
		_level2PS 
		{
			(>>)
		}{
			(counttomark 2 idiv dup dict begin {def} repeat pop currentdict end)
		} ifelse
	cvx def
	
	_level2PS{
		initializeLev2
	}{
		initializeLev1
	}ifelse
	
	queryDevice
	
	initializeShading
	initializeOps
	_producingSeps{
		AGM_Gradient_Sep/initialize get exec
	}{
		initializeComposite
	}ifelse
	_illustrator{
		/f{}def
		/F{}def
		/s{}def
		/S{}def
		/b{}def
		/B{}def
	}if
	/image where{
		/image get /_image xd
	}if
	/colorimage where{
		/colorimage get /_colorimage xd
	}if
	/rectfill where dup{
		exch pop not _producingSeps or
	}{
		not
	}ifelse
	{
		/rectfill{
			gsave
			newpath
			4 2 roll moveto
			1 index 0 rlineto
			0 1 index rlineto
			1 index neg 0 rlineto
			pop pop
			closepath
			fill
			grestore
		}def
	}if
	/linealImage _noImage{
		/rectImage load
	}{
		_producingSeps{
			AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
			/rampImage load
		 end
		}{
			/rampImage load
		}ifelse
	}ifelse
	def
	AGM_Gradient_private
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
	AGM_Gradient
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
 end
	
	currentdict readonly pop
 end
}def
/initializeAI
{
	pop pop 
	AGM_Gradient/AGM_Gradient_private get /_illustrator true put
	AGM_Gradient/initialize get exec
		AGM_Gradient begin
}def
/unload{
	systemdict/languagelevel known{
		systemdict/languagelevel get 2 ge{
			userdict/AGM_Gradient_Sep 2 copy known{
				undef
			}{
				pop pop
			}ifelse
			userdict/AGM_Gradient 2 copy known{
				undef
			}{
				pop pop
			}ifelse
		}if
	}if
}def
/terminate{
	currentdict AGM_Gradient eq{
	 end
	}if
}def
 
AGM_Gradient_private begin
/initializeVars{
	/_d255 256 array def
	0 1 255{
		_d255 exch dup 255 div put
	}bind for
	/_d255- 256 array def
	0 1 255{
		_d255- exch 1 _d255 2 index get sub put
	}bind for
	/_sSave nd
	/_dUserSpace matrix defaultmatrix def
	/_bUMatrix matrix def
	/_imageMatrix matrix def
	/_saveMatrix matrix def
	/_xm matrix def
	/_ccAry1 5 array def
	/_level2PS 
		systemdict/languagelevel known dup{
			pop systemdict/languagelevel get 2 ge
		}if
	def
	/_level3PS
		_level2PS systemdict/shfill known and
	def
	currentdict /_illustrator known not{
		/_illustrator false def
	}if
	
}def
/initializeOps
{
	AGM_Gradient begin
	currentdict/Bc known not{
		/Bc{
		
			_renderFlag 2 eq{
				6 npop
			}{
				pushBSpace
				_rampIndex 0 eq{
					pop pop
					setCStop
				}if
				linealFill
				popBSpace
			}ifelse
		
		}def
	}if
	
	currentdict/Bg known not{
		/Bg{
			10 npop
			/_gradName xp
			/_renderFlag xp
		
			_renderFlag 2 ne{
		
				_illustrator{
					_of setoverprint
				}if
		
				_illustrator _eo and _renderFlag 3 eq or{
					eoclip
				}{
					clip
				}ifelse
		
				_gradNames _gradName 2 copy known{
					get
					mark exch aload pop
					/_gradType xp
					1 sub dup /_rampIndex xp
					/_maxRampIndex xp
					mark exch aload pop
					0 0
				}if
				pop pop
				getRampData
			}{
				mark mark
			}ifelse
		}def
	}if
	
	currentdict/Bm known not{
		/Bm{
			_renderFlag 2 ne{
				_gradType 0 eq{
					linealRamp
				}{
					radialGrad
				}ifelse
			}{
				6 npop
			}ifelse
		}def
	}if
	
	currentdict/Bh known not{
		/Bh{
			2 npop
			/_yHi xp
			/_xHi xp
			/_radHilite _xHi 0 ne _yHi 0 ne or pt
		}def
	}if
	
	currentdict/Bn known not{
		/Bn{
			AGM_Gradient_private begin
				dict /_gradNames xp
		 end
		}def
	}if
	
	currentdict/Bd known not{
		/Bd{
			AGM_Gradient begin
			AGM_Gradient_private begin
				/_nColorsBd xp
				/_gradType xp
				/_gradName xp
		}def
	}if
	
	currentdict/BD known not{
		/BD{
				currentdict/_gradNames known not{
					/_gradNames 20 dict def
				}if
				] _nColorsBd _gradType
				]  _gradName exch /_gradNames xput
		 end
		 end
		}def
	}if
	
	currentdict/Bb known not{
		/Bb{
		
			AGM_Gradient begin
			AGM_Gradient_private begin
			_producingSeps{
				AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
			}if
			mySave
		}def
	}if
	
	currentdict/BB known not{
		/BB{
		
			/_tmp xp
			cleartomark cleartomark
		
			_tmp dup
			_renderFlag
		
			myRestore
		
			_producingSeps{
			 end
			}if
		
			_illustrator
		 end
		 end
		
			{
				2 ne exch 0 gt and{
					2 eq{
						s
					}{
						S
					}ifelse
				}{
					pop newpath
				}ifelse
			}{
				pop newpath
			}ifelse
		
		
		}def
	}if
	
	currentdict/Xm known not{
		/Xm{
			_xm astore pop
		}def
	}if
	
 end
}def
/queryDevice{
	/_inRipSep
		_level2PS{
			currentpagedevice/Separations 2 copy known{
				get
			}{
				pop pop false
			}ifelse
		}{
			false
		}ifelse
	def
	/_noImage /lv1Fix where{
		pop lv1Fix
	}{
		false
	}ifelse
	def
	/_useShells where{
		pop
	}{
		/_useShells true def
	}ifelse
	
	/_useSmoothShade where{
		pop
	}{
		/_useSmoothShade false def 
	}ifelse
	/_cyanPlate 1 0 0 0 testCMYKColorThrough def
	/_magentaPlate 0 1 0 0 testCMYKColorThrough def
	/_yellowPlate 0 0 1 0 testCMYKColorThrough def
	/_blackPlate 0 0 0 1 testCMYKColorThrough def
	/_compositeJob
		_cyanPlate _magentaPlate and _yellowPlate and _blackPlate and
	def
	/_compositeSpotDevice where{
		pop
	}{
		/_compositeSpotDevice _compositeJob not _inRipSep or{
			1
		}{
			0
		}ifelse
		def
	}ifelse
	/_producingSeps _compositeSpotDevice 0 ne def
	/_deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt def
	/_dpiThreshold where{
		pop
	}{
		/_dpiThreshold 600 def
	}ifelse
	/_screenFreqThreshold where{
		pop
	}{
		/_screenFreqThreshold 150 def
	}ifelse
	/_contoneDevice where{
		pop
	}{
		/_contoneDevice false def
	}ifelse
	/_subSampleOK 
		_deviceDPI _dpiThreshold le 
		currentScreenFreq _screenFreqThreshold le and 
		_contoneDevice not and 
		_producingSeps not and
	def
}def
/initializeLev1{
	/makeByte8{
		/_tmp 0 pt
		255 mul cvi
		8 string 8{
			dup _tmp 3 index put 
			/_tmp _tmp 1 add pt
		}repeat
		exch pop
	}def
	/currentScreenFreq{
		currentscreen pop pop
	}def
	/_byte 1 string def
	/colorimage where{
		pop
	}{
		/colorimage{
			pop pop
			/_blackTmp xp
			/_yellowTmp xp
			/_magentaTmp xp
			/_cyanTmp xp
			/_cnt 0 pt
			[
			_byte dup 0
			_cyanTmp 
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .3 /mul cvx
			_magentaTmp
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .59 /mul cvx
			_yellowTmp
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .11 /mul cvx
			_blackTmp 
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx
			/add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
			/dup cvx 0 /lt cvx{
				pop 0
			}/if cvx
			/dup cvx 1 /gt cvx{
				pop 1
			}/if cvx
			255 /mul cvx /cvi cvx
			256 /mod cvx
			/dup cvx 0 /lt cvx{
				pop 0
			}/if cvx
			/put cvx
			/_cnt dup cvx 1 /add cvx /pt cvx
			] cvx
			bind
			/_image load 5 execImage
		}def
	}ifelse
}def
/initializeLev2{
	/level2ScreenFreq{
	 begin
		60
		HalftoneType 1 eq{
			pop Frequency
		}if
		HalftoneType 2 eq{
			pop GrayFrequency
		}if
		HalftoneType 5 eq{
			pop Default level2ScreenFreq
		}if
		 end
	}def
	/currentScreenFreq{
		currenthalftone level2ScreenFreq
	}def
}def
/initializeShading{
	_useSmoothShade _level3PS and{
		/_usingSmoothShade true pt
		initializeLev3_Ops
	}{
		/_usingSmoothShade false pt
	}ifelse
}def
/initializeLev3_Ops
{
	/initShFill{
		/_index _gradType 0 eq {0}{_maxRampIndex 1 sub} ifelse pt
		/_rampFuncsArray _maxRampIndex array pt
		/_boundsArray _maxRampIndex 1 sub array pt
		/_encodeArray _maxRampIndex 2 mul array pt
		/_beginCoord _rampPoint pt
		/_colorSpace null pt
		/_firstFill _rampIndex _maxRampIndex eq pt
		/_lastFill false pt
	}def
	/getRampColorSpace{
		_nSamples 1 gt{ 
			/_ndx 0 pt
			[blendColor] cvx exec
		}if
		/_C0 [currentcolor] pt
		/_C0_Space currentcolorspace pt
		
		_nSamples 1 gt{ 
			/_ndx _nSamples 1 sub pt
			[blendColor] cvx exec
		}if
		/_C1 [currentcolor] pt
		/_C1_Space currentcolorspace pt
		
		_C0_Space _C1_Space eq{
			/_rampColorSpace _C0_Space pt
		}{
			(colorspace conflict!) ==
			showpage
			stop
		}ifelse
		
		_spotColor{
			nsetcustomcolorend
		}if
	}def
	/linealShFill{
		popBSpace
		_xm aload pop pushBSpace
		
		/_size _index 1 add pt
		_size _maxRampIndex lt {
			/_rampFuncsArray _rampFuncsArray 0 _size getinterval pt
			/_boundsArray _boundsArray 0 _size 1 sub getinterval pt
			/_encodeArray _encodeArray 0 _size 2 mul getinterval pt
		}if
		
		bd
			/ShadingType 2
			/ColorSpace _colorSpace
			/Function 
				bd
					/FunctionType 3
					/Domain [0 1]
					/Functions _rampFuncsArray
					/Bounds _boundsArray
					/Encode _encodeArray
				ed
			/Extend [_firstFill _lastFill]
			/Domain [0 1] 
			/Coords [_beginCoord 0 _endCoord 0]
		ed
		shfill
	}def
	
	/radialShFill{
		/_size _maxRampIndex _index sub pt
		_size _maxRampIndex lt {
			/_rampFuncsArray _rampFuncsArray _index _size getinterval pt
			/_boundsArray _boundsArray _index _size 1 sub getinterval pt
			/_encodeArray _encodeArray _index 2 mul _size 2 mul getinterval pt
		}if
		
		/_rampLen _beginCoord _endCoord sub pt
		bd
			/ShadingType 3
			/ColorSpace _colorSpace
			/Function 
				bd
					/FunctionType 3
					/Domain [0 1]
					/Functions _rampFuncsArray
					/Bounds _boundsArray
					/Encode _encodeArray
				ed
			/Extend [_lastFill _firstFill]
			/Domain [0 1] 
			/Coords [_xHi _rampLen mul _yHi _rampLen mul _endCoord 0 0 _beginCoord] 
		ed
		shfill
		
		_radHilite{
			_xHi _rampLen mul _yHi _rampLen mul translate
		}if
	}def
	
	/fillRamp{ 
	
	
		/_invert _midPoint 0.5 lt pt
		_rampIndex _maxRampIndex eq {
			initShFill
		}if
		
		getRampColorSpace
		
		_colorSpace null eq{
			/_colorSpace _rampColorSpace pt
		}{
			_colorSpace _rampColorSpace ne{
				/_index _index 1 
				_gradType 0 eq{
					sub pt
					linealShFill
				}{
					add pt
					radialShFill
				}ifelse
				initShFill
				/_colorSpace _rampColorSpace pt
			} if
		}ifelse
		/_endCoord _endPoint pt	
		_rampFuncsArray _index
		bd
			/FunctionType 2
			/Domain [0 1]
			/N 0.5 log _invert{1 _midPoint sub}{_midPoint}ifelse log div
			_gradType 0 eq{
				_invert{/C1}{/C0}ifelse _C0
				_invert{/C0}{/C1}ifelse _C1
			}{
				_invert{/C0}{/C1}ifelse _C1
				_invert{/C1}{/C0}ifelse _C0
			}ifelse
		ed
		put
		
		_rampIndex 1 ne{
			_boundsArray _index _gradType 1 eq{1 sub}if _endCoord put
		} if
		
		0 1 _invert {exch}if
		_encodeArray _index 2 mul 1 add 3 -1 roll put
		_encodeArray _index 2 mul 3 -1 roll put
		_rampIndex 1 eq {
			/_lastFill true pt
			_gradType 0 eq{
				linealShFill
			}{
				radialShFill
			}ifelse
		}if
		/_index _index 1 
		_gradType 0 eq{
			add pt
		}{
			sub pt
		}ifelse
	}def
	
	/radialRamp
		/fillRamp load def
	
	/rampImage
		/fillRamp load def
	
	AGM_Gradient begin
	/Bc{
		6 npop
	}def
	
 end
	
	
}def
/initializeComposite{
	/bwImage{
		pop /_image load 5 execImage 
	}def
	currentdict/rampImage known not{
		/rampImage{
			_color{
				_nSamples setImageParms
	
				
				_rgbRamp{
					_redData _greenData _blueData _nSamples 3 expandColor
					true 3 null ncolorimage
				}{
					_cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
					true 4 null ncolorimage
				}ifelse
			}{
				_nSamples setImageParms _blackData null bwImage
			}ifelse
		}def
	}if
	/setCStop{
		/_colorStyle exch pt
		_colorStyle 0 eq{
			1 exch sub
			0 0 0
			4 -1 roll
		}if
		
		_colorStyle 2 eq{
			setrgbcolor 4 npop
		}if
		
		_colorStyle 3 eq{
			1 exch sub /_tmp xp
			pop
			4{
				_tmp mul 4 1 roll
			}repeat
		}if
		
		_colorStyle 4 eq{
			3 -1 roll pop pop
			1 exch sub /_tmp xp
			3{
				1 exch sub _tmp mul 1 exch sub 3 1 roll
			}repeat
			setrgbcolor 
			4 npop
		}if
		_colorStyle 2 ne _colorStyle 4 ne and{
			null nsetcustomcolor
		}if
	}def
	/nsetcustomcolor
	{
		pop setcmykcolor
	}def
	/nsetcustomcolorend
	{
	}def
	/ncolorimage{
		pop 
		/_colorimage load 10 execImage
	}def
	_noImage not _level2PS not and{
		/linealFill{
			8 setImageParms
			_color{
				currentcmykcolor
				4{
					makeByte8 4 1 roll
				}repeat
				true 4 null ncolorimage
			}{
				currentgray makeByte8 null bwImage
			}ifelse
		}def
	}if
}def
/npop{
	{pop}repeat
}def
/xd{
	exch def
}def
/nd{
	null def
}def
/pt{
	AGM_Gradient_private 3 1 roll put
}def
/xp{
	exch pt
}def
/xput{
	dup load dup length exch maxlength eq{
		dup dup load dup
		length 2 mul dict copy def
	}if
	load begin
		def
  end
}def
/mySave{
	save /_sSave xp
}def
/myRestore{
	_sSave type /savetype eq{
		_sSave restore
	}if
}def
/gMark{
	counttomark 2 add -1 roll
}def
/execImage{
	/_tmp xp
	{
		exec
	}stopped{
		$error /errorname get /undefinedresult ne{
			stop
		}{
			_tmp npop
		}ifelse
	}if
}def
/pushBSpace{
	newpath gsave
	_bUMatrix astore concat 
}def
/popBSpace{
	grestore
}def
/setImageParms{
	1 8 2 index 0 0 1 0 0 _imageMatrix astore
}def
/linealFill{
	0 0 1 1 rectfill
}def
/testCMYKColorThrough{
	gsave
	setcmykcolor currentcmykcolor
	grestore
	add add add 0 ne
}def
/expandOne	{
	/_tmp xp
	dup type /stringtype ne{
		_tmp string
		exch
		dup 0 ne{
			255 mul cvi
			0 1 _tmp 1 sub{
				3 copy
				exch put pop
			}for
		}if
		pop
	}if
}def
/expandColor{
	/_channels xp
	/_len xp
	_channels{
		_len expandOne _channels 1 roll
	}repeat
}def
/blendColor{
	
	_color{
		_rgbRamp _producingSeps not and{
			_redData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_greenData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_blueData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			/setrgbcolor cvx
		}{
			_cyanData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_magentaData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_yellowData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_blackData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
	
			_spotColor{
				_rampSD begin
					/_rampSD cvx /begin cvx
	
					spot1 begin
						tintImage dup type /stringtype eq{
							/_ndx cvx /get cvx _d255- /exch cvx /get cvx
						}{
							dup null ne{
								name type /nametype ne{
									1 exch sub
								}if
							}if
						}ifelse
				 end
					/spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
	
					spot2 begin
						tintImage dup type /stringtype eq{
							/_ndx cvx /get cvx _d255- /exch cvx /get cvx
						}{
							dup null ne{
								name type /nametype ne{
									1 exch sub
								}if
							}if
						}ifelse
				 end
					/spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
					/end cvx
			 end
				/_rampSD cvx
				/nsetcustomcolor cvx
			}{
				/setcmykcolor cvx
			}ifelse
		}ifelse
	}{
		_blackData /_ndx cvx /get cvx
		_d255 /exch cvx /get cvx
		
		_usingSmoothShade{
			1 /exch cvx /sub cvx 0 0 0 4 -1 /roll cvx /setcmykcolor cvx
		}{
			 /setgray cvx
		}ifelse
	}ifelse
}def
/linealRamp{
	pushBSpace
	_ramp{
		linealImage
	}{
		linealFill
	}ifelse
	popBSpace
	/_rampIndex _rampIndex 1 sub pt
	_rampIndex 0 gt{
		getRampData
	}if
}def
/radialGrad{
	/_firstShell true pt
	_usingSmoothShade not{
		fill
	}if
	pushBSpace
	
	_radHilite{
		_xHi _yHi _bUMatrix idtransform /_yHi xp /_xHi xp
		_rampPoint 1 lt{
			1 _rampPoint sub dup _xHi mul exch _yHi mul translate
		}if
	}if
	_rampIndex{
			radialRamp
		/_rampIndex _rampIndex 1 sub pt
		_rampIndex 0 gt{
			getRampData
		}if
	}repeat
	
	popBSpace
	
}def
/getNSamples{
	0 exch
	{
		dup type /stringtype eq{
			length exch pop exit
		}if
		pop
	}forall
	dup 0 eq{
		pop 1
	}if
}def
/getRampData{
	/_rampType gMark pt
	/_color _rampType 0 gt pt
	/_ccRGB _rampType 5 eq _rampType 6 eq or pt
	/_rgbRamp _rampType 4 eq _ccRGB or pt
	/_ccProcess _rampType 2 eq _rampType 3 eq or pt
	_producingSeps{
		_rampSD initSpotDict
		/_spotColor _ccProcess _ccRGB or pt
	}{
		/_spotColor false pt
	}ifelse
	/_ramp true pt
	100 div /_rampPoint xp
	100 div /_midPoint xp
	
	dup /_colorStyle xp
	_colorStyle 0 eq{ 
		2
	}{
		_colorStyle 1 eq{ 
			5
		}{
			_colorStyle 2 eq{
				8
			}{
				_colorStyle 3 eq{
					_producingSeps{
						_rampSD begin
							spot1 begin
								/name 3 index def
								/spot_K 4 index def
								/spot_Y 5 index def
								/spot_M 6 index def
								/spot_C 7 index def
						 end
					 end
					}if
					7
				}{
					_producingSeps{
						_rampSD begin
							spot1 begin
								/name 4 index def
								/spot_K 8 index def
								/spot_Y 9 index def
								/spot_M 10 index def
								/spot_C 11 index def
						 end
					 end
					}if
					11
				} ifelse
			}ifelse
		}ifelse
	}ifelse
	/_tmp xp
	_tmp index 100 div /_endPoint xp
	
	_gradType 1 eq{
		_tmp 1 add index 100 div /_midPoint xp
	}if
	
	_producingSeps{
		_tmp 2 add index /_nextColorStyle xp
		_nextColorStyle 3 eq{
			/_tmp _tmp 4 add pt
			_tmp index dup
			_rampSD begin
				spot1 /name get ne{
					spot2 begin
						/name xd
						/spot_K _tmp 2 add index def
						/spot_Y _tmp 3 add index def
						/spot_M _tmp 4 add index def
						/spot_C _tmp 5 add index def
				 end
				}{
					pop
				}ifelse
		 end
		}if
		_nextColorStyle 4 eq{
			/_tmp _tmp 5 add pt
			_tmp index dup
			_rampSD begin
				spot1 /name get ne{
					spot2 begin
						/name xd
						/spot_K _tmp 5 add index def
						/spot_Y _tmp 6 add index def
						/spot_M _tmp 7 add index def
						/spot_C _tmp 8 add index def
				 end
				}{
					pop
				}ifelse
		 end
		}if
	}if
	_rampType 3 eq _rampType 6 eq or{
		/_tint2Data gMark pt
	}if
	_ccProcess _ccRGB or{
		/_tint1Data gMark pt
	}if
	_rgbRamp{
		/_blueData gMark pt
		/_greenData gMark pt
		/_redData gMark pt
	}if
	
	_producingSeps{
		_rampSD begin
			_ccProcess _ccRGB or{
				_rampType 3 eq _rampType 6 eq or{
					spot2 begin
						/tintImage _gradType 0 eq{
							_tint2Data
						}{
							_tint1Data
						}ifelse
						def
						name null eq{
							/name /Black def
						}if
				 end
				}if
				spot1 begin
					/tintImage _gradType 0 eq _rampType 2 eq or _rampType 5 eq or{
						_tint1Data
					}{
						_tint2Data
					}ifelse
					def
					_rampType 2 eq _rampType 5 eq or{
						name null eq{
							/name spot2 /name get def
							spot2 /name null put
						}if
					}{
						name null eq{
							/name /Black def
						}if
					}ifelse
			 end
			}if
	 end
	}if
	/_blackData gMark pt
	_rampType 0 gt{
		counttomark 4 add -3 roll
		/_yellowData xp
		/_magentaData xp
		/_cyanData xp
	}if
	_ramp{
		/_nSamples
			[
			_rampType 0 eq {_blackData}if
			_rampType 1 eq {_cyanData _magentaData _yellowData _blackData}if
			_rampType 2 eq {_cyanData _magentaData _yellowData _blackData _tint1Data}if
			_rampType 3 eq {_cyanData _magentaData _yellowData _blackData _tint1Data _tint2Data}if
			_rampType 4 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData}if
			_rampType 5 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data}if
			_rampType 6 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data _tint2Data}if
			] getNSamples pt
		_usingSmoothShade not {/_ramp _nSamples 1 gt pt} if
	} if
	
	setCStop
}def
/rectImage{
	gsave
	/_sInc 1 pt
	/_bInc 1 _nSamples div pt
	/_uRampLen 1 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt pt
	/_pChange _uRampLen 0 eq{0}{_nSamples _uRampLen div}ifelse pt
	0
	_nSamples
	[
	/dup cvx
	/_ndx /exch cvx /pt cvx
	blendColor
	0 0 _bInc 1 /rectfill cvx
	_bInc 0 /translate cvx
	_sInc /add cvx
	] cvx
	bind
	repeat
	pop
	_spotColor{
		nsetcustomcolorend
	}if
	grestore
}def
/radialInit{
	/_nRadSamples _nSamples dup 0 eq{pop 1}if pt
	/_sInc -1 pt
	/_rampLen _rampPoint _endPoint sub pt
	/_bInc _rampLen _nSamples div neg pt
	/_optimize false pt
	_subSampleOK{
		/_uRampLen
			_rampLen 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
			0 _rampLen dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
			2 copy lt{
				exch
			}if pop
		pt
		/_pChange 
			_uRampLen 0 eq{
				0
			}{
				_nSamples _uRampLen div
			}ifelse
		pt
		_pChange .5 gt dup /_optimize xp{
			/_nRadSamples _uRampLen 2 div round cvi dup 1 le{pop 2}if pt
			/_bInc _rampLen _nRadSamples div neg pt
			/_sInc _nSamples 1 sub _nRadSamples 1 sub div neg pt
		}if
	}if
	_radHilite{
		/_xBCInc _xHi _rampLen mul _nRadSamples div pt
		/_yBCInc _yHi _rampLen mul _nRadSamples div pt
	}if
}def
currentdict/radialRamp known not{
	/radialRamp{
	
		/_saveMatrix _saveMatrix currentmatrix def
		
		radialInit
	
		_rampPoint
	
		_nSamples 1 sub
	
		_nRadSamples 
		[
			/dup cvx
	
			_optimize{
				/round cvx /cvi cvx
			}if
	
			/_ndx /exch cvx /pt cvx
			
			_useShells{
				/_firstShell cvx{
					/_firstShell false pt
				}{
					0 0 3 index 360 0 arcn fill
				}/ifelse cvx
			}if
	
			blendColor
	
			_useShells{
				0 0 3 /index cvx 0 360 /arc cvx 
			}{
				0 0 3 /index cvx 0 360 /arc cvx /fill cvx
			}ifelse
	
			/exch cvx _bInc /add cvx /exch cvx
	
			_sInc /add cvx
	
			_radHilite{
				_xBCInc _yBCInc /translate cvx
			}if
		] cvx bind
		repeat
	
		pop pop
	
		_saveMatrix setmatrix
	
		_radHilite{
			_xHi _rampLen mul _yHi _rampLen mul translate
		}if
		
		_useShells _rampIndex 1 eq and{
			fill
		}if
		_spotColor{
			nsetcustomcolorend
		}if
	
		
	}def
}if
end
end
defaultpacking setpacking
%%EndResource
%%BeginProcSet: Adobe_ColorImage_AI6 1.1 0
userdict /Adobe_ColorImage_AI6 known not
{
	userdict /Adobe_ColorImage_AI6 24 dict put 
} if
userdict /Adobe_ColorImage_AI6 get begin
/initialize
{ 
	Adobe_ColorImage_AI6 begin
	Adobe_ColorImage_AI6
	{
		dup type /arraytype eq
		{
			dup xcheck
			{
				bind
			} if
		} if
		pop pop
	} forall
} def
/terminate { end } def
currentdict /Adobe_ColorImage_AI6_Vars known not
{
	/Adobe_ColorImage_AI6_Vars 15 dict def
} if
Adobe_ColorImage_AI6_Vars begin
	/channelcount 0 def
	/sourcecount 0 def
	/sourcearray 4 array def
	/plateindex -1 def
	/XIMask 0 def
	/XIBinary 0 def
	/XIChannelCount 0 def
	/XIBitsPerPixel 0 def
	/XIImageHeight 0 def
	/XIImageWidth 0 def
	/XIImageMatrix null def
	/XIBuffer null def
	/XIDataProc null def
	/XIVersion 6 def
end
/WalkRGBString null def
/WalkCMYKString null def
/StuffRGBIntoGrayString null def
/RGBToGrayImageProc null def
/StuffCMYKIntoGrayString null def
/CMYKToGrayImageProc null def
/ColorImageCompositeEmulator null def
/SeparateCMYKImageProc null def
/FourEqual null def
/TestPlateIndex null def
currentdict /_colorimage known not
{
	/colorimage where
	{
		/colorimage get /_colorimage exch def
	}
	{
		/_colorimage null def
	} ifelse
} if
/_currenttransfer systemdict /currenttransfer get def
/colorimage null def
/XI null def
/WalkRGBString
{
	0 3 index
	dup length 1 sub 0 3 3 -1 roll
	{
		3 getinterval { } forall
		5 index exec
		3 index
	} for
	
	 5 { pop } repeat
} def
/WalkCMYKString
{
	0 3 index
	dup length 1 sub 0 4 3 -1 roll
	{
		4 getinterval { } forall
		
		6 index exec
		
		3 index
		
	} for
	
	5 { pop } repeat
	
} def
/StuffRGBIntoGrayString
{
	.11 mul exch
	
	.59 mul add exch
	
	.3 mul add
	
	cvi 3 copy put
	
	pop 1 add
} def
/RGBToGrayImageProc
{	
	Adobe_ColorImage_AI6_Vars begin 
		sourcearray 0 get exec
		dup length 3 idiv string
		dup 3 1 roll 
		
		/StuffRGBIntoGrayString load exch
		WalkRGBString
 end
} def
/StuffCMYKIntoGrayString
{
	exch .11 mul add
	
	exch .59 mul add
	
	exch .3 mul add
	
	dup 255 gt { pop 255 } if
	
	255 exch sub cvi 3 copy put
	
	pop 1 add
} def
/CMYKToGrayImageProc
{	
	Adobe_ColorImage_AI6_Vars begin
		sourcearray 0 get exec
		dup length 4 idiv string
		dup 3 1 roll 
		
		/StuffCMYKIntoGrayString load exch
		WalkCMYKString
 end
} def
/ColorImageCompositeEmulator
{
	pop true eq
	{
		Adobe_ColorImage_AI6_Vars /sourcecount get 5 add { pop } repeat
	}
	{
		Adobe_ColorImage_AI6_Vars /channelcount get 1 ne
		{
			Adobe_ColorImage_AI6_Vars begin
				sourcearray 0 3 -1 roll put
			
				channelcount 3 eq 
				{ 
					/RGBToGrayImageProc 
				}
				{ 
					/CMYKToGrayImageProc
				} ifelse
				load
		 end
		} if
		image
	} ifelse
} def
/SeparateCMYKImageProc
{	
	Adobe_ColorImage_AI6_Vars begin
		sourcecount 0 ne
		{
			sourcearray plateindex get exec
		}
		{			
			sourcearray 0 get exec
			
			dup length 4 idiv string
			
			0 2 index
			
			plateindex 4 2 index length 1 sub
			{
				get 255 exch sub
				
				3 copy put pop 1 add
				
				2 index
			} for
			pop pop exch pop
		} ifelse
 end
} def
	
/FourEqual
{
	4 index ne
	{
		pop pop pop false
	}
	{
		4 index ne
		{
			pop pop false
		}
		{
			4 index ne
			{
				pop false
			}
			{
				4 index eq
			} ifelse
		} ifelse
	} ifelse
} def
/TestPlateIndex
{
	Adobe_ColorImage_AI6_Vars begin
		/plateindex -1 def
		/setcmykcolor where
		{
			pop
			gsave
			1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
			grestore
			1 0 0 0 FourEqual 
			{ 
				/plateindex 0 def
			}
			{
				0 1 0 0 FourEqual
				{ 
					/plateindex 1 def
				}
				{
					0 0 1 0 FourEqual
					{
						/plateindex 2 def
					}
					{
						0 0 0 1 FourEqual
						{ 
							/plateindex 3 def
						}
						{
							0 0 0 0 FourEqual
							{
								/plateindex 5 def
							} if
						} ifelse
					} ifelse
				} ifelse
			} ifelse
			pop pop pop pop
		} if
		plateindex
 end
} def
/colorimage
{
	Adobe_ColorImage_AI6_Vars begin
		/channelcount 1 index def
		/sourcecount 2 index 1 eq { channelcount 1 sub } { 0 } ifelse def
		4 sourcecount add index dup 
		8 eq exch 1 eq or not
 end
	
	{
		/_colorimage load null ne
		{
			_colorimage
		}
		{
			Adobe_ColorImage_AI6_Vars /sourcecount get
			7 add { pop } repeat
		} ifelse
	}
	{
		dup 3 eq
		TestPlateIndex
		dup -1 eq exch 5 eq or or
		{
			/_colorimage load null eq
			{
				ColorImageCompositeEmulator
			}
			{
				dup 1 eq
				{
					pop pop image
				}
				{
					Adobe_ColorImage_AI6_Vars /plateindex get 5 eq
					{
						gsave
						
						0 _currenttransfer exec
						1 _currenttransfer exec
						eq
						{ 0 _currenttransfer exec 0.5 lt }
						{ 0 _currenttransfer exec 1 _currenttransfer exec gt } ifelse
						
						{ { pop 0 } } { { pop 1 } } ifelse
						systemdict /settransfer get exec
					} if
					
					_colorimage
					
					Adobe_ColorImage_AI6_Vars /plateindex get 5 eq
					{
						grestore
					} if
				} ifelse
			} ifelse
		}
		{
			dup 1 eq
			{
				pop pop
				image
			}
			{
				pop pop
				Adobe_ColorImage_AI6_Vars begin
					sourcecount -1 0
					{			
						exch sourcearray 3 1 roll put
					} for
					/SeparateCMYKImageProc load
			 end
				systemdict /image get exec
			} ifelse
		} ifelse
	} ifelse
} def
/XG
{
	pop pop
} def
/XF
{
	13 {pop} repeat
} def
/Xh
{
	Adobe_ColorImage_AI6_Vars begin
		gsave
		/XIMask exch 0 ne def
		/XIImageHeight exch def
		/XIImageWidth exch def
		/XIImageMatrix exch def
		0 0 moveto
		XIImageMatrix concat
		XIImageWidth XIImageHeight scale
		
		XIMask
		{
			/_lp /null ddef
			_fc
			/_lp /imagemask ddef
		}
		if
		/XIVersion 7 def
 end
} def
/XH
{
	Adobe_ColorImage_AI6_Vars begin
		/XIVersion 6 def
		grestore
 end
} def
/XI
{
	Adobe_ColorImage_AI6_Vars begin
		gsave
		/XIMask exch 0 ne def
		/XIBinary exch 0 ne def
		pop
		pop
		/XIChannelCount exch def
		/XIBitsPerPixel exch def
		/XIImageHeight exch def
		/XIImageWidth exch def
		pop pop pop pop
		/XIImageMatrix exch def
		XIBitsPerPixel 1 eq
		{
			XIImageWidth 8 div ceiling cvi
		}
		{
			XIImageWidth XIChannelCount mul
		} ifelse
		/XIBuffer exch string def
		XIBinary
		{
			/XIDataProc { currentfile XIBuffer readstring pop } def
			XIVersion 6 le
			{
				currentfile 128 string readline pop pop
			}
			if
		}
		{
			/XIDataProc { currentfile XIBuffer readhexstring pop } def
		} ifelse
		
		XIVersion 6 le
		{
			0 0 moveto
			XIImageMatrix concat
			XIImageWidth XIImageHeight scale
			XIMask
			{
				/_lp /null ddef
				_fc
				/_lp /imagemask ddef
			} if
		} if
		
		XIMask
		{
			XIImageWidth XIImageHeight
			false
			[ XIImageWidth 0 0 XIImageHeight neg 0 0 ]
			/XIDataProc load
			imagemask
		}
		{
			XIImageWidth XIImageHeight
			XIBitsPerPixel
			[ XIImageWidth 0 0 XIImageHeight neg 0 0 ]
			/XIDataProc load
			
			XIChannelCount 1 eq
			{
				gsave
				0 setgray
				image
				grestore
			}
			{
				false
				XIChannelCount
				colorimage
			} ifelse
		} ifelse
		grestore
 end
} def
end
%%EndProcSet
%%BeginResource: procset Adobe_Illustrator_AI5 1.1 0
%%Title: (Adobe Illustrator (R) Version 5.0 Full Prolog)
%%Version: 1.1 0
%%CreationDate: (3/7/1994) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_Illustrator_AI5_vars 81 dict dup begin
put
/_eo false def
/_lp /none def
/_pf
{
} def
/_ps
{
} def
/_psf
{
} def
/_pss
{
} def
/_pjsf
{
} def
/_pjss
{
} def
/_pola 0 def
/_doClip 0 def
/cf currentflat def
/_tm matrix def
/_renderStart
[
/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
] def
/_renderEnd
[
null null null null /i1 /i1 /i1 /i1
] def
/_render -1 def
/_rise 0 def
/_ax 0 def
/_ay 0 def
/_cx 0 def
/_cy 0 def
/_leading
[
0 0
] def
/_ctm matrix def
/_mtx matrix def
/_sp 16#020 def
/_hyphen (-) def
/_fScl 0 def
/_cnt 0 def
/_hs 1 def
/_nativeEncoding 0 def
/_useNativeEncoding 0 def
/_tempEncode 0 def
/_pntr 0 def
/_tDict 2 dict def
/_wv 0 def
/Tx
{
} def
/Tj
{
} def
/CRender
{
} def
/_AI3_savepage
{
} def
/_gf null def
/_cf 4 array def
/_if null def
/_of false def
/_fc
{
} def
/_gs null def
/_cs 4 array def
/_is null def
/_os false def
/_sc
{
} def
/_pd 1 dict def
/_ed 15 dict def
/_pm matrix def
/_fm null def
/_fd null def
/_fdd null def
/_sm null def
/_sd null def
/_sdd null def
/_i null def
/discardSave null def
/buffer 256 string def
/beginString null def
/endString null def
/endStringLength null def
/layerCnt 1 def
/layerCount 1 def
/perCent (%) 0 get def
/perCentSeen? false def
/newBuff null def
/newBuffButFirst null def
/newBuffLast null def
/clipForward? false def
end
userdict /Adobe_Illustrator_AI5 known not {
	userdict /Adobe_Illustrator_AI5 91 dict put
} if
userdict /Adobe_Illustrator_AI5 get begin
/initialize
{
	Adobe_Illustrator_AI5 dup begin
	Adobe_Illustrator_AI5_vars begin
	discardDict
	{
		bind pop pop
	} forall
	dup /nc get begin
	{
		dup xcheck 1 index type /operatortype ne and
		{
			bind
		} if
		pop pop
	} forall
 end
	newpath
} def
/terminate
{
 end
 end
} def
/_
null def
/ddef
{
	Adobe_Illustrator_AI5_vars 3 1 roll put
} def
/xput
{
	dup load dup length exch maxlength eq
	{
		dup dup load dup
		length 2 mul dict copy def
	} if
	load begin
	def
 end
} def
/npop
{
	{
		pop
	} repeat
} def
/sw
{
	dup length exch stringwidth
	exch 5 -1 roll 3 index mul add
	4 1 roll 3 1 roll mul add
} def
/swj
{
	dup 4 1 roll
	dup length exch stringwidth
	exch 5 -1 roll 3 index mul add
	4 1 roll 3 1 roll mul add
	6 2 roll /_cnt 0 ddef
	{
		1 index eq
		{
			/_cnt _cnt 1 add ddef
		} if
	} forall
	pop
	exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop
} def
/ss
{
	4 1 roll
	{
		2 npop
		(0) exch 2 copy 0 exch put pop
		gsave
		false charpath currentpoint
		4 index setmatrix
		stroke
		grestore
		moveto
		2 copy rmoveto
	} exch cshow
	3 npop
} def
/jss
{
	4 1 roll
	{
		2 npop
		(0) exch 2 copy 0 exch put
		gsave
		_sp eq
		{
			exch 6 index 6 index 6 index 5 -1 roll widthshow
			currentpoint
		}
		{
			false charpath currentpoint
			4 index setmatrix stroke
		} ifelse
		grestore
		moveto
		2 copy rmoveto
	} exch cshow
	6 npop
} def
/sp
{
	{
		2 npop (0) exch
		2 copy 0 exch put pop
		false charpath
		2 copy rmoveto
	} exch cshow
	2 npop
} def
/jsp
{
	{
		2 npop
		(0) exch 2 copy 0 exch put
		_sp eq
		{
			exch 5 index 5 index 5 index 5 -1 roll widthshow
		}
		{
			false charpath
		} ifelse
		2 copy rmoveto
	} exch cshow
	5 npop
} def
/pl
{
	transform
	0.25 sub round 0.25 add exch
	0.25 sub round 0.25 add exch
	itransform
} def
/setstrokeadjust where
{
	pop true setstrokeadjust
	/c
	{
		curveto
	} def
	/C
	/c load def
	/v
	{
		currentpoint 6 2 roll curveto
	} def
	/V
	/v load def
	/y
	{
		2 copy curveto
	} def
	/Y
	/y load def
	/l
	{
		lineto
	} def
	/L
	/l load def
	/m
	{
		moveto
	} def
}
{
	/c
	{
		pl curveto
	} def
	/C
	/c load def
	/v
	{
		currentpoint 6 2 roll pl curveto
	} def
	/V
	/v load def
	/y
	{
		pl 2 copy curveto
	} def
	/Y
	/y load def
	/l
	{
		pl lineto
	} def
	/L
	/l load def
	/m
	{
		pl moveto
	} def
} ifelse
/d
{
	setdash
} def
/cf
{
} def
/i
{
	dup 0 eq
	{
		pop cf
	} if
	setflat
} def
/j
{
	setlinejoin
} def
/J
{
	setlinecap
} def
/M
{
	setmiterlimit
} def
/w
{
	setlinewidth
} def
/XR
{
	0 ne
	/_eo exch ddef
} def
/H
{
} def
/h
{
	closepath
} def
/N
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			_eo {eoclip} {clip} ifelse /_doClip 0 ddef
		} if
		newpath
	}
	{
		/CRender
		{
			N
		} ddef
	} ifelse
} def
/n
{
	N
} def
/F
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
			/_doClip 0 ddef
		}
		{
			_pf
		} ifelse
	}
	{
		/CRender
		{
			F
		} ddef
	} ifelse
} def
/f
{
	closepath
	F
} def
/S
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
			/_doClip 0 ddef
		}
		{
			_ps
		} ifelse
	}
	{
		/CRender
		{
			S
		} ddef
	} ifelse
} def
/s
{
	closepath
	S
} def
/B
{
	_pola 0 eq
	{
		_doClip 1 eq
		gsave F grestore
		{
			gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
			/_doClip 0 ddef
		}
		{
			S
		} ifelse
	}
	{
		/CRender
		{
			B
		} ddef
	} ifelse
} def
/b
{
	closepath
	B
} def
/W
{
	/_doClip 1 ddef
} def
/*
{
	count 0 ne
	{
		dup type /stringtype eq
		{
			pop
		} if
	} if
	newpath
} def
/u
{
} def
/U
{
} def
/q
{
	_pola 0 eq
	{
		gsave
	} if
} def
/Q
{
	_pola 0 eq
	{
		grestore
	} if
} def
/*u
{
	_pola 1 add /_pola exch ddef
} def
/*U
{
	_pola 1 sub /_pola exch ddef
	_pola 0 eq
	{
		CRender
	} if
} def
/D
{
	pop
} def
/*w
{
} def
/*W
{
} def
/`
{
	/_i save ddef
	clipForward?
	{
		nulldevice
	} if
	6 1 roll 4 npop
	concat pop
	userdict begin
	/showpage
	{
	} def
	0 setgray
	0 setlinecap
	1 setlinewidth
	0 setlinejoin
	10 setmiterlimit
	[] 0 setdash
	/setstrokeadjust where {pop false setstrokeadjust} if
	newpath
	0 setgray
	false setoverprint
} def
/~
{
 end
	_i restore
} def
/O
{
	0 ne
	/_of exch ddef
	/_lp /none ddef
} def
/R
{
	0 ne
	/_os exch ddef
	/_lp /none ddef
} def
/g
{
	/_gf exch ddef
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_gf setgray
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/G
{
	/_gs exch ddef
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_gs setgray
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/k
{
	_cf astore pop
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_cf aload pop setcmykcolor
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/K
{
	_cs astore pop
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_cs aload pop setcmykcolor
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/x
{
	/_gf exch ddef
	findcmykcustomcolor
	/_if exch ddef
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_if _gf 1 exch sub setcustomcolor
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/X
{
	/_gs exch ddef
	findcmykcustomcolor
	/_is exch ddef
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_is _gs 1 exch sub setcustomcolor
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/A
{
	pop
} def
/annotatepage
{
userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
} def
/XT {
	pop pop
} def
/discard
{
	save /discardSave exch store
	discardDict begin
	/endString exch store
	gt38?
	{
		2 add
	} if
	load
	stopped
	pop
 end
	discardSave restore
} bind def
userdict /discardDict 7 dict dup begin
put
/pre38Initialize
{
	/endStringLength endString length store
	/newBuff buffer 0 endStringLength getinterval store
	/newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
	/newBuffLast newBuff endStringLength 1 sub 1 getinterval store
} def
/shiftBuffer
{
	newBuff 0 newBuffButFirst putinterval
	newBuffLast 0
	currentfile read not
	{
	stop
	} if
	put
} def
0
{
	pre38Initialize
	mark
	currentfile newBuff readstring exch pop
	{
		{
			newBuff endString eq
			{
				cleartomark stop
			} if
			shiftBuffer
		} loop
	}
	{
	stop
	} ifelse
} def
1
{
	pre38Initialize
	/beginString exch store
	mark
	currentfile newBuff readstring exch pop
	{
		{
			newBuff beginString eq
			{
				/layerCount dup load 1 add store
			}
			{
				newBuff endString eq
				{
					/layerCount dup load 1 sub store
					layerCount 0 eq
					{
						cleartomark stop
					} if
				} if
			} ifelse
			shiftBuffer
		} loop
	} if
} def
2
{
	mark
	{
		currentfile buffer readline not
		{
		stop
		} if
		endString eq
		{
			cleartomark stop
		} if
	} loop
} def
3
{
	/beginString exch store
	/layerCnt 1 store
	mark
	{
		currentfile buffer readline not
		{
		stop
		} if
		dup beginString eq
		{
			pop /layerCnt dup load 1 add store
		}
		{
			endString eq
			{
				layerCnt 1 eq
				{
					cleartomark stop
				}
				{
					/layerCnt dup load 1 sub store
				} ifelse
			} if
		} ifelse
	} loop
} def
end
userdict /clipRenderOff 15 dict dup begin
put
{
	/n /N /s /S /f /F /b /B
}
{
	{
		_doClip 1 eq
		{
			/_doClip 0 ddef _eo {eoclip} {clip} ifelse
		} if
		newpath
	} def
} forall
/Tr /pop load def
/Bb {} def
/BB /pop load def
/Bg {12 npop} def
/Bm {6 npop} def
/Bc /Bm load def
/Bh {4 npop} def
end
/Lb
{
	4 npop
	6 1 roll
	pop
	4 1 roll
	pop pop pop
	0 eq
	{
		0 eq
		{
			(%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
		}
		{
			
			/clipForward? true def
			
			/Tx /pop load def
			/Tj /pop load def
			
			currentdict end clipRenderOff begin begin
		} ifelse
	}
	{
		0 eq
		{
			save /discardSave exch store
		} if
	} ifelse
} bind def
/LB
{
	discardSave dup null ne
	{
		restore
	}
	{
		pop
		clipForward?
		{
			currentdict
		 end
		 end
		 begin
					
			/clipForward? false ddef
		} if
	} ifelse
} bind def
/Pb
{
	pop pop
	0 (%AI5_EndPalette) discard
} bind def
/Np
{
	0 (%AI5_End_NonPrinting--) discard
} bind def
/Ln /pop load def
/Ap
/pop load def
/Ar
{
	72 exch div
	0 dtransform dup mul exch dup mul add sqrt
	dup 1 lt
	{
		pop 1
	} if
	setflat
} def
/Mb
{
	q
} def
/Md
{
} def
/MB
{
	Q
} def
/nc 3 dict def
nc begin
/setgray
{
	pop
} bind def
/setcmykcolor
{
	4 npop
} bind def
/setcustomcolor
{
	2 npop
} bind def
currentdict readonly pop
end
end
setpacking
%%EndResource
%%BeginResource: procset Adobe_blend_AI5 1.4 0
%%Title: (Adobe Illustrator (R) Version 5.0 Blend ProcSet)
%%Version: 1.4 0
%%CreationDate: (11/19/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /Adobe_blend_AI5 70 dict dup begin
put
/bd
{
	bind def
} bind def
/xs
{
	exch store
} bd
/nullProc
{
	{
	}
} def
/initialize
{
	pop pop
	Adobe_blend_AI5 begin
		Adobe_blend_AI5_vars begin
			/_contoneDevice where
			{
				pop
			}
			{
				/_contoneDevice false def	
			} ifelse
					
			/_dpiThreshold where
			{
				pop
			}
			{	
				/_dpiThreshold 600 def
			} ifelse
			
			/_screenFreqThreshold where
			{
				pop
			}
			{	
				/_screenFreqThreshold 150 def
			} ifelse
			
			/tRectOK? deviceDPI _dpiThreshold le currentScreenFreq _screenFreqThreshold le and _contoneDevice not and def
	/invertXfer
	{
		[
		{
			1 exch sub
				} /exec load systemdict/currenttransfer get exec /exec load
				] cvx systemdict/settransfer get exec
			} bd
			/spotDict 3 dict dup begin
				/nSpots 2 def
				/spot1 7 dict def
				/spot2 7 dict def
		 end
			def
			composite?
			{
				/_setgray_ /setgray load def
				/_fill_ /fill load def
				/_image_ /image load def
			}
			{
				/_setgray_ systemdict/setgray get def
				/_fill_ systemdict/fill get def
				/_image_ systemdict/image get def
			} ifelse
		} bd
		/terminate
		{
			currentdict Adobe_blend_AI5_vars eq
			{
		 end
			currentdict Adobe_blend_AI5 eq
			{
		 end
		} if
	} if
} bd
/_compositeSpotDevice where
{
 begin
		_compositeSpotDevice 0 ne {userdict /composite? true put} if
 end
}
{
	/_compositeSpotDevice 0 def	
} ifelse
	
/nullString () def
/d255 256 array def
0 1 255
{
	d255 exch dup 255 div put
} bind for
/d255- 256 array def
0 1 255
{
	d255- exch 1 d255 2 index get sub put
} bind for
/dUserSpace matrix defaultmatrix def
currentdict /Adobe_blend_AI5_vars 89 dict dup begin
put
{
	/f /F /s /S /b /B
}
{
	null def
} bind forall
/byte 1 string def
/sSave null def
/setSSave
{
	save /sSave exch store
} bind def
/Bm null def
/doBlend null def
/startC? false def
/endC? false def
/fCMYK? null def
/startTint 0 def
/endTint 0 def
/bSMatrix matrix def
/bUMatrix matrix def
/dMatrix matrix def
/inLine? true def
/pTState? false def
/bHi? false def
/yHi 0 def
/xHi 0 def
/noImg /lv1Fix where
{
	pop lv1Fix
}
{
	false
} ifelse
def
/ccAry1 5 array def
/ccTint 0 def
/spotColor? false def
/colorimage? true def
[
/tint1Data
/tint2Data
/spotDict
/bAxis
/ubAxis
/pChange
/optimize?
/nSamples
/sInc
/blendProc
/_bn
/xBCInc
/yBCInc
/bInc
/bRender
/cBName
/cBType
/nColors
/color?
/blend?
/colorType
/cData
/cDataLen
/bDataLen
/rampPoint
/midPoint
/endPoint
/blendLength
/blackData
/yeData
/mgData
/cyData
/cnt1
/ndx
/_fill
/tmp
counttomark
{
	null def
} bind
repeat
pop
currentdict
end
currentdict
end
exch
begin
begin
/unitSq
{
	0 0 moveto 0 1 lineto 1 1 lineto 1 0 lineto closepath
} bd
/gMark
{
	counttomark 2 add -1 roll
} bd
/setCustomColor
{
	dup /ccTint exch store
	1 exch sub 6 1 roll
	ccAry1 astore
	exch setcustomcolor
} bd
/currentCustomColor
{
	ccAry1 aload pop ccTint
} bd
/nsetcustomcolor where 
{
	pop
}
{
	/nsetcustomcolor
	{
		pop setcmykcolor	
	} bd
} ifelse
/nsetcustomcolorend where 
{
	pop
}
{
	/nsetcustomcolorend
	{
	} bd
} ifelse
/setBSpace
{
	newpath bUMatrix astore concat unitSq
} bd
/setCStop
{
	dup 0 eq
	{
		pop
		
		spotColor?
			{
			dup 1 exch sub /ccTint exch def
			ccAry1 4 /Black put
			} if
		setgray
	}
	{
		1 eq
		{
			setcmykcolor
		}
		{
			composite? not colorType 2 lt and
			{
				forceCMYK
			}
			{
				setCustomColor
			} ifelse
		} ifelse
	} ifelse
} bd
/makeByte
{
	/tmp 0 store
	255 mul cvi
	8 string 8
	{
		dup tmp 3 index put /tmp tmp 1 add store
	} repeat
	exch pop
} bd
/setImgSpace
{
	cDataLen 1 8
	2 index 0 0 1 0 0 dMatrix astore
} bd
/bwImage
{
	setImgSpace cData /_image_ load
	{
		exec
	} stopped
	{
		$error /errorname get /undefinedresult ne
		{
			stop
		}
		{
			pop pop pop pop pop
		} ifelse
	} if
} bd
level2?
{
	/bFill
	{
		_fill
	} def
	/bCImg
	{
		/cDataLen bDataLen store
		setImgSpace
		setSSave
		expandSpot
		cyData mgData yeData cData
		expandCMYK
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
} if
/expandOne
{
			dup type /stringtype ne
			{
				cDataLen string
				exch
				dup 0 ne
				{
					255 mul cvi
					0 1 cDataLen 1 sub
					{
						3 copy
						exch put pop
					} for
				} if
				pop
			} if
} bd
/expandSpot
{
	spotColor?
	{
		spotDict begin
			spot1 begin
				tintImage type /nulltype ne
				{
					tintImage expandOne /tintImage exch def
				} if
		  end
			spot2 begin
				tintImage type /nulltype ne
				{
					tintImage expandOne /tintImage exch def
				} if
		  end
	 end
	} if
} bd
/expandCMYK
{
	4
	{
		expandOne 4 1 roll
	} repeat
} bd
/colorimage where dup
{
	exch pop
	
	/ncolorimage where
	{
		pop
	}
	{
		/ncolorimage {pop colorimage} bd
	} ifelse
} if
not
{
	/ncolorimage where 
	{
		pop
	}
	{
		/colorimage? false store
		/ncolorimage
		{
			pop pop pop
	
		setSSave
		/blackData xs
		/yeData xs
		/mgData xs
		/cyData xs
		/cnt1 0 store
		[
		byte dup 0
		cyData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .3 /mul cvx
		}
		{
			.3 mul
		} ifelse
		mgData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .59 /mul cvx
		}
		{
			.59 mul
		} ifelse
		yeData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .11 /mul cvx
		}
		{
			.11 mul
		} ifelse
		blackData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx
		} if
		/add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
		/dup cvx 0 /lt cvx
		{
			pop 0
		} /if cvx
		/dup cvx 1 /gt cvx
		{
			pop 1
		} /if cvx
		255 /mul cvx /cvi cvx
		256 /mod cvx
		/dup cvx 0 /lt cvx
		{
			pop 0
		} /if cvx
		/put cvx
		/cnt1 dup cvx 1 /add cvx /store cvx
		] cvx
		bind
			_image_ 
		sSave restore
	} bd
	} ifelse
} if
level2? not
{
	/bCImg
	{
		/cDataLen bDataLen store
		setImgSpace
		setSSave
		expandSpot
		cyData mgData yeData cData
		colorimage? 
		{
			expandCMYK
		} if
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
	/bwFill
	{
		setSSave
		/cDataLen 8 store
		/cData currentgray makeByte store
		bwImage
		sSave restore
	} bd
	/c1ImgFill
	{
		setSSave
		/cDataLen 8 store
		setImgSpace
		spotColor?
		{
			spotDict begin
				spot1 begin
					currentCustomColor makeByte /tintImage exch def
					/name exch def
					/spot_K exch def
					/spot_Y exch def
					/spot_M exch def
					/spot_C exch def
			 end
				spot2 initSpotData
		 end
		} if
		currentcmykcolor
		4
		{
			makeByte 4 1 roll
		} repeat
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
	/bFill
	noImg
	{
		{
			_fill
		}
	}
	{
		{
			color?
			{
				c1ImgFill
			}
			{
				bwFill
			} ifelse
		}
	} ifelse
	bd
} if
composite?
{
	/bCFun
	{
		color?
		{
			cyData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			mgData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			yeData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			cData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			spotColor?
			{
				spotDict begin
					/spotDict cvx /begin cvx
					spot1 begin
						tintImage dup type /stringtype eq
						{
							/ndx cvx /get cvx d255- /exch cvx /get cvx
						}
						{
							dup type /nulltype ne 
							{
								name type /nametype ne {1 exch sub} if
							} if
						} ifelse
				 end
					/spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
					spot2 begin
						tintImage dup type /stringtype eq
						{
							/ndx cvx /get cvx d255- /exch cvx /get cvx
						}
						{
							dup type /nulltype ne 
							{
								name type /nametype ne {1 exch sub} if
							} if
						} ifelse
				 end
					/spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
					/end cvx
			 end
				/spotDict cvx
				/nsetcustomcolor cvx
			}
			{
				/setcmykcolor cvx
			} ifelse
		}
		{
			cData /ndx cvx /get cvx
			d255 /exch cvx /get cvx
			/setgray cvx
		} ifelse
	} bd
	/Bc
	{
		newpath
		gsave
		setBSpace
		nColors 1 eq
		{
			pop pop
			setCStop
		} if
		bFill
		grestore
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			linImg
		}
		{
			bFill
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/rdBm
	{
		/nColors dup load 1 sub store
		_fill
		gsave
		bUMatrix astore concat
		bHi?
		{
			xHi yHi bUMatrix idtransform /yHi exch store /xHi exch store
			rampPoint 1 lt
			{
				1 rampPoint sub dup xHi mul exch yHi mul translate
			} if
		} if
		nColors
		{
			0 0 rampPoint 0 360 arc
			_fill
			blend? bHi? or
			{
				rdBlend
			} if
			nColors 1 gt
			{
				getRData
			} if
			/nColors dup load 1 sub store
		} repeat
		/nColors 1 store
		grestore
	} bd
	/cGetRData
	{
		setCStop
		/blend?
		cData type /stringtype eq
		dup not color? and
		{
			pop
			cyData type /stringtype eq
			mgData type /stringtype eq
			yeData type /stringtype eq
			or or
		} if
		store
	} def
	/cGetRData
} if
/eCStop
{
	mark
	1 index 3 mul 3 add dup 8 gt
	{
		pop 8
	} if
	1 roll
	cleartomark
} bd
composite? not
{
	/knockOut
	level2?
	{
		{
			0 0 0 0 setcmykcolor _fill
		}
	}
	{
		/bFill noImg
		{
			{
				_fill
			}
		}
		{
			{
				_of true eq
				{
					currentgray 1 ne
					{
						bwFill
					} if
				}
				{
					bwFill
				} ifelse
			}
		} ifelse
		def
		/whiteByte 1 makeByte def
		noImg
		{
			{
				0 0 0 0 setcmykcolor _fill
			}
		}
		{
			{
				cBType 0 eq
				{
					setSSave
					/cData whiteByte store
					/cDataLen 8 store
					bwImage
					sSave restore
				}
				{
					_fill
				} ifelse
			}
		} ifelse
	} ifelse
	bd
	/bCFun
	{
		cData dup type /stringtype ne
		{
			color?
			{
				1 exch sub
			} if
		}
		{
			/ndx cvx /get cvx
			color? customColor? not and
			{
				d255-
			}
			{
				d255
			} ifelse
			/exch cvx /get cvx
		} ifelse
		/_setgray_ cvx
	} bd
	/eCCBlend
	{
		dup 3 eq
		{
			pop
			mark 7 1 roll
			6 copy ccThrough? dup /blend? xs
			{
				/startC? true store
				setCustomColor
				customColor?
				{
					/cData tint1Data store
					setCDataLen
				} if
				/endC?
				3 index 3 eq
				{
					4 index 1 ne
				}
				{
					false
				} ifelse
				store
			} if
			cleartomark
			stop
		} if
		1 eq
		{
			pop pop pop
		} if
		pop
		/startC? false store
		6
		{
			8 index
		} repeat
		ccThrough? dup /blend? xs
		{
			/endC? true store
			blend? not
			{
				stop
			} if
			customColor?
			{
				/cData tint1Data store
				setCDataLen
			} if
		} if
	} bd
	/handleOP
	{
		_of not
		{
			knockOut
		} if
	} bd
	/handleROP
	{
		_of not
		{
			0 0 0 0 setcmykcolor _fill
		}
		{
			newpath	
		} ifelse
	} bd
	/rdBm
	{
		/nColors dup load 1 sub store
		blend? 
		{
			_fill
		}
		{
			handleROP
		} ifelse
		gsave
		bUMatrix astore concat
		bHi?
		{
			xHi yHi bUMatrix idtransform /yHi exch store /xHi exch store
			rampPoint 1 lt
			{
				1 rampPoint sub dup xHi mul exch yHi mul translate
			} if
		} if
		nColors
		{
			0 0 rampPoint 0 360 arc
			blend?
			{
				cData type /stringtype ne bHi? not and
				{
					cData color?
					{
						1 exch sub
					} if
					_setgray_ 
					_fill_ 
				}
				{
					cData type /stringtype ne
					{
						/cDataLen 1 store
						/bDataLen 1 store
					} if
					rdBlend
				} ifelse
			}
			{
				
				handleROP
				
				pTState?
				{
					/bAxis rampPoint endPoint sub store
					xHi bAxis mul yHi bAxis mul translate
				} if
			} ifelse
				
			nColors 1 gt
			{
				getRData
			} if
			/nColors dup load 1 sub store
		} repeat
		/nColors 1 store
		grestore
	} bd
	/ccThrough?
	{
		gsave
		pop 0 setCustomColor
		currentcmykcolor
		grestore
		anyColor?
	} bd
	/forceCMYK
	{
		exch pop
		1 exch sub 5 1 roll
		4
		{
			4 index mul 4 1 roll
		} repeat
		0
		cCMYKData dup /cData ne
		{
			dup /yeData eq
			{
				pop 1 add
			}
			{
				/mgData eq
				{
					2
				}
				{
					3
				} ifelse
				add
			} ifelse
			0
		} if
		pop
		index
		0 eq
		{
			pop pop pop pop 0 0 0 0
		} if
		setcmykcolor
		pop
		/fCMYK? true store
	} bd
	/endCapSepBc
	{
		pop pop
		dup 0 eq
		{
			pop
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				colorType 1 eq
				{
					forceCMYK
				}
				{
					fCMYK?
					{
						forceCMYK
					}
					{
						setCustomColor
					} ifelse
				} ifelse
			} ifelse
		} ifelse
		currentcmykcolor anyColor? 
		blend? and
		{
			bFill
		}
		{
			handleOP
		} ifelse
		
	} bd
} if
/cCMYKData 0 def
composite? dup not
{
	pop customColor?
} if
not
{
	/cCMYKData
	/cyData /mgData /yeData /cData
	black? not
	{
		yellow?
		{
			exch
		}
		{
			magenta?
			{
				3
			}
			{
				4
			} ifelse
			-1 roll
		} ifelse
	} if
	4 1 roll pop pop pop
	store
	/Bc
	{
		gsave
		setBSpace
		nColors 1 gt
		{
			
			blend? currentcmykcolor anyColor? and
			{
				bFill
			}
			{
				handleOP
			} ifelse
		}
		{
			endCapSepBc
		} ifelse
		grestore
		newpath
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			cCMYKData load dup type /stringtype eq
			{
				dup length /cDataLen xs
				/cData xs
				gsave
				colorType 0 ne noImg not and
				{
					invertXfer
				} if
				linImg
				grestore
			}
			{
				pop bFill
			} ifelse
		}
		{
			handleOP
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/cmykGetRData
	{
		/fCMYK? false store
		blend?
		{
			{
				cmykDataProcs colorType get exec
			} stopped
			pop
			blend?
			{
				/cData cCMYKData load store
				setCDataLen
			} if
		} if
	} def
	/cmykDataProcs
	[
	{
		pop
		black? dup /blend? xs
		{
			setgray
			0
		} if
		pop
	}
	{
		cCMYKData load dup type /stringtype ne
		{
			0 0 0
			cyan? not
			{
				4 magenta?
				{
					1
				}
				{
					yellow?
					{
						2
					}
					{
						3
					} ifelse
				} ifelse
				roll
			} if
			4 copy add add add 0 eq
			{
				/blend? false store
			} if
			
			setcmykcolor
			/startC? true store
			/endC? true store
			eCStop
			stop
		} if
		pop
		dup 0 eq
		{
			pop
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				forceCMYK
			} ifelse
		} ifelse
	} bind
	/eCCBlend load
	{
		cBType 1 eq
		{
			tint1Data tint2Data
			/tint1Data xs
			/tint2Data xs
		} if
		0 eq
		{
			black?
			{
				setgray
			}
			{
				0 0 0 4 -1 roll 1 exch sub setcmykcolor
			} ifelse
			black?
			{
				/blend? true store
			} if
			6
			{
				8 index
			} repeat
			ccThrough?
			{
				/blend? true store
			}
			{
				black?
				{
					/cData tint1Data store
					setCDataLen
				}
				{
					/blend? false store
				} ifelse
			} ifelse
		}
		{
			mark 7 1 roll
			6 copy ccThrough?
			{
				forceCMYK
				pop
				stop
			} if
			9 index 0 eq
			{
				black? dup /blend? xs
				{
					pop 1 setgray
					/cData tint2Data store
					setCDataLen
					0
				} if
				pop
			}
			{
				/blend?
				6
				{
					16 index
				} repeat
				ccThrough?
				store
				blend?
				{
					forceCMYK
				} if
			} ifelse
			cleartomark
		} ifelse
	} bind
	] def
	/cmykGetRData
} if
composite? dup not
{
	pop isCMYKSep?
} if
not
{
	/endCapSepBc
	{
		/white? false store
		pop pop
		dup 0 eq
		{
			pop
			/white? 1 index 1 eq store
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				setCustomColor
			} ifelse
		} ifelse
%
		currentcmykcolor anyColor?
		endC? or
		blend? and
		{
			bFill
		}
		{
			handleOP
		} ifelse
	} bd
	/Bc
	{
		gsave
		setBSpace
		nColors 1 gt
		{
			blend? startC? and
			{
				bFill
			}
			{
				handleOP
			} ifelse
		}
		{
			endCapSepBc
		} ifelse
		grestore
		newpath
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			cData type /stringtype eq
			{
				linImg
			}
			{
				bFill
			} ifelse
		}
		{
			handleOP
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/discardCMY
	{
		counttomark 4 add -3 roll pop pop pop
	} bd
	/testTopCC
	{
		6 copy ccThrough?
	} bd
	/getCRamp
	{
		{
			ccDataProcs colorType 2 sub get exec
		} stopped pop
		blend? cDataLen 0 eq and
		{
			/cDataLen bDataLen store
		} if
	} bd
	/ccGetRData
	{
		/fCMYK? false store
		/startC? false store
		/endC? false store
		colorType 2 lt
		{
			/blend? false def
		} if
		blend?
		{
			getCRamp
		}
		{
			setCStop
		} ifelse
		blend?
		{
			/blend? cData 1 ne store
			blend?
			{
				cData dup type /stringtype ne
				{
					1 exch sub /cData xs 0
				} if
				pop
			} if
		} if
	} def
	/ccDataProcs
	[
	/eCCBlend load
	{
		cBType 1 eq
		{
			tint1Data tint2Data
			/tint1Data xs
			/tint2Data xs
		} if
		0 eq
		{
			/blend? false store
			pop
		}
		{
			mark 7 1 roll
			testTopCC
			{
				/blend? 1 index 1 ne store
				/startC? blend? store
				/endC? false store
				blend? not
				{
					cleartomark stop
				} if
				/cData tint1Data store
				setCDataLen
				setCustomColor
				pop
				stop
			} if
			cleartomark
		} ifelse
		2 index 0 eq
		{
			/blend? false store
		}
		{
			mark 6
			{
				9 index
			} repeat
			testTopCC dup /blend? xs
			{
				/blend? 1 index 1 ne store
				/endC? blend? store
				/startC? false store
				blend? not
				{
					cleartomark stop
				} if
				/cData tint2Data store
				setCDataLen
			} if
			cleartomark
		} ifelse
	} bind
	] def
	/ccGetRData
} if
load Adobe_blend_AI5_vars /getData 3 -1 roll put
/setCDataLen
{
	/cDataLen 0 cData dup type /stringtype eq
	{
		length exch
	} if
	pop store
} bd
/initSpotData
{
 begin
		/name null def
		/tintImage null def
		/tintValue null def
		/spot_C  null def
		/spot_M  null def
		/spot_Y  null def
		/spot_K  null def
 end
} bd
/getRData
{
	/colorType gMark store
	_compositeSpotDevice 0 ne
	{
		spotDict begin
			spot1 initSpotData
			spot2 initSpotData
	 end
		/spotColor? colorType 2 eq colorType 3 eq or def
	} 
	{
		/spotColor? false store
	} ifelse
	/blend? true store
	0 0 0 0 setcmykcolor
	100 div /rampPoint xs
% (between 13 and 87%) 
	100 div /midPoint xs
	dup 0 eq
	{
		2
	}
	{
		dup 1 eq
		{
			5
		}
		{
			_compositeSpotDevice 0 ne
			{
				spotDict begin
					spot1 begin
						/name 3 index def
						/spot_K 4 index def
						/spot_Y 5 index def
						/spot_M 6 index def
						/spot_C 7 index def
				 end
			 end
			} if
			7
		} ifelse
	} ifelse
	/tmp exch def
	tmp index 100 div /endPoint xs
	_compositeSpotDevice 0 ne
	{
		tmp 2 add index 3 eq
		{
			/tmp tmp 4 add def
			tmp index dup 
			spotDict begin
				spot1/name get ne
				{
					spot2 begin
						/name exch def
						/spot_K tmp 2 add index def
						/spot_Y tmp 3 add index def
						/spot_M tmp 4 add index def
						/spot_C tmp 5 add index def
				 end
				}
				{
					pop
				} ifelse
		 end
		} if
	} if
	/color? colorType 0 gt store
	
	colorType 3 eq
	{
		/tint2Data gMark store
	} if
	
	colorType 2 ge
	{
		/tint1Data gMark store
	} if
	_compositeSpotDevice 0 ne
	{
		spotDict begin
		
			colorType 2 ge
			{
				colorType 3 eq
				{
					spot2 begin
						/tintImage cBType 0 eq {tint2Data} {tint1Data} ifelse def
						name null eq {/name /Black def} if
				 end
				} if
				spot1 begin
					/tintImage cBType 0 eq colorType 2 eq or {tint1Data} {tint2Data} ifelse def
					colorType 2 eq 
					{
						name null eq 
						{
							/name spot2/name get def
							spot2/name null put
						} if
					}
					{
						name null eq {/name /Black def} if
					} ifelse
			 end
			} if
	 end
	} if
	
	/cData gMark store
	setCDataLen
	colorType 0 gt
	{
		counttomark 4 add -3 roll
		/yeData xs
		/mgData xs
		/cyData xs
	} if
	blend?
	{
		/bDataLen
		cDataLen dup 0 eq color? and
		{
			[
			cyData mgData yeData
			]
			{
				dup type /stringtype eq
				{
					length exch pop exit
				} if
				pop
			} forall
		} if
		store
		bDataLen 0 eq
		{
			/bDataLen 1 store
		} if
		getData
		blend?
		{
			composite? cDataLen 0 eq and
			{
				/cDataLen bDataLen store
			} if
		} if
	}
	{
		setCStop
	} ifelse
} bd
/Bg
{
	0 0 0 0 setcmykcolor
	6
	{
		pop
	} repeat
	/blendLength xs
	pop pop pop
	/cBName xs
	/bRender xs
	bRender 2 ne
	{
		composite? not
		{
			_of setoverprint
		} if
		_eo {eoclip} {clip} ifelse
		_bn cBName 2 copy known
		{
			get
			mark exch aload pop
			/cBType xs
			/nColors xs
			mark exch aload pop
			0 0
		} if
		pop pop
		getRData
		cBType 0 eq
		{
			/linealBm
		}
		{
			bHi?
			{
				/pTState? nColors 2 gt store
			} if
			/doBlend /rdBlend load store
			/rdBm
		} ifelse
	}
	{
		inLine? not
		{
			mark mark
		} if
		/Bc dup
		{
			cleartomark mark
		} bd
		/nullProc
	} ifelse
	load /Bm xs
} bd
/linImg
noImg
{
	{
		newpath doRctBlend
	}
}
{
	{
		/doBlend
		color? composite? and
		{
			/bCImg
		}
		{
			/bwImage
		} ifelse
		load
		store
	
		0 0 moveto
		tRectOK? composite? and
		{
			{
				mark
				0 1 dtransform atan cvi 90 mod 0 eq
				1 0 dtransform atan cvi 90 mod 0 eq
			} stopped
			{
				cleartomark
			}
			{
				and exch pop
				{
					newpath
					doRctBlend
				}
				{
					doBlend
				} ifelse
			} ifelse
		}
		{
			doBlend
		} ifelse
	} 
} ifelse
bd
/doRctBlend
{
	gsave
	/sInc 1 store
	/nSamples bDataLen store
	/bInc 1 bDataLen div store
	/ubAxis 1 0 dtransform dUserSpace idtransform dup mul exch dup mul add sqrt store
	/pChange ubAxis 0 eq
	{
		0
	}
	{
		bDataLen ubAxis div
	} ifelse
	store
	pChange .5 gt noImg not and dup /optimize? xs
	{
		/nSamples ubAxis 2 div round cvi dup 1 le
		{
			pop 2
		} if
		store
		/bInc 1 nSamples div store
		/sInc bDataLen 1 sub nSamples 1 sub div store
	} if
	0
	nSamples
	[
	/dup cvx
	optimize?
	{
		/round cvx /cvi cvx
	} if
	/ndx /exch cvx /store cvx
	bCFun
	/rectfill where dup
	{
		exch pop _compositeSpotDevice 1 ne and
	} if
	{
		0 0 bInc 1 /rectfill cvx	
	}
	{
		0 0 /moveto cvx
		bInc 0 /lineto cvx
		bInc 1 /lineto cvx
		0 1 /lineto cvx
		/closepath cvx
		/_fill_ cvx
	} ifelse
	bInc 0 /translate cvx
	sInc /add cvx
	] cvx
	bind
	repeat
	pop
	spotColor? {nsetcustomcolorend} if
	
	grestore
} bd
/rdPrep
{
	/nSamples bDataLen dup 0 eq
	{
		pop 1
	} if
	store
	/sInc -1 store
	/bAxis rampPoint endPoint sub store
	/bInc bAxis bDataLen div neg store
	/optimize? false store
	tRectOK?
	{
		/ubAxis
		bAxis 0 dtransform dUserSpace idtransform dup mul exch dup mul add sqrt
		0 bAxis dtransform dUserSpace idtransform dup mul exch dup mul add sqrt
		2 copy lt
		{
			exch
		} if
		pop store
		/pChange ubAxis 0 eq
		{
			0
		}
		{
			bDataLen ubAxis div
		} ifelse
		store
		pChange .5 gt noImg not and dup /optimize? xs
		{
			/nSamples ubAxis 2 div round cvi dup 1 le
			{
				pop 2
			} if
			store
			/bInc bAxis nSamples div neg store
			/sInc bDataLen 1 sub nSamples 1 sub div neg store
		} if
	} if
	bHi?
	{
		/xBCInc xHi bAxis mul nSamples div store
		/yBCInc yHi bAxis mul nSamples div store
	} if
} bd
/rdBlend
{
	newpath
	gsave
	rdPrep
	rampPoint
	bDataLen 1 sub
	nSamples
	[
	/dup cvx
	optimize?
	{
		/round cvx /cvi cvx
	} if
	/ndx /exch cvx /store cvx
	bCFun
	0 0 3 /index cvx 0 360 /arc cvx /_fill_ cvx
	/exch cvx bInc /add cvx /exch cvx
	sInc /add cvx
	bHi?
	{
		xBCInc yBCInc /translate cvx
	} if
	] cvx
	bind
	repeat
	pop pop
	spotColor? {nsetcustomcolorend} if
	grestore
	pTState?
	{
		xHi bAxis mul yHi bAxis mul translate
	} if
} bd
/Bh
{
	pop pop
	/pTState? false store
	2 copy 0 ne exch 0 ne or dup /bHi? xs
	{
		/yHi xs
		/xHi xs
		0 0
	} if
	pop pop
} bd
/BD
{
	inLine? not
	{
		] nColors cBType
		] _bn cBName 3 -1 roll put
 end
} if
} bd
/Bn
{
1 add dict
dup nullString null put
/_bn xs
} bd
/Bd
{
Adobe_blend_AI5_vars begin
	3 -1 roll dup nullString eq dup
	{
		setSSave
	} if
	/inLine? exch def
	/cBName exch def
	/nColors exch def
	/cBType exch def
} bd
/Bb
{
	sSave null eq
	{
		Adobe_blend_AI5_vars begin
		setSSave
	} if
	composite?
	{
		/_fill /fill load store
	}
	{
		/__fill /fill load store
			/_fill
			{
				_of true eq
				{
					currentgray 1 ne
					{
						__fill
					} if
				}
				{
					__fill
				} ifelse
			} def
	} ifelse
	/fill
	{
	} def
	} bd
	/BB
	{
	/cBType xs
	cleartomark cleartomark
	cBType dup
	bRender
	sSave dup type /savetype eq
	{
		restore 0
	} if
	pop
	currentdict Adobe_blend_AI5_vars eq
	{
	 end
	} if
	2 ne exch 0 gt and
	{
		2 eq
		{
			s
		}
		{
			S
		} ifelse
	}
	{
		pop newpath
	} ifelse
} bd
currentdict readonly pop
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset Adobe_pattern_AI5 1.1 0
%%Title: (Adobe Illustrator (R) Version 5.0 Pattern Operators)
%%Version: 1.1 0
%%CreationDate: (03/26/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_Illustrator_AI5 known not {
	userdict /Adobe_Illustrator_AI5 95 dict put
} if
userdict /Adobe_Illustrator_AI5 get begin
/@
{
} def
/&
{
} def
/dp
{
	dup null eq
	{
		pop
		_dp 0 ne
		{
			0 1 _dp 1 sub _dl mod
			{
				_da exch get 3 get
			} for
			_dp 1 sub _dl mod 1 add packedarray
			_da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll
			definepattern pop
		} if
	}
	{
		_dp 0 ne _dp _dl mod 0 eq and
		{
			null dp
		} if
		7 packedarray _da exch _dp _dl mod exch put
		_dp _dl mod _da 0 get 4 get 2 packedarray
		/_dp _dp 1 add def
	} ifelse
} def
/E
{
	_ed begin
	dup 0 get type /arraytype ne
	{
		0
		{
			dup 1 add index type /arraytype eq
			{
				1 add
			}
			{
				exit
			} ifelse
		} loop
		array astore
	} if
	/_dd exch def
	/_ury exch def
	/_urx exch def
	/_lly exch def
	/_llx exch def
	/_n exch def
	/_y 0 def
	/_dl 4 def
	/_dp 0 def
	/_da _dl array def
	0 1 _dd length 1 sub
	{
		/_d exch _dd exch get def
		0 2 _d length 2 sub
		{
			/_x exch def
			/_c _d _x get _ ne def
			/_r _d _x 1 add get cvlit def
			_r _ ne
			{
				_urx _llx sub _ury _lly sub
				[
				1 0 0 1 0 0
				]
				[
				/save cvx
				_llx neg _lly neg /translate cvx
				_c
				{
					nc /begin cvx
				} if
				_r dup type /stringtype eq
				{
					cvx
				}
				{
					{
						exec
					} /forall cvx
				} ifelse
				_c
				{
					/end cvx
				} if
				/restore cvx
				] cvx
				/_fn 12 _n length add string def
				_y _fn cvs pop
				/_y _y 1 add def
				_fn 12 _n putinterval
				_fn _c false dp
				_d exch _x 1 add exch put
			} if
		} for
	} for
	null dp
	_n _dd /_pd
 end
	xput
} def
/fc
{
	_fm dup concatmatrix pop
} def
/p
{
	/_fm exch ddef
	9 -2 roll _pm translate fc
	7 -2 roll _pm scale fc
	5 -1 roll _pm rotate fc
	4 -2 roll exch 0 ne
	{
		dup _pm rotate fc
		1 -1 _pm scale fc
		neg _pm rotate fc
	}
	{
		pop
	} ifelse
	dup _pm rotate fc
	exch dup sin exch cos div 1 0 0 1 0 6 2 roll
	_pm astore fc
	neg _pm rotate fc
	_pd exch get /_fdd exch ddef
	/_pf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					patternfill
				}
				{
					pop
					fill
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		newpath
	} ddef
	/_psf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					9 copy 6 npop patternashow
				}
				{
					pop
					6 copy 3 npop hvashow
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		sw rmoveto
	} ddef
	/_pjsf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					12 copy 6 npop patternawidthshow
				}
				{
					pop 9 copy 3 npop hvawidthshow
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		swj rmoveto
	} ddef
	/_lp /none ddef
} def
/sc
{
	_sm dup concatmatrix pop
} def
/P
{
	/_sm exch ddef
	9 -2 roll _pm translate sc
	7 -2 roll _pm scale sc
	5 -1 roll _pm rotate sc
	4 -2 roll exch 0 ne
	{
		dup _pm rotate sc
		1 -1 _pm scale sc
		neg _pm rotate sc
	}
	{
		pop
	} ifelse
	dup _pm rotate sc
	exch dup sin exch cos div 1 0 0 1 0 6 2 roll
	_pm astore sc
	neg _pm rotate sc
	_pd exch get /_sdd exch ddef
	/_ps
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					patternstroke
				}
				{
					pop stroke
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		newpath
	} ddef
	/_pss
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					10 copy 6 npop patternashowstroke
				}
				{
					pop 7 copy 3 npop ss
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		pop sw rmoveto
	} ddef
	/_pjss
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					13 copy 6 npop patternawidthshowstroke
				}
				{
					pop 10 copy 3 npop jss
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		pop swj rmoveto
	} ddef
	/_lp /none ddef
} def
end
userdict /Adobe_pattern_AI5 18 dict dup begin
put
/initialize
{
	/definepattern where
	{
		pop
	}
	{
	 begin
	 begin
		Adobe_pattern_AI5 begin
		Adobe_pattern_AI5
		{
			dup xcheck
			{
				bind
			} if
			pop pop
		} forall
		mark
		cachestatus 7 1 roll pop pop pop pop exch pop exch
		{
			{
				10000 add
				dup 2 index gt
				{
					exit
				} if
				dup setcachelimit
			} loop
		} stopped
		cleartomark
	 end 	
		
	 end
	 end
		
		Adobe_pattern_AI5 begin
	} ifelse
} def
/terminate
{
	currentdict Adobe_pattern_AI5 eq
	{
	 end
	} if
} def
errordict
/nocurrentpoint
{
	pop
	stop
} put
errordict
/invalidaccess
{
	pop
	stop
} put
/patternencoding
256 array def
0 1 255
{
	patternencoding exch ( ) 2 copy exch 0 exch put cvn put
} for
/definepattern
{
	17 dict begin
	/uniform exch def
	/cache exch def
	/key exch def
	/procarray exch def
	/mtx exch matrix invertmatrix def
	/height exch def
	/width exch def
	/ctm matrix currentmatrix def
	/ptm matrix def
	/str 32 string def
	/slice 9 dict def
	slice /s 1 put
	slice /q 256 procarray length div sqrt floor cvi put
	slice /b 0 put
	/FontBBox
	[
	0 0 0 0
	] def
	/FontMatrix mtx matrix copy def
	/Encoding patternencoding def
	/FontType 3 def
	/BuildChar
	{
		exch
	 begin
		/setstrokeadjust where {pop true setstrokeadjust} if
		slice begin
		dup q dup mul mod s idiv /i exch def
		dup q dup mul mod s mod /j exch def
		q dup mul idiv procarray exch get
		/xl j width s div mul def
		/xg j 1 add width s div mul def
		/yl i height s div mul def
		/yg i 1 add height s div mul def
		uniform
		{
			1 1
		}
		{
			width 0 dtransform
			dup mul exch dup mul add sqrt dup 1 add exch div
			0 height dtransform
			dup mul exch dup mul add sqrt dup 1 add exch div
		} ifelse
		width 0 cache
		{
			xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul
			setcachedevice
		}
		{
			setcharwidth
		} ifelse
		gsave
		scale
		newpath
		xl yl moveto
		xg yl lineto
		xg yg lineto
		xl yg lineto
		closepath
		clip
		newpath
	 end
	 end
		exec
		grestore
	} def
	key currentdict definefont
 end
} def
/patterncachesize
{
	gsave
	newpath
	0 0 moveto
	width 0 lineto
	width height lineto
	0 height lineto
	closepath
	patternmatrix setmatrix
	pathbbox
	exch ceiling 4 -1 roll floor sub 3 1 roll
	ceiling exch floor sub
	mul 1 add
	grestore
} def
/patterncachelimit
{
	cachestatus 7 1 roll 6 npop 8 mul
} def
/patternpath
{
	exch dup begin
	setfont
	ctm setmatrix
	concat
	slice exch /b exch slice /q get dup mul mul put
	FontMatrix concat
	uniform
	{
		width 0 dtransform round width div exch round width div exch
		0 height dtransform round height div exch height div exch
		0 0 transform round exch round exch
		ptm astore setmatrix
	}
	{
		ptm currentmatrix pop
	} ifelse
	{
		currentpoint
	} stopped not
	{
		2 npop
		pathbbox
		true
		4 index 3 index eq
		4 index 3 index eq
		and
		{
			pop false
			{
				{
					2 npop
				}
				{
					3 npop true
				}
				{
					7 npop true
				}
				{
					pop true
				} pathforall
			} stopped
			{
				5 npop true
			} if
		} if
		{
			height div ceiling height mul 4 1 roll
			width div ceiling width mul 4 1 roll
			height div floor height mul 4 1 roll
			width div floor width mul 4 1 roll
			2 index sub height div ceiling cvi exch
			3 index sub width div ceiling cvi exch
			4 2 roll moveto
			FontMatrix mtx invertmatrix
			dup dup 4 get exch 5 get rmoveto
			ptm ptm concatmatrix pop
			slice /s
			patterncachesize patterncachelimit div ceiling sqrt ceiling cvi
			dup slice /q get gt
			{
				pop slice /q get
			} if
			put
			0 1 slice /s get dup mul 1 sub
			{
				slice /b get add
				gsave
				0 1 str length 1 sub
				{
					str exch 2 index put
				} for
				pop
				dup
				{
					gsave
					ptm setmatrix
					1 index str length idiv
					{
						str show
					} repeat
					1 index str length mod str exch 0 exch getinterval show
					grestore
					0 height rmoveto
				} repeat
				grestore
			} for
			2 npop
		}
		{
			4 npop
		} ifelse
	} if
 end
} def
/patternclip
{
	_eo {eoclip} {clip} ifelse
} def
/patternstrokepath
{
	strokepath
} def
/patternmatrix
matrix def
/patternfill
{
	dup type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get
	} if
	gsave
	patternclip
	Adobe_pattern_AI5 /patternpath get exec
	grestore
	newpath
} def
/patternstroke
{
	dup type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get
	} if
	gsave
	patternstrokepath
	true
	{
		{
			{
				newpath
				moveto
			}
			{
				lineto
			}
			{
				curveto
			}
			{
				closepath
				3 copy
				Adobe_pattern_AI5 /patternfill get exec
			} pathforall
			3 npop
		} stopped
		{
			5 npop
			patternclip
			Adobe_pattern_AI5 /patternfill get exec
		} if
	}
	{
		patternclip
		Adobe_pattern_AI5 /patternfill get exec
	} ifelse
	grestore
	newpath
} def
/vpatternawidthshow
{
	6 1 roll
	/_hvay exch ddef
	/_hvax exch ddef
	/_hvwb exch ddef
	/_hvcy exch ddef
	/_hvcx exch ddef
	
	{
		dup cstring
		dup length 1 eq
		_charorientation 1 eq
		and
		{
			-90 rotate
			currentpoint
			_fontRotateAdjust add
			moveto
			gsave
			false charpath currentpoint
			5 index 5 index 5 index Adobe_pattern_AI5 /patternfill get exec
			grestore
			_fontRotateAdjust sub
			moveto
			_hvwb eq { _hvcx _hvcy rmoveto } if
			_hvax _hvay rmoveto
			90 rotate
		}
		{
			currentpoint
			_fontHeight sub
			_hvax sub
			3 index _hvwb eq { _hvcx sub } if
			currentpoint
			exch 4 index stringwidth pop 2 div sub
			exch _fontAscent sub
			moveto
			gsave
			2 index false charpath
			6 index 6 index 6 index Adobe_pattern_AI5 /patternfill get exec
			grestore
			newpath moveto pop pop
		} ifelse
	} cforall
	3 npop
} def
/hpatternawidthshow
{
	{
		dup cstring exch
		gsave
		3 index eq { 5 index 5 index rmoveto } if
		false charpath currentpoint
		9 index 9 index 9 index
		Adobe_pattern_AI5 /patternfill get exec
		grestore
		newpath moveto
		2 copy rmoveto
	} cforall
	8 npop
} def
/patternashow
{
0 0 0 6 3 roll
patternawidthshow
} def
/patternawidthshow
{
	6 index type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get 7 1 roll
	} if
	_lineorientation 0 eq { hpatternawidthshow } { vpatternawidthshow } ifelse
} def
/vpatternawidthshowstroke
{
	7 1 roll
	6 1 roll
	/_hvay exch ddef
	/_hvax exch ddef
	/_hvwb exch ddef
	/_hvcy exch ddef
	/_hvcx exch ddef
	{
		dup cstring
		dup length 1 eq
		_charorientation 1 eq
		and
		{
			-90 rotate
			currentpoint
			_fontRotateAdjust add
			moveto
			gsave
			false charpath currentpoint
			3 index setmatrix
			6 index 6 index 6 index Adobe_pattern_AI5 /patternstroke get exec
			grestore
			_fontRotateAdjust sub
			moveto
			_hvwb eq { _hvcx _hvcy rmoveto } if
			_hvax _hvay rmoveto
			90 rotate
		}
		{
			currentpoint
			_fontHeight sub
			_hvax sub
			3 index _hvwb eq { _hvcx sub } if
			currentpoint
			exch 4 index stringwidth pop 2 div sub
			exch _fontAscent sub
			moveto
			gsave
			2 index false charpath
			4 index setmatrix
			7 index 7 index 7 index Adobe_pattern_AI5 /patternstroke get exec
			grestore
			newpath moveto pop pop
		} ifelse
	} cforall
	4 npop
} def
/hpatternawidthshowstroke
{
	7 1 roll
	{
		dup cstring exch
		gsave
		3 index eq { 5 index 5 index rmoveto } if
		false charpath currentpoint
		7 index setmatrix
		10 index 10 index 10 index
		Adobe_pattern_AI5 /patternstroke get exec
		grestore
		newpath moveto
		2 copy rmoveto
	} cforall
	9 npop
} def
/patternashowstroke
{
	0 0 0 7 3 roll
	patternawidthshowstroke
} def
/patternawidthshowstroke
{
	7 index type /dicttype eq
	{
		patternmatrix /patternmatrix get 8 1 roll
	} if
	_lineorientation 0 eq { hpatternawidthshowstroke } { vpatternawidthshowstroke } ifelse
} def
end
setpacking
%%EndResource
%%EndProlog
%%BeginSetup
Adobe_level2_AI5 /initialize get exec
Adobe_screens_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_blend_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_pattern_AI5 /initialize get exec
Adobe_ColorImage_AI6 /initialize get exec
Adobe_Illustrator_AI5 /initialize get exec
[
39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase
133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 
138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 
147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 
152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 
159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 
170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 
177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 
183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 
188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 
194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 
200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 
206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 
212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 
217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 
223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 
229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 
235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 
240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 
246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 
252/udieresis 253/yacute 254/thorn 255/ydieresis
TE
%AI3_BeginEncoding: _Helvetica Helvetica
[
/_Helvetica/Helvetica 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-Bold Helvetica-Bold
[
/_Helvetica-Bold/Helvetica-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-Oblique Helvetica-Oblique
[
/_Helvetica-Oblique/Helvetica-Oblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-BoldOblique Helvetica-BoldOblique
[
/_Helvetica-BoldOblique/Helvetica-BoldOblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Roman Times-Roman
[
/_Times-Roman/Times-Roman 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Bold Times-Bold
[
/_Times-Bold/Times-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Italic Times-Italic
[
/_Times-Italic/Times-Italic 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-BoldItalic Times-BoldItalic
[
/_Times-BoldItalic/Times-BoldItalic 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier Courier
[
/_Courier/Courier 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-Bold Courier-Bold
[
/_Courier-Bold/Courier-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-Oblique Courier-Oblique
[
/_Courier-Oblique/Courier-Oblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-BoldOblique Courier-BoldOblique
[
/_Courier-BoldOblique/Courier-BoldOblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Symbol Symbol
[
/_Symbol/Symbol 0 0 1 TZ
%AI3_EndEncoding AdobeType
%%EndSetup

1 XR

u
 [] 0 d
0.0000 w
  0.000 0.000 0.000 1.000 K
1 J
1 j
  486.5092 139.3278 m
  486.5092 181.0183 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  0.000 0.000 0.000 1.000 K
  483.7537 180.2995 m
  486.5092 188.5657 L
  489.2646 180.2995 L
  483.7537 180.2995 L
F
U
u
0.0000 w
  485.4309 276.0200 m
  485.4309 298.9018 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  482.6755 298.1830 m
  485.4309 306.4493 L
  488.1864 298.1830 L
  482.6755 298.1830 L
F
U
u
0.0000 w
  379.7671 466.8619 m
  379.7671 492.2596 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  377.0116 491.5408 m
  379.7671 499.8070 L
  382.5225 491.5408 L
  377.0116 491.5408 L
F
U
u
  0.000 0.000 0.000 0.000 k
  370.0632 477.5241 m
  388.5125 477.5241 L
  388.5125 488.9052 L
  370.0632 488.9052 L
  370.0632 477.5241 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 371.1414 480.5191 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  503.7604 355.2080 m
  503.7604 368.6256 L
  503.7604 368.6256 L
  503.7604 400.8519 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  501.0050 400.1331 m
  503.7604 408.3993 L
  506.5158 400.1331 L
  501.0050 400.1331 L
F
U
u
  0.000 0.000 0.000 0.000 k
  493.8170 376.4126 m
  513.7038 376.4126 L
  513.7038 387.7937 L
  493.8170 387.7937 L
  493.8170 376.4126 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 494.7754 379.4077 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  379.1681 354.8486 m
  379.1681 368.6256 L
  379.2879 368.6256 L
  379.2879 419.6606 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  376.5324 418.9418 m
  379.2879 427.2080 L
  382.0433 418.9418 L
  376.5324 418.9418 L
F
U
u
  0.000 0.000 0.000 0.000 k
  362.0366 378.4493 m
  397.8569 378.4493 L
  397.8569 389.8303 L
  362.0366 389.8303 L
  362.0366 378.4493 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 363.1148 381.4443 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(!intCheck\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.3777 513.4642 m
  563.3012 513.4642 L
  563.3012 526.2829 L
  37.3777 526.2829 L
  37.3777 513.4642 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 293.5108 517.0582 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(IDLE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.3777 499.8070 m
  563.3012 499.8070 L
  563.3012 513.4642 L
  37.3777 513.4642 L
  37.3777 499.8070 L
B
U
u
  0.000 0.000 0.000 0.000 k
  444.4592 453.2047 m
  563.3012 453.2047 L
  563.3012 466.8619 L
  444.4592 466.8619 L
  444.4592 453.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 473.0915 457.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SEND_REQUEST\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  444.4592 408.3993 m
  563.3012 408.3993 L
  563.3012 453.2047 L
  444.4592 453.2047 L
  444.4592 408.3993 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 450.4493 444.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(retransCount = 0\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 450.4493 434.5158 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(lastReqData = eapReqData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 450.4493 424.9318 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapResp = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 450.4493 415.3478 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapReq = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  503.8802 466.8619 m
  503.8802 480.1597 L
  503.8802 480.1597 L
  503.8802 491.6606 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  501.1248 491.0616 m
  503.8802 499.3278 L
  506.6356 491.0616 L
  501.1248 491.0616 L
F
U
u
  0.000 0.000 0.000 0.000 k
  495.2546 477.0449 m
  513.7038 477.0449 L
  513.7038 488.4260 L
  495.2546 488.4260 L
  495.2546 477.0449 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 496.2130 480.0399 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  131.5408 560.5458 m
  229.1780 560.5458 L
  229.1780 574.6822 L
  131.5408 574.6822 L
  131.5408 560.5458 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 162.5691 565.4576 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(DISABLED\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  131.5408 546.8885 m
  229.1780 546.8885 L
  229.1780 560.5458 L
  131.5408 560.5458 L
  131.5408 546.8885 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 137.5308 551.3211 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapRestart\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 176.7055 551.3211 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
( = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  300.9384 561.0250 m
  445.6572 561.0250 L
  445.6572 574.6822 L
  300.9384 574.6822 L
  300.9384 561.0250 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 355.3278 565.4576 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(INITIALIZE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  300.9384 546.8885 m
  445.6572 546.8885 L
  445.6572 561.0250 L
  300.9384 561.0250 L
  300.9384 546.8885 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 306.9285 551.9201 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentId = NONE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  229.1780 560.7854 m
  293.3910 560.7854 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  292.6722 563.5408 m
  300.9384 560.7854 L
  292.6722 558.0300 L
  292.6722 563.5408 L
F
U
u
0.0000 w
  445.6572 560.7854 m
  576.8386 560.7854 L
  576.8386 119.9201 L
  570.3694 119.9201 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  571.0882 117.1647 m
  562.8220 119.9201 L
  571.0882 122.6755 L
  571.0882 117.1647 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  320.1065 453.2047 m
  438.8286 453.2047 L
  438.8286 466.8619 L
  320.1065 466.8619 L
  320.1065 453.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 363.4742 457.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(DISCARD\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  320.1065 426.9684 m
  438.8286 426.9684 L
  438.8286 453.2047 L
  320.1065 453.2047 L
  320.1065 426.9684 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 325.9767 444.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapResp = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 325.9767 434.5158 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapNoReq = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  402.8885 54.5092 m
  563.3012 54.5092 L
  563.3012 68.0466 L
  402.8885 68.0466 L
  402.8885 54.5092 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 465.7837 58.9418 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SUCCESS\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  402.8885 1.3178 m
  563.3012 1.3178 L
  563.3012 54.5092 L
  402.8885 54.5092 L
  402.8885 1.3178 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 408.8785 45.2845 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentId = nextId\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 408.8785 35.8203 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapReqData = buildSuccess\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 408.8785 26.2363 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(eapKeyData != NONE\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 408.8785 16.6522 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapKeyAvailable = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 408.8785 7.0682 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapSuccess = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  232.5324 53.9101 m
  392.9451 53.9101 L
  392.9451 67.5674 L
  232.5324 67.5674 L
  232.5324 53.9101 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 297.8236 58.3428 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(FAILURE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  232.5324 1.3178 m
  392.9451 1.3178 L
  392.9451 53.9101 L
  232.5324 53.9101 L
  232.5324 1.3178 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 238.5225 44.8053 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentId = nextId\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 238.5225 35.3411 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapReqData = buildFailure\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 238.5225 25.7571 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapFail = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  245.9501 426.7288 m
  245.9501 335.2013 L
  268.7121 335.2013 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  267.9933 337.9567 m
  276.2596 335.2013 L
  267.9933 332.4459 L
  267.9933 337.9567 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  156.6988 125.6705 m
  242.7155 125.6705 L
  242.7155 139.3278 L
  156.6988 139.3278 L
  156.6988 125.6705 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 193.3577 130.1032 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(NAK\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  156.6988 101.2313 m
  242.7155 101.2313 L
  242.7155 125.6705 L
  156.6988 125.6705 L
  156.6988 101.2313 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 162.6889 116.5657 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(m.reset\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 162.6889 107.1015 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(Policy.update\(<...>\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  242.4759 120.5191 m
  256.0133 120.5191 L
  256.0133 120.5191 L
  268.7121 120.5191 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  267.9933 123.2745 m
  276.2596 120.5191 L
  267.9933 117.7637 L
  267.9933 123.2745 L
F
U
u
  0.000 0.000 0.000 0.000 k
  250.1431 115.1281 m
  268.4725 115.1281 L
  268.4725 126.5092 L
  250.1431 126.5092 L
  250.1431 115.1281 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 251.2213 118.1231 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  313.2779 101.2313 m
  313.2779 85.5374 L
  313.3977 85.5374 L
  313.3977 75.1148 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  316.1531 75.8336 m
  313.3977 67.5674 L
  310.6423 75.8336 L
  316.1531 75.8336 L
F
U
u
  0.000 0.000 0.000 0.000 k
  273.7438 79.0682 m
  352.8120 79.0682 L
  352.8120 90.4493 L
  273.7438 90.4493 L
  273.7438 79.0682 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 274.7022 82.0632 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(decision == FAILURE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  482.7953 101.2313 m
  482.7953 87.6938 L
  483.1547 87.6938 L
  483.1547 75.7138 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  485.9101 76.3128 m
  483.1547 68.0466 L
  480.3993 76.3128 L
  485.9101 76.3128 L
F
U
u
  0.000 0.000 0.000 0.000 k
  441.1048 79.4276 m
  525.2047 79.4276 L
  525.2047 90.8087 L
  441.1048 90.8087 L
  441.1048 79.4276 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 442.1830 82.4226 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(decision == SUCCESS\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  338.1963 188.5657 m
  338.1963 169.6373 L
  338.4359 169.6373 L
  338.4359 146.8752 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  341.1913 147.5940 m
  338.4359 139.3278 L
  335.6805 147.5940 L
  341.1913 147.5940 L
F
U
u
  0.000 0.000 0.000 0.000 k
  299.3810 158.7354 m
  377.6106 158.7354 L
  377.6106 170.1165 L
  299.3810 170.1165 L
  299.3810 158.7354 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 300.3394 161.7304 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(methodState == END\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  199.5874 426.7288 m
  199.5874 146.8752 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  202.3428 147.5940 m
  199.5874 139.3278 L
  196.8319 147.5940 L
  202.3428 147.5940 L
F
U
u
0.0000 w
  104.1065 400.0133 m
  104.1065 386.5957 L
  104.1065 386.5957 L
  104.1065 36.8985 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  106.8619 37.6173 m
  104.1065 29.4709 L
  101.3511 37.6173 L
  106.8619 37.6173 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  276.2596 125.6705 m
  563.3012 125.6705 L
  563.3012 139.3278 L
  276.2596 139.3278 L
  276.2596 125.6705 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 388.8719 130.1032 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SELECT_ACTION\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  276.2596 101.2313 m
  563.3012 101.2313 L
  563.3012 125.6705 L
  276.2596 125.6705 L
  276.2596 101.2313 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 116.5657 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(decision = Policy.getDecision\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  202.8220 363.8336 m
  317.5907 363.8336 L
  317.5907 394.3827 L
  202.8220 394.3827 L
  202.8220 363.8336 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 241.1581 385.9967 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxResp &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 217.1980 376.4126 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respId == currentId\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 203.7804 366.8286 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respMethod == currentMethod\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  132.7388 158.3760 m
  266.6755 158.3760 L
  266.6755 207.9734 L
  132.7388 207.9734 L
  132.7388 158.3760 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 180.5391 199.5874 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxResp &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 156.6988 190.0033 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respId == currentId\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 161.2512 180.4193 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respMethod==NAK ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 133.6972 170.9551 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(respMethod==EXPANDED_NAK\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 144.5990 161.3710 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 147.2346 161.3710 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(methodState == PROPOSED\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.8569 453.2047 m
  170.3561 453.2047 L
  170.3561 466.8619 L
  37.8569 466.8619 L
  37.8569 453.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 80.1464 457.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(RETRANSMIT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.8569 400.0133 m
  170.3561 400.0133 L
  170.3561 453.2047 L
  37.8569 453.2047 L
  37.8569 400.0133 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 43.8469 444.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(retransCount++\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 43.8469 434.5158 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(retransCount <= MaxRetrans\)  {\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 43.8469 424.9318 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapReqData = lastReqData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 43.8469 415.3478 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapReq = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 43.8469 405.7637 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(}\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  37.8569 433.4376 m
  21.0849 433.4376 L
  21.0849 513.1048 L
  29.8303 513.1048 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  29.2313 515.8602 m
  37.3777 513.1048 L
  29.2313 510.3494 L
  29.2313 515.8602 L
F
U
u
  0.000 0.000 0.000 0.000 k
  11.7404 467.5807 m
  30.3095 467.5807 L
  30.3095 478.8419 L
  11.7404 478.8419 L
  11.7404 467.5807 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 12.6988 470.4559 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  246.0699 499.8070 m
  246.0699 486.3894 L
  245.9501 486.3894 L
  245.9501 474.2895 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  248.7055 475.0083 m
  245.9501 466.8619 L
  243.1947 475.0083 L
  248.7055 475.0083 L
F
U
u
  0.000 0.000 0.000 0.000 k
  229.1780 478.1231 m
  263.0815 478.1231 L
  263.0815 489.5042 L
  229.1780 489.5042 L
  229.1780 478.1231 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 230.1364 481.1181 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(eapResp\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  291.9534 426.7288 m
  291.9534 398.3361 L
  343.3478 398.3361 L
  343.3478 419.4210 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  340.5923 418.7022 m
  343.3478 426.9684 L
  346.2230 418.7022 L
  340.5923 418.7022 L
F
U
u
  0.000 0.000 0.000 0.000 k
  308.4859 393.0649 m
  327.0549 393.0649 L
  327.0549 404.3261 L
  308.4859 404.3261 L
  308.4859 393.0649 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 309.4443 395.9401 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  103.6273 498.7288 m
  103.6273 486.3894 L
  104.1065 486.3894 L
  104.1065 474.2895 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  106.8619 475.0083 m
  104.1065 466.8619 L
  101.3511 475.0083 L
  106.8619 475.0083 L
F
U
u
  0.000 0.000 0.000 0.000 k
  73.5574 477.6439 m
  134.5358 477.6439 L
  134.5358 489.0250 L
  73.5574 489.0250 L
  73.5574 477.6439 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 74.6356 480.6389 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(retransWhile==0\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  103.0283 560.7854 m
  123.9933 560.7854 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  123.2745 563.5408 m
  131.5408 560.7854 L
  123.2745 558.0300 L
  123.2745 563.5408 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 45.2845 563.9002 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(\(!portEnabled ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 51.7537 554.3161 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapRestart\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 90.9285 554.3161 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  56.7854 373.8968 m
  157.0582 373.8968 L
  157.0582 385.2779 L
  56.7854 385.2779 L
  56.7854 373.8968 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 57.7438 376.8918 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(retransCount > MaxRetrans\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  237.9235 555.5141 m
  282.9684 555.5141 L
  282.9684 566.8952 L
  237.9235 566.8952 L
  237.9235 555.5141 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 239.0017 558.5092 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(portEnabled\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  502.2030 555.3943 m
  520.6522 555.3943 L
  520.6522 566.7754 L
  502.2030 566.7754 L
  502.2030 555.3943 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 503.1614 558.3894 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.3777 15.8136 m
  169.7571 15.8136 L
  169.7571 29.4709 L
  37.3777 29.4709 L
  37.3777 15.8136 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 68.4060 20.2463 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(TIMEOUT_FAILURE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.3777 1.3178 m
  169.7571 1.3178 L
  169.7571 15.8136 L
  37.3777 15.8136 L
  37.3777 1.3178 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 43.3677 6.7088 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapTimeout = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  276.2596 341.5507 m
  399.5341 341.5507 L
  399.5341 355.0882 L
  276.2596 355.0882 L
  276.2596 341.5507 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 302.3760 345.9834 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(INTEGRITY_CHECK\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  276.2596 315.4343 m
  399.5341 315.4343 L
  399.5341 341.5507 L
  276.2596 341.5507 L
  276.2596 315.4343 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 332.3261 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(intCheck =\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 322.8619 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   m.intCheck\(eapRespData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  276.2596 262.4825 m
  399.5341 262.4825 L
  399.5341 276.0200 L
  276.2596 276.0200 L
  276.2596 262.4825 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 298.1830 266.9151 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(METHOD_RESPONSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  276.2596 188.5657 m
  399.5341 188.5657 L
  399.5341 262.4825 L
  276.2596 262.4825 L
  276.2596 188.5657 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 253.2579 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(m.process\(eapRespData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 243.7937 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(m.isDone\(\)\) {\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 234.2097 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   Policy.update\(<...>\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 224.6256 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapKeyData = m.getKey\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 215.0416 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   methodState = END\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 205.4576 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(} else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 195.8735 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   methodState = CONTINUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  409.7171 341.5507 m
  563.3012 341.5507 L
  563.3012 355.0882 L
  409.7171 355.0882 L
  409.7171 341.5507 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 449.7304 345.9834 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(METHOD_REQUEST\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  409.7171 306.4493 m
  563.3012 306.4493 L
  563.3012 341.5507 L
  409.7171 341.5507 L
  409.7171 306.4493 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 415.7072 332.3261 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentId = nextId\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.7072 322.8619 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapReqData = m.buildReq\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.7072 313.2779 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(methodTimeout = m.getTimeout\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  409.7171 262.4825 m
  563.3012 262.4825 L
  563.3012 276.0200 L
  409.7171 276.0200 L
  409.7171 262.4825 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 449.2512 266.9151 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(PROPOSE_METHOD\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  409.7171 188.5657 m
  563.3012 188.5657 L
  563.3012 262.4825 L
  409.7171 262.4825 L
  409.7171 188.5657 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 415.7072 253.2579 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentMethod = Policy.getNextMethod\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.7072 243.7937 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(m.init\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.7072 234.2097 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(currentMethod==IDENTITY ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.7072 224.6256 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(    currentMethod==NOTIFICATION\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.7072 215.0416 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(  methodState = CONTINUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.7072 205.4576 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.7072 195.8735 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(  methodState = PROPOSED\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  379.1681 276.1398 m
  379.1681 289.5574 L
  429.6040 289.5574 L
  429.6040 298.9018 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  426.8486 298.1830 m
  429.6040 306.4493 L
  432.3594 298.1830 L
  426.8486 298.1830 L
F
U
u
  0.000 0.000 0.000 0.000 k
  397.4975 284.1664 m
  414.6290 284.1664 L
  414.6290 295.5474 L
  397.4975 295.5474 L
  397.4975 284.1664 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 398.4559 287.1614 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  338.4359 315.3145 m
  338.4359 301.8968 L
  338.4359 301.8968 L
  338.4359 283.6872 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  341.1913 284.4060 m
  338.4359 276.1398 L
  335.6805 284.4060 L
  341.1913 284.4060 L
F
U
u
  0.000 0.000 0.000 0.000 k
  321.9035 290.3960 m
  355.0882 290.3960 L
  355.0882 301.7770 L
  321.9035 301.7770 L
  321.9035 290.3960 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 322.9817 293.3910 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(intCheck\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  478.0033 158.3760 m
  495.1348 158.3760 L
  495.1348 169.7571 L
  478.0033 169.7571 L
  478.0033 158.3760 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 478.9617 161.3710 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  476.3261 281.1714 m
  494.7754 281.1714 L
  494.7754 292.5524 L
  476.3261 292.5524 L
  476.3261 281.1714 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 477.2845 284.1664 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 43.4875 504.2396 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(retransWhile = calculateTimeout\(retransCount, eapSRTT, eapRTTVAR, methodTimeout\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.3694 105.5441 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(/* SUCCESS, FAILURE, or CONTINUE */\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  177.6639 453.2047 m
  314.3561 453.2047 L
  314.3561 466.8619 L
  177.6639 466.8619 L
  177.6639 453.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 227.3810 457.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(RECEIVED\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  177.6639 426.7288 m
  314.3561 426.7288 L
  314.3561 453.2047 L
  177.6639 453.2047 L
  177.6639 426.7288 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 183.5341 444.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(\(rxResp,respId,respMethod\)=\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 183.5341 434.5158 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   parseEapResp\(eapRespData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
%%PageTrailer
gsave annotatepage grestore showpage
%%Trailer
Adobe_Illustrator_AI5 /terminate get exec
Adobe_pattern_AI5 /terminate get exec
Adobe_blend_AI5 /terminate get exec
Adobe_ColorImage_AI6 /terminate get exec
Adobe_typography_AI5 /terminate get exec
Adobe_screens_AI5 /terminate get exec
Adobe_level2_AI5 /terminate get exec
%%EOF

%%EndDocument
 @endspecial 875 3911 a(Figure)h(4:)25 b(EAP)c(Standalone)d
(Authenticator)h(State)h(Machine)0 4261 y Ff(5.1)99 b(Interface)26
b(between)h(standalone)e(authenticator)i(state)e(machine)g(and)h(lo)o
(wer)f(lay)o(er)0 4517 y Fg(The)20 b(lo)n(wer)g(layer)g(presents)h
(messages)f(to)h(the)g(EAP)g(authenticator)d(state)j(machine)f(by)g
(storing)g(the)g(pack)o(et)g(in)h(eapResp-)0 4616 y(Data)f(and)g
(setting)g(the)h(eapResp)f(signal)g(to)g(TR)m(UE.)0 4815
y(When)27 b(the)h(EAP)g(authenticator)e(state)i(machine)e(has)i
(\002nished)f(processing)g(the)g(message,)i(it)g(sets)f(one)f(of)h(the)
f(signals)0 4915 y(eapReq,)g(eapNoReq,)f(eapSuccess,)h(and)f(eapF)o
(ail.)42 b(If)26 b(it)h(sets)g(eapReq,)g(eapSuccess,)g(or)f(eapF)o
(ail,)h(the)f(corresponding)0 5015 y(request)20 b(\(or)f(success/f)o
(ailure\))h(pack)o(et)g(is)h(stored)f(in)g(eapReqData.)25
b(The)20 b(lo)n(wer)f(layer)h(is)i(responsible)d(for)g(actually)h
(trans-)0 5114 y(mitting)g(this)g(message.)0 5656 y(V)-11
b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19 b(March)h(18,)f(2004)964
b([P)o(age)19 b(15])p eop
%%Page: 16 16
16 15 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y Fd(5.1.1)81
b(V)-8 b(ariables)20 b(\(lo)o(wer)g(lay)o(er)g(to)g(standalone)g
(authenticator\))125 589 y Fb(\017)41 b Fg(eapResp)20
b(\(boolean\))208 718 y(Set)31 b(to)f(TR)m(UE)h(in)f(lo)n(wer)g(layer)m
(,)i(F)-6 b(ALSE)31 b(in)f(authenticator)f(state)i(machine.)54
b(Indicates)30 b(an)g(EAP)h(response)f(is)208 818 y(a)n(v)n(ailable)19
b(for)h(processing.)125 975 y Fb(\017)41 b Fg(eapRespData)19
b(\(EAP)i(pack)o(et\))208 1104 y(Set)f(in)h(lo)n(wer)e(layer)h(when)g
(eapResp)g(is)h(set)g(to)f(TR)m(UE.)g(The)g(EAP)h(pack)o(et)e(to)i(be)f
(processed.)125 1261 y Fb(\017)41 b Fg(portEnabled)17
b(\(boolean\))208 1390 y(Indicates)g(that)i(there)e(is)j(a)e(v)n(alid)g
(port)g(to)g(use)h(for)e(the)i(communication.)i(If)d(at)h(an)o(y)f
(point)f(the)h(port)g(is)h(not)f(a)n(v)n(ailable,)208
1490 y(portEnabled)f(is)k(set)g(to)g(F)-6 b(ALSE)20 b(and)g(the)g
(state)h(machine)e(transitions)g(to)i(DISABLED.)125 1647
y Fb(\017)41 b Fg(retransWhile)19 b(\(inte)o(ger\))208
1776 y(Outside)h(timer)g(used)g(to)g(indicate)f(ho)n(w)h(long)f(the)i
(authenticator)d(has)i(w)o(aited)h(for)e(a)i(ne)n(w)f(\(v)n(alid\))f
(response.)125 1933 y Fb(\017)41 b Fg(eapRestart)20 b(\(boolean\))208
2062 y(Indicates)f(the)h(lo)n(wer)g(layer)g(w)o(ould)f(lik)o(e)i(to)f
(restart)g(authentication)125 2220 y Fb(\017)41 b Fg(eapSR)-5
b(TT)20 b(\(inte)o(ger\))208 2348 y(Smoothed)e(round-trip)f(time.)26
b(\(see)20 b([I-D.ietf-eap-rfc2284bis],)14 b(Section)20
b(4.3\))125 2506 y Fb(\017)41 b Fg(eapR)-5 b(TTV)-11
b(AR)19 b(\(inte)o(ger\))208 2634 y(Round-trip)f(time)i(v)n(ariation.)k
(\(see)c([I-D.ietf-eap-rfc2284bis],)14 b(Section)20 b(4.3\))0
2951 y Fd(5.1.2)81 b(V)-8 b(ariables)20 b(\(standalone)g(authenticator)
e(to)i(lo)o(wer)g(lay)o(er\))125 3150 y Fb(\017)41 b
Fg(eapReq)19 b(\(boolean\))208 3279 y(Set)27 b(to)f(TR)m(UE)h(in)f
(authenticator)e(state)k(machine,)e(F)-6 b(ALSE)27 b(in)f(lo)n(wer)g
(layer)-5 b(.)44 b(Indicates)25 b(a)i(ne)n(w)f(EAP)h(request)f(is)208
3379 y(ready)19 b(to)h(be)g(sent.)125 3536 y Fb(\017)41
b Fg(eapNoReq)19 b(\(boolean\))208 3665 y(Set)i(to)f(TR)m(UE)g(in)h
(authenticator)d(state)j(machine,)e(F)-6 b(ALSE)21 b(in)f(lo)n(wer)g
(layer)-5 b(.)25 b(Indicates)20 b(the)g(most)h(recent)f(response)208
3764 y(has)g(been)f(processed,)g(b)n(ut)i(there)e(is)i(no)f(ne)n(w)g
(request)g(to)g(send.)125 3922 y Fb(\017)41 b Fg(eapSuccess)19
b(\(boolean\))208 4051 y(Set)27 b(to)g(TR)m(UE)g(in)g(authenticator)d
(state)k(machine,)f(F)-6 b(ALSE)27 b(in)g(lo)n(wer)f(layer)-5
b(.)44 b(Indicates)26 b(the)h(state)h(machine)d(has)208
4150 y(reached)18 b(the)j(SUCCESS)g(state.)125 4308 y
Fb(\017)41 b Fg(eapF)o(ail)19 b(\(boolean\))208 4436
y(Set)27 b(to)g(TR)m(UE)g(in)g(authenticator)d(state)k(machine,)f(F)-6
b(ALSE)27 b(in)g(lo)n(wer)f(layer)-5 b(.)44 b(Indicates)26
b(the)h(state)h(machine)d(has)208 4536 y(reached)18 b(the)j(F)-6
b(AILURE)20 b(state.)125 4694 y Fb(\017)41 b Fg(eapReqData)19
b(\(EAP)h(pack)o(et\))208 4822 y(Set)27 b(in)h(authenticator)d(state)j
(machine)e(when)h(eapReq,)h(eapSuccess,)g(or)f(eapF)o(ail)g(is)h(set)g
(to)g(TR)m(UE.)f(The)g(actual)208 4922 y(EAP)20 b(request)g(to)g(be)g
(sent)h(\(or)e(success/f)o(ailure\).)125 5079 y Fb(\017)41
b Fg(eapK)n(e)o(yData)18 b(\(EAP)j(K)n(e)o(y\))208 5208
y(Set)h(in)f(authenticator)e(state)k(machine)d(when)h(k)o(e)o(ying)e
(material)i(becomes)g(a)n(v)n(ailable.)28 b(Set)22 b(during)e(the)h
(METHOD)208 5308 y(state.)k(Note)20 b(that)g(this)g(document)e(does)h
(not)h(yet)g(de\002ne)f(the)h(structure)e(of)i(the)g(type)f(\224EAP)h
(K)n(e)o(y\224.)k(W)-7 b(e)21 b(e)o(xpect)e(it)h(to)208
5407 y(be)g(de\002ned)f(in)h([I-D.aboba-pppe)o(xt-k)o(e)n(y-p)o(ro)o
(blem)o(].)0 5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)965
b(Expires)19 b(March)h(18,)f(2004)964 b([P)o(age)19 b(16])p
eop
%%Page: 17 17
17 16 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)125 390 y
Fb(\017)41 b Fg(eapK)n(e)o(yA)-6 b(v)n(ailable)17 b(\(boolean\))208
523 y(Set)j(to)f(TR)m(UE)h(in)f(the)h(SUCCESS)h(state)f(if)g(k)o(e)o
(ying)d(material)j(is)g(a)n(v)n(ailable.)k(The)19 b(actual)g(k)o(e)o(y)
g(is)i(stored)e(in)g(eapK)n(e)o(y-)208 623 y(Data.)0
943 y Fd(5.1.3)81 b(Constants)125 1143 y Fb(\017)41 b
Fg(MaxRetrans)19 b(\(inte)o(ger\))208 1275 y(Con\002gurable)f(maximum)g
(for)i(ho)n(w)g(man)o(y)f(retransmissions)g(should)g(be)h(attempted)f
(before)g(aborting.)0 1613 y Ff(5.2)99 b(Interface)26
b(between)h(standalone)e(authenticator)i(state)e(machine)g(and)h
(methods)0 1868 y Fg(IN:)20 b(eapRespData,)g(methodState)0
2067 y(IN/OUT)l(:)g(currentId,)e(\(method-speci\002c)f(state\),)k
(\(polic)o(y\))0 2266 y(OUT)l(:)f(intCheck,)g(eapReqData)0
2466 y(m.init)g(\(in:)25 b(-,)20 b(out:)25 b(-\))0 2665
y(When)e(the)h(method)e(is)i(\002rst)g(started,)g(it)g(must)f
(initialize)h(its)g(o)n(wn)f(method-speci\002c)e(state,)k(possibly)e
(using)f(some)i(infor)n(-)0 2765 y(mation)19 b(from)h(Polic)o(y)f
(\(e.g.)25 b(identity\).)0 2964 y(m.b)n(uildReq)19 b(\(in:)25
b(inte)o(ger)m(,)18 b(out:)25 b(EAP)c(pack)o(et\))0 3163
y(m.getT)m(imeout)d(\(in:)25 b(-,)20 b(out:)25 b(inte)o(ger)19
b(or)h(NONE\))0 3362 y(Ne)o(xt,)f(the)h(method)f(creates)h(a)g(ne)n(w)f
(EAP)i(Request)f(pack)o(et,)f(with)h(the)f(gi)n(v)o(en)g(identi\002er)g
(v)n(alue,)g(and)g(updates)g(its)i(method-)0 3462 y(speci\002c)e(state)
g(accordingly)-5 b(.)21 b(The)e(method)e(can)h(also)h(pro)o(vide)d(a)j
(hint)f(for)g(retransmission)g(timeout)f(with)i(m.getT)m(imeout.)0
3661 y(m.intCheck)g(\(in:)25 b(EAP)c(pack)o(et,)e(out:)25
b(boolean\))0 3861 y(When)18 b(a)g(ne)n(w)f(EAP)h(Response)g(is)h
(recei)n(v)o(ed,)d(the)i(method)e(must)i(\002rst)g(decide)f(whether)g
(to)h(process)f(the)h(pack)o(et)f(or)h(silently)0 3960
y(discard)i(it.)29 b(If)21 b(the)g(pack)o(et)g(looks)f(lik)o(e)i(it)g
(w)o(asn')o(t)f(sent)g(by)g(the)g(le)o(gitimate)f(peer)h(\(e.g.)27
b(it)22 b(has)g(in)m(v)n(alid)e(MIC,)h(and)f(this)i(case)0
4060 y(should)i(ne)n(v)o(er)f(occur\),)h(the)g(method)g(can)g(indicate)
g(this)h(by)f(returning)f(F)-6 b(ALSE.)24 b(In)h(this)g(case,)h(the)e
(method)f(should)h(not)0 4159 y(modify)19 b(its)i(o)n(wn)e
(method-speci\002c)g(state.)0 4359 y(m.process)g(\(in:)25
b(EAP)c(pack)o(et,)e(out:)25 b(-\))0 4558 y(m.isDone)19
b(\(in:)25 b(-,)c(out:)j(boolean\))0 4757 y(m.getK)n(e)o(y)19
b(\(in:)25 b(-,)20 b(out:)25 b(EAP)20 b(k)o(e)o(y)g(or)g(NONE\))0
4956 y(Ne)o(xt,)k(the)f(method)f(processes)h(the)h(EAP)g(Response)f
(and)g(updates)g(its)h(o)n(wn)f(method-speci\002c)e(state.)36
b(No)n(w)23 b(the)h(options)0 5056 y(are)c(to)g(continue)f(the)h(con)m
(v)o(ersation)e(\(send)h(another)g(request\))g(or)h(end)g(this)h
(method.)0 5255 y(If)f(the)g(method)f(w)o(ants)i(to)f(end)g(the)g(con)m
(v)o(ersation,)d(it)0 5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)965
b(Expires)19 b(March)h(18,)f(2004)964 b([P)o(age)19 b(17])p
eop
%%Page: 18 18
18 17 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)125 390 y
Fb(\017)41 b Fg(T)-6 b(ells)21 b(Polic)o(y)e(about)g(the)i(outcome)d
(of)i(the)g(method,)f(and)h(possibly)f(other)h(information.)125
552 y Fb(\017)41 b Fg(If)20 b(the)g(method)f(has)h(deri)n(v)o(ed)e(k)o
(e)o(ying)h(material)h(it)h(w)o(ants)f(to)h(e)o(xport,)d(returns)i(it)g
(from)g(m.getK)n(e)o(y\(\).)125 714 y Fb(\017)41 b Fg(Indicates)19
b(that)h(the)h(method)d(w)o(ants)j(to)f(end)g(by)g(returning)e(TR)m(UE)
i(from)f(m.isDone\(\).)0 986 y(Otherwise,)h(the)g(method)f(continues)g
(by)h(sending)f(another)f(request,)i(as)g(described)f(earlier)-5
b(.)0 1321 y Ff(5.3)99 b(Standalone)26 b(authenticator)h(state)e
(machine)g(local)f(v)o(ariables)0 1577 y Fd(5.3.1)81
b(Long-term)20 b(\(maintained)f(between)i(pack)o(ets\))125
1776 y Fb(\017)41 b Fg(currentMethod)17 b(\(EAP)j(T)-7
b(ype\))208 1907 y(EAP)20 b(type,)g(IDENTITY)-11 b(,)19
b(or)h(NO)m(TIFICA)-9 b(TION.)125 2069 y Fb(\017)41 b
Fg(currentId)18 b(\(inte)o(ger\))208 2199 y(0-255)j(or)j(NONE.)f
(Usually)g(updated)f(in)i(PR)m(OPOSE)p 1818 2199 25 4
v 30 w(METHOD)f(state.)35 b(Indicates)23 b(the)h(identi\002er)f(v)n
(alue)f(of)i(the)208 2299 y(currently)18 b(outstanding)g(EAP)j
(request.)125 2461 y Fb(\017)41 b Fg(methodState)18 b(\(enumeration\))
208 2592 y(As)j(described)d(abo)o(v)o(e.)125 2754 y Fb(\017)41
b Fg(retransCount)18 b(\(inte)o(ger\))208 2885 y(Reset)k(in)g(SEND)p
723 2885 V 29 w(REQ)o(UEST)g(state)g(and)f(updated)f(in)h(RETRANSMIT)h
(state.)29 b(Current)21 b(number)e(of)i(retransmis-)208
2984 y(sions.)125 3146 y Fb(\017)41 b Fg(lastReqData)20
b(\(EAP)g(pack)o(et\))208 3277 y(Set)g(in)h(SEND)p 642
3277 V 29 w(REQ)o(UEST)g(state.)26 b(EAP)20 b(pack)o(et)g(containing)e
(the)i(last)h(sent)g(request.)125 3439 y Fb(\017)41 b
Fg(methodT)m(imeout)17 b(\(inte)o(ger\))208 3570 y(Method-pro)o(vided)e
(hint)20 b(for)g(suitable)g(retransmission)f(timeout,)g(or)h(NONE.)0
3888 y Fd(5.3.2)81 b(Short-term)19 b(\(not)h(maintained)g(between)g
(pack)o(ets\))125 4088 y Fb(\017)41 b Fg(rxResp)20 b(\(boolean\))208
4218 y(Set)g(in)h(RECEIVED)f(state.)26 b(Indicates)19
b(the)h(current)f(recei)n(v)o(ed)g(pack)o(et)g(is)j(an)e(EAP)g
(response.)125 4380 y Fb(\017)41 b Fg(respId)19 b(\(inte)o(ger\))208
4511 y(Set)h(in)h(RECEIVED)f(state.)26 b(The)19 b(identi\002er)h(from)f
(the)h(current)f(EAP)i(response.)125 4673 y Fb(\017)41
b Fg(respMethod)18 b(\(EAP)i(T)-7 b(ype\))208 4804 y(Set)20
b(in)h(RECEIVED)f(state.)26 b(The)19 b(method)g(type)h(of)g(the)g
(current)f(EAP)i(response.)125 4966 y Fb(\017)41 b Fg(intCheck)19
b(\(boolean\))208 5097 y(Set)h(in)h(METHOD)f(state.)25
b(Indicates)20 b(whether)f(the)h(method)f(has)h(decided)f(to)i(accept)e
(the)i(current)e(pack)o(et.)125 5258 y Fb(\017)41 b Fg(decision)19
b(\(enumeration\))208 5389 y(Set)h(in)h(SELECT)p 730
5389 V 29 w(A)m(CTION)f(state.)26 b(T)-6 b(emporarily)18
b(store)i(the)g(polic)o(y)f(decision)h(to)g(succeed,)f(f)o(ail,)i(or)e
(continue.)0 5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)965
b(Expires)19 b(March)h(18,)f(2004)964 b([P)o(age)19 b(18])p
eop
%%Page: 19 19
19 18 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y Ff(5.4)99
b(EAP)25 b(standalone)h(authenticator)g(pr)n(ocedur)n(es)125
589 y Fb(\017)41 b Fg(calculateT)m(imeout\(\))208 722
y(Calculates)28 b(the)g(retransmission)e(timeout,)j(taking)e(into)h
(account)e(the)i(retransmission)f(count,)h(round-trip)d(time)208
822 y(measurements,)18 b(and)i(method-speci\002c)e(timeout)h(hint)h
(\(see)h([I-D.ietf-eap-rfc2284b)o(is],)15 b(Section)k(4.3\).)125
987 y Fb(\017)41 b Fg(parseEapResp\(\))208 1119 y(Determine)18
b(the)h(code,)f(identi\002er)h(v)n(alue,)f(and)h(type)f(of)h(the)g
(current)f(response.)24 b(Also)19 b(checks)g(that)g(the)g(length)f
(\002eld)208 1219 y(is)j(not)f(longer)e(than)i(the)g(Recei)n(v)o(ed)g
(EAP)g(pack)o(et)125 1384 y Fb(\017)41 b Fg(b)n(uildSuccess\(\))208
1517 y(Create)20 b(an)g(EAP)h(Success)f(P)o(ack)o(et.)125
1682 y Fb(\017)41 b Fg(b)n(uildF)o(ailure\(\))208 1815
y(Create)20 b(an)g(EAP)h(F)o(ailure)e(P)o(ack)o(et.)125
1980 y Fb(\017)41 b Fg(ne)o(xtId\(\))208 2113 y(Determine)19
b(the)h(ne)o(xt)f(identi\002er)h(v)n(alue)f(to)i(use,)f(based)g(on)g
(the)g(pre)n(vious)e(one.)125 2278 y Fb(\017)41 b Fg(Polic)o(y)-5
b(.update\(\))208 2411 y(Update)19 b(all)i(v)n(ariables)e(related)h(to)
g(internal)g(polic)o(y)f(state.)125 2576 y Fb(\017)41
b Fg(Polic)o(y)-5 b(.getNe)o(xtMethod\(\))208 2708 y(Determine)17
b(the)i(method)e(that)i(should)e(be)i(used)f(at)h(this)h(point)d(in)i
(the)g(con)m(v)o(ersation)d(based)i(on)g(pre-de\002ned)e(polic)o(y)-5
b(.)125 2874 y Fb(\017)41 b Fg(Polic)o(y)-5 b(.getDecision\(\))208
3006 y(Determine)19 b(if)h(the)g(polic)o(y)f(will)i(allo)n(w)g
(SUCCESS,)g(F)-6 b(AIL,)20 b(or)g(is)h(yet)f(to)g(determine)f
(\(CONTINUE\).)125 3172 y Fb(\017)41 b Fg(m.intCheck\(\))208
3304 y(Method-speci\002c)18 b(procedure)g(to)i(test)h(for)f(the)g(v)n
(alidity)f(of)h(a)h(message.)125 3470 y Fb(\017)41 b
Fg(m.process\(\))208 3602 y(Method)19 b(procedure)e(to)k(parse)f(and)f
(process)h(a)h(response)e(for)g(that)i(method.)125 3767
y Fb(\017)41 b Fg(m.init\(\))208 3900 y(Method)19 b(procedure)e(to)k
(initialize)f(state)h(just)g(before)d(use.)125 4065 y
Fb(\017)41 b Fg(m.reset\(\))208 4198 y(Method)19 b(procedure)e(to)k
(indicate)e(the)h(method)f(is)i(ending)e(in)h(the)h(middle)e(or)h
(before)f(completion.)125 4363 y Fb(\017)41 b Fg(m.isDone\(\))208
4496 y(Method)19 b(procedure)e(to)k(check)e(for)h(method)e(completion.)
125 4661 y Fb(\017)41 b Fg(m.getT)m(imeout\(\))208 4793
y(Method)19 b(procedure)e(to)k(determine)d(an)i(appropriate)e(timeout)i
(hint)g(for)f(that)i(method.)125 4959 y Fb(\017)41 b
Fg(m.getK)n(e)o(y\(\))208 5091 y(Method)19 b(procedure)e(to)k(obtain)e
(k)o(e)o(y)g(material)h(for)g(use)g(by)g(EAP)h(or)f(lo)n(wer)f(layers.)
125 5257 y Fb(\017)41 b Fg(m.b)n(uildReq\(\))208 5389
y(Method)19 b(procedure)e(to)k(produce)d(the)i(ne)o(xt)f(request.)0
5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19
b(March)h(18,)f(2004)964 b([P)o(age)19 b(19])p eop
%%Page: 20 20
20 19 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y Ff(5.5)99
b(EAP)25 b(standalone)h(authenticator)g(states)125 589
y Fb(\017)41 b Fg(DISABLED)208 722 y(The)19 b(authenticator)g(is)i
(disabled)e(until)h(the)g(port)g(is)h(enabled)e(by)h(the)g(lo)n(wer)g
(layer)-5 b(.)125 887 y Fb(\017)41 b Fg(INITIALIZE)208
1020 y(Initializes)20 b(v)n(ariables)f(when)h(the)g(state)h(machine)e
(is)i(acti)n(v)n(ated.)125 1185 y Fb(\017)41 b Fg(IDLE)208
1318 y(The)19 b(state)i(machine)e(spends)h(most)g(of)g(its)h(time)g
(here,)e(w)o(aiting)h(for)g(something)e(to)j(happen.)125
1483 y Fb(\017)41 b Fg(RECEIVED)208 1616 y(This)20 b(state)h(is)g
(entered)e(when)h(an)g(EAP)g(pack)o(et)g(is)h(recei)n(v)o(ed:)j(the)c
(pack)o(et)g(header)f(is)i(parsed)e(here.)125 1781 y
Fb(\017)41 b Fg(INTEGRITY)p 657 1781 25 4 v 28 w(CHECK)208
1913 y(A)20 b(method)f(state)i(in)f(which)g(the)g(inte)o(grity)f(of)h
(the)g(incoming)f(pack)o(et)g(from)g(the)i(peer)e(is)i(v)o(eri\002ed)e
(by)h(the)g(method.)125 2079 y Fb(\017)41 b Fg(METHOD)p
569 2079 V 29 w(RESPONSE)208 2211 y(A)20 b(method)f(state)i(in)f(which)
g(the)g(incoming)f(pack)o(et)g(is)i(processed.)125 2377
y Fb(\017)41 b Fg(METHOD)p 569 2377 V 29 w(REQ)o(UEST)208
2509 y(A)20 b(method)f(state)i(in)f(which)g(a)h(ne)n(w)f(request)f(is)i
(formulated)d(if)j(necessary)-5 b(.)125 2675 y Fb(\017)41
b Fg(PR)m(OPOSE)p 574 2675 V 30 w(METHOD)208 2807 y(A)20
b(state)h(in)g(which)e(the)h(authenticator)f(decides)g(which)h(method)f
(to)h(try)g(ne)o(xt)g(in)g(the)g(authentication.)125
2972 y Fb(\017)41 b Fg(SELECT)p 518 2972 V 29 w(A)m(CTION)208
3105 y(In)20 b(between)g(methods,)g(the)h(state)h(machine)d(re-e)n(v)n
(aluates)h(whether)g(or)g(not)h(its)h(polic)o(y)d(is)j(satis\002ed)g
(and)e(succeeds,)208 3205 y(f)o(ails,)g(or)g(remains)g(undecided.)125
3370 y Fb(\017)41 b Fg(SEND)p 430 3370 V 29 w(REQ)o(UEST)208
3502 y(This)20 b(state)h(signals)f(the)g(lo)n(wer)g(layer)g(that)g(a)h
(request)e(pack)o(et)h(is)h(ready)e(to)i(be)f(sent.)125
3668 y Fb(\017)41 b Fg(DISCARD)208 3800 y(This)24 b(state)h(signals)f
(the)g(lo)n(wer)g(layer)g(that)g(the)g(response)g(w)o(as)h(discarded,)e
(and)h(no)g(ne)n(w)g(request)f(pack)o(et)h(will)h(be)208
3900 y(sent)20 b(at)h(this)f(time.)125 4065 y Fb(\017)41
b Fg(N)m(AK)208 4198 y(This)20 b(state)h(processes)f(Nak)g(responses)f
(from)h(the)g(peer)-5 b(.)125 4363 y Fb(\017)41 b Fg(RETRANSMIT)208
4496 y(Retransmits)20 b(the)g(pre)n(vious)f(request)g(pack)o(et.)125
4661 y Fb(\017)41 b Fg(SUCCESS)208 4793 y(A)20 b(\002nal)h(state)g
(indicating)d(success.)125 4959 y Fb(\017)41 b Fg(F)-6
b(AILURE)208 5091 y(A)20 b(\002nal)h(state)g(indicating)d(f)o(ailure.)
125 5257 y Fb(\017)41 b Fg(TIMEOUT)p 588 5257 V 28 w(F)-6
b(AILURE)208 5389 y(A)20 b(\002nal)h(state)g(indicating)d(f)o(ailure)i
(with)g(no)g(EAP)h(F)o(ailure)e(pack)o(et)h(sent.)0 5656
y(V)-11 b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19 b(March)h(18,)f
(2004)964 b([P)o(age)19 b(20])p eop
%%Page: 21 21
21 20 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y Fe(6)119
b(EAP)30 b(Back)o(end)h(A)-6 b(uthenticator)0 675 y Fg(When)30
b(operating)e(in)i(passthrough)e(mode,)j(there)e(are)h(conceptually)e
(tw)o(o)i(parts)g(to)g(the)g(authenticator)n(-)e(the)i(part)f(that)0
775 y(passes)c(pack)o(ets)f(through)e(and)h(the)i(back)o(end)d(that)i
(actually)g(implements)f(the)h(EAP)h(method.)36 b(The)23
b(follo)n(wing)g(diagram)0 875 y(sho)n(ws)g(a)g(state)g(machine)f(for)g
(the)h(back)o(end)e(part)h(of)h(this)g(model)f(when)g(using)g(a)h(AAA)g
(serv)o(er)-5 b(.)32 b(Note)23 b(that)g(this)g(diagram)0
974 y(is)h(identical)e(to)h(Figure)f(4)h(e)o(xcept)e(no)i(retransmit)f
(is)h(included)f(in)g(the)h(IDLE)g(state)g(because)f(with)h(RADIUS)g
(retransmit)0 1074 y(is)31 b(handled)e(by)h(the)g(N)m(AS,)h(and)f(a)h
(PICK)p 1254 1074 25 4 v 30 w(UP)p 1390 1074 V 30 w(METHOD)f(state)h
(and)f(v)n(ariable)f(in)i(INITIALIZE)d(state)j(are)f(added)f(to)0
1174 y(allo)n(w)c(the)h(Method)e(to)h(\224pickup\224)f(a)i(method)e
(started)h(in)h(a)f(N)m(AS.)h(Included)e(is)i(an)f(e)o(xplanation)e(of)
i(the)h(primiti)n(v)o(es)e(and)0 1273 y(procedures)i(referenced)h(in)i
(the)g(diagram,)g(man)o(y)e(of)i(which)f(are)h(the)f(same)h(as)h(abo)o
(v)o(e.)49 b(It)29 b(should)e(be)i(noted)f(that)h(the)0
1373 y(\224lo)n(wer)20 b(layer\224)f(in)i(this)f(case)h(is)g(some)f
(AAA)h(protocol)d(\(e.g.)24 b(RADIUS\).)0 1572 y(\(see)c
(draft-ietf-eap-statemachine-00.p)o(s)15 b(for)20 b(missing)g(diagram)f
(if)h(reading)f([.txt])h(v)o(ersion\))0 1909 y Ff(6.1)99
b(Interface)26 b(between)h(back)o(end)g(authenticator)f(state)f
(machine)h(and)f(lo)o(wer)g(lay)o(er)0 2165 y Fg(The)d(lo)n(wer)g
(layer)h(presents)f(messages)h(to)f(the)h(EAP)g(back)o(end)e
(authenticator)g(state)i(machine)f(by)g(storing)g(the)g(pack)o(et)g(in)
0 2264 y(aaaEapRespData)d(and)h(setting)g(the)g(aaaEapResp)g(signal)g
(to)g(TR)m(UE.)0 2463 y(When)25 b(the)f(EAP)i(back)o(end)d
(authenticator)g(state)i(machine)f(has)h(\002nished)f(processing)g(the)
h(message,)g(it)h(sets)g(one)e(of)h(the)0 2563 y(signals)i(aaaEapReq,)f
(aaaEapNoReq,)g(aaaSuccess,)i(and)e(aaaF)o(ail.)44 b(If)26
b(it)h(sets)g(eapReq,)h(eapSuccess,)f(or)f(eapF)o(ail,)i(the)0
2663 y(corresponding)16 b(request)j(\(or)g(success/f)o(ailure\))g(pack)
o(et)g(is)h(stored)f(in)h(aaaEapReqData.)k(The)19 b(lo)n(wer)g(layer)g
(is)i(responsible)0 2762 y(for)f(actually)f(transmitting)g(this)i
(message.)0 3083 y Fd(6.1.1)81 b(V)-8 b(ariables)20 b(\(AAA)h
(interface)e(to)h(back)o(end)h(authenticator\))125 3282
y Fb(\017)41 b Fg(aaaEapResp)19 b(\(boolean\))208 3415
y(Set)31 b(to)f(TR)m(UE)h(in)f(lo)n(wer)g(layer)m(,)i(F)-6
b(ALSE)31 b(in)f(authenticator)f(state)i(machine.)54
b(Indicates)30 b(an)g(EAP)h(response)f(is)208 3515 y(a)n(v)n(ailable)19
b(for)h(processing.)125 3681 y Fb(\017)41 b Fg(aaaEapRespData)19
b(\(EAP)h(pack)o(et\))208 3814 y(Set)g(in)h(lo)n(wer)e(layer)h(when)g
(eapResp)g(is)h(set)g(to)f(TR)m(UE.)g(The)g(EAP)h(pack)o(et)e(to)i(be)f
(processed.)125 3980 y Fb(\017)41 b Fg(back)o(endEnabled)16
b(\(boolean\))208 4112 y(Indicates)h(that)i(there)f(is)i(a)e(v)n(alid)h
(link)f(to)h(use)f(for)g(the)h(communication.)i(If)e(at)g(an)o(y)e
(point)h(the)h(port)f(is)h(not)f(a)n(v)n(ailable,)208
4212 y(back)o(endEnabled)e(is)21 b(set)g(to)g(F)-6 b(ALSE)20
b(and)g(the)g(state)h(machine)e(transitions)g(to)i(DISABLED.)0
4533 y Fd(6.1.2)81 b(V)-8 b(ariables)20 b(\(back)o(end)h(authenticator)
d(to)i(AAA)h(interface\))125 4732 y Fb(\017)41 b Fg(aaaEapReq)19
b(\(boolean\))208 4865 y(Set)27 b(to)f(TR)m(UE)h(in)f(authenticator)e
(state)k(machine,)e(F)-6 b(ALSE)27 b(in)f(lo)n(wer)g(layer)-5
b(.)44 b(Indicates)25 b(a)i(ne)n(w)f(EAP)h(request)f(is)208
4965 y(ready)19 b(to)h(be)g(sent.)125 5131 y Fb(\017)41
b Fg(aaaEapNoReq)18 b(\(boolean\))208 5263 y(Set)j(to)f(TR)m(UE)g(in)h
(authenticator)d(state)j(machine,)e(F)-6 b(ALSE)21 b(in)f(lo)n(wer)g
(layer)-5 b(.)25 b(Indicates)20 b(the)g(most)h(recent)f(response)208
5363 y(has)g(been)f(processed,)g(b)n(ut)i(there)e(is)i(no)f(ne)n(w)g
(request)g(to)g(send.)0 5656 y(V)-11 b(ollbrecht,)19
b(et)i(al.)965 b(Expires)19 b(March)h(18,)f(2004)964
b([P)o(age)19 b(21])p eop
%%Page: 22 22
22 21 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)18 4627 y
@beginspecial 0 @llx 0 @lly 599 @urx 726 @ury 4276 @rwi
@setspecial
%%BeginDocument: ../../../diagrams/20030912_backend_authenticator.eps
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: ImageMark Software Labs
%%For: () ()
%%Title: C:\USERS\IETF\EAP\State machines\AuthenticatorSplit\20030912_backend_authenticator.eps
%%CreationDate: () ()
%%BoundingBox: 0 0 599 726
%%DocumentProcessColors: Black
%%ColorUsage:Color
%%DocumentFonts: Helvetica
%%+Helvetica-Bold
%%+Helvetica-Oblique
%%+Helvetica-BoldOblique
%%+Times-Roman
%%+Times-Bold
%%+Times-Italic
%%+Times-BoldItalic
%%+Courier
%%+Courier-Bold
%%+Courier-Oblique
%%+Courier-BoldOblique
%%+Symbol
%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
%%+ procset Adobe_screens_AI5 1.0 0
%%+ procset Adobe_typography_AI5 1.0 0
%%+ procset Adobe_ColorImage_AI6 1.1 0
%%+ procset Adobe_blend_AI5 1.0 0
%%+ procset Adobe_pattern_AI5 1.0 0
%%+ procset Adobe_Illustrator_AI5 1.0 0
%AI5_FileFormat 3.0
%AI3_ColorUsage: Color
%AI3_TemplateBox: 0 0 599 726
%AI3_TileBox: 0 0 599 726
%AI3_DocumentPreview: None
%%Template:
%%PageOrigin:0.0000 0.0000
%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%%EndComments
%%BeginProlog
%%BeginResource: procset Adobe_level2_AI5 1.2 0
%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
%%Version: 1.2 0
%%CreationDate: (04/10/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /Adobe_level2_AI5 25 dict dup begin
	put
	/packedarray where not
	{
		userdict begin
		/packedarray
		{
			array astore readonly
		} bind def
		/setpacking /pop load def
		/currentpacking false def
	 end
		0
	} if
	pop
	userdict /defaultpacking currentpacking put true setpacking
	/initialize
	{
		Adobe_level2_AI5 begin
	} bind def
	/terminate
	{
		currentdict Adobe_level2_AI5 eq
		{
		 end
		} if
	} bind def
	mark
	/setcustomcolor where not
	{
		/findcmykcustomcolor
		{
			0
			6 packedarray
		} bind def
		/findrgbcustomcolor
		{
			1
			5 packedarray
		} bind def
		/setcustomcolor
		{
			exch 
			aload pop 
			0 eq
			{
				pop
				4
				{
					4 index mul
					4 1 roll
				} repeat
				5 -1 roll pop
				setcmykcolor
			}
			{
				pop
				3
				{
					1 exch sub
					3 index mul 
					1 exch sub
					3 1 roll
				} repeat
				4 -1 roll pop
				setrgbcolor
			} ifelse
		}
		def
	} if
	
	/gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
	userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
	userdict /level2?
	systemdict /languagelevel known dup
	{
		pop systemdict /languagelevel get 2 ge
	} if
	put
/level2ScreenFreq
{
 begin
		60
		HalftoneType 1 eq
		{
			pop Frequency
		} if
		HalftoneType 2 eq
		{
			pop GrayFrequency
		} if
		HalftoneType 5 eq
		{
			pop Default level2ScreenFreq
		} if
 end
} bind def
userdict /currentScreenFreq  
	level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
level2? not
	{
		/setcmykcolor where not
		{
			/setcmykcolor
			{
				exch .11 mul add exch .59 mul add exch .3 mul add
				1 exch sub setgray
			} def
		} if
		/currentcmykcolor where not
		{
			/currentcmykcolor
			{
				0 0 0 1 currentgray sub
			} def
		} if
		/setoverprint where not
		{
			/setoverprint /pop load def
		} if
		/selectfont where not
		{
			/selectfont
			{
				exch findfont exch
				dup type /arraytype eq
				{
					makefont
				}
				{
					scalefont
				} ifelse
				setfont
			} bind def
		} if
		/cshow where not
		{
			/cshow
			{
				[
				0 0 5 -1 roll aload pop
				] cvx bind forall
			} bind def
		} if
	} if
	cleartomark
	/anyColor?
	{
		add add add 0 ne
	} bind def
	/testColor
	{
		gsave
		setcmykcolor currentcmykcolor
		grestore
	} bind def
	/testCMYKColorThrough
	{
		testColor anyColor?
	} bind def
	userdict /composite?
	level2?
	{
		gsave 1 1 1 1 setcmykcolor currentcmykcolor grestore
		add add add 4 eq
	}
	{
		1 0 0 0 testCMYKColorThrough
		0 1 0 0 testCMYKColorThrough
		0 0 1 0 testCMYKColorThrough
		0 0 0 1 testCMYKColorThrough
		and and and
	} ifelse
	put
	composite? not
	{
		userdict begin
		gsave
		/cyan? 1 0 0 0 testCMYKColorThrough def
		/magenta? 0 1 0 0 testCMYKColorThrough def
		/yellow? 0 0 1 0 testCMYKColorThrough def
		/black? 0 0 0 1 testCMYKColorThrough def
		grestore
		/isCMYKSep? cyan? magenta? yellow? black? or or or def
		/customColor? isCMYKSep? not def
	 end
	} if
 end defaultpacking setpacking
%%EndResource
%%BeginResource: procset Adobe_typography_AI5 1.0 1
%%Title: (Typography Operators)
%%Version: 1.0 
%%CreationDate:(03/26/93) ()
%%Copyright: ((C) 1987-1993 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_typography_AI5 54 dict dup begin
put
/initialize
{
 begin
 begin
	Adobe_typography_AI5 begin
	Adobe_typography_AI5
	{
		dup xcheck
		{
			bind
		} if
		pop pop
	} forall
 end
 end
 end
	Adobe_typography_AI5 begin
} def
/terminate
{
	currentdict Adobe_typography_AI5 eq
	{
	 end
	} if
} def
/modifyEncoding
{
	/_tempEncode exch ddef
	/_pntr 0 ddef
	{
		counttomark -1 roll
		dup type dup /marktype eq
		{
			pop pop exit
		}
		{
			/nametype eq
			{
				_tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
				put
			}
			{
				/_pntr exch ddef
			} ifelse
		} ifelse
	} loop
	_tempEncode
} def
/TE
{
	StandardEncoding 256 array copy modifyEncoding
	/_nativeEncoding exch def
} def
%
/TZ
{
	dup type /arraytype eq
	{
		/_wv exch def
	}
	{
		/_wv 0 def
	} ifelse
	/_useNativeEncoding exch def
	pop pop
	findfont _wv type /arraytype eq
	{
		_wv makeblendedfont
	} if
	dup length 2 add dict
 begin
	mark exch
	{
		1 index /FID ne
		{
			def
		} if
		cleartomark mark
	} forall
	pop
	/FontName exch def
	counttomark 0 eq
	{
		1 _useNativeEncoding eq
		{
			/Encoding _nativeEncoding def
		} if
		cleartomark
	}
	{
		/Encoding load 256 array copy
		modifyEncoding /Encoding exch def
	} ifelse
	FontName currentdict
 end
	definefont pop
} def
/tr
{
	_ax _ay 3 2 roll
} def
/trj
{
	_cx _cy _sp _ax _ay 6 5 roll
} def
/a0
{
	/Tx
	{
		dup
		currentpoint 3 2 roll
		tr _psf
		newpath moveto
		tr _ctm _pss
	} ddef
	/Tj
	{
		dup
		currentpoint 3 2 roll
		trj _pjsf
		newpath moveto
		trj _ctm _pjss
	} ddef
} def
/a1
{
	/Tx
	{
		dup currentpoint 4 2 roll gsave
		dup currentpoint 3 2 roll
		tr _psf
		newpath moveto
		tr _ctm _pss
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll gsave
		dup currentpoint 3 2 roll
		trj _pjsf
		newpath moveto
		trj _ctm _pjss
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/e0
{
	/Tx
	{
		tr _psf
	} ddef
	/Tj
	{
		trj _pjsf
	} ddef
} def
/e1
{
	/Tx
	{
		dup currentpoint 4 2 roll gsave
		tr _psf
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll gsave
		trj _pjsf
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/i0
{
	/Tx
	{
		tr sp
	} ddef
	/Tj
	{
		trj jsp
	} ddef
} def
/i1
{
	W N
} def
/o0
{
	/Tx
	{
		tr sw rmoveto
	} ddef
	/Tj
	{
		trj swj rmoveto
	} ddef
} def
/r0
{
	/Tx
	{
		tr _ctm _pss
	} ddef
	/Tj
	{
		trj _ctm _pjss
	} ddef
} def
/r1
{
	/Tx
	{
		dup currentpoint 4 2 roll currentpoint gsave newpath moveto
		tr _ctm _pss
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll currentpoint gsave newpath moveto
		trj _ctm _pjss
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/To
{
	pop _ctm currentmatrix pop
} def
/TO
{
	iTe _ctm setmatrix newpath
} def
/Tp
{
	pop _tm astore pop _ctm setmatrix
	_tDict begin
	/W
	{
	} def
	/h
	{
	} def
} def
/TP
{
 end
	iTm 0 0 moveto
} def
/Tr
{
	_render 3 le
	{
		currentpoint newpath moveto
	} if
	dup 8 eq
	{
		pop 0
	}
	{
		dup 9 eq
		{
			pop 1
		} if
	} ifelse
	dup /_render exch ddef
	_renderStart exch get load exec
} def
/iTm
{
	_ctm setmatrix _tm concat 0 _rise translate _hs 1 scale
} def
/Tm
{
	_tm astore pop iTm 0 0 moveto
} def
/Td
{
	_mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
} def
/iTe
{
	_render -1 eq
	{
	}
	{
		_renderEnd _render get dup null ne
		{
			load exec
		}
		{
			pop
		} ifelse
	} ifelse
	/_render -1 ddef
} def
/Ta
{
	pop
} def
/Tf
{
	dup 1000 div /_fScl exch ddef
%
	selectfont
} def
/Tl
{
	pop
	0 exch _leading astore pop
} def
/Tt
{
	pop
} def
/TW
{
	3 npop
} def
/Tw
{
	/_cx exch ddef
} def
/TC
{
	3 npop
} def
/Tc
{
	/_ax exch ddef
} def
/Ts
{
	/_rise exch ddef
	currentpoint
	iTm
	moveto
} def
/Ti
{
	3 npop
} def
/Tz
{
	100 div /_hs exch ddef
	iTm
} def
/TA
{
	pop
} def
/Tq
{
	pop
} def
/Th
{
	pop pop pop pop pop
} def
/TX
{
	pop
} def
/Tk
{
	exch pop _fScl mul neg 0 rmoveto
} def
/TK
{
	2 npop
} def
/T*
{
	_leading aload pop neg Td
} def
/T*-
{
	_leading aload pop Td
} def
/T-
{
	_hyphen Tx
} def
/T+
{
} def
/TR
{
	_ctm currentmatrix pop
	_tm astore pop
	iTm 0 0 moveto
} def
/TS
{
	currentfont 3 1 roll
	/_Symbol_ _fScl 1000 mul selectfont
	
	0 eq
	{
		Tx
	}
	{
		Tj
	} ifelse
	setfont
} def
/Xb
{
	pop pop
} def
/Tb /Xb load def
/Xe
{
	pop pop pop pop
} def
/Te /Xe load def
/XB
{
} def
/TB /XB load def
currentdict readonly pop
end
setpacking
%%EndResource
%%BeginResource: procset Adobe_screens_AI5 1.2 0
%%Title: (Adobe Illustrator (R) Version 5.0 Custom Halftone Screens ProcSet)
%%Version: 1.2 0
%%CreationDate: (03/24/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
systemdict begin
userdict /Adobe_screens_AI5 15 dict dup begin
put
/initialize
{
	Adobe_screens_AI5 begin
	/screenid
		deviceDPI 600 gt composite? not or
		{
		-1
		}
		{
			deviceDPI currentScreenFreq 
			dup dup 60 ge exch 150 le and deviceDPI 300 le and
		{
			pop 60
		} if
		div 1.41421 div 0.5 add cvi
		} ifelse
	def
	
	2 screenid eq
	{
		/customsize 16 def
		/customdata /customdata2 def
		setcustomscreen
	} if
	
	3 screenid eq
	{
		/customsize 24 def
		/customdata /customdata3 def
		setcustomscreen
	} if
	
	4 screenid eq
	{
		/customsize 16 def
		/customdata /customdata4 def
		setcustomscreen
	} if
	
	5 screenid eq
	{
		/customsize 20 def
		/customdata /customdata5 def
		setcustomscreen
	} if
	
	6 screenid eq
	{
		/customsize 24 def
		/customdata /customdata6 def
		setcustomscreen
	} if
	
	7 screenid eq
	{
		/customsize 28 def
		/customdata /customdata7 def
		setcustomscreen
	} if
	
	8 screenid eq
	{
		/customsize 16 def
		/customdata /customdata8 def
		setcustomscreen
	} if
} def
/terminate
{
	currentdict Adobe_screens_AI5 eq
	{
	 end
	} if
} def
/setcustomscreen
{
	deviceDPI customsize div 0
	{
		1 add 2 div customsize mul cvi exch
		1 add 2 div customsize mul cvi exch
		customsize mul add
		customdata load exch get 256 div
	} setscreen
} def
/customdata2 28 28 mul string def
currentfile customdata2 readhexstring
4180E8694988E2634382EA6B4B8AE061A01939C8A81737C2A21B3BCAAA1636C0
F8795998F6775796FA7B5B9AF57656952ED8B80727D6B60F2FDABA0626D5B50E
4E8DE6674786EE6F4F8EE5664685ED6EAD1434C6A61F3FCEAE1232C5A51E3ECD
F3745493FE7F5F9EF1725291FD7E5E9D24D3B30C2CDEBE0222D1B10A2ADDBD04
4483EB6C4C8BE1624281E96A4A89E364A31C3CCBAB1535C1A11A3AC9A91838C3
FB7C5C9BF4755594F97A5A99F778589730DBBB0525D4B40D2DD9B90828D7B710
508FE4654584EC6D4D8CE7684887EF70AF1131C4A41D3DCCAC1333C7A72040CF
F0715190FC7D5D9CF2735392FF80609F21D0B00929DCBC0323D2B20B2BDFBF01
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata3 28 28 mul string def
currentfile customdata3 readhexstring
011DC7F5E73D0421CBF3E43A021EC8F6E83E0522CCF2E43A2B648BC4A0762F68
8AC39E732C658CC5A177306989C29D72D5B6521A6192D9B55219608FD6B6531B
6193DAB451185F8FFCEE440C28D2FCED430B27D1FDEF450C29D3FBEC420A26D0
BEA77D366F83BCA77C356E87BFA87E377082BBA67B346D86145B99E0AE4A1259
98DFB14E155C9AE1AD4A115897DEB04D0623CDF4E63C0420CAF8EA400723CDF4
E53B031FC9F7E93F316988C19F752E678EC6A378326A88C09F742D668DC6A278
DBB350175E91D8B8551C6395DCB24F165D90D7B7541C6294FAEC420925CFFFF1
470E2BD5F9EB410824CEFEF0460D2AD4BAA57A336C85BEAA80397180B9A47933
6B84BDA97F387181105797DDAF4C145A9CE3AB480F5696DDAE4B13599BE2AC49
021EC8F6E83E0522CCF2E43A011DC7F5E73D0421CBF3E43A2C658CC5A1773069
89C29D722B648BC4A0762F688AC39E73D6B6531B6193DAB451185F8FD5B6521A
6192D9B55219608FFDEF450C29D3FBEC420A26D0FCEE440C28D2FCED430B27D1
BFA87E377082BBA67B346D86BEA77D366F83BCA77C356E87155C9AE1AD4A1158
97DEB04D145B99E0AE4A125998DFB14E0723CDF4E53B031FC9F7E93F0623CDF4
E63C0420CAF8EA40326A88C09F742D668DC6A278316988C19F752E678EC6A378
DCB24F165D90D7B7541C6294DBB350175E91D8B8551C6395F9EB410824CEFEF0
460D2AD4FAEC420925CFFFF1470E2BD5B9A479336B84BDA97F387181BAA57A33
6C85BEAA803971800F5696DDAE4B13599BE2AC49105797DDAF4C145A9CE3AB48
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata4 28 28 mul string def
currentfile customdata4 readhexstring
1139B8E0FAD2531B133BBAE2F8D05119417180A6AE9A7B4B437382A5AD987949
C08867272F6F92CAC28A66262E6E90C8E8DE5F070F37B6F2EADD5E060E36B5F0
FED6571F173FBEE6FDD5561E163EBDE5AB9E7F4F477786A1A99D7E4E467685A3
2C6C96CEC68E62222A6A95CDC58D64240C34B3F6EED95A020A32B1F5EDDB5C04
143CBBE3F9D1521A123AB9E1FBD3541C447483A4AC997A4A427281A7AF9B7C4C
C38B65252D6D91C9C1896828307093CBEBDC5D050D35B4F1E9DF60081038B7F3
FCD4551D153DBCE4FFD758201840BFE7A89C7D4D457584A2AA9F8050487887A0
296994CCC48C63232B6B97CFC78F61210931B0F4ECDA5B030B33B2F7EFD85901
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata5 28 28 mul string def
currentfile customdata5 readhexstring
010B34C3EBFCF7CE3F16020C35C4EDFBF6CD3E15102552A4D6EADDB5632B1126
54A5D5EADCB3622A3958768499C19E8C7C5E3A59778498C19D8B7B5DC8A99370
47334C7587AFC9AA936F46324B7485AEF1E5BC6B1E0A2351A3D8F2E4BC6A1E09
2351A2D7FFF9D14219050F38C6EFFEF9D04118040E37C6EFE8E0B7662D142856
A8D3E7DFB7652D132856A7D4BF9C8E7F603D5B7A8195BE9A8E7E603C5B798297
314A7389B2CCAD906D442F497289B1CBAC926E4508214FA1DBF4E2B9671B0720
4EA0DAF4E3BA691C030D36C5EDFBF6CD3F16010C34C3ECFDF8CF4017122654A6
D4E9DDB4622A112553A5D6EBDEB5642C3B59788397C09C8B7C5D3A58778599C2
9E8C7D5FCAAB926E46314B7486AFC8AA947048334D7587B0F2E4BB691D082250
A1D8F1E6BD6B1F0A2452A3D9FDF8CF4118030E36C5EEFFFAD1421A050F38C7F0
E6DFB6642C132755A7D3E8E1B8662E152957A8D2BE9A8D7E5F3B5A798296BF9B
8F80613D5C7B80952F487188B1CAAC916D443049728AB3CCAE906C43061F4D9F
DAF3E2BA681C07214FA0DBF5E1B8671A00000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata6 28 28 mul string def
currentfile customdata6 readhexstring
081A44B6E0F2FDECC150250C091B45B6E1F3FCEBC04F240C1D336199C7D8DCD3
A56C37221E33619AC8D7DBD2A46B36214864798091AEB1958C7E694C49657A81
90ADB0948B7D684BB99D8475593C405C7888A1BEBA9E8574583B3F5B7888A0BD
E4CBAA712E1215326098CFE8E4CCA9712D1114315F97CEE7F5F1C6552B040719
43B5DFFAF6F0C6542A03061842B4DEF9FFEDC352270E0B1C47B8E3F4FEECC251
260D0A1C46B7E2F4DAD5A76E39232035639CCAD5D9D4A66D38231F34629BC9D6
AF938E806A4E4A677C838FABAE928D7F694D4A667B828FAC3E5A778AA3BFBC9F
8772563A3D597689A2BEBB9F8673573A14305E97D1EAE6CDA76F2B0F132F5D96
D0E9E5CDA8702C10051742B3DDFCF8EEC4522801041641B2DDFBF7EFC5532902
091B45B6E1F3FCEBC04F240C081A44B6E0F2FDECC150250C1E33619AC8D7DBD2
A46B36211D336199C7D8DCD3A56C372249657A8190ADB0948B7D684B48647980
91AEB1958C7E694CBA9E8574583B3F5B7888A0BDB99D8475593C405C7888A1BE
E4CCA9712D1114315F97CEE7E4CBAA712E1215326098CFE8F6F0C6542A030618
42B4DEF9F5F1C6552B04071943B5DFFAFEECC251260D0A1C46B7E2F4FFEDC352
270E0B1C47B8E3F4D9D4A66D38231F34629BC9D6DAD5A76E39232035639CCAD5
AE928D7F694D4A667B828FACAF938E806A4E4A677C838FAB3D597689A2BEBB9F
8673573A3E5A778AA3BFBC9F8772563A132F5D96D0E9E5CDA8702C1014305E97
D1EAE6CDA76F2B0F041641B2DDFBF7EFC5532902051742B3DDFCF8EEC4522801
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata7 28 28 mul string def
currentfile customdata7 readhexstring
01061B44B7E1F5FEFBE6BD4A210C01071B45B8E1F6FDFBE6BC4A200B09132A54
A7D1EAF5EED9B05D331609142B55A8D2EAF4EED9AF5C32161D2D3D6993C1CBE0
CEC59B7140301E2E3D6A93C0CADFCDC49A713F3047576C7B828DA2B6A48F867E
6F5A48576C7C828CA1B6A38F867E6E59BAAA958A78634E4451667A8498ADBAAB
968977624E4350657A8398ADE3D4C99F7539251A273C6892C2D7E4D4C89E7539
241A273B6891C1D6F8F2DDB460371005122A53A7D0ECF9F2DDB360360F051229
53A6D0EBFFFDE8BE4C220D03081D46B9E3F7FFFCE7BD4B210D02071C46B8E2F7
F3F0DBB15E34180B152C56A9D3E8F3EFDAB05D34170A142C55A9D2E9DFCCC69C
7341321F2F3F6B94BFC9DECCC59C7241311F2E3E6A94BFCAB5A38E8780705B49
596D7D808BA0B4A28D877F6F5B48586D7C818BA043506479859AAFBCAC978876
614C424F64798499AEBBAB968977624D19263B6791C3D8E5D6C79D7337231825
3A6690C3D7E5D5C79E74382304112952A5CFEDFAF0DBB25E350E03102851A5CE
ECF9F1DCB25F360E01071B45B8E1F6FDFBE6BC4A200B01061B44B7E1F5FEFBE6
BD4A210C09142B55A8D2EAF4EED9AF5C321609132A54A7D1EAF5EED9B05D3316
1E2E3D6A93C0CADFCDC49A713F301D2D3D6993C1CBE0CEC59B71403048576C7C
828CA1B6A38F867E6E5947576C7B828DA2B6A48F867E6F5ABAAB968977624E43
50657A8398ADBAAA958A78634E4451667A8498ADE4D4C89E7539241A273B6891
C1D6E3D4C99F7539251A273C6892C2D7F9F2DDB360360F05122953A6D0EBF8F2
DDB460371005122A53A7D0ECFFFCE7BD4B210D02071C46B8E2F7FFFDE8BE4C22
0D03081D46B9E3F7F3EFDAB05D34170A142C55A9D2E9F3F0DBB15E34180B152C
56A9D3E8DECCC59C7241311F2E3E6A94BFCADFCCC69C7341321F2F3F6B94BFC9
B4A28D877F6F5B48586D7C818BA0B5A38E8780705B49596D7D808BA0424F6479
8499AEBBAB968977624D43506479859AAFBCAC978876614C18253A6690C3D7E5
D5C79E74382319263B6791C3D8E5D6C79D73372303102851A5CEECF9F1DCB25F
360E04112952A5CFEDFAF0DBB25E350E
pop pop
/customdata8 28 28 mul string def
currentfile customdata8 readhexstring
050F2747B6D6EEF8FEF4DCBC4D2D1507111D375F9EC6E0E9EBE6CCA4653D1F13
2939556F8EA8C1D1D3C3AE9475573B2B4961717D808999B1B39B8B867F73634B
B8A090827A6A5A42445C6C7C8492A2BAD8C8AA97785232222434546E8DACCADA
F0E2CFA768401A0A0C1C365E9DC5E4F2FAF7DFBF50301802040E2646B5D5EDFC
FFF5DDBD4E2E160806102848B7D7EFF9EAE7CDA5663E2014121E38609FC7E1E8
D2C2AF9576583C2C2A3A56708FA9C0D0B29A8A878074644C4A62727E818898B0
435B6B7B8593A3BBB9A19183796959412333536D8CADCBDBD9C9AB9677513121
0B1B355D9CC4E5F3F1E3CEA6673F1909030D2545B4D4ECFDFBF6DEBE4F2F1701
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset AGM_Gradient_Sep 1.0 0
%%Title: (AGM Gradient Procset)
%%Version: 1.0 0
%%CreationDate: (4/26/96) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /AGM_Gradient_Sep 5 dict dup begin put
/AGM_Gradient_Sep_private 100 dict def
/initialize{
	AGM_Gradient_Sep begin
	AGM_Gradient_Sep_private begin
	_compositeJob{
		initializeSinglePassSeps
	}{
		initializeMultiPassSeps
	}ifelse
	initializeSeps
	AGM_Gradient_private begin
		/_fillSD newSpotDict def
		/_rampSD newSpotDict def
		/_nCustomColorSD nd
 end
	AGM_Gradient_Sep_private 
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
	AGM_Gradient_Sep
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
 end
	
	currentdict readonly pop	
 end
}def
/terminate{
	currentdict AGM_Gradient_Sep eq{
	 end
	}if
}def
 
AGM_Gradient_Sep_private begin
/initializeSeps{
	_noImage not _level2PS not and{
		/_whiteBytes 1 makeByte8 pt
		/knockOut{
			8 setImageParms _whiteBytes /_image load 5 execImage
		}def
		/linealFill{
			mySave
			8 setImageParms
			_color{
				_nCustomColorSD begin
					cyan magenta yellow black
					_spotColor{
						spot1 begin
							/tintImage tintValue 1 exch sub makeByte8 def
					 end
						spot2 begin
							/tintImage tintValue 1 exch sub makeByte8 def
					 end
					}if
			 end
				4{
					makeByte8 4 1 roll
				}repeat
				true 4 _nCustomColorSD ncolorimage
			}{
				_nCustomColorSD/black get 1 exch sub makeByte8 
				_nCustomColorSD bwImage
			}ifelse
			myRestore
		}def
	}{
		 /knockOut{
			gsave
			false setoverprint
			1 setgray 
			0 0 1 1 rectfill
			grestore
		}def
	}ifelse
	/newSpotDict{
		11 dict dup begin
			/nSpots 2 def
			/spot1 7 dict def
			/spot2 7 dict def
	 end
	}def
	/initSpotData
	{
	 begin
			/name nd
			/tintImage nd
			/tintValue nd
			/spot_C nd
			/spot_M nd
			/spot_Y nd
			/spot_K nd
	 end
	}def
	/initSpotDict{
	 begin
			/cyanInk false def
			/magentaInk false def
			/yellowInk false def
			/blackInk false def
			/cyan nd
			/magenta nd
			/yellow nd
			/black nd
			spot1 initSpotData
			spot2 initSpotData
	 end
	}def
	/copySpotDict{
		/_dst xp
	 begin
			cyanInk magentaInk yellowInk blackInk
			cyan magenta yellow black
			spot1 spot2
	 end
		_dst begin
			/spot1 spot1 maxlength dict def
			/spot2 spot2 maxlength dict def
			spot2 copy pop
			spot1 copy pop
			/black xd
			/yellow xd
			/magenta xd
			/cyan xd
			/blackInk xd
			/yellowInk xd
			/magentaInk xd
			/cyanInk xd
	 end
	}def
	/setCustomColor
	{
		1 index /Black eq{
			6 1 roll 5 npop
			1 exch sub
			setgray
		}{
			6 1 roll _ccAry1 astore exch
			dup null eq{
				pop 0
			}if
			setcustomcolor
		}ifelse
	}def
	/setCStop{
		/_colorStyle exch pt
		
		_colorStyle 0 eq{
			0 0 0
			4 -1 roll
			1 exch sub
			_spotColor{
				/_colorStyle 3 pt
				/Black
				1 index
				1 exch sub
			}if
		}if
		_colorStyle 2 eq{
			3 npop
		}if
		_rampSD _fillSD copySpotDict
		
		_colorStyle 4 eq{ 
			pop
			9 2 roll 3 npop 6 -2 roll
		} if
		
		_colorStyle 3 eq _colorStyle 4 eq or{
				
			_fillSD begin
				exch
				dup spot1/name get eq{
					spot1 spot2
				}{
					spot2 spot1
				}ifelse
			 begin
				 begin
						/name xd
						1 exch sub /tintValue xd
						4{
							tintValue mul 4 1 roll
						}repeat
						_spotColor not{
							/tintValue null def
						}if
				 end
					/tintValue 0 def
			 end
		 end
		}if
		_fillSD nsetcustomcolor
	}def
	/renderCMYK{
		spot1/name get null eq
		spot2/name get null eq and
		dup not{
			pop
			spot1 spotConverted
		}if
		dup not{
			pop
			spot2 spotConverted
		}if
	}def
	/fill_ /fill load def
	/fillOvp{
		currentoverprint{
			_inRipSep{
				currentcolorspace 0 get
				dup /DeviceGray eq
				1 index /DeviceCMYK eq or{
					pop
					currentcmykcolor add add add 0 eq{
						newpath
					}if
				}{
					/Separation eq{
						currentcolor 0 eq{
							newpath
						}if
					}if
				}ifelse
			}{
				currentgray 1 eq{
					newpath
				}if
			}ifelse
		}if
		fill_
	}def
	/fill{
		_nCustomColorSD begin
			renderCMYK
			{
				fillOvp
			}{
				spot1 begin
					gsave
					name null ne{
						spot_C spot_M spot_Y spot_K name tintValue setCustomColor
					}{
						1 setgray
					}ifelse
					fillOvp 
					grestore
			 end
				spot2 begin
					name null ne{
						gsave
						true setoverprint
						spot_C spot_M spot_Y spot_K name tintValue setCustomColor
						fillOvp
						grestore
					}if
			 end
				newpath
			}ifelse
	 end
	}def
	/expandSpot{
		_spotColor{
			/_len xp
			_rampSD begin
				spot1 begin
					tintImage null ne{
						tintImage _len expandOne /tintImage xd
					}if
			 end
				spot2 begin
					tintImage null ne{
						tintImage _len expandOne /tintImage xd
					}if
			 end
		 end
		}{
			pop
		}ifelse
	}def
	/rampImage{
		_rampSD begin
			_color{
				/cyanInk _cyanData 0 ne def
				/magentaInk _magentaData 0 ne def
				/yellowInk _yellowData 0 ne def
				/blackInk _blackData 0 ne def
				_nSamples setImageParms
				_nSamples expandSpot
				_cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
				true 4 _rampSD ncolorimage
			}{
				/cyanInk false def
				/magentaInk false def
				/yellowInk false def
				/blackInk true def
				_nSamples setImageParms 
				_blackData _rampSD bwImage
			}ifelse
	 end
	}def
	/nsetcustomcolor where{
		pop
	}{
		/nsetcustomcolor
		{
			/_nCustomColorSD xp
			_nCustomColorSD begin
				4 copy
				/black xd
				/yellow xd
				/magenta xd
				/cyan xd
				4 copy
				0 ne /blackInk xd
				0 ne /yellowInk xd
				0 ne /magentaInk xd
				0 ne /cyanInk xd
		 end
			setcmykcolor
		}def
	}ifelse
	/nsetcustomcolorend where{
		pop
	}{
		/nsetcustomcolorend
		{
			/_nCustomColorSD null pt
		}def
	}ifelse
}def
/initializeSinglePassSeps{
	/_decodeNorm	[0 1] pt
	/_decodeInvert 	[1 0] pt
	/spotConverted
	{
	 begin
			name null eq{
				false
			}{
				tintValue null eq tintImage null eq and{
					true
				}{
					false
					currentpagedevice/SeparationOrder get{name eq or}forall
					not
				}ifelse
			}ifelse
	 end
	}def
	/dictImage
	{
		20 dict dup begin
			/Dict xd
			/Decode xd
			/DataSource xd
			/ImageMatrix xd
			/BitsPerComponent xd
			/Height xd
			/Width xd
			/ImageType 1 def
			Dict
	 end
		/_image load 1 execImage
	}def
	/bwImage{
	 begin
			gsave
			currentoverprint{
				blackInk{
					[/Separation /Black /DeviceGray{}] setcolorspace
					_decodeInvert dictImage
				}{
					5 npop
				}ifelse
			}{
				/DeviceGray setcolorspace
				_decodeNorm dictImage
			}ifelse
			grestore
	 end
	}def
	/ncolorimage where{
		pop
	}{
		/ncolorimage{
		 begin
				renderCMYK
				{
					cyanInk 
					magentaInk and
					yellowInk and
					blackInk and
					not
					currentoverprint 
					and
					{
						pop pop
						gsave
						cyanInk{
							8 copy
							[/Separation /Cyan /DeviceGray{}] setcolorspace
							3 npop
							_decodeNorm dictImage
						}if
						magentaInk{
							8 copy
							[/Separation /Magenta /DeviceGray{}] setcolorspace
							4 -1 roll
							3 npop
							_decodeNorm dictImage
						}if
						yellowInk{
							8 copy
							[/Separation /Yellow /DeviceGray{}] setcolorspace
							4 -2 roll
							3 npop
							_decodeNorm dictImage
						}if
						blackInk{
							4 -3 roll
							[/Separation /Black /DeviceGray{}] setcolorspace
							3 npop
							_decodeNorm dictImage
						}{
							8 npop
						}ifelse
						grestore
					}{
						/_colorimage load 10 execImage
					}ifelse
				}{
					6 npop
					gsave
					spot1 begin
						name null ne tintImage null ne and{
							[/Separation name /DeviceGray{}] setcolorspace
							4 copy
							tintImage 
							name /Black eq{
								_decodeNorm
							}{
								_decodeInvert
							}ifelse 
							dictImage
						}{
							1 setgray fill
						}ifelse
				 end
					spot2 begin
						true setoverprint
						name null ne tintImage null ne and{
							[/Separation name /DeviceGray{}] setcolorspace
							tintImage 
							name /Black eq{
								_decodeNorm
							}{
								_decodeInvert
							}ifelse 
							dictImage
						}{
							4 npop
							1 setgray fill
						}ifelse
				 end
					grestore
				}ifelse
		 end
		}def
	}ifelse
}def
/initializeMultiPassSeps{
	/_isCMYKSep
		_cyanPlate _magentaPlate or _yellowPlate or _blackPlate or
	pt
	/invertXfer{
		[
		{
			1 exch sub
		}/exec load systemdict /currenttransfer get exec /exec load
		] cvx systemdict /settransfer get exec
	}def
	/ccThrough{
		gsave
		1 setCustomColor
		currentcmykcolor
		grestore
		add add add 0 ne
	}def
	/spotConverted
	{
	 begin
			_isCMYKSep not{
				false
			}{
				name null eq{
					false
				}{
					tintValue null eq tintImage null eq and{
						true
					}{
						spot_C spot_M spot_Y spot_K name ccThrough
					}ifelse
				}ifelse
			}ifelse
	 end
	}def
	/spotChannel
	{
		_isCMYKSep{
			pop false
		}{
		 begin
				name null eq{
					false
				}{
					spot_C spot_M spot_Y spot_K name ccThrough 
				}ifelse
		 end
		}ifelse
	}def
	/getChannelData
	{
		_isCMYKSep dup{
			pop renderCMYK
		}if
		{
			_blackPlate{
				4 1 roll 3 npop blackInk
			}{
				_yellowPlate{
					4 2 roll 3 npop yellowInk
				}{
					_magentaPlate{
						4 3 roll 3 npop magentaInk
					}{
						3 npop cyanInk
					}ifelse
				}ifelse
			}ifelse
			{
				true /nonZeroData
			}{
				true /zeroData
			}ifelse
		}{
			4 npop
			spot1/name get null ne 
			spot1 spotChannel and{
				spot1/tintImage get dup null ne{
					false /nonZeroData
				}{
					pop false /noData
				}ifelse
			}{
				spot2/name get null ne 
				spot2 spotChannel and{
					spot2/tintImage get dup null ne{
						false /nonZeroData
					}{
						pop false /noData
					}ifelse
				}{
					false /noData
				}ifelse
			}ifelse
		}ifelse
	}def
	/renderChannelData
	{
		/_tmp xp
		_tmp /nonZeroData ne currentoverprint and{
			pop
			_tmp /zeroData eq{pop}if
			4 npop
		}{
			_tmp /nonZeroData eq{
				{
					invertXfer
				}if
					systemdict/image
				get 5 execImage
			}{
				pop
				_tmp /zeroData eq{pop}if
				4 npop
				knockOut
			}ifelse
		}ifelse
	}def
	/bwImage{
	 begin
			gsave
			dup dup dup
			getChannelData
			exch pop false exch
			renderChannelData
			grestore
	 end
	}def
	/ncolorimage{
	 begin
			pop pop
			gsave
			spot2/name get null ne spot2 spotChannel and{
				true setoverprint
			}if
			getChannelData 
			renderChannelData
			grestore
	 end
	}def
}def
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset AGM_Gradient 1.0 0
%%Title: (AGM Gradient Procset)
%%Version: 1.0 0
%%CreationDate: (4/26/96) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /AGM_Gradient 20 dict dup begin put
/AGM_Gradient_private 200 dict def
/initialize
{
	AGM_Gradient begin
	AGM_Gradient_private begin
	initializeVars
	
	/bd systemdict/mark get def
	/ed
		_level2PS 
		{
			(>>)
		}{
			(counttomark 2 idiv dup dict begin {def} repeat pop currentdict end)
		} ifelse
	cvx def
	
	_level2PS{
		initializeLev2
	}{
		initializeLev1
	}ifelse
	
	queryDevice
	
	initializeShading
	initializeOps
	_producingSeps{
		AGM_Gradient_Sep/initialize get exec
	}{
		initializeComposite
	}ifelse
	_illustrator{
		/f{}def
		/F{}def
		/s{}def
		/S{}def
		/b{}def
		/B{}def
	}if
	/image where{
		/image get /_image xd
	}if
	/colorimage where{
		/colorimage get /_colorimage xd
	}if
	/rectfill where dup{
		exch pop not _producingSeps or
	}{
		not
	}ifelse
	{
		/rectfill{
			gsave
			newpath
			4 2 roll moveto
			1 index 0 rlineto
			0 1 index rlineto
			1 index neg 0 rlineto
			pop pop
			closepath
			fill
			grestore
		}def
	}if
	/linealImage _noImage{
		/rectImage load
	}{
		_producingSeps{
			AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
			/rampImage load
		 end
		}{
			/rampImage load
		}ifelse
	}ifelse
	def
	AGM_Gradient_private
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
	AGM_Gradient
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
 end
	
	currentdict readonly pop
 end
}def
/initializeAI
{
	pop pop 
	AGM_Gradient/AGM_Gradient_private get /_illustrator true put
	AGM_Gradient/initialize get exec
		AGM_Gradient begin
}def
/unload{
	systemdict/languagelevel known{
		systemdict/languagelevel get 2 ge{
			userdict/AGM_Gradient_Sep 2 copy known{
				undef
			}{
				pop pop
			}ifelse
			userdict/AGM_Gradient 2 copy known{
				undef
			}{
				pop pop
			}ifelse
		}if
	}if
}def
/terminate{
	currentdict AGM_Gradient eq{
	 end
	}if
}def
 
AGM_Gradient_private begin
/initializeVars{
	/_d255 256 array def
	0 1 255{
		_d255 exch dup 255 div put
	}bind for
	/_d255- 256 array def
	0 1 255{
		_d255- exch 1 _d255 2 index get sub put
	}bind for
	/_sSave nd
	/_dUserSpace matrix defaultmatrix def
	/_bUMatrix matrix def
	/_imageMatrix matrix def
	/_saveMatrix matrix def
	/_xm matrix def
	/_ccAry1 5 array def
	/_level2PS 
		systemdict/languagelevel known dup{
			pop systemdict/languagelevel get 2 ge
		}if
	def
	/_level3PS
		_level2PS systemdict/shfill known and
	def
	currentdict /_illustrator known not{
		/_illustrator false def
	}if
	
}def
/initializeOps
{
	AGM_Gradient begin
	currentdict/Bc known not{
		/Bc{
		
			_renderFlag 2 eq{
				6 npop
			}{
				pushBSpace
				_rampIndex 0 eq{
					pop pop
					setCStop
				}if
				linealFill
				popBSpace
			}ifelse
		
		}def
	}if
	
	currentdict/Bg known not{
		/Bg{
			10 npop
			/_gradName xp
			/_renderFlag xp
		
			_renderFlag 2 ne{
		
				_illustrator{
					_of setoverprint
				}if
		
				_illustrator _eo and _renderFlag 3 eq or{
					eoclip
				}{
					clip
				}ifelse
		
				_gradNames _gradName 2 copy known{
					get
					mark exch aload pop
					/_gradType xp
					1 sub dup /_rampIndex xp
					/_maxRampIndex xp
					mark exch aload pop
					0 0
				}if
				pop pop
				getRampData
			}{
				mark mark
			}ifelse
		}def
	}if
	
	currentdict/Bm known not{
		/Bm{
			_renderFlag 2 ne{
				_gradType 0 eq{
					linealRamp
				}{
					radialGrad
				}ifelse
			}{
				6 npop
			}ifelse
		}def
	}if
	
	currentdict/Bh known not{
		/Bh{
			2 npop
			/_yHi xp
			/_xHi xp
			/_radHilite _xHi 0 ne _yHi 0 ne or pt
		}def
	}if
	
	currentdict/Bn known not{
		/Bn{
			AGM_Gradient_private begin
				dict /_gradNames xp
		 end
		}def
	}if
	
	currentdict/Bd known not{
		/Bd{
			AGM_Gradient begin
			AGM_Gradient_private begin
				/_nColorsBd xp
				/_gradType xp
				/_gradName xp
		}def
	}if
	
	currentdict/BD known not{
		/BD{
				currentdict/_gradNames known not{
					/_gradNames 20 dict def
				}if
				] _nColorsBd _gradType
				]  _gradName exch /_gradNames xput
		 end
		 end
		}def
	}if
	
	currentdict/Bb known not{
		/Bb{
		
			AGM_Gradient begin
			AGM_Gradient_private begin
			_producingSeps{
				AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
			}if
			mySave
		}def
	}if
	
	currentdict/BB known not{
		/BB{
		
			/_tmp xp
			cleartomark cleartomark
		
			_tmp dup
			_renderFlag
		
			myRestore
		
			_producingSeps{
			 end
			}if
		
			_illustrator
		 end
		 end
		
			{
				2 ne exch 0 gt and{
					2 eq{
						s
					}{
						S
					}ifelse
				}{
					pop newpath
				}ifelse
			}{
				pop newpath
			}ifelse
		
		
		}def
	}if
	
	currentdict/Xm known not{
		/Xm{
			_xm astore pop
		}def
	}if
	
 end
}def
/queryDevice{
	/_inRipSep
		_level2PS{
			currentpagedevice/Separations 2 copy known{
				get
			}{
				pop pop false
			}ifelse
		}{
			false
		}ifelse
	def
	/_noImage /lv1Fix where{
		pop lv1Fix
	}{
		false
	}ifelse
	def
	/_useShells where{
		pop
	}{
		/_useShells true def
	}ifelse
	
	/_useSmoothShade where{
		pop
	}{
		/_useSmoothShade false def 
	}ifelse
	/_cyanPlate 1 0 0 0 testCMYKColorThrough def
	/_magentaPlate 0 1 0 0 testCMYKColorThrough def
	/_yellowPlate 0 0 1 0 testCMYKColorThrough def
	/_blackPlate 0 0 0 1 testCMYKColorThrough def
	/_compositeJob
		_cyanPlate _magentaPlate and _yellowPlate and _blackPlate and
	def
	/_compositeSpotDevice where{
		pop
	}{
		/_compositeSpotDevice _compositeJob not _inRipSep or{
			1
		}{
			0
		}ifelse
		def
	}ifelse
	/_producingSeps _compositeSpotDevice 0 ne def
	/_deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt def
	/_dpiThreshold where{
		pop
	}{
		/_dpiThreshold 600 def
	}ifelse
	/_screenFreqThreshold where{
		pop
	}{
		/_screenFreqThreshold 150 def
	}ifelse
	/_contoneDevice where{
		pop
	}{
		/_contoneDevice false def
	}ifelse
	/_subSampleOK 
		_deviceDPI _dpiThreshold le 
		currentScreenFreq _screenFreqThreshold le and 
		_contoneDevice not and 
		_producingSeps not and
	def
}def
/initializeLev1{
	/makeByte8{
		/_tmp 0 pt
		255 mul cvi
		8 string 8{
			dup _tmp 3 index put 
			/_tmp _tmp 1 add pt
		}repeat
		exch pop
	}def
	/currentScreenFreq{
		currentscreen pop pop
	}def
	/_byte 1 string def
	/colorimage where{
		pop
	}{
		/colorimage{
			pop pop
			/_blackTmp xp
			/_yellowTmp xp
			/_magentaTmp xp
			/_cyanTmp xp
			/_cnt 0 pt
			[
			_byte dup 0
			_cyanTmp 
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .3 /mul cvx
			_magentaTmp
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .59 /mul cvx
			_yellowTmp
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .11 /mul cvx
			_blackTmp 
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx
			/add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
			/dup cvx 0 /lt cvx{
				pop 0
			}/if cvx
			/dup cvx 1 /gt cvx{
				pop 1
			}/if cvx
			255 /mul cvx /cvi cvx
			256 /mod cvx
			/dup cvx 0 /lt cvx{
				pop 0
			}/if cvx
			/put cvx
			/_cnt dup cvx 1 /add cvx /pt cvx
			] cvx
			bind
			/_image load 5 execImage
		}def
	}ifelse
}def
/initializeLev2{
	/level2ScreenFreq{
	 begin
		60
		HalftoneType 1 eq{
			pop Frequency
		}if
		HalftoneType 2 eq{
			pop GrayFrequency
		}if
		HalftoneType 5 eq{
			pop Default level2ScreenFreq
		}if
		 end
	}def
	/currentScreenFreq{
		currenthalftone level2ScreenFreq
	}def
}def
/initializeShading{
	_useSmoothShade _level3PS and{
		/_usingSmoothShade true pt
		initializeLev3_Ops
	}{
		/_usingSmoothShade false pt
	}ifelse
}def
/initializeLev3_Ops
{
	/initShFill{
		/_index _gradType 0 eq {0}{_maxRampIndex 1 sub} ifelse pt
		/_rampFuncsArray _maxRampIndex array pt
		/_boundsArray _maxRampIndex 1 sub array pt
		/_encodeArray _maxRampIndex 2 mul array pt
		/_beginCoord _rampPoint pt
		/_colorSpace null pt
		/_firstFill _rampIndex _maxRampIndex eq pt
		/_lastFill false pt
	}def
	/getRampColorSpace{
		_nSamples 1 gt{ 
			/_ndx 0 pt
			[blendColor] cvx exec
		}if
		/_C0 [currentcolor] pt
		/_C0_Space currentcolorspace pt
		
		_nSamples 1 gt{ 
			/_ndx _nSamples 1 sub pt
			[blendColor] cvx exec
		}if
		/_C1 [currentcolor] pt
		/_C1_Space currentcolorspace pt
		
		_C0_Space _C1_Space eq{
			/_rampColorSpace _C0_Space pt
		}{
			(colorspace conflict!) ==
			showpage
			stop
		}ifelse
		
		_spotColor{
			nsetcustomcolorend
		}if
	}def
	/linealShFill{
		popBSpace
		_xm aload pop pushBSpace
		
		/_size _index 1 add pt
		_size _maxRampIndex lt {
			/_rampFuncsArray _rampFuncsArray 0 _size getinterval pt
			/_boundsArray _boundsArray 0 _size 1 sub getinterval pt
			/_encodeArray _encodeArray 0 _size 2 mul getinterval pt
		}if
		
		bd
			/ShadingType 2
			/ColorSpace _colorSpace
			/Function 
				bd
					/FunctionType 3
					/Domain [0 1]
					/Functions _rampFuncsArray
					/Bounds _boundsArray
					/Encode _encodeArray
				ed
			/Extend [_firstFill _lastFill]
			/Domain [0 1] 
			/Coords [_beginCoord 0 _endCoord 0]
		ed
		shfill
	}def
	
	/radialShFill{
		/_size _maxRampIndex _index sub pt
		_size _maxRampIndex lt {
			/_rampFuncsArray _rampFuncsArray _index _size getinterval pt
			/_boundsArray _boundsArray _index _size 1 sub getinterval pt
			/_encodeArray _encodeArray _index 2 mul _size 2 mul getinterval pt
		}if
		
		/_rampLen _beginCoord _endCoord sub pt
		bd
			/ShadingType 3
			/ColorSpace _colorSpace
			/Function 
				bd
					/FunctionType 3
					/Domain [0 1]
					/Functions _rampFuncsArray
					/Bounds _boundsArray
					/Encode _encodeArray
				ed
			/Extend [_lastFill _firstFill]
			/Domain [0 1] 
			/Coords [_xHi _rampLen mul _yHi _rampLen mul _endCoord 0 0 _beginCoord] 
		ed
		shfill
		
		_radHilite{
			_xHi _rampLen mul _yHi _rampLen mul translate
		}if
	}def
	
	/fillRamp{ 
	
	
		/_invert _midPoint 0.5 lt pt
		_rampIndex _maxRampIndex eq {
			initShFill
		}if
		
		getRampColorSpace
		
		_colorSpace null eq{
			/_colorSpace _rampColorSpace pt
		}{
			_colorSpace _rampColorSpace ne{
				/_index _index 1 
				_gradType 0 eq{
					sub pt
					linealShFill
				}{
					add pt
					radialShFill
				}ifelse
				initShFill
				/_colorSpace _rampColorSpace pt
			} if
		}ifelse
		/_endCoord _endPoint pt	
		_rampFuncsArray _index
		bd
			/FunctionType 2
			/Domain [0 1]
			/N 0.5 log _invert{1 _midPoint sub}{_midPoint}ifelse log div
			_gradType 0 eq{
				_invert{/C1}{/C0}ifelse _C0
				_invert{/C0}{/C1}ifelse _C1
			}{
				_invert{/C0}{/C1}ifelse _C1
				_invert{/C1}{/C0}ifelse _C0
			}ifelse
		ed
		put
		
		_rampIndex 1 ne{
			_boundsArray _index _gradType 1 eq{1 sub}if _endCoord put
		} if
		
		0 1 _invert {exch}if
		_encodeArray _index 2 mul 1 add 3 -1 roll put
		_encodeArray _index 2 mul 3 -1 roll put
		_rampIndex 1 eq {
			/_lastFill true pt
			_gradType 0 eq{
				linealShFill
			}{
				radialShFill
			}ifelse
		}if
		/_index _index 1 
		_gradType 0 eq{
			add pt
		}{
			sub pt
		}ifelse
	}def
	
	/radialRamp
		/fillRamp load def
	
	/rampImage
		/fillRamp load def
	
	AGM_Gradient begin
	/Bc{
		6 npop
	}def
	
 end
	
	
}def
/initializeComposite{
	/bwImage{
		pop /_image load 5 execImage 
	}def
	currentdict/rampImage known not{
		/rampImage{
			_color{
				_nSamples setImageParms
	
				
				_rgbRamp{
					_redData _greenData _blueData _nSamples 3 expandColor
					true 3 null ncolorimage
				}{
					_cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
					true 4 null ncolorimage
				}ifelse
			}{
				_nSamples setImageParms _blackData null bwImage
			}ifelse
		}def
	}if
	/setCStop{
		/_colorStyle exch pt
		_colorStyle 0 eq{
			1 exch sub
			0 0 0
			4 -1 roll
		}if
		
		_colorStyle 2 eq{
			setrgbcolor 4 npop
		}if
		
		_colorStyle 3 eq{
			1 exch sub /_tmp xp
			pop
			4{
				_tmp mul 4 1 roll
			}repeat
		}if
		
		_colorStyle 4 eq{
			3 -1 roll pop pop
			1 exch sub /_tmp xp
			3{
				1 exch sub _tmp mul 1 exch sub 3 1 roll
			}repeat
			setrgbcolor 
			4 npop
		}if
		_colorStyle 2 ne _colorStyle 4 ne and{
			null nsetcustomcolor
		}if
	}def
	/nsetcustomcolor
	{
		pop setcmykcolor
	}def
	/nsetcustomcolorend
	{
	}def
	/ncolorimage{
		pop 
		/_colorimage load 10 execImage
	}def
	_noImage not _level2PS not and{
		/linealFill{
			8 setImageParms
			_color{
				currentcmykcolor
				4{
					makeByte8 4 1 roll
				}repeat
				true 4 null ncolorimage
			}{
				currentgray makeByte8 null bwImage
			}ifelse
		}def
	}if
}def
/npop{
	{pop}repeat
}def
/xd{
	exch def
}def
/nd{
	null def
}def
/pt{
	AGM_Gradient_private 3 1 roll put
}def
/xp{
	exch pt
}def
/xput{
	dup load dup length exch maxlength eq{
		dup dup load dup
		length 2 mul dict copy def
	}if
	load begin
		def
  end
}def
/mySave{
	save /_sSave xp
}def
/myRestore{
	_sSave type /savetype eq{
		_sSave restore
	}if
}def
/gMark{
	counttomark 2 add -1 roll
}def
/execImage{
	/_tmp xp
	{
		exec
	}stopped{
		$error /errorname get /undefinedresult ne{
			stop
		}{
			_tmp npop
		}ifelse
	}if
}def
/pushBSpace{
	newpath gsave
	_bUMatrix astore concat 
}def
/popBSpace{
	grestore
}def
/setImageParms{
	1 8 2 index 0 0 1 0 0 _imageMatrix astore
}def
/linealFill{
	0 0 1 1 rectfill
}def
/testCMYKColorThrough{
	gsave
	setcmykcolor currentcmykcolor
	grestore
	add add add 0 ne
}def
/expandOne	{
	/_tmp xp
	dup type /stringtype ne{
		_tmp string
		exch
		dup 0 ne{
			255 mul cvi
			0 1 _tmp 1 sub{
				3 copy
				exch put pop
			}for
		}if
		pop
	}if
}def
/expandColor{
	/_channels xp
	/_len xp
	_channels{
		_len expandOne _channels 1 roll
	}repeat
}def
/blendColor{
	
	_color{
		_rgbRamp _producingSeps not and{
			_redData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_greenData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_blueData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			/setrgbcolor cvx
		}{
			_cyanData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_magentaData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_yellowData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_blackData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
	
			_spotColor{
				_rampSD begin
					/_rampSD cvx /begin cvx
	
					spot1 begin
						tintImage dup type /stringtype eq{
							/_ndx cvx /get cvx _d255- /exch cvx /get cvx
						}{
							dup null ne{
								name type /nametype ne{
									1 exch sub
								}if
							}if
						}ifelse
				 end
					/spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
	
					spot2 begin
						tintImage dup type /stringtype eq{
							/_ndx cvx /get cvx _d255- /exch cvx /get cvx
						}{
							dup null ne{
								name type /nametype ne{
									1 exch sub
								}if
							}if
						}ifelse
				 end
					/spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
					/end cvx
			 end
				/_rampSD cvx
				/nsetcustomcolor cvx
			}{
				/setcmykcolor cvx
			}ifelse
		}ifelse
	}{
		_blackData /_ndx cvx /get cvx
		_d255 /exch cvx /get cvx
		
		_usingSmoothShade{
			1 /exch cvx /sub cvx 0 0 0 4 -1 /roll cvx /setcmykcolor cvx
		}{
			 /setgray cvx
		}ifelse
	}ifelse
}def
/linealRamp{
	pushBSpace
	_ramp{
		linealImage
	}{
		linealFill
	}ifelse
	popBSpace
	/_rampIndex _rampIndex 1 sub pt
	_rampIndex 0 gt{
		getRampData
	}if
}def
/radialGrad{
	/_firstShell true pt
	_usingSmoothShade not{
		fill
	}if
	pushBSpace
	
	_radHilite{
		_xHi _yHi _bUMatrix idtransform /_yHi xp /_xHi xp
		_rampPoint 1 lt{
			1 _rampPoint sub dup _xHi mul exch _yHi mul translate
		}if
	}if
	_rampIndex{
			radialRamp
		/_rampIndex _rampIndex 1 sub pt
		_rampIndex 0 gt{
			getRampData
		}if
	}repeat
	
	popBSpace
	
}def
/getNSamples{
	0 exch
	{
		dup type /stringtype eq{
			length exch pop exit
		}if
		pop
	}forall
	dup 0 eq{
		pop 1
	}if
}def
/getRampData{
	/_rampType gMark pt
	/_color _rampType 0 gt pt
	/_ccRGB _rampType 5 eq _rampType 6 eq or pt
	/_rgbRamp _rampType 4 eq _ccRGB or pt
	/_ccProcess _rampType 2 eq _rampType 3 eq or pt
	_producingSeps{
		_rampSD initSpotDict
		/_spotColor _ccProcess _ccRGB or pt
	}{
		/_spotColor false pt
	}ifelse
	/_ramp true pt
	100 div /_rampPoint xp
	100 div /_midPoint xp
	
	dup /_colorStyle xp
	_colorStyle 0 eq{ 
		2
	}{
		_colorStyle 1 eq{ 
			5
		}{
			_colorStyle 2 eq{
				8
			}{
				_colorStyle 3 eq{
					_producingSeps{
						_rampSD begin
							spot1 begin
								/name 3 index def
								/spot_K 4 index def
								/spot_Y 5 index def
								/spot_M 6 index def
								/spot_C 7 index def
						 end
					 end
					}if
					7
				}{
					_producingSeps{
						_rampSD begin
							spot1 begin
								/name 4 index def
								/spot_K 8 index def
								/spot_Y 9 index def
								/spot_M 10 index def
								/spot_C 11 index def
						 end
					 end
					}if
					11
				} ifelse
			}ifelse
		}ifelse
	}ifelse
	/_tmp xp
	_tmp index 100 div /_endPoint xp
	
	_gradType 1 eq{
		_tmp 1 add index 100 div /_midPoint xp
	}if
	
	_producingSeps{
		_tmp 2 add index /_nextColorStyle xp
		_nextColorStyle 3 eq{
			/_tmp _tmp 4 add pt
			_tmp index dup
			_rampSD begin
				spot1 /name get ne{
					spot2 begin
						/name xd
						/spot_K _tmp 2 add index def
						/spot_Y _tmp 3 add index def
						/spot_M _tmp 4 add index def
						/spot_C _tmp 5 add index def
				 end
				}{
					pop
				}ifelse
		 end
		}if
		_nextColorStyle 4 eq{
			/_tmp _tmp 5 add pt
			_tmp index dup
			_rampSD begin
				spot1 /name get ne{
					spot2 begin
						/name xd
						/spot_K _tmp 5 add index def
						/spot_Y _tmp 6 add index def
						/spot_M _tmp 7 add index def
						/spot_C _tmp 8 add index def
				 end
				}{
					pop
				}ifelse
		 end
		}if
	}if
	_rampType 3 eq _rampType 6 eq or{
		/_tint2Data gMark pt
	}if
	_ccProcess _ccRGB or{
		/_tint1Data gMark pt
	}if
	_rgbRamp{
		/_blueData gMark pt
		/_greenData gMark pt
		/_redData gMark pt
	}if
	
	_producingSeps{
		_rampSD begin
			_ccProcess _ccRGB or{
				_rampType 3 eq _rampType 6 eq or{
					spot2 begin
						/tintImage _gradType 0 eq{
							_tint2Data
						}{
							_tint1Data
						}ifelse
						def
						name null eq{
							/name /Black def
						}if
				 end
				}if
				spot1 begin
					/tintImage _gradType 0 eq _rampType 2 eq or _rampType 5 eq or{
						_tint1Data
					}{
						_tint2Data
					}ifelse
					def
					_rampType 2 eq _rampType 5 eq or{
						name null eq{
							/name spot2 /name get def
							spot2 /name null put
						}if
					}{
						name null eq{
							/name /Black def
						}if
					}ifelse
			 end
			}if
	 end
	}if
	/_blackData gMark pt
	_rampType 0 gt{
		counttomark 4 add -3 roll
		/_yellowData xp
		/_magentaData xp
		/_cyanData xp
	}if
	_ramp{
		/_nSamples
			[
			_rampType 0 eq {_blackData}if
			_rampType 1 eq {_cyanData _magentaData _yellowData _blackData}if
			_rampType 2 eq {_cyanData _magentaData _yellowData _blackData _tint1Data}if
			_rampType 3 eq {_cyanData _magentaData _yellowData _blackData _tint1Data _tint2Data}if
			_rampType 4 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData}if
			_rampType 5 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data}if
			_rampType 6 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data _tint2Data}if
			] getNSamples pt
		_usingSmoothShade not {/_ramp _nSamples 1 gt pt} if
	} if
	
	setCStop
}def
/rectImage{
	gsave
	/_sInc 1 pt
	/_bInc 1 _nSamples div pt
	/_uRampLen 1 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt pt
	/_pChange _uRampLen 0 eq{0}{_nSamples _uRampLen div}ifelse pt
	0
	_nSamples
	[
	/dup cvx
	/_ndx /exch cvx /pt cvx
	blendColor
	0 0 _bInc 1 /rectfill cvx
	_bInc 0 /translate cvx
	_sInc /add cvx
	] cvx
	bind
	repeat
	pop
	_spotColor{
		nsetcustomcolorend
	}if
	grestore
}def
/radialInit{
	/_nRadSamples _nSamples dup 0 eq{pop 1}if pt
	/_sInc -1 pt
	/_rampLen _rampPoint _endPoint sub pt
	/_bInc _rampLen _nSamples div neg pt
	/_optimize false pt
	_subSampleOK{
		/_uRampLen
			_rampLen 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
			0 _rampLen dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
			2 copy lt{
				exch
			}if pop
		pt
		/_pChange 
			_uRampLen 0 eq{
				0
			}{
				_nSamples _uRampLen div
			}ifelse
		pt
		_pChange .5 gt dup /_optimize xp{
			/_nRadSamples _uRampLen 2 div round cvi dup 1 le{pop 2}if pt
			/_bInc _rampLen _nRadSamples div neg pt
			/_sInc _nSamples 1 sub _nRadSamples 1 sub div neg pt
		}if
	}if
	_radHilite{
		/_xBCInc _xHi _rampLen mul _nRadSamples div pt
		/_yBCInc _yHi _rampLen mul _nRadSamples div pt
	}if
}def
currentdict/radialRamp known not{
	/radialRamp{
	
		/_saveMatrix _saveMatrix currentmatrix def
		
		radialInit
	
		_rampPoint
	
		_nSamples 1 sub
	
		_nRadSamples 
		[
			/dup cvx
	
			_optimize{
				/round cvx /cvi cvx
			}if
	
			/_ndx /exch cvx /pt cvx
			
			_useShells{
				/_firstShell cvx{
					/_firstShell false pt
				}{
					0 0 3 index 360 0 arcn fill
				}/ifelse cvx
			}if
	
			blendColor
	
			_useShells{
				0 0 3 /index cvx 0 360 /arc cvx 
			}{
				0 0 3 /index cvx 0 360 /arc cvx /fill cvx
			}ifelse
	
			/exch cvx _bInc /add cvx /exch cvx
	
			_sInc /add cvx
	
			_radHilite{
				_xBCInc _yBCInc /translate cvx
			}if
		] cvx bind
		repeat
	
		pop pop
	
		_saveMatrix setmatrix
	
		_radHilite{
			_xHi _rampLen mul _yHi _rampLen mul translate
		}if
		
		_useShells _rampIndex 1 eq and{
			fill
		}if
		_spotColor{
			nsetcustomcolorend
		}if
	
		
	}def
}if
end
end
defaultpacking setpacking
%%EndResource
%%BeginProcSet: Adobe_ColorImage_AI6 1.1 0
userdict /Adobe_ColorImage_AI6 known not
{
	userdict /Adobe_ColorImage_AI6 24 dict put 
} if
userdict /Adobe_ColorImage_AI6 get begin
/initialize
{ 
	Adobe_ColorImage_AI6 begin
	Adobe_ColorImage_AI6
	{
		dup type /arraytype eq
		{
			dup xcheck
			{
				bind
			} if
		} if
		pop pop
	} forall
} def
/terminate { end } def
currentdict /Adobe_ColorImage_AI6_Vars known not
{
	/Adobe_ColorImage_AI6_Vars 15 dict def
} if
Adobe_ColorImage_AI6_Vars begin
	/channelcount 0 def
	/sourcecount 0 def
	/sourcearray 4 array def
	/plateindex -1 def
	/XIMask 0 def
	/XIBinary 0 def
	/XIChannelCount 0 def
	/XIBitsPerPixel 0 def
	/XIImageHeight 0 def
	/XIImageWidth 0 def
	/XIImageMatrix null def
	/XIBuffer null def
	/XIDataProc null def
	/XIVersion 6 def
end
/WalkRGBString null def
/WalkCMYKString null def
/StuffRGBIntoGrayString null def
/RGBToGrayImageProc null def
/StuffCMYKIntoGrayString null def
/CMYKToGrayImageProc null def
/ColorImageCompositeEmulator null def
/SeparateCMYKImageProc null def
/FourEqual null def
/TestPlateIndex null def
currentdict /_colorimage known not
{
	/colorimage where
	{
		/colorimage get /_colorimage exch def
	}
	{
		/_colorimage null def
	} ifelse
} if
/_currenttransfer systemdict /currenttransfer get def
/colorimage null def
/XI null def
/WalkRGBString
{
	0 3 index
	dup length 1 sub 0 3 3 -1 roll
	{
		3 getinterval { } forall
		5 index exec
		3 index
	} for
	
	 5 { pop } repeat
} def
/WalkCMYKString
{
	0 3 index
	dup length 1 sub 0 4 3 -1 roll
	{
		4 getinterval { } forall
		
		6 index exec
		
		3 index
		
	} for
	
	5 { pop } repeat
	
} def
/StuffRGBIntoGrayString
{
	.11 mul exch
	
	.59 mul add exch
	
	.3 mul add
	
	cvi 3 copy put
	
	pop 1 add
} def
/RGBToGrayImageProc
{	
	Adobe_ColorImage_AI6_Vars begin 
		sourcearray 0 get exec
		dup length 3 idiv string
		dup 3 1 roll 
		
		/StuffRGBIntoGrayString load exch
		WalkRGBString
 end
} def
/StuffCMYKIntoGrayString
{
	exch .11 mul add
	
	exch .59 mul add
	
	exch .3 mul add
	
	dup 255 gt { pop 255 } if
	
	255 exch sub cvi 3 copy put
	
	pop 1 add
} def
/CMYKToGrayImageProc
{	
	Adobe_ColorImage_AI6_Vars begin
		sourcearray 0 get exec
		dup length 4 idiv string
		dup 3 1 roll 
		
		/StuffCMYKIntoGrayString load exch
		WalkCMYKString
 end
} def
/ColorImageCompositeEmulator
{
	pop true eq
	{
		Adobe_ColorImage_AI6_Vars /sourcecount get 5 add { pop } repeat
	}
	{
		Adobe_ColorImage_AI6_Vars /channelcount get 1 ne
		{
			Adobe_ColorImage_AI6_Vars begin
				sourcearray 0 3 -1 roll put
			
				channelcount 3 eq 
				{ 
					/RGBToGrayImageProc 
				}
				{ 
					/CMYKToGrayImageProc
				} ifelse
				load
		 end
		} if
		image
	} ifelse
} def
/SeparateCMYKImageProc
{	
	Adobe_ColorImage_AI6_Vars begin
		sourcecount 0 ne
		{
			sourcearray plateindex get exec
		}
		{			
			sourcearray 0 get exec
			
			dup length 4 idiv string
			
			0 2 index
			
			plateindex 4 2 index length 1 sub
			{
				get 255 exch sub
				
				3 copy put pop 1 add
				
				2 index
			} for
			pop pop exch pop
		} ifelse
 end
} def
	
/FourEqual
{
	4 index ne
	{
		pop pop pop false
	}
	{
		4 index ne
		{
			pop pop false
		}
		{
			4 index ne
			{
				pop false
			}
			{
				4 index eq
			} ifelse
		} ifelse
	} ifelse
} def
/TestPlateIndex
{
	Adobe_ColorImage_AI6_Vars begin
		/plateindex -1 def
		/setcmykcolor where
		{
			pop
			gsave
			1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
			grestore
			1 0 0 0 FourEqual 
			{ 
				/plateindex 0 def
			}
			{
				0 1 0 0 FourEqual
				{ 
					/plateindex 1 def
				}
				{
					0 0 1 0 FourEqual
					{
						/plateindex 2 def
					}
					{
						0 0 0 1 FourEqual
						{ 
							/plateindex 3 def
						}
						{
							0 0 0 0 FourEqual
							{
								/plateindex 5 def
							} if
						} ifelse
					} ifelse
				} ifelse
			} ifelse
			pop pop pop pop
		} if
		plateindex
 end
} def
/colorimage
{
	Adobe_ColorImage_AI6_Vars begin
		/channelcount 1 index def
		/sourcecount 2 index 1 eq { channelcount 1 sub } { 0 } ifelse def
		4 sourcecount add index dup 
		8 eq exch 1 eq or not
 end
	
	{
		/_colorimage load null ne
		{
			_colorimage
		}
		{
			Adobe_ColorImage_AI6_Vars /sourcecount get
			7 add { pop } repeat
		} ifelse
	}
	{
		dup 3 eq
		TestPlateIndex
		dup -1 eq exch 5 eq or or
		{
			/_colorimage load null eq
			{
				ColorImageCompositeEmulator
			}
			{
				dup 1 eq
				{
					pop pop image
				}
				{
					Adobe_ColorImage_AI6_Vars /plateindex get 5 eq
					{
						gsave
						
						0 _currenttransfer exec
						1 _currenttransfer exec
						eq
						{ 0 _currenttransfer exec 0.5 lt }
						{ 0 _currenttransfer exec 1 _currenttransfer exec gt } ifelse
						
						{ { pop 0 } } { { pop 1 } } ifelse
						systemdict /settransfer get exec
					} if
					
					_colorimage
					
					Adobe_ColorImage_AI6_Vars /plateindex get 5 eq
					{
						grestore
					} if
				} ifelse
			} ifelse
		}
		{
			dup 1 eq
			{
				pop pop
				image
			}
			{
				pop pop
				Adobe_ColorImage_AI6_Vars begin
					sourcecount -1 0
					{			
						exch sourcearray 3 1 roll put
					} for
					/SeparateCMYKImageProc load
			 end
				systemdict /image get exec
			} ifelse
		} ifelse
	} ifelse
} def
/XG
{
	pop pop
} def
/XF
{
	13 {pop} repeat
} def
/Xh
{
	Adobe_ColorImage_AI6_Vars begin
		gsave
		/XIMask exch 0 ne def
		/XIImageHeight exch def
		/XIImageWidth exch def
		/XIImageMatrix exch def
		0 0 moveto
		XIImageMatrix concat
		XIImageWidth XIImageHeight scale
		
		XIMask
		{
			/_lp /null ddef
			_fc
			/_lp /imagemask ddef
		}
		if
		/XIVersion 7 def
 end
} def
/XH
{
	Adobe_ColorImage_AI6_Vars begin
		/XIVersion 6 def
		grestore
 end
} def
/XI
{
	Adobe_ColorImage_AI6_Vars begin
		gsave
		/XIMask exch 0 ne def
		/XIBinary exch 0 ne def
		pop
		pop
		/XIChannelCount exch def
		/XIBitsPerPixel exch def
		/XIImageHeight exch def
		/XIImageWidth exch def
		pop pop pop pop
		/XIImageMatrix exch def
		XIBitsPerPixel 1 eq
		{
			XIImageWidth 8 div ceiling cvi
		}
		{
			XIImageWidth XIChannelCount mul
		} ifelse
		/XIBuffer exch string def
		XIBinary
		{
			/XIDataProc { currentfile XIBuffer readstring pop } def
			XIVersion 6 le
			{
				currentfile 128 string readline pop pop
			}
			if
		}
		{
			/XIDataProc { currentfile XIBuffer readhexstring pop } def
		} ifelse
		
		XIVersion 6 le
		{
			0 0 moveto
			XIImageMatrix concat
			XIImageWidth XIImageHeight scale
			XIMask
			{
				/_lp /null ddef
				_fc
				/_lp /imagemask ddef
			} if
		} if
		
		XIMask
		{
			XIImageWidth XIImageHeight
			false
			[ XIImageWidth 0 0 XIImageHeight neg 0 0 ]
			/XIDataProc load
			imagemask
		}
		{
			XIImageWidth XIImageHeight
			XIBitsPerPixel
			[ XIImageWidth 0 0 XIImageHeight neg 0 0 ]
			/XIDataProc load
			
			XIChannelCount 1 eq
			{
				gsave
				0 setgray
				image
				grestore
			}
			{
				false
				XIChannelCount
				colorimage
			} ifelse
		} ifelse
		grestore
 end
} def
end
%%EndProcSet
%%BeginResource: procset Adobe_Illustrator_AI5 1.1 0
%%Title: (Adobe Illustrator (R) Version 5.0 Full Prolog)
%%Version: 1.1 0
%%CreationDate: (3/7/1994) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_Illustrator_AI5_vars 81 dict dup begin
put
/_eo false def
/_lp /none def
/_pf
{
} def
/_ps
{
} def
/_psf
{
} def
/_pss
{
} def
/_pjsf
{
} def
/_pjss
{
} def
/_pola 0 def
/_doClip 0 def
/cf currentflat def
/_tm matrix def
/_renderStart
[
/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
] def
/_renderEnd
[
null null null null /i1 /i1 /i1 /i1
] def
/_render -1 def
/_rise 0 def
/_ax 0 def
/_ay 0 def
/_cx 0 def
/_cy 0 def
/_leading
[
0 0
] def
/_ctm matrix def
/_mtx matrix def
/_sp 16#020 def
/_hyphen (-) def
/_fScl 0 def
/_cnt 0 def
/_hs 1 def
/_nativeEncoding 0 def
/_useNativeEncoding 0 def
/_tempEncode 0 def
/_pntr 0 def
/_tDict 2 dict def
/_wv 0 def
/Tx
{
} def
/Tj
{
} def
/CRender
{
} def
/_AI3_savepage
{
} def
/_gf null def
/_cf 4 array def
/_if null def
/_of false def
/_fc
{
} def
/_gs null def
/_cs 4 array def
/_is null def
/_os false def
/_sc
{
} def
/_pd 1 dict def
/_ed 15 dict def
/_pm matrix def
/_fm null def
/_fd null def
/_fdd null def
/_sm null def
/_sd null def
/_sdd null def
/_i null def
/discardSave null def
/buffer 256 string def
/beginString null def
/endString null def
/endStringLength null def
/layerCnt 1 def
/layerCount 1 def
/perCent (%) 0 get def
/perCentSeen? false def
/newBuff null def
/newBuffButFirst null def
/newBuffLast null def
/clipForward? false def
end
userdict /Adobe_Illustrator_AI5 known not {
	userdict /Adobe_Illustrator_AI5 91 dict put
} if
userdict /Adobe_Illustrator_AI5 get begin
/initialize
{
	Adobe_Illustrator_AI5 dup begin
	Adobe_Illustrator_AI5_vars begin
	discardDict
	{
		bind pop pop
	} forall
	dup /nc get begin
	{
		dup xcheck 1 index type /operatortype ne and
		{
			bind
		} if
		pop pop
	} forall
 end
	newpath
} def
/terminate
{
 end
 end
} def
/_
null def
/ddef
{
	Adobe_Illustrator_AI5_vars 3 1 roll put
} def
/xput
{
	dup load dup length exch maxlength eq
	{
		dup dup load dup
		length 2 mul dict copy def
	} if
	load begin
	def
 end
} def
/npop
{
	{
		pop
	} repeat
} def
/sw
{
	dup length exch stringwidth
	exch 5 -1 roll 3 index mul add
	4 1 roll 3 1 roll mul add
} def
/swj
{
	dup 4 1 roll
	dup length exch stringwidth
	exch 5 -1 roll 3 index mul add
	4 1 roll 3 1 roll mul add
	6 2 roll /_cnt 0 ddef
	{
		1 index eq
		{
			/_cnt _cnt 1 add ddef
		} if
	} forall
	pop
	exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop
} def
/ss
{
	4 1 roll
	{
		2 npop
		(0) exch 2 copy 0 exch put pop
		gsave
		false charpath currentpoint
		4 index setmatrix
		stroke
		grestore
		moveto
		2 copy rmoveto
	} exch cshow
	3 npop
} def
/jss
{
	4 1 roll
	{
		2 npop
		(0) exch 2 copy 0 exch put
		gsave
		_sp eq
		{
			exch 6 index 6 index 6 index 5 -1 roll widthshow
			currentpoint
		}
		{
			false charpath currentpoint
			4 index setmatrix stroke
		} ifelse
		grestore
		moveto
		2 copy rmoveto
	} exch cshow
	6 npop
} def
/sp
{
	{
		2 npop (0) exch
		2 copy 0 exch put pop
		false charpath
		2 copy rmoveto
	} exch cshow
	2 npop
} def
/jsp
{
	{
		2 npop
		(0) exch 2 copy 0 exch put
		_sp eq
		{
			exch 5 index 5 index 5 index 5 -1 roll widthshow
		}
		{
			false charpath
		} ifelse
		2 copy rmoveto
	} exch cshow
	5 npop
} def
/pl
{
	transform
	0.25 sub round 0.25 add exch
	0.25 sub round 0.25 add exch
	itransform
} def
/setstrokeadjust where
{
	pop true setstrokeadjust
	/c
	{
		curveto
	} def
	/C
	/c load def
	/v
	{
		currentpoint 6 2 roll curveto
	} def
	/V
	/v load def
	/y
	{
		2 copy curveto
	} def
	/Y
	/y load def
	/l
	{
		lineto
	} def
	/L
	/l load def
	/m
	{
		moveto
	} def
}
{
	/c
	{
		pl curveto
	} def
	/C
	/c load def
	/v
	{
		currentpoint 6 2 roll pl curveto
	} def
	/V
	/v load def
	/y
	{
		pl 2 copy curveto
	} def
	/Y
	/y load def
	/l
	{
		pl lineto
	} def
	/L
	/l load def
	/m
	{
		pl moveto
	} def
} ifelse
/d
{
	setdash
} def
/cf
{
} def
/i
{
	dup 0 eq
	{
		pop cf
	} if
	setflat
} def
/j
{
	setlinejoin
} def
/J
{
	setlinecap
} def
/M
{
	setmiterlimit
} def
/w
{
	setlinewidth
} def
/XR
{
	0 ne
	/_eo exch ddef
} def
/H
{
} def
/h
{
	closepath
} def
/N
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			_eo {eoclip} {clip} ifelse /_doClip 0 ddef
		} if
		newpath
	}
	{
		/CRender
		{
			N
		} ddef
	} ifelse
} def
/n
{
	N
} def
/F
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
			/_doClip 0 ddef
		}
		{
			_pf
		} ifelse
	}
	{
		/CRender
		{
			F
		} ddef
	} ifelse
} def
/f
{
	closepath
	F
} def
/S
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
			/_doClip 0 ddef
		}
		{
			_ps
		} ifelse
	}
	{
		/CRender
		{
			S
		} ddef
	} ifelse
} def
/s
{
	closepath
	S
} def
/B
{
	_pola 0 eq
	{
		_doClip 1 eq
		gsave F grestore
		{
			gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
			/_doClip 0 ddef
		}
		{
			S
		} ifelse
	}
	{
		/CRender
		{
			B
		} ddef
	} ifelse
} def
/b
{
	closepath
	B
} def
/W
{
	/_doClip 1 ddef
} def
/*
{
	count 0 ne
	{
		dup type /stringtype eq
		{
			pop
		} if
	} if
	newpath
} def
/u
{
} def
/U
{
} def
/q
{
	_pola 0 eq
	{
		gsave
	} if
} def
/Q
{
	_pola 0 eq
	{
		grestore
	} if
} def
/*u
{
	_pola 1 add /_pola exch ddef
} def
/*U
{
	_pola 1 sub /_pola exch ddef
	_pola 0 eq
	{
		CRender
	} if
} def
/D
{
	pop
} def
/*w
{
} def
/*W
{
} def
/`
{
	/_i save ddef
	clipForward?
	{
		nulldevice
	} if
	6 1 roll 4 npop
	concat pop
	userdict begin
	/showpage
	{
	} def
	0 setgray
	0 setlinecap
	1 setlinewidth
	0 setlinejoin
	10 setmiterlimit
	[] 0 setdash
	/setstrokeadjust where {pop false setstrokeadjust} if
	newpath
	0 setgray
	false setoverprint
} def
/~
{
 end
	_i restore
} def
/O
{
	0 ne
	/_of exch ddef
	/_lp /none ddef
} def
/R
{
	0 ne
	/_os exch ddef
	/_lp /none ddef
} def
/g
{
	/_gf exch ddef
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_gf setgray
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/G
{
	/_gs exch ddef
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_gs setgray
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/k
{
	_cf astore pop
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_cf aload pop setcmykcolor
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/K
{
	_cs astore pop
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_cs aload pop setcmykcolor
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/x
{
	/_gf exch ddef
	findcmykcustomcolor
	/_if exch ddef
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_if _gf 1 exch sub setcustomcolor
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/X
{
	/_gs exch ddef
	findcmykcustomcolor
	/_is exch ddef
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_is _gs 1 exch sub setcustomcolor
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/A
{
	pop
} def
/annotatepage
{
userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
} def
/XT {
	pop pop
} def
/discard
{
	save /discardSave exch store
	discardDict begin
	/endString exch store
	gt38?
	{
		2 add
	} if
	load
	stopped
	pop
 end
	discardSave restore
} bind def
userdict /discardDict 7 dict dup begin
put
/pre38Initialize
{
	/endStringLength endString length store
	/newBuff buffer 0 endStringLength getinterval store
	/newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
	/newBuffLast newBuff endStringLength 1 sub 1 getinterval store
} def
/shiftBuffer
{
	newBuff 0 newBuffButFirst putinterval
	newBuffLast 0
	currentfile read not
	{
	stop
	} if
	put
} def
0
{
	pre38Initialize
	mark
	currentfile newBuff readstring exch pop
	{
		{
			newBuff endString eq
			{
				cleartomark stop
			} if
			shiftBuffer
		} loop
	}
	{
	stop
	} ifelse
} def
1
{
	pre38Initialize
	/beginString exch store
	mark
	currentfile newBuff readstring exch pop
	{
		{
			newBuff beginString eq
			{
				/layerCount dup load 1 add store
			}
			{
				newBuff endString eq
				{
					/layerCount dup load 1 sub store
					layerCount 0 eq
					{
						cleartomark stop
					} if
				} if
			} ifelse
			shiftBuffer
		} loop
	} if
} def
2
{
	mark
	{
		currentfile buffer readline not
		{
		stop
		} if
		endString eq
		{
			cleartomark stop
		} if
	} loop
} def
3
{
	/beginString exch store
	/layerCnt 1 store
	mark
	{
		currentfile buffer readline not
		{
		stop
		} if
		dup beginString eq
		{
			pop /layerCnt dup load 1 add store
		}
		{
			endString eq
			{
				layerCnt 1 eq
				{
					cleartomark stop
				}
				{
					/layerCnt dup load 1 sub store
				} ifelse
			} if
		} ifelse
	} loop
} def
end
userdict /clipRenderOff 15 dict dup begin
put
{
	/n /N /s /S /f /F /b /B
}
{
	{
		_doClip 1 eq
		{
			/_doClip 0 ddef _eo {eoclip} {clip} ifelse
		} if
		newpath
	} def
} forall
/Tr /pop load def
/Bb {} def
/BB /pop load def
/Bg {12 npop} def
/Bm {6 npop} def
/Bc /Bm load def
/Bh {4 npop} def
end
/Lb
{
	4 npop
	6 1 roll
	pop
	4 1 roll
	pop pop pop
	0 eq
	{
		0 eq
		{
			(%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
		}
		{
			
			/clipForward? true def
			
			/Tx /pop load def
			/Tj /pop load def
			
			currentdict end clipRenderOff begin begin
		} ifelse
	}
	{
		0 eq
		{
			save /discardSave exch store
		} if
	} ifelse
} bind def
/LB
{
	discardSave dup null ne
	{
		restore
	}
	{
		pop
		clipForward?
		{
			currentdict
		 end
		 end
		 begin
					
			/clipForward? false ddef
		} if
	} ifelse
} bind def
/Pb
{
	pop pop
	0 (%AI5_EndPalette) discard
} bind def
/Np
{
	0 (%AI5_End_NonPrinting--) discard
} bind def
/Ln /pop load def
/Ap
/pop load def
/Ar
{
	72 exch div
	0 dtransform dup mul exch dup mul add sqrt
	dup 1 lt
	{
		pop 1
	} if
	setflat
} def
/Mb
{
	q
} def
/Md
{
} def
/MB
{
	Q
} def
/nc 3 dict def
nc begin
/setgray
{
	pop
} bind def
/setcmykcolor
{
	4 npop
} bind def
/setcustomcolor
{
	2 npop
} bind def
currentdict readonly pop
end
end
setpacking
%%EndResource
%%BeginResource: procset Adobe_blend_AI5 1.4 0
%%Title: (Adobe Illustrator (R) Version 5.0 Blend ProcSet)
%%Version: 1.4 0
%%CreationDate: (11/19/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /Adobe_blend_AI5 70 dict dup begin
put
/bd
{
	bind def
} bind def
/xs
{
	exch store
} bd
/nullProc
{
	{
	}
} def
/initialize
{
	pop pop
	Adobe_blend_AI5 begin
		Adobe_blend_AI5_vars begin
			/_contoneDevice where
			{
				pop
			}
			{
				/_contoneDevice false def	
			} ifelse
					
			/_dpiThreshold where
			{
				pop
			}
			{	
				/_dpiThreshold 600 def
			} ifelse
			
			/_screenFreqThreshold where
			{
				pop
			}
			{	
				/_screenFreqThreshold 150 def
			} ifelse
			
			/tRectOK? deviceDPI _dpiThreshold le currentScreenFreq _screenFreqThreshold le and _contoneDevice not and def
	/invertXfer
	{
		[
		{
			1 exch sub
				} /exec load systemdict/currenttransfer get exec /exec load
				] cvx systemdict/settransfer get exec
			} bd
			/spotDict 3 dict dup begin
				/nSpots 2 def
				/spot1 7 dict def
				/spot2 7 dict def
		 end
			def
			composite?
			{
				/_setgray_ /setgray load def
				/_fill_ /fill load def
				/_image_ /image load def
			}
			{
				/_setgray_ systemdict/setgray get def
				/_fill_ systemdict/fill get def
				/_image_ systemdict/image get def
			} ifelse
		} bd
		/terminate
		{
			currentdict Adobe_blend_AI5_vars eq
			{
		 end
			currentdict Adobe_blend_AI5 eq
			{
		 end
		} if
	} if
} bd
/_compositeSpotDevice where
{
 begin
		_compositeSpotDevice 0 ne {userdict /composite? true put} if
 end
}
{
	/_compositeSpotDevice 0 def	
} ifelse
	
/nullString () def
/d255 256 array def
0 1 255
{
	d255 exch dup 255 div put
} bind for
/d255- 256 array def
0 1 255
{
	d255- exch 1 d255 2 index get sub put
} bind for
/dUserSpace matrix defaultmatrix def
currentdict /Adobe_blend_AI5_vars 89 dict dup begin
put
{
	/f /F /s /S /b /B
}
{
	null def
} bind forall
/byte 1 string def
/sSave null def
/setSSave
{
	save /sSave exch store
} bind def
/Bm null def
/doBlend null def
/startC? false def
/endC? false def
/fCMYK? null def
/startTint 0 def
/endTint 0 def
/bSMatrix matrix def
/bUMatrix matrix def
/dMatrix matrix def
/inLine? true def
/pTState? false def
/bHi? false def
/yHi 0 def
/xHi 0 def
/noImg /lv1Fix where
{
	pop lv1Fix
}
{
	false
} ifelse
def
/ccAry1 5 array def
/ccTint 0 def
/spotColor? false def
/colorimage? true def
[
/tint1Data
/tint2Data
/spotDict
/bAxis
/ubAxis
/pChange
/optimize?
/nSamples
/sInc
/blendProc
/_bn
/xBCInc
/yBCInc
/bInc
/bRender
/cBName
/cBType
/nColors
/color?
/blend?
/colorType
/cData
/cDataLen
/bDataLen
/rampPoint
/midPoint
/endPoint
/blendLength
/blackData
/yeData
/mgData
/cyData
/cnt1
/ndx
/_fill
/tmp
counttomark
{
	null def
} bind
repeat
pop
currentdict
end
currentdict
end
exch
begin
begin
/unitSq
{
	0 0 moveto 0 1 lineto 1 1 lineto 1 0 lineto closepath
} bd
/gMark
{
	counttomark 2 add -1 roll
} bd
/setCustomColor
{
	dup /ccTint exch store
	1 exch sub 6 1 roll
	ccAry1 astore
	exch setcustomcolor
} bd
/currentCustomColor
{
	ccAry1 aload pop ccTint
} bd
/nsetcustomcolor where 
{
	pop
}
{
	/nsetcustomcolor
	{
		pop setcmykcolor	
	} bd
} ifelse
/nsetcustomcolorend where 
{
	pop
}
{
	/nsetcustomcolorend
	{
	} bd
} ifelse
/setBSpace
{
	newpath bUMatrix astore concat unitSq
} bd
/setCStop
{
	dup 0 eq
	{
		pop
		
		spotColor?
			{
			dup 1 exch sub /ccTint exch def
			ccAry1 4 /Black put
			} if
		setgray
	}
	{
		1 eq
		{
			setcmykcolor
		}
		{
			composite? not colorType 2 lt and
			{
				forceCMYK
			}
			{
				setCustomColor
			} ifelse
		} ifelse
	} ifelse
} bd
/makeByte
{
	/tmp 0 store
	255 mul cvi
	8 string 8
	{
		dup tmp 3 index put /tmp tmp 1 add store
	} repeat
	exch pop
} bd
/setImgSpace
{
	cDataLen 1 8
	2 index 0 0 1 0 0 dMatrix astore
} bd
/bwImage
{
	setImgSpace cData /_image_ load
	{
		exec
	} stopped
	{
		$error /errorname get /undefinedresult ne
		{
			stop
		}
		{
			pop pop pop pop pop
		} ifelse
	} if
} bd
level2?
{
	/bFill
	{
		_fill
	} def
	/bCImg
	{
		/cDataLen bDataLen store
		setImgSpace
		setSSave
		expandSpot
		cyData mgData yeData cData
		expandCMYK
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
} if
/expandOne
{
			dup type /stringtype ne
			{
				cDataLen string
				exch
				dup 0 ne
				{
					255 mul cvi
					0 1 cDataLen 1 sub
					{
						3 copy
						exch put pop
					} for
				} if
				pop
			} if
} bd
/expandSpot
{
	spotColor?
	{
		spotDict begin
			spot1 begin
				tintImage type /nulltype ne
				{
					tintImage expandOne /tintImage exch def
				} if
		  end
			spot2 begin
				tintImage type /nulltype ne
				{
					tintImage expandOne /tintImage exch def
				} if
		  end
	 end
	} if
} bd
/expandCMYK
{
	4
	{
		expandOne 4 1 roll
	} repeat
} bd
/colorimage where dup
{
	exch pop
	
	/ncolorimage where
	{
		pop
	}
	{
		/ncolorimage {pop colorimage} bd
	} ifelse
} if
not
{
	/ncolorimage where 
	{
		pop
	}
	{
		/colorimage? false store
		/ncolorimage
		{
			pop pop pop
	
		setSSave
		/blackData xs
		/yeData xs
		/mgData xs
		/cyData xs
		/cnt1 0 store
		[
		byte dup 0
		cyData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .3 /mul cvx
		}
		{
			.3 mul
		} ifelse
		mgData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .59 /mul cvx
		}
		{
			.59 mul
		} ifelse
		yeData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .11 /mul cvx
		}
		{
			.11 mul
		} ifelse
		blackData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx
		} if
		/add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
		/dup cvx 0 /lt cvx
		{
			pop 0
		} /if cvx
		/dup cvx 1 /gt cvx
		{
			pop 1
		} /if cvx
		255 /mul cvx /cvi cvx
		256 /mod cvx
		/dup cvx 0 /lt cvx
		{
			pop 0
		} /if cvx
		/put cvx
		/cnt1 dup cvx 1 /add cvx /store cvx
		] cvx
		bind
			_image_ 
		sSave restore
	} bd
	} ifelse
} if
level2? not
{
	/bCImg
	{
		/cDataLen bDataLen store
		setImgSpace
		setSSave
		expandSpot
		cyData mgData yeData cData
		colorimage? 
		{
			expandCMYK
		} if
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
	/bwFill
	{
		setSSave
		/cDataLen 8 store
		/cData currentgray makeByte store
		bwImage
		sSave restore
	} bd
	/c1ImgFill
	{
		setSSave
		/cDataLen 8 store
		setImgSpace
		spotColor?
		{
			spotDict begin
				spot1 begin
					currentCustomColor makeByte /tintImage exch def
					/name exch def
					/spot_K exch def
					/spot_Y exch def
					/spot_M exch def
					/spot_C exch def
			 end
				spot2 initSpotData
		 end
		} if
		currentcmykcolor
		4
		{
			makeByte 4 1 roll
		} repeat
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
	/bFill
	noImg
	{
		{
			_fill
		}
	}
	{
		{
			color?
			{
				c1ImgFill
			}
			{
				bwFill
			} ifelse
		}
	} ifelse
	bd
} if
composite?
{
	/bCFun
	{
		color?
		{
			cyData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			mgData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			yeData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			cData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			spotColor?
			{
				spotDict begin
					/spotDict cvx /begin cvx
					spot1 begin
						tintImage dup type /stringtype eq
						{
							/ndx cvx /get cvx d255- /exch cvx /get cvx
						}
						{
							dup type /nulltype ne 
							{
								name type /nametype ne {1 exch sub} if
							} if
						} ifelse
				 end
					/spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
					spot2 begin
						tintImage dup type /stringtype eq
						{
							/ndx cvx /get cvx d255- /exch cvx /get cvx
						}
						{
							dup type /nulltype ne 
							{
								name type /nametype ne {1 exch sub} if
							} if
						} ifelse
				 end
					/spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
					/end cvx
			 end
				/spotDict cvx
				/nsetcustomcolor cvx
			}
			{
				/setcmykcolor cvx
			} ifelse
		}
		{
			cData /ndx cvx /get cvx
			d255 /exch cvx /get cvx
			/setgray cvx
		} ifelse
	} bd
	/Bc
	{
		newpath
		gsave
		setBSpace
		nColors 1 eq
		{
			pop pop
			setCStop
		} if
		bFill
		grestore
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			linImg
		}
		{
			bFill
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/rdBm
	{
		/nColors dup load 1 sub store
		_fill
		gsave
		bUMatrix astore concat
		bHi?
		{
			xHi yHi bUMatrix idtransform /yHi exch store /xHi exch store
			rampPoint 1 lt
			{
				1 rampPoint sub dup xHi mul exch yHi mul translate
			} if
		} if
		nColors
		{
			0 0 rampPoint 0 360 arc
			_fill
			blend? bHi? or
			{
				rdBlend
			} if
			nColors 1 gt
			{
				getRData
			} if
			/nColors dup load 1 sub store
		} repeat
		/nColors 1 store
		grestore
	} bd
	/cGetRData
	{
		setCStop
		/blend?
		cData type /stringtype eq
		dup not color? and
		{
			pop
			cyData type /stringtype eq
			mgData type /stringtype eq
			yeData type /stringtype eq
			or or
		} if
		store
	} def
	/cGetRData
} if
/eCStop
{
	mark
	1 index 3 mul 3 add dup 8 gt
	{
		pop 8
	} if
	1 roll
	cleartomark
} bd
composite? not
{
	/knockOut
	level2?
	{
		{
			0 0 0 0 setcmykcolor _fill
		}
	}
	{
		/bFill noImg
		{
			{
				_fill
			}
		}
		{
			{
				_of true eq
				{
					currentgray 1 ne
					{
						bwFill
					} if
				}
				{
					bwFill
				} ifelse
			}
		} ifelse
		def
		/whiteByte 1 makeByte def
		noImg
		{
			{
				0 0 0 0 setcmykcolor _fill
			}
		}
		{
			{
				cBType 0 eq
				{
					setSSave
					/cData whiteByte store
					/cDataLen 8 store
					bwImage
					sSave restore
				}
				{
					_fill
				} ifelse
			}
		} ifelse
	} ifelse
	bd
	/bCFun
	{
		cData dup type /stringtype ne
		{
			color?
			{
				1 exch sub
			} if
		}
		{
			/ndx cvx /get cvx
			color? customColor? not and
			{
				d255-
			}
			{
				d255
			} ifelse
			/exch cvx /get cvx
		} ifelse
		/_setgray_ cvx
	} bd
	/eCCBlend
	{
		dup 3 eq
		{
			pop
			mark 7 1 roll
			6 copy ccThrough? dup /blend? xs
			{
				/startC? true store
				setCustomColor
				customColor?
				{
					/cData tint1Data store
					setCDataLen
				} if
				/endC?
				3 index 3 eq
				{
					4 index 1 ne
				}
				{
					false
				} ifelse
				store
			} if
			cleartomark
			stop
		} if
		1 eq
		{
			pop pop pop
		} if
		pop
		/startC? false store
		6
		{
			8 index
		} repeat
		ccThrough? dup /blend? xs
		{
			/endC? true store
			blend? not
			{
				stop
			} if
			customColor?
			{
				/cData tint1Data store
				setCDataLen
			} if
		} if
	} bd
	/handleOP
	{
		_of not
		{
			knockOut
		} if
	} bd
	/handleROP
	{
		_of not
		{
			0 0 0 0 setcmykcolor _fill
		}
		{
			newpath	
		} ifelse
	} bd
	/rdBm
	{
		/nColors dup load 1 sub store
		blend? 
		{
			_fill
		}
		{
			handleROP
		} ifelse
		gsave
		bUMatrix astore concat
		bHi?
		{
			xHi yHi bUMatrix idtransform /yHi exch store /xHi exch store
			rampPoint 1 lt
			{
				1 rampPoint sub dup xHi mul exch yHi mul translate
			} if
		} if
		nColors
		{
			0 0 rampPoint 0 360 arc
			blend?
			{
				cData type /stringtype ne bHi? not and
				{
					cData color?
					{
						1 exch sub
					} if
					_setgray_ 
					_fill_ 
				}
				{
					cData type /stringtype ne
					{
						/cDataLen 1 store
						/bDataLen 1 store
					} if
					rdBlend
				} ifelse
			}
			{
				
				handleROP
				
				pTState?
				{
					/bAxis rampPoint endPoint sub store
					xHi bAxis mul yHi bAxis mul translate
				} if
			} ifelse
				
			nColors 1 gt
			{
				getRData
			} if
			/nColors dup load 1 sub store
		} repeat
		/nColors 1 store
		grestore
	} bd
	/ccThrough?
	{
		gsave
		pop 0 setCustomColor
		currentcmykcolor
		grestore
		anyColor?
	} bd
	/forceCMYK
	{
		exch pop
		1 exch sub 5 1 roll
		4
		{
			4 index mul 4 1 roll
		} repeat
		0
		cCMYKData dup /cData ne
		{
			dup /yeData eq
			{
				pop 1 add
			}
			{
				/mgData eq
				{
					2
				}
				{
					3
				} ifelse
				add
			} ifelse
			0
		} if
		pop
		index
		0 eq
		{
			pop pop pop pop 0 0 0 0
		} if
		setcmykcolor
		pop
		/fCMYK? true store
	} bd
	/endCapSepBc
	{
		pop pop
		dup 0 eq
		{
			pop
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				colorType 1 eq
				{
					forceCMYK
				}
				{
					fCMYK?
					{
						forceCMYK
					}
					{
						setCustomColor
					} ifelse
				} ifelse
			} ifelse
		} ifelse
		currentcmykcolor anyColor? 
		blend? and
		{
			bFill
		}
		{
			handleOP
		} ifelse
		
	} bd
} if
/cCMYKData 0 def
composite? dup not
{
	pop customColor?
} if
not
{
	/cCMYKData
	/cyData /mgData /yeData /cData
	black? not
	{
		yellow?
		{
			exch
		}
		{
			magenta?
			{
				3
			}
			{
				4
			} ifelse
			-1 roll
		} ifelse
	} if
	4 1 roll pop pop pop
	store
	/Bc
	{
		gsave
		setBSpace
		nColors 1 gt
		{
			
			blend? currentcmykcolor anyColor? and
			{
				bFill
			}
			{
				handleOP
			} ifelse
		}
		{
			endCapSepBc
		} ifelse
		grestore
		newpath
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			cCMYKData load dup type /stringtype eq
			{
				dup length /cDataLen xs
				/cData xs
				gsave
				colorType 0 ne noImg not and
				{
					invertXfer
				} if
				linImg
				grestore
			}
			{
				pop bFill
			} ifelse
		}
		{
			handleOP
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/cmykGetRData
	{
		/fCMYK? false store
		blend?
		{
			{
				cmykDataProcs colorType get exec
			} stopped
			pop
			blend?
			{
				/cData cCMYKData load store
				setCDataLen
			} if
		} if
	} def
	/cmykDataProcs
	[
	{
		pop
		black? dup /blend? xs
		{
			setgray
			0
		} if
		pop
	}
	{
		cCMYKData load dup type /stringtype ne
		{
			0 0 0
			cyan? not
			{
				4 magenta?
				{
					1
				}
				{
					yellow?
					{
						2
					}
					{
						3
					} ifelse
				} ifelse
				roll
			} if
			4 copy add add add 0 eq
			{
				/blend? false store
			} if
			
			setcmykcolor
			/startC? true store
			/endC? true store
			eCStop
			stop
		} if
		pop
		dup 0 eq
		{
			pop
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				forceCMYK
			} ifelse
		} ifelse
	} bind
	/eCCBlend load
	{
		cBType 1 eq
		{
			tint1Data tint2Data
			/tint1Data xs
			/tint2Data xs
		} if
		0 eq
		{
			black?
			{
				setgray
			}
			{
				0 0 0 4 -1 roll 1 exch sub setcmykcolor
			} ifelse
			black?
			{
				/blend? true store
			} if
			6
			{
				8 index
			} repeat
			ccThrough?
			{
				/blend? true store
			}
			{
				black?
				{
					/cData tint1Data store
					setCDataLen
				}
				{
					/blend? false store
				} ifelse
			} ifelse
		}
		{
			mark 7 1 roll
			6 copy ccThrough?
			{
				forceCMYK
				pop
				stop
			} if
			9 index 0 eq
			{
				black? dup /blend? xs
				{
					pop 1 setgray
					/cData tint2Data store
					setCDataLen
					0
				} if
				pop
			}
			{
				/blend?
				6
				{
					16 index
				} repeat
				ccThrough?
				store
				blend?
				{
					forceCMYK
				} if
			} ifelse
			cleartomark
		} ifelse
	} bind
	] def
	/cmykGetRData
} if
composite? dup not
{
	pop isCMYKSep?
} if
not
{
	/endCapSepBc
	{
		/white? false store
		pop pop
		dup 0 eq
		{
			pop
			/white? 1 index 1 eq store
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				setCustomColor
			} ifelse
		} ifelse
%
		currentcmykcolor anyColor?
		endC? or
		blend? and
		{
			bFill
		}
		{
			handleOP
		} ifelse
	} bd
	/Bc
	{
		gsave
		setBSpace
		nColors 1 gt
		{
			blend? startC? and
			{
				bFill
			}
			{
				handleOP
			} ifelse
		}
		{
			endCapSepBc
		} ifelse
		grestore
		newpath
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			cData type /stringtype eq
			{
				linImg
			}
			{
				bFill
			} ifelse
		}
		{
			handleOP
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/discardCMY
	{
		counttomark 4 add -3 roll pop pop pop
	} bd
	/testTopCC
	{
		6 copy ccThrough?
	} bd
	/getCRamp
	{
		{
			ccDataProcs colorType 2 sub get exec
		} stopped pop
		blend? cDataLen 0 eq and
		{
			/cDataLen bDataLen store
		} if
	} bd
	/ccGetRData
	{
		/fCMYK? false store
		/startC? false store
		/endC? false store
		colorType 2 lt
		{
			/blend? false def
		} if
		blend?
		{
			getCRamp
		}
		{
			setCStop
		} ifelse
		blend?
		{
			/blend? cData 1 ne store
			blend?
			{
				cData dup type /stringtype ne
				{
					1 exch sub /cData xs 0
				} if
				pop
			} if
		} if
	} def
	/ccDataProcs
	[
	/eCCBlend load
	{
		cBType 1 eq
		{
			tint1Data tint2Data
			/tint1Data xs
			/tint2Data xs
		} if
		0 eq
		{
			/blend? false store
			pop
		}
		{
			mark 7 1 roll
			testTopCC
			{
				/blend? 1 index 1 ne store
				/startC? blend? store
				/endC? false store
				blend? not
				{
					cleartomark stop
				} if
				/cData tint1Data store
				setCDataLen
				setCustomColor
				pop
				stop
			} if
			cleartomark
		} ifelse
		2 index 0 eq
		{
			/blend? false store
		}
		{
			mark 6
			{
				9 index
			} repeat
			testTopCC dup /blend? xs
			{
				/blend? 1 index 1 ne store
				/endC? blend? store
				/startC? false store
				blend? not
				{
					cleartomark stop
				} if
				/cData tint2Data store
				setCDataLen
			} if
			cleartomark
		} ifelse
	} bind
	] def
	/ccGetRData
} if
load Adobe_blend_AI5_vars /getData 3 -1 roll put
/setCDataLen
{
	/cDataLen 0 cData dup type /stringtype eq
	{
		length exch
	} if
	pop store
} bd
/initSpotData
{
 begin
		/name null def
		/tintImage null def
		/tintValue null def
		/spot_C  null def
		/spot_M  null def
		/spot_Y  null def
		/spot_K  null def
 end
} bd
/getRData
{
	/colorType gMark store
	_compositeSpotDevice 0 ne
	{
		spotDict begin
			spot1 initSpotData
			spot2 initSpotData
	 end
		/spotColor? colorType 2 eq colorType 3 eq or def
	} 
	{
		/spotColor? false store
	} ifelse
	/blend? true store
	0 0 0 0 setcmykcolor
	100 div /rampPoint xs
% (between 13 and 87%) 
	100 div /midPoint xs
	dup 0 eq
	{
		2
	}
	{
		dup 1 eq
		{
			5
		}
		{
			_compositeSpotDevice 0 ne
			{
				spotDict begin
					spot1 begin
						/name 3 index def
						/spot_K 4 index def
						/spot_Y 5 index def
						/spot_M 6 index def
						/spot_C 7 index def
				 end
			 end
			} if
			7
		} ifelse
	} ifelse
	/tmp exch def
	tmp index 100 div /endPoint xs
	_compositeSpotDevice 0 ne
	{
		tmp 2 add index 3 eq
		{
			/tmp tmp 4 add def
			tmp index dup 
			spotDict begin
				spot1/name get ne
				{
					spot2 begin
						/name exch def
						/spot_K tmp 2 add index def
						/spot_Y tmp 3 add index def
						/spot_M tmp 4 add index def
						/spot_C tmp 5 add index def
				 end
				}
				{
					pop
				} ifelse
		 end
		} if
	} if
	/color? colorType 0 gt store
	
	colorType 3 eq
	{
		/tint2Data gMark store
	} if
	
	colorType 2 ge
	{
		/tint1Data gMark store
	} if
	_compositeSpotDevice 0 ne
	{
		spotDict begin
		
			colorType 2 ge
			{
				colorType 3 eq
				{
					spot2 begin
						/tintImage cBType 0 eq {tint2Data} {tint1Data} ifelse def
						name null eq {/name /Black def} if
				 end
				} if
				spot1 begin
					/tintImage cBType 0 eq colorType 2 eq or {tint1Data} {tint2Data} ifelse def
					colorType 2 eq 
					{
						name null eq 
						{
							/name spot2/name get def
							spot2/name null put
						} if
					}
					{
						name null eq {/name /Black def} if
					} ifelse
			 end
			} if
	 end
	} if
	
	/cData gMark store
	setCDataLen
	colorType 0 gt
	{
		counttomark 4 add -3 roll
		/yeData xs
		/mgData xs
		/cyData xs
	} if
	blend?
	{
		/bDataLen
		cDataLen dup 0 eq color? and
		{
			[
			cyData mgData yeData
			]
			{
				dup type /stringtype eq
				{
					length exch pop exit
				} if
				pop
			} forall
		} if
		store
		bDataLen 0 eq
		{
			/bDataLen 1 store
		} if
		getData
		blend?
		{
			composite? cDataLen 0 eq and
			{
				/cDataLen bDataLen store
			} if
		} if
	}
	{
		setCStop
	} ifelse
} bd
/Bg
{
	0 0 0 0 setcmykcolor
	6
	{
		pop
	} repeat
	/blendLength xs
	pop pop pop
	/cBName xs
	/bRender xs
	bRender 2 ne
	{
		composite? not
		{
			_of setoverprint
		} if
		_eo {eoclip} {clip} ifelse
		_bn cBName 2 copy known
		{
			get
			mark exch aload pop
			/cBType xs
			/nColors xs
			mark exch aload pop
			0 0
		} if
		pop pop
		getRData
		cBType 0 eq
		{
			/linealBm
		}
		{
			bHi?
			{
				/pTState? nColors 2 gt store
			} if
			/doBlend /rdBlend load store
			/rdBm
		} ifelse
	}
	{
		inLine? not
		{
			mark mark
		} if
		/Bc dup
		{
			cleartomark mark
		} bd
		/nullProc
	} ifelse
	load /Bm xs
} bd
/linImg
noImg
{
	{
		newpath doRctBlend
	}
}
{
	{
		/doBlend
		color? composite? and
		{
			/bCImg
		}
		{
			/bwImage
		} ifelse
		load
		store
	
		0 0 moveto
		tRectOK? composite? and
		{
			{
				mark
				0 1 dtransform atan cvi 90 mod 0 eq
				1 0 dtransform atan cvi 90 mod 0 eq
			} stopped
			{
				cleartomark
			}
			{
				and exch pop
				{
					newpath
					doRctBlend
				}
				{
					doBlend
				} ifelse
			} ifelse
		}
		{
			doBlend
		} ifelse
	} 
} ifelse
bd
/doRctBlend
{
	gsave
	/sInc 1 store
	/nSamples bDataLen store
	/bInc 1 bDataLen div store
	/ubAxis 1 0 dtransform dUserSpace idtransform dup mul exch dup mul add sqrt store
	/pChange ubAxis 0 eq
	{
		0
	}
	{
		bDataLen ubAxis div
	} ifelse
	store
	pChange .5 gt noImg not and dup /optimize? xs
	{
		/nSamples ubAxis 2 div round cvi dup 1 le
		{
			pop 2
		} if
		store
		/bInc 1 nSamples div store
		/sInc bDataLen 1 sub nSamples 1 sub div store
	} if
	0
	nSamples
	[
	/dup cvx
	optimize?
	{
		/round cvx /cvi cvx
	} if
	/ndx /exch cvx /store cvx
	bCFun
	/rectfill where dup
	{
		exch pop _compositeSpotDevice 1 ne and
	} if
	{
		0 0 bInc 1 /rectfill cvx	
	}
	{
		0 0 /moveto cvx
		bInc 0 /lineto cvx
		bInc 1 /lineto cvx
		0 1 /lineto cvx
		/closepath cvx
		/_fill_ cvx
	} ifelse
	bInc 0 /translate cvx
	sInc /add cvx
	] cvx
	bind
	repeat
	pop
	spotColor? {nsetcustomcolorend} if
	
	grestore
} bd
/rdPrep
{
	/nSamples bDataLen dup 0 eq
	{
		pop 1
	} if
	store
	/sInc -1 store
	/bAxis rampPoint endPoint sub store
	/bInc bAxis bDataLen div neg store
	/optimize? false store
	tRectOK?
	{
		/ubAxis
		bAxis 0 dtransform dUserSpace idtransform dup mul exch dup mul add sqrt
		0 bAxis dtransform dUserSpace idtransform dup mul exch dup mul add sqrt
		2 copy lt
		{
			exch
		} if
		pop store
		/pChange ubAxis 0 eq
		{
			0
		}
		{
			bDataLen ubAxis div
		} ifelse
		store
		pChange .5 gt noImg not and dup /optimize? xs
		{
			/nSamples ubAxis 2 div round cvi dup 1 le
			{
				pop 2
			} if
			store
			/bInc bAxis nSamples div neg store
			/sInc bDataLen 1 sub nSamples 1 sub div neg store
		} if
	} if
	bHi?
	{
		/xBCInc xHi bAxis mul nSamples div store
		/yBCInc yHi bAxis mul nSamples div store
	} if
} bd
/rdBlend
{
	newpath
	gsave
	rdPrep
	rampPoint
	bDataLen 1 sub
	nSamples
	[
	/dup cvx
	optimize?
	{
		/round cvx /cvi cvx
	} if
	/ndx /exch cvx /store cvx
	bCFun
	0 0 3 /index cvx 0 360 /arc cvx /_fill_ cvx
	/exch cvx bInc /add cvx /exch cvx
	sInc /add cvx
	bHi?
	{
		xBCInc yBCInc /translate cvx
	} if
	] cvx
	bind
	repeat
	pop pop
	spotColor? {nsetcustomcolorend} if
	grestore
	pTState?
	{
		xHi bAxis mul yHi bAxis mul translate
	} if
} bd
/Bh
{
	pop pop
	/pTState? false store
	2 copy 0 ne exch 0 ne or dup /bHi? xs
	{
		/yHi xs
		/xHi xs
		0 0
	} if
	pop pop
} bd
/BD
{
	inLine? not
	{
		] nColors cBType
		] _bn cBName 3 -1 roll put
 end
} if
} bd
/Bn
{
1 add dict
dup nullString null put
/_bn xs
} bd
/Bd
{
Adobe_blend_AI5_vars begin
	3 -1 roll dup nullString eq dup
	{
		setSSave
	} if
	/inLine? exch def
	/cBName exch def
	/nColors exch def
	/cBType exch def
} bd
/Bb
{
	sSave null eq
	{
		Adobe_blend_AI5_vars begin
		setSSave
	} if
	composite?
	{
		/_fill /fill load store
	}
	{
		/__fill /fill load store
			/_fill
			{
				_of true eq
				{
					currentgray 1 ne
					{
						__fill
					} if
				}
				{
					__fill
				} ifelse
			} def
	} ifelse
	/fill
	{
	} def
	} bd
	/BB
	{
	/cBType xs
	cleartomark cleartomark
	cBType dup
	bRender
	sSave dup type /savetype eq
	{
		restore 0
	} if
	pop
	currentdict Adobe_blend_AI5_vars eq
	{
	 end
	} if
	2 ne exch 0 gt and
	{
		2 eq
		{
			s
		}
		{
			S
		} ifelse
	}
	{
		pop newpath
	} ifelse
} bd
currentdict readonly pop
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset Adobe_pattern_AI5 1.1 0
%%Title: (Adobe Illustrator (R) Version 5.0 Pattern Operators)
%%Version: 1.1 0
%%CreationDate: (03/26/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_Illustrator_AI5 known not {
	userdict /Adobe_Illustrator_AI5 95 dict put
} if
userdict /Adobe_Illustrator_AI5 get begin
/@
{
} def
/&
{
} def
/dp
{
	dup null eq
	{
		pop
		_dp 0 ne
		{
			0 1 _dp 1 sub _dl mod
			{
				_da exch get 3 get
			} for
			_dp 1 sub _dl mod 1 add packedarray
			_da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll
			definepattern pop
		} if
	}
	{
		_dp 0 ne _dp _dl mod 0 eq and
		{
			null dp
		} if
		7 packedarray _da exch _dp _dl mod exch put
		_dp _dl mod _da 0 get 4 get 2 packedarray
		/_dp _dp 1 add def
	} ifelse
} def
/E
{
	_ed begin
	dup 0 get type /arraytype ne
	{
		0
		{
			dup 1 add index type /arraytype eq
			{
				1 add
			}
			{
				exit
			} ifelse
		} loop
		array astore
	} if
	/_dd exch def
	/_ury exch def
	/_urx exch def
	/_lly exch def
	/_llx exch def
	/_n exch def
	/_y 0 def
	/_dl 4 def
	/_dp 0 def
	/_da _dl array def
	0 1 _dd length 1 sub
	{
		/_d exch _dd exch get def
		0 2 _d length 2 sub
		{
			/_x exch def
			/_c _d _x get _ ne def
			/_r _d _x 1 add get cvlit def
			_r _ ne
			{
				_urx _llx sub _ury _lly sub
				[
				1 0 0 1 0 0
				]
				[
				/save cvx
				_llx neg _lly neg /translate cvx
				_c
				{
					nc /begin cvx
				} if
				_r dup type /stringtype eq
				{
					cvx
				}
				{
					{
						exec
					} /forall cvx
				} ifelse
				_c
				{
					/end cvx
				} if
				/restore cvx
				] cvx
				/_fn 12 _n length add string def
				_y _fn cvs pop
				/_y _y 1 add def
				_fn 12 _n putinterval
				_fn _c false dp
				_d exch _x 1 add exch put
			} if
		} for
	} for
	null dp
	_n _dd /_pd
 end
	xput
} def
/fc
{
	_fm dup concatmatrix pop
} def
/p
{
	/_fm exch ddef
	9 -2 roll _pm translate fc
	7 -2 roll _pm scale fc
	5 -1 roll _pm rotate fc
	4 -2 roll exch 0 ne
	{
		dup _pm rotate fc
		1 -1 _pm scale fc
		neg _pm rotate fc
	}
	{
		pop
	} ifelse
	dup _pm rotate fc
	exch dup sin exch cos div 1 0 0 1 0 6 2 roll
	_pm astore fc
	neg _pm rotate fc
	_pd exch get /_fdd exch ddef
	/_pf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					patternfill
				}
				{
					pop
					fill
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		newpath
	} ddef
	/_psf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					9 copy 6 npop patternashow
				}
				{
					pop
					6 copy 3 npop hvashow
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		sw rmoveto
	} ddef
	/_pjsf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					12 copy 6 npop patternawidthshow
				}
				{
					pop 9 copy 3 npop hvawidthshow
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		swj rmoveto
	} ddef
	/_lp /none ddef
} def
/sc
{
	_sm dup concatmatrix pop
} def
/P
{
	/_sm exch ddef
	9 -2 roll _pm translate sc
	7 -2 roll _pm scale sc
	5 -1 roll _pm rotate sc
	4 -2 roll exch 0 ne
	{
		dup _pm rotate sc
		1 -1 _pm scale sc
		neg _pm rotate sc
	}
	{
		pop
	} ifelse
	dup _pm rotate sc
	exch dup sin exch cos div 1 0 0 1 0 6 2 roll
	_pm astore sc
	neg _pm rotate sc
	_pd exch get /_sdd exch ddef
	/_ps
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					patternstroke
				}
				{
					pop stroke
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		newpath
	} ddef
	/_pss
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					10 copy 6 npop patternashowstroke
				}
				{
					pop 7 copy 3 npop ss
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		pop sw rmoveto
	} ddef
	/_pjss
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					13 copy 6 npop patternawidthshowstroke
				}
				{
					pop 10 copy 3 npop jss
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		pop swj rmoveto
	} ddef
	/_lp /none ddef
} def
end
userdict /Adobe_pattern_AI5 18 dict dup begin
put
/initialize
{
	/definepattern where
	{
		pop
	}
	{
	 begin
	 begin
		Adobe_pattern_AI5 begin
		Adobe_pattern_AI5
		{
			dup xcheck
			{
				bind
			} if
			pop pop
		} forall
		mark
		cachestatus 7 1 roll pop pop pop pop exch pop exch
		{
			{
				10000 add
				dup 2 index gt
				{
					exit
				} if
				dup setcachelimit
			} loop
		} stopped
		cleartomark
	 end 	
		
	 end
	 end
		
		Adobe_pattern_AI5 begin
	} ifelse
} def
/terminate
{
	currentdict Adobe_pattern_AI5 eq
	{
	 end
	} if
} def
errordict
/nocurrentpoint
{
	pop
	stop
} put
errordict
/invalidaccess
{
	pop
	stop
} put
/patternencoding
256 array def
0 1 255
{
	patternencoding exch ( ) 2 copy exch 0 exch put cvn put
} for
/definepattern
{
	17 dict begin
	/uniform exch def
	/cache exch def
	/key exch def
	/procarray exch def
	/mtx exch matrix invertmatrix def
	/height exch def
	/width exch def
	/ctm matrix currentmatrix def
	/ptm matrix def
	/str 32 string def
	/slice 9 dict def
	slice /s 1 put
	slice /q 256 procarray length div sqrt floor cvi put
	slice /b 0 put
	/FontBBox
	[
	0 0 0 0
	] def
	/FontMatrix mtx matrix copy def
	/Encoding patternencoding def
	/FontType 3 def
	/BuildChar
	{
		exch
	 begin
		/setstrokeadjust where {pop true setstrokeadjust} if
		slice begin
		dup q dup mul mod s idiv /i exch def
		dup q dup mul mod s mod /j exch def
		q dup mul idiv procarray exch get
		/xl j width s div mul def
		/xg j 1 add width s div mul def
		/yl i height s div mul def
		/yg i 1 add height s div mul def
		uniform
		{
			1 1
		}
		{
			width 0 dtransform
			dup mul exch dup mul add sqrt dup 1 add exch div
			0 height dtransform
			dup mul exch dup mul add sqrt dup 1 add exch div
		} ifelse
		width 0 cache
		{
			xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul
			setcachedevice
		}
		{
			setcharwidth
		} ifelse
		gsave
		scale
		newpath
		xl yl moveto
		xg yl lineto
		xg yg lineto
		xl yg lineto
		closepath
		clip
		newpath
	 end
	 end
		exec
		grestore
	} def
	key currentdict definefont
 end
} def
/patterncachesize
{
	gsave
	newpath
	0 0 moveto
	width 0 lineto
	width height lineto
	0 height lineto
	closepath
	patternmatrix setmatrix
	pathbbox
	exch ceiling 4 -1 roll floor sub 3 1 roll
	ceiling exch floor sub
	mul 1 add
	grestore
} def
/patterncachelimit
{
	cachestatus 7 1 roll 6 npop 8 mul
} def
/patternpath
{
	exch dup begin
	setfont
	ctm setmatrix
	concat
	slice exch /b exch slice /q get dup mul mul put
	FontMatrix concat
	uniform
	{
		width 0 dtransform round width div exch round width div exch
		0 height dtransform round height div exch height div exch
		0 0 transform round exch round exch
		ptm astore setmatrix
	}
	{
		ptm currentmatrix pop
	} ifelse
	{
		currentpoint
	} stopped not
	{
		2 npop
		pathbbox
		true
		4 index 3 index eq
		4 index 3 index eq
		and
		{
			pop false
			{
				{
					2 npop
				}
				{
					3 npop true
				}
				{
					7 npop true
				}
				{
					pop true
				} pathforall
			} stopped
			{
				5 npop true
			} if
		} if
		{
			height div ceiling height mul 4 1 roll
			width div ceiling width mul 4 1 roll
			height div floor height mul 4 1 roll
			width div floor width mul 4 1 roll
			2 index sub height div ceiling cvi exch
			3 index sub width div ceiling cvi exch
			4 2 roll moveto
			FontMatrix mtx invertmatrix
			dup dup 4 get exch 5 get rmoveto
			ptm ptm concatmatrix pop
			slice /s
			patterncachesize patterncachelimit div ceiling sqrt ceiling cvi
			dup slice /q get gt
			{
				pop slice /q get
			} if
			put
			0 1 slice /s get dup mul 1 sub
			{
				slice /b get add
				gsave
				0 1 str length 1 sub
				{
					str exch 2 index put
				} for
				pop
				dup
				{
					gsave
					ptm setmatrix
					1 index str length idiv
					{
						str show
					} repeat
					1 index str length mod str exch 0 exch getinterval show
					grestore
					0 height rmoveto
				} repeat
				grestore
			} for
			2 npop
		}
		{
			4 npop
		} ifelse
	} if
 end
} def
/patternclip
{
	_eo {eoclip} {clip} ifelse
} def
/patternstrokepath
{
	strokepath
} def
/patternmatrix
matrix def
/patternfill
{
	dup type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get
	} if
	gsave
	patternclip
	Adobe_pattern_AI5 /patternpath get exec
	grestore
	newpath
} def
/patternstroke
{
	dup type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get
	} if
	gsave
	patternstrokepath
	true
	{
		{
			{
				newpath
				moveto
			}
			{
				lineto
			}
			{
				curveto
			}
			{
				closepath
				3 copy
				Adobe_pattern_AI5 /patternfill get exec
			} pathforall
			3 npop
		} stopped
		{
			5 npop
			patternclip
			Adobe_pattern_AI5 /patternfill get exec
		} if
	}
	{
		patternclip
		Adobe_pattern_AI5 /patternfill get exec
	} ifelse
	grestore
	newpath
} def
/vpatternawidthshow
{
	6 1 roll
	/_hvay exch ddef
	/_hvax exch ddef
	/_hvwb exch ddef
	/_hvcy exch ddef
	/_hvcx exch ddef
	
	{
		dup cstring
		dup length 1 eq
		_charorientation 1 eq
		and
		{
			-90 rotate
			currentpoint
			_fontRotateAdjust add
			moveto
			gsave
			false charpath currentpoint
			5 index 5 index 5 index Adobe_pattern_AI5 /patternfill get exec
			grestore
			_fontRotateAdjust sub
			moveto
			_hvwb eq { _hvcx _hvcy rmoveto } if
			_hvax _hvay rmoveto
			90 rotate
		}
		{
			currentpoint
			_fontHeight sub
			_hvax sub
			3 index _hvwb eq { _hvcx sub } if
			currentpoint
			exch 4 index stringwidth pop 2 div sub
			exch _fontAscent sub
			moveto
			gsave
			2 index false charpath
			6 index 6 index 6 index Adobe_pattern_AI5 /patternfill get exec
			grestore
			newpath moveto pop pop
		} ifelse
	} cforall
	3 npop
} def
/hpatternawidthshow
{
	{
		dup cstring exch
		gsave
		3 index eq { 5 index 5 index rmoveto } if
		false charpath currentpoint
		9 index 9 index 9 index
		Adobe_pattern_AI5 /patternfill get exec
		grestore
		newpath moveto
		2 copy rmoveto
	} cforall
	8 npop
} def
/patternashow
{
0 0 0 6 3 roll
patternawidthshow
} def
/patternawidthshow
{
	6 index type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get 7 1 roll
	} if
	_lineorientation 0 eq { hpatternawidthshow } { vpatternawidthshow } ifelse
} def
/vpatternawidthshowstroke
{
	7 1 roll
	6 1 roll
	/_hvay exch ddef
	/_hvax exch ddef
	/_hvwb exch ddef
	/_hvcy exch ddef
	/_hvcx exch ddef
	{
		dup cstring
		dup length 1 eq
		_charorientation 1 eq
		and
		{
			-90 rotate
			currentpoint
			_fontRotateAdjust add
			moveto
			gsave
			false charpath currentpoint
			3 index setmatrix
			6 index 6 index 6 index Adobe_pattern_AI5 /patternstroke get exec
			grestore
			_fontRotateAdjust sub
			moveto
			_hvwb eq { _hvcx _hvcy rmoveto } if
			_hvax _hvay rmoveto
			90 rotate
		}
		{
			currentpoint
			_fontHeight sub
			_hvax sub
			3 index _hvwb eq { _hvcx sub } if
			currentpoint
			exch 4 index stringwidth pop 2 div sub
			exch _fontAscent sub
			moveto
			gsave
			2 index false charpath
			4 index setmatrix
			7 index 7 index 7 index Adobe_pattern_AI5 /patternstroke get exec
			grestore
			newpath moveto pop pop
		} ifelse
	} cforall
	4 npop
} def
/hpatternawidthshowstroke
{
	7 1 roll
	{
		dup cstring exch
		gsave
		3 index eq { 5 index 5 index rmoveto } if
		false charpath currentpoint
		7 index setmatrix
		10 index 10 index 10 index
		Adobe_pattern_AI5 /patternstroke get exec
		grestore
		newpath moveto
		2 copy rmoveto
	} cforall
	9 npop
} def
/patternashowstroke
{
	0 0 0 7 3 roll
	patternawidthshowstroke
} def
/patternawidthshowstroke
{
	7 index type /dicttype eq
	{
		patternmatrix /patternmatrix get 8 1 roll
	} if
	_lineorientation 0 eq { hpatternawidthshowstroke } { vpatternawidthshowstroke } ifelse
} def
end
setpacking
%%EndResource
%%EndProlog
%%BeginSetup
Adobe_level2_AI5 /initialize get exec
Adobe_screens_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_blend_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_pattern_AI5 /initialize get exec
Adobe_ColorImage_AI6 /initialize get exec
Adobe_Illustrator_AI5 /initialize get exec
[
39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase
133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 
138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 
147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 
152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 
159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 
170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 
177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 
183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 
188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 
194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 
200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 
206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 
212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 
217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 
223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 
229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 
235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 
240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 
246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 
252/udieresis 253/yacute 254/thorn 255/ydieresis
TE
%AI3_BeginEncoding: _Helvetica Helvetica
[
/_Helvetica/Helvetica 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-Bold Helvetica-Bold
[
/_Helvetica-Bold/Helvetica-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-Oblique Helvetica-Oblique
[
/_Helvetica-Oblique/Helvetica-Oblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-BoldOblique Helvetica-BoldOblique
[
/_Helvetica-BoldOblique/Helvetica-BoldOblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Roman Times-Roman
[
/_Times-Roman/Times-Roman 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Bold Times-Bold
[
/_Times-Bold/Times-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Italic Times-Italic
[
/_Times-Italic/Times-Italic 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-BoldItalic Times-BoldItalic
[
/_Times-BoldItalic/Times-BoldItalic 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier Courier
[
/_Courier/Courier 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-Bold Courier-Bold
[
/_Courier-Bold/Courier-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-Oblique Courier-Oblique
[
/_Courier-Oblique/Courier-Oblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-BoldOblique Courier-BoldOblique
[
/_Courier-BoldOblique/Courier-BoldOblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Symbol Symbol
[
/_Symbol/Symbol 0 0 1 TZ
%AI3_EndEncoding AdobeType
%%EndSetup

1 XR

u
 [] 0 d
0.0000 w
  0.000 0.000 0.000 1.000 K
1 J
1 j
  484.8319 139.3278 m
  484.8319 181.1381 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  0.000 0.000 0.000 1.000 K
  482.0765 180.5391 m
  484.8319 188.8053 L
  487.5874 180.5391 L
  482.0765 180.5391 L
F
U
u
0.0000 w
  483.7537 276.1398 m
  483.7537 298.9018 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  480.9983 298.1830 m
  483.7537 306.4493 L
  486.5092 298.1830 L
  480.9983 298.1830 L
F
U
u
0.0000 w
  377.9700 466.8619 m
  377.9700 492.3794 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  375.2146 491.6606 m
  377.9700 499.9268 L
  380.7255 491.6606 L
  375.2146 491.6606 L
F
U
u
  0.000 0.000 0.000 0.000 k
  368.2662 477.6439 m
  386.7155 477.6439 L
  386.7155 489.0250 L
  368.2662 489.0250 L
  368.2662 477.6439 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 369.3444 480.6389 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  502.0832 355.3278 m
  502.0832 368.6256 L
  502.0832 368.6256 L
  502.0832 419.4210 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  499.3278 418.8220 m
  502.0832 427.0882 L
  504.8386 418.8220 L
  499.3278 418.8220 L
F
U
u
  0.000 0.000 0.000 0.000 k
  492.1398 385.7571 m
  512.0266 385.7571 L
  512.0266 397.1381 L
  492.1398 397.1381 L
  492.1398 385.7571 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 493.0982 388.7521 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  377.3710 354.9684 m
  377.3710 368.6256 L
  377.4908 368.6256 L
  377.4908 419.7804 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  374.7354 419.0616 m
  377.4908 427.3278 L
  380.2463 419.0616 L
  374.7354 419.0616 L
F
U
u
  0.000 0.000 0.000 0.000 k
  360.3594 378.3295 m
  396.1797 378.3295 L
  396.1797 389.7105 L
  360.3594 389.7105 L
  360.3594 378.3295 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 361.4376 381.3245 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(!intCheck\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  35.7005 513.4642 m
  561.6240 513.4642 L
  561.6240 526.1631 L
  35.7005 526.1631 L
  35.7005 513.4642 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 291.7138 517.1780 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(IDLE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  35.7005 499.9268 m
  561.6240 499.9268 L
  561.6240 513.4642 L
  35.7005 513.4642 L
  35.7005 499.9268 L
B
U
u
  0.000 0.000 0.000 0.000 k
  442.7820 453.2047 m
  561.6240 453.2047 L
  561.6240 466.8619 L
  442.7820 466.8619 L
  442.7820 453.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 471.4143 457.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SEND_REQUEST\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  442.7820 427.0882 m
  561.6240 427.0882 L
  561.6240 453.2047 L
  442.7820 453.2047 L
  442.7820 427.0882 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 448.6522 444.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(aaaEapResp = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 448.6522 434.6356 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapReq = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  502.2030 466.8619 m
  502.2030 480.2795 L
  502.2030 480.2795 L
  502.2030 491.7804 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  499.4476 491.0616 m
  502.2030 499.3278 L
  504.9584 491.0616 L
  499.4476 491.0616 L
F
U
u
  0.000 0.000 0.000 0.000 k
  493.5774 477.1647 m
  512.0266 477.1647 L
  512.0266 488.5458 L
  493.5774 488.5458 L
  493.5774 477.1647 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 494.5358 480.1597 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  318.3095 453.2047 m
  437.2712 453.2047 L
  437.2712 466.8619 L
  318.3095 466.8619 L
  318.3095 453.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 361.7970 457.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(DISCARD\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  318.3095 427.0882 m
  437.2712 427.0882 L
  437.2712 453.2047 L
  318.3095 453.2047 L
  318.3095 427.0882 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 324.2995 444.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(aaaEapResp = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 324.2995 434.6356 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapNoReq = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  401.3311 54.5092 m
  561.6240 54.5092 L
  561.6240 68.1664 L
  401.3311 68.1664 L
  401.3311 54.5092 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 463.9867 58.9418 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SUCCESS\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  401.3311 1.4376 m
  561.6240 1.4376 L
  561.6240 54.5092 L
  401.3311 54.5092 L
  401.3311 1.4376 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 407.3211 45.4043 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentId = nextId\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 407.3211 35.9401 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapReqData = buildSuccess\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 407.3211 26.3561 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(aaaEapKeyData != NONE\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 407.3211 16.7720 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   aaaEapKeyAvailable = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 407.3211 7.1880 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapSuccess = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  230.7354 54.0300 m
  391.1481 54.0300 L
  391.1481 67.5674 L
  230.7354 67.5674 L
  230.7354 54.0300 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 296.0266 58.3428 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(FAILURE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  230.7354 1.4376 m
  391.1481 1.4376 L
  391.1481 54.0300 L
  230.7354 54.0300 L
  230.7354 1.4376 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 236.7255 44.8053 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentId = nextId\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 236.7255 35.3411 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapReqData = buildFailure\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 236.7255 25.7571 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapFail = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  244.1531 426.8486 m
  244.1531 335.3211 L
  267.0349 335.3211 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  266.3161 338.0765 m
  274.5824 335.3211 L
  266.3161 332.5657 L
  266.3161 338.0765 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  154.9018 125.7903 m
  240.9185 125.7903 L
  240.9185 139.3278 L
  154.9018 139.3278 L
  154.9018 125.7903 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 191.6805 130.1032 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(NAK\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  154.9018 101.2313 m
  240.9185 101.2313 L
  240.9185 125.7903 L
  154.9018 125.7903 L
  154.9018 101.2313 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 160.8918 116.6855 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(m.reset\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 160.8918 107.1015 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(Policy.update\(<...>\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  240.7987 120.7587 m
  254.3361 120.7587 L
  254.3361 120.6389 L
  267.0349 120.6389 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  266.3161 123.2745 m
  274.5824 120.6389 L
  266.3161 117.8835 L
  266.3161 123.2745 L
F
U
u
  0.000 0.000 0.000 0.000 k
  248.4659 115.2479 m
  266.7953 115.2479 L
  266.7953 126.5092 L
  248.4659 126.5092 L
  248.4659 115.2479 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 249.4243 118.2429 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  311.6007 101.2313 m
  311.6007 85.5374 L
  311.6007 85.5374 L
  311.6007 75.1148 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  314.3561 75.8336 m
  311.6007 67.5674 L
  308.8453 75.8336 L
  314.3561 75.8336 L
F
U
u
  0.000 0.000 0.000 0.000 k
  272.0666 79.0682 m
  351.2546 79.0682 L
  351.2546 90.4493 L
  272.0666 90.4493 L
  272.0666 79.0682 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 273.0250 82.0632 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(decision == FAILURE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  481.1181 101.2313 m
  481.1181 87.8136 L
  481.4775 87.8136 L
  481.4775 75.7138 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  484.2329 76.4326 m
  481.4775 68.1664 L
  478.7221 76.4326 L
  484.2329 76.4326 L
F
U
u
  0.000 0.000 0.000 0.000 k
  439.4276 79.4276 m
  523.5275 79.4276 L
  523.5275 90.8087 L
  439.4276 90.8087 L
  439.4276 79.4276 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 440.5058 82.4226 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(decision == SUCCESS\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  336.5191 188.8053 m
  336.5191 169.6373 L
  336.7587 169.6373 L
  336.7587 146.8752 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  339.5141 147.5940 m
  336.7587 139.3278 L
  334.0033 147.5940 L
  339.5141 147.5940 L
F
U
u
  0.000 0.000 0.000 0.000 k
  297.5840 158.7354 m
  375.9334 158.7354 L
  375.9334 170.1165 L
  297.5840 170.1165 L
  297.5840 158.7354 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 298.5424 161.7304 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(methodState == END\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  197.9101 426.7288 m
  197.9101 146.8752 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  200.6656 147.5940 m
  197.9101 139.3278 L
  195.1547 147.5940 L
  200.6656 147.5940 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  274.5824 125.7903 m
  561.6240 125.7903 L
  561.6240 139.3278 L
  274.5824 139.3278 L
  274.5824 125.7903 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 387.0749 130.1032 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SELECT_ACTION\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  274.5824 101.2313 m
  561.6240 101.2313 L
  561.6240 125.7903 L
  274.5824 125.7903 L
  274.5824 101.2313 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 280.5724 116.6855 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(decision = Policy.getDecision\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  201.1448 363.8336 m
  315.7937 363.8336 L
  315.7937 394.3827 L
  201.1448 394.3827 L
  201.1448 363.8336 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 239.3611 385.9967 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxResp &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 215.4010 376.4126 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respId == currentId\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 202.1032 366.8286 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respMethod == currentMethod\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  130.9418 158.3760 m
  264.9983 158.3760 L
  264.9983 207.9734 L
  130.9418 207.9734 L
  130.9418 158.3760 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 178.9817 199.7072 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxResp &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 155.0216 190.1231 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respId == currentId\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 159.5740 180.5391 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respMethod==NAK ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 132.0200 170.9551 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(respMethod==EXPANDED_NAK\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 142.9218 161.3710 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 145.5574 161.3710 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(methodState == PROPOSED\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  244.2729 499.9268 m
  244.2729 486.5092 L
  244.2729 486.5092 L
  244.2729 474.4093 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  247.0283 475.1281 m
  244.2729 466.8619 L
  241.5175 475.1281 L
  247.0283 475.1281 L
F
U
u
  0.000 0.000 0.000 0.000 k
  220.3128 478.2429 m
  268.4725 478.2429 L
  268.4725 489.6240 L
  220.3128 489.6240 L
  220.3128 478.2429 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 221.2712 481.2379 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(aaaEapResp\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  290.1564 426.8486 m
  290.1564 398.4559 L
  341.7903 398.4559 L
  341.7903 419.5408 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  339.0349 418.8220 m
  341.7903 427.0882 L
  344.5458 418.8220 L
  339.0349 418.8220 L
F
U
u
  0.000 0.000 0.000 0.000 k
  306.6889 393.0649 m
  325.3777 393.0649 L
  325.3777 404.4459 L
  306.6889 404.4459 L
  306.6889 393.0649 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 307.7671 396.0599 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  274.5824 341.6705 m
  397.8569 341.6705 L
  397.8569 355.2080 L
  274.5824 355.2080 L
  274.5824 341.6705 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 300.5790 346.1032 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(INTEGRITY_CHECK\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  274.5824 315.4343 m
  397.8569 315.4343 L
  397.8569 341.6705 L
  274.5824 341.6705 L
  274.5824 315.4343 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 280.5724 332.4459 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(intCheck =\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 280.5724 322.8619 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   m.intCheck\(aaaEapRespData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  274.5824 262.6023 m
  397.8569 262.6023 L
  397.8569 276.1398 L
  274.5824 276.1398 L
  274.5824 262.6023 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 296.3860 267.0349 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(METHOD_RESPONSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  274.5824 188.8053 m
  397.8569 188.8053 L
  397.8569 262.6023 L
  274.5824 262.6023 L
  274.5824 188.8053 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 280.5724 253.3777 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(m.process\(aaaEapRespData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 280.5724 243.7937 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(m.isDone\(\)\) {\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 280.5724 234.2097 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   Policy.update\(<...>\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 280.5724 224.6256 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   aaaEapKeyData = m.getKey\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 280.5724 215.0416 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   methodState = END\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 280.5724 205.4576 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(} else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 280.5724 195.9933 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   methodState = CONTINUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  408.0399 341.6705 m
  561.6240 341.6705 L
  561.6240 355.2080 L
  408.0399 355.2080 L
  408.0399 341.6705 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 447.9334 346.1032 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(METHOD_REQUEST\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  408.0399 306.4493 m
  561.6240 306.4493 L
  561.6240 341.6705 L
  408.0399 341.6705 L
  408.0399 306.4493 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 414.0300 332.4459 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentId = nextId\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 414.0300 322.8619 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapReqData = m.buildReq\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 414.0300 313.2779 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaMethodTimeout = m.getTimeout\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  408.0399 262.6023 m
  561.6240 262.6023 L
  561.6240 276.1398 L
  408.0399 276.1398 L
  408.0399 262.6023 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 447.4542 267.0349 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(PROPOSE_METHOD\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  408.0399 188.6855 m
  561.6240 188.6855 L
  561.6240 262.6023 L
  408.0399 262.6023 L
  408.0399 188.6855 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 414.0300 253.3777 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentMethod = Policy.getNextMethod\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 414.0300 243.7937 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(m.init\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 414.0300 234.2097 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(currentMethod==IDENTITY ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 414.0300 224.6256 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(    currentMethod==NOTIFICATION\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 414.0300 215.0416 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(  methodState = CONTINUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 414.0300 205.4576 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 414.0300 195.9933 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(  methodState = PROPOSED\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  377.3710 276.2596 m
  377.3710 289.5574 L
  427.9268 289.5574 L
  427.9268 298.9018 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  425.1714 298.1830 m
  427.9268 306.4493 L
  430.6822 298.1830 L
  425.1714 298.1830 L
F
U
u
  0.000 0.000 0.000 0.000 k
  395.8203 284.1664 m
  413.0715 284.1664 L
  413.0715 295.5474 L
  395.8203 295.5474 L
  395.8203 284.1664 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 396.7787 287.1614 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  336.7587 315.3145 m
  336.7587 301.8968 L
  336.7587 301.8968 L
  336.7587 283.6872 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  339.5141 284.4060 m
  336.7587 276.2596 L
  334.0033 284.4060 L
  339.5141 284.4060 L
F
U
u
  0.000 0.000 0.000 0.000 k
  320.1065 290.3960 m
  353.4110 290.3960 L
  353.4110 301.7770 L
  320.1065 301.7770 L
  320.1065 290.3960 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 321.1847 293.3910 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(intCheck\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  476.3261 158.3760 m
  493.4576 158.3760 L
  493.4576 169.7571 L
  476.3261 169.7571 L
  476.3261 158.3760 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 477.2845 161.3710 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  474.6489 281.2912 m
  493.0982 281.2912 L
  493.0982 292.5524 L
  474.6489 292.5524 L
  474.6489 281.2912 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 475.6073 284.1664 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  86.1364 683.4609 m
  86.1364 683.9401 L
  166.4027 683.9401 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  165.6839 686.5757 m
  173.9501 683.9401 L
  165.6839 681.1847 L
  165.6839 686.5757 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  175.8669 683.8203 m
  312.5591 683.8203 L
  312.5591 697.2379 L
  175.8669 697.2379 L
  175.8669 683.8203 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 226.3028 688.0133 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(INITIALIZE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  175.8669 611.4609 m
  312.5591 611.4609 L
  312.5591 683.8203 L
  175.8669 683.8203 L
  175.8669 611.4609 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 674.5957 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentMethod = NONE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 665.0116 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(rxResp,respId,respMethod\) =\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 655.4276 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   parseEapResp\(aaaEapRespData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 645.8436 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(rxResp\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 636.2596 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   currentId = respId\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 626.6755 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 617.0915 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   currentId = NONE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  175.8669 575.2812 m
  312.5591 575.2812 L
  312.5591 588.8186 L
  175.8669 588.8186 L
  175.8669 575.2812 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 209.5308 579.5940 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(PICK_UP_METHOD\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  175.8669 532.9917 m
  312.5591 532.9917 L
  312.5591 575.2812 L
  175.8669 575.2812 L
  175.8669 532.9917 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 566.0566 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(if \(Policy.doPickUp\(respMethod\)\) {\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 556.4725 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   currentMethod = respMethod\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 546.8885 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   m.initPickUp\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 537.3045 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(}\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  244.0333 611.4609 m
  244.0333 596.3661 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  246.7887 597.0849 m
  244.0333 588.8186 L
  241.2779 597.0849 L
  246.7887 597.0849 L
F
U
u
0.0000 w
  175.2679 626.0765 m
  21.0849 626.0765 L
  21.0849 120.3993 L
  147.3544 120.3993 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  146.6356 123.0349 m
  154.9018 120.3993 L
  146.6356 117.6439 L
  146.6356 123.0349 L
F
U
u
0.0000 w
  312.5591 654.1098 m
  575.1614 654.1098 L
  575.1614 120.1597 L
  568.6922 120.1597 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  569.2912 117.4043 m
  561.0250 120.1597 L
  569.2912 122.7953 L
  569.2912 117.4043 L
F
U
u
  0.000 0.000 0.000 0.000 k
  322.3827 648.2396 m
  352.2130 648.2396 L
  352.2130 659.6206 L
  322.3827 659.6206 L
  322.3827 648.2396 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 323.3411 651.2346 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(!rxResp\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  312.5591 560.0666 m
  575.1614 560.0666 L
S
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  324.4193 555.0349 m
  410.3161 555.0349 L
  410.3161 566.4160 L
  324.4193 566.4160 L
  324.4193 555.0349 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 325.3777 558.0300 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(currentMethod==NONE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  35.7005 680.8253 m
  86.1364 680.8253 L
  86.1364 694.4825 L
  35.7005 694.4825 L
  35.7005 680.8253 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 43.0083 685.3777 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(DISABLED\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  35.7005 667.0483 m
  86.1364 667.0483 L
  86.1364 680.8253 L
  35.7005 680.8253 L
  35.7005 667.0483 L
B
U
u
  60.8586 710.5358 m
  60.8586 702.0300 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  63.6140 702.7488 m
  60.8586 694.4825 L
  58.1032 702.7488 L
  63.6140 702.7488 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 29.8303 712.8120 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(!backendEnabled\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  175.8669 560.6656 m
  27.9135 560.6656 L
  27.9135 232.4126 L
  194.9151 232.4126 L
  195.1547 233.4908 L
  195.8735 234.5691 L
  196.8319 235.1681 L
  197.9101 235.4077 L
  199.1082 235.1681 L
  200.0666 234.5691 L
  200.6656 233.4908 L
  200.9052 232.4126 L
  267.0349 232.4126 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  266.3161 235.1681 m
  274.5824 232.4126 L
  266.3161 229.6572 L
  266.3161 235.1681 L
F
U
u
  0.000 0.000 0.000 0.000 k
  139.8070 555.8735 m
  158.4958 555.8735 L
  158.4958 567.2546 L
  139.8070 567.2546 L
  139.8070 555.8735 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 140.8852 558.8686 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  56.9052 619.3677 m
  142.2030 619.3677 L
  142.2030 630.5092 L
  56.9052 630.5092 L
  56.9052 619.3677 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 82.5424 631.8270 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxResp &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 63.1348 622.2429 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respMethod==NAK ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 42.0499 612.6589 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(respMethod==EXPANDED_NAK\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  234.2097 600.1997 m
  253.4975 600.1997 L
  253.4975 606.7887 L
  234.2097 606.7887 L
  234.2097 600.1997 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 235.6473 601.0383 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  101.4709 675.0749 m
  153.4642 675.0749 L
  153.4642 686.2163 L
  101.4709 686.2163 L
  101.4709 675.0749 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 92.9651 690.0499 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(backendEnabled &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 106.1431 680.5857 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapResp\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 280.6922 105.6639 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(/* SUCCESS, FAILURE, or CONTINUE */\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  175.8669 453.2047 m
  312.5591 453.2047 L
  312.5591 466.8619 L
  175.8669 466.8619 L
  175.8669 453.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 225.7038 457.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(RECEIVED\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  175.8669 426.8486 m
  312.5591 426.8486 L
  312.5591 453.2047 L
  175.8669 453.2047 L
  175.8669 426.8486 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 444.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(\(rxResp,respId,respMethod\)=\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 181.8569 434.6356 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   parseEapResp\(aaaEapRespData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
%%PageTrailer
gsave annotatepage grestore showpage
%%Trailer
Adobe_Illustrator_AI5 /terminate get exec
Adobe_pattern_AI5 /terminate get exec
Adobe_blend_AI5 /terminate get exec
Adobe_ColorImage_AI6 /terminate get exec
Adobe_typography_AI5 /terminate get exec
Adobe_screens_AI5 /terminate get exec
Adobe_level2_AI5 /terminate get exec
%%EOF

%%EndDocument
 @endspecial 915 4810 a(Figure)g(5:)26 b(EAP)20 b(Back)o(end)g
(Authenticator)e(State)j(Machine)125 5160 y Fb(\017)41
b Fg(aaaSuccess)20 b(\(boolean\))208 5293 y(Set)27 b(to)g(TR)m(UE)g(in)
g(authenticator)d(state)k(machine,)f(F)-6 b(ALSE)27 b(in)g(lo)n(wer)f
(layer)-5 b(.)44 b(Indicates)26 b(the)h(state)h(machine)d(has)208
5392 y(reached)18 b(the)j(SUCCESS)g(state.)0 5656 y(V)-11
b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19 b(March)h(18,)f(2004)964
b([P)o(age)19 b(22])p eop
%%Page: 23 23
23 22 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)125 390 y
Fb(\017)41 b Fg(aaaF)o(ail)20 b(\(boolean\))208 523 y(Set)27
b(to)g(TR)m(UE)g(in)g(authenticator)d(state)k(machine,)f(F)-6
b(ALSE)27 b(in)g(lo)n(wer)f(layer)-5 b(.)44 b(Indicates)26
b(the)h(state)h(machine)d(has)208 623 y(reached)18 b(the)j(F)-6
b(AILURE)20 b(state.)125 789 y Fb(\017)41 b Fg(aaaEapReqData)18
b(\(EAP)j(pack)o(et\))208 922 y(Set)f(in)g(authenticator)e(state)i
(machine)f(when)g(aaaEapReq,)g(aaaSuccess,)g(or)h(aaaF)o(ail)g(is)g
(set)h(to)f(TR)m(UE.)f(The)h(actual)208 1021 y(EAP)g(request)g(to)g(be)
g(sent)h(\(or)e(success/f)o(ailure\).)125 1187 y Fb(\017)41
b Fg(aaaEapK)n(e)o(yData)18 b(\(EAP)i(K)n(e)o(y\))208
1320 y(Set)15 b(in)h(authenticator)d(state)j(machine)e(when)h(k)o(e)o
(ying)e(material)i(becomes)f(a)n(v)n(ailable.)23 b(Set)16
b(during)e(the)h(METHOD)p 3527 1320 25 4 v 29 w(RESPONSE)208
1420 y(state.)25 b(Note)20 b(that)g(this)g(document)e(does)h(not)h(yet)
g(de\002ne)f(the)h(structure)e(of)i(the)g(type)f(\224EAP)h(K)n(e)o
(y\224.)k(W)-7 b(e)21 b(e)o(xpect)e(it)h(to)208 1519
y(be)g(de\002ned)f(in)h([I-D.aboba-pppe)o(xt-k)o(e)n(y-p)o(ro)o(blem)o
(].)125 1685 y Fb(\017)41 b Fg(aaaEapK)n(e)o(yA)-6 b(v)n(ailable)17
b(\(boolean\))208 1818 y(Set)j(to)g(TR)m(UE)h(in)f(the)g(SUCCESS)h
(state)g(if)f(k)o(e)o(ying)f(material)h(is)h(a)n(v)n(ailable.)j(The)c
(actual)g(k)o(e)o(y)f(is)i(stored)e(in)i(aaaEap-)208
1918 y(K)n(e)o(yData.)125 2084 y Fb(\017)41 b Fg(aaaMethodT)m(imeout)17
b(\(inte)o(ger\))208 2217 y(Method-pro)o(vided)e(hint)20
b(for)g(suitable)g(retransmission)f(timeout,)g(or)h(NONE.)0
2554 y Ff(6.2)99 b(Interface)26 b(between)h(back)o(end)g(authenticator)
f(state)f(machine)h(and)f(methods)0 2809 y Fg(The)17
b(back)o(end)g(method)f(interf)o(ace)h(is)i(almost)e(the)h(same)g(as)h
(in)e(standalone)g(authenticator)f(described)g(in)i(Section)f(5.2.)24
b(The)0 2909 y(only)c(dif)n(ference)e(is)k(that)f(some)f(methods)g(on)g
(the)h(back)o(end)e(may)h(support)f(\224picking)h(up\224)g(a)h(con)m(v)
o(ersation)d(started)i(by)h(the)0 3009 y(passthrough.)h(That)e(is,)g
(the)f(EAP)h(Request)g(pack)o(et)f(w)o(as)h(sent)g(by)f(the)g
(passthrough,)e(b)n(ut)j(the)f(back)o(end)f(must)i(process)f(the)0
3108 y(corresponding)e(EAP)j(Response.)25 b(Usually)20
b(only)f(the)i(Identity)e(method)f(supports)i(this,)g(b)n(ut)g(others)g
(are)g(possible.)0 3307 y(When)32 b(\224picking)e(up\224)h(a)i(con)m(v)
o(ersation,)f(m.initPickUp\(\))d(is)k(called)f(instead)g(of)f
(m.init\(\).)59 b(Ne)o(xt,)34 b(m.process\(\))d(must)0
3407 y(e)o(xamine)23 b(eapRespData)i(and)f(update)f(its)j(o)n(wn)e
(method-speci\002c)f(state)i(to)g(match)f(what)h(it)h(w)o(ould)e(ha)n
(v)o(e)g(been)g(if)h(it)g(had)0 3507 y(actually)18 b(sent)h(the)g
(corresponding)c(request.)24 b(\(Ob)o(viously)-5 b(,)16
b(this)k(only)e(w)o(orks)g(for)g(methods)g(that)h(can)f(determine)g
(what)h(the)0 3606 y(initial)i(request)e(contained;)g(Identity)g(and)g
(EAP-TLS)h(are)g(good)f(e)o(xamples.\))0 3806 y(After)h(this,)g(the)h
(processing)d(continues)h(as)i(described)e(in)i(Section)e(5.2)0
4143 y Ff(6.3)99 b(Back)o(end)27 b(authenticator)f(state)f(machine)h
(local)e(v)o(ariables)0 4398 y Fg(F)o(or)c(de\002nitions)f(of)h(the)g
(v)n(ariables)g(used)g(in)g(the)g(Back)o(end)g(Authenticator)m(,)d(see)
k(Section)f(5.3.)0 4735 y Ff(6.4)99 b(EAP)25 b(back)o(end)i
(authenticator)g(pr)n(ocedur)n(es)0 4991 y Fg(Most)i(of)g(the)g
(procedures)e(of)i(the)g(back)o(end)e(authenticator)g(ha)n(v)o(e)h
(already)g(been)h(de\002ned)f(in)h(Section)f(5.4.)51
b(This)29 b(sec-)0 5090 y(tion)24 b(contains)f(de\002nitions)g(for)g
(those)h(not)g(e)o(xistent)f(in)i(the)f(standalone)e(v)o(ersion,)i(as)g
(well)h(as)f(those)g(which)g(are)g(de\002ned)0 5190 y(dif)n(ferently)-5
b(.)0 5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19
b(March)h(18,)f(2004)964 b([P)o(age)19 b(23])p eop
%%Page: 24 24
24 23 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)125 390 y
Fb(\017)41 b Fg(Polic)o(y)-5 b(.doPickUp\(\))208 523
y(Notify)19 b(the)h(polic)o(y)f(that)i(an)f(already-chosen)d(method)i
(is)i(being)e(pick)o(ed)g(up)h(and)g(will)h(be)f(completed.)125
689 y Fb(\017)41 b Fg(m.initPickUp\(\))208 822 y(Method)19
b(procedure)e(to)k(initialize)f(state)h(when)e(continuing)f(from)i(an)g
(already-started)e(method.)0 1159 y Ff(6.5)99 b(EAP)25
b(back)o(end)i(authenticator)g(states)0 1414 y Fg(Most)17
b(of)f(the)g(states)i(of)e(the)h(back)o(end)e(authenticator)f(ha)n(v)o
(e)i(already)f(been)h(de\002ned)g(in)g(Section)g(5.5.)23
b(This)17 b(section)f(contains)0 1514 y(de\002nitions)j(for)h(those)g
(not)g(e)o(xistent)g(in)g(the)g(standalone)f(v)o(ersion,)g(as)i(well)f
(as)h(those)f(which)g(are)g(de\002ned)f(dif)n(ferently)-5
b(.)125 1796 y Fb(\017)41 b Fg(PICK)p 402 1796 25 4 v
30 w(UP)p 538 1796 V 30 w(METHOD)208 1929 y(Set)20 b(an)h(initial)f
(state)h(for)f(a)g(method)f(that)h(is)h(being)f(continued)e(and)h(w)o
(as)i(started)g(else)n(where.)0 2309 y Fe(7)119 b(EAP)30
b(Full)h(A)-6 b(uthenticator)0 2594 y Fg(The)19 b(follo)n(wing)f(tw)o
(o)h(diagrams)g(sho)n(w)g(the)g(state)h(machine)e(for)h(a)h(complete)e
(authenticator)-5 b(.)23 b(The)c(\002rst)h(diagram)e(is)i(identi-)0
2694 y(cal)h(to)g(the)f(Standalone)g(State)h(Machine,)e(sho)n(wn)h(in)h
(Figure)f(4,)h(with)f(the)h(e)o(xception)e(that)h(the)h(SELECT)p
3092 2694 V 29 w(A)m(CTION)g(state)0 2793 y(has)d(an)g(added)f
(transition)g(to)h(P)-8 b(ASSTHR)m(OUGH.)18 b(The)g(second)f(diagram)f
(also)i(k)o(eeps)g(most)g(of)g(the)f(logic)h(e)o(xcept)f(the)h(four)0
2893 y(method)h(states,)i(and)e(sho)n(ws)i(ho)n(w)e(the)i(state)f
(machine)f(w)o(orks)h(once)g(it)h(goes)f(to)g(P)o(assthrough)e(Mode.)0
3092 y(The)30 b(\002rst)i(diagram)d(is)i(lar)o(gely)e(a)i(reproduction)
d(of)i(that)h(found)d(abo)o(v)o(e,)k(with)e(the)h(added)e(hooks)h(for)g
(a)h(transition)e(to)0 3192 y(P)-8 b(ASSTHR)m(OUGH)21
b(mode.)0 3391 y(\(see)f(draft-ietf-eap-statemachine-00.p)o(s)15
b(for)20 b(missing)g(diagram)f(if)h(reading)f([.txt])h(v)o(ersion\))0
3590 y(The)c(second)f(diagram)g(describes)h(the)g(functionality)e
(necessary)h(for)h(an)g(authenticator)e(operating)g(in)j(passthrough)d
(mode.)0 3690 y(This)20 b(section)g(of)g(the)g(diagram)f(is)i(the)g
(counterpart)c(of)j(the)h(back)o(end)d(diagram)h(abo)o(v)o(e.)0
3889 y(\(see)h(draft-ietf-eap-statemachine-00.p)o(s)15
b(for)20 b(missing)g(diagram)f(if)h(reading)f([.txt])h(v)o(ersion\))0
4227 y Ff(7.1)99 b(Interface)26 b(between)h(full)e(authenticator)h
(state)f(machine)h(and)f(lo)o(wer)g(lay)o(ers)0 4482
y Fg(The)e(full)g(authenticator)e(is)j(unique)e(in)h(that)g(it)h
(interf)o(aces)e(to)i(multiple)e(lo)n(wer)h(layers)g(in)g(order)f(to)h
(support)f(passthrough)0 4582 y(mode.)j(The)20 b(interf)o(ace)f(to)i
(the)f(primary)f(EAP)i(transport)e(layer)h(is)h(the)g(same)f(as)i
(described)d(in)h(Section)g(5.)26 b(The)20 b(follo)n(wing)0
4681 y(describes)k(the)g(interf)o(ace)g(to)g(the)h(second)e(lo)n(wer)h
(layer)m(,)h(which)f(represents)f(an)h(interf)o(ace)g(to)h(AAA.)f(It)h
(should)e(be)i(noted)0 4781 y(that)e(there)f(is)i(not)e(necessarily)g
(a)h(direct)f(interaction)g(between)g(the)g(EAP)h(layer)g(and)f(the)g
(AAA)i(layer)m(,)e(as)h(in)g(the)g(case)g(of)0 4880 y
([IEEE.802-1aa.2003)o(].)0 5201 y Fd(7.1.1)81 b(V)-8
b(ariables)20 b(\(AAA)h(interface)e(to)h(full)h(authenticator\))125
5400 y Fb(\017)41 b Fg(aaaEapReq)19 b(\(boolean\))0 5656
y(V)-11 b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19 b(March)h(18,)f
(2004)964 b([P)o(age)19 b(24])p eop
%%Page: 25 25
25 24 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)18 3253 y
@beginspecial 0 @llx 0 @lly 697 @urx 576 @ury 4276 @rwi
@setspecial
%%BeginDocument: ../../../diagrams/20030912_passthrough_authenticator1.eps
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: ImageMark Software Labs
%%For: () ()
%%Title: C:\USERS\IETF\EAP\State machines\AuthenticatorSplit\20030912_passthrough_authenticator1.eps
%%CreationDate: () ()
%%BoundingBox: 0 0 697 576
%%DocumentProcessColors: Black
%%ColorUsage:Color
%%DocumentFonts: Helvetica
%%+Helvetica-Bold
%%+Helvetica-Oblique
%%+Helvetica-BoldOblique
%%+Times-Roman
%%+Times-Bold
%%+Times-Italic
%%+Times-BoldItalic
%%+Courier
%%+Courier-Bold
%%+Courier-Oblique
%%+Courier-BoldOblique
%%+Symbol
%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
%%+ procset Adobe_screens_AI5 1.0 0
%%+ procset Adobe_typography_AI5 1.0 0
%%+ procset Adobe_ColorImage_AI6 1.1 0
%%+ procset Adobe_blend_AI5 1.0 0
%%+ procset Adobe_pattern_AI5 1.0 0
%%+ procset Adobe_Illustrator_AI5 1.0 0
%AI5_FileFormat 3.0
%AI3_ColorUsage: Color
%AI3_TemplateBox: 0 0 697 576
%AI3_TileBox: 0 0 697 576
%AI3_DocumentPreview: None
%%Template:
%%PageOrigin:0.0000 0.0000
%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%%EndComments
%%BeginProlog
%%BeginResource: procset Adobe_level2_AI5 1.2 0
%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
%%Version: 1.2 0
%%CreationDate: (04/10/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /Adobe_level2_AI5 25 dict dup begin
	put
	/packedarray where not
	{
		userdict begin
		/packedarray
		{
			array astore readonly
		} bind def
		/setpacking /pop load def
		/currentpacking false def
	 end
		0
	} if
	pop
	userdict /defaultpacking currentpacking put true setpacking
	/initialize
	{
		Adobe_level2_AI5 begin
	} bind def
	/terminate
	{
		currentdict Adobe_level2_AI5 eq
		{
		 end
		} if
	} bind def
	mark
	/setcustomcolor where not
	{
		/findcmykcustomcolor
		{
			0
			6 packedarray
		} bind def
		/findrgbcustomcolor
		{
			1
			5 packedarray
		} bind def
		/setcustomcolor
		{
			exch 
			aload pop 
			0 eq
			{
				pop
				4
				{
					4 index mul
					4 1 roll
				} repeat
				5 -1 roll pop
				setcmykcolor
			}
			{
				pop
				3
				{
					1 exch sub
					3 index mul 
					1 exch sub
					3 1 roll
				} repeat
				4 -1 roll pop
				setrgbcolor
			} ifelse
		}
		def
	} if
	
	/gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
	userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
	userdict /level2?
	systemdict /languagelevel known dup
	{
		pop systemdict /languagelevel get 2 ge
	} if
	put
/level2ScreenFreq
{
 begin
		60
		HalftoneType 1 eq
		{
			pop Frequency
		} if
		HalftoneType 2 eq
		{
			pop GrayFrequency
		} if
		HalftoneType 5 eq
		{
			pop Default level2ScreenFreq
		} if
 end
} bind def
userdict /currentScreenFreq  
	level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
level2? not
	{
		/setcmykcolor where not
		{
			/setcmykcolor
			{
				exch .11 mul add exch .59 mul add exch .3 mul add
				1 exch sub setgray
			} def
		} if
		/currentcmykcolor where not
		{
			/currentcmykcolor
			{
				0 0 0 1 currentgray sub
			} def
		} if
		/setoverprint where not
		{
			/setoverprint /pop load def
		} if
		/selectfont where not
		{
			/selectfont
			{
				exch findfont exch
				dup type /arraytype eq
				{
					makefont
				}
				{
					scalefont
				} ifelse
				setfont
			} bind def
		} if
		/cshow where not
		{
			/cshow
			{
				[
				0 0 5 -1 roll aload pop
				] cvx bind forall
			} bind def
		} if
	} if
	cleartomark
	/anyColor?
	{
		add add add 0 ne
	} bind def
	/testColor
	{
		gsave
		setcmykcolor currentcmykcolor
		grestore
	} bind def
	/testCMYKColorThrough
	{
		testColor anyColor?
	} bind def
	userdict /composite?
	level2?
	{
		gsave 1 1 1 1 setcmykcolor currentcmykcolor grestore
		add add add 4 eq
	}
	{
		1 0 0 0 testCMYKColorThrough
		0 1 0 0 testCMYKColorThrough
		0 0 1 0 testCMYKColorThrough
		0 0 0 1 testCMYKColorThrough
		and and and
	} ifelse
	put
	composite? not
	{
		userdict begin
		gsave
		/cyan? 1 0 0 0 testCMYKColorThrough def
		/magenta? 0 1 0 0 testCMYKColorThrough def
		/yellow? 0 0 1 0 testCMYKColorThrough def
		/black? 0 0 0 1 testCMYKColorThrough def
		grestore
		/isCMYKSep? cyan? magenta? yellow? black? or or or def
		/customColor? isCMYKSep? not def
	 end
	} if
 end defaultpacking setpacking
%%EndResource
%%BeginResource: procset Adobe_typography_AI5 1.0 1
%%Title: (Typography Operators)
%%Version: 1.0 
%%CreationDate:(03/26/93) ()
%%Copyright: ((C) 1987-1993 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_typography_AI5 54 dict dup begin
put
/initialize
{
 begin
 begin
	Adobe_typography_AI5 begin
	Adobe_typography_AI5
	{
		dup xcheck
		{
			bind
		} if
		pop pop
	} forall
 end
 end
 end
	Adobe_typography_AI5 begin
} def
/terminate
{
	currentdict Adobe_typography_AI5 eq
	{
	 end
	} if
} def
/modifyEncoding
{
	/_tempEncode exch ddef
	/_pntr 0 ddef
	{
		counttomark -1 roll
		dup type dup /marktype eq
		{
			pop pop exit
		}
		{
			/nametype eq
			{
				_tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
				put
			}
			{
				/_pntr exch ddef
			} ifelse
		} ifelse
	} loop
	_tempEncode
} def
/TE
{
	StandardEncoding 256 array copy modifyEncoding
	/_nativeEncoding exch def
} def
%
/TZ
{
	dup type /arraytype eq
	{
		/_wv exch def
	}
	{
		/_wv 0 def
	} ifelse
	/_useNativeEncoding exch def
	pop pop
	findfont _wv type /arraytype eq
	{
		_wv makeblendedfont
	} if
	dup length 2 add dict
 begin
	mark exch
	{
		1 index /FID ne
		{
			def
		} if
		cleartomark mark
	} forall
	pop
	/FontName exch def
	counttomark 0 eq
	{
		1 _useNativeEncoding eq
		{
			/Encoding _nativeEncoding def
		} if
		cleartomark
	}
	{
		/Encoding load 256 array copy
		modifyEncoding /Encoding exch def
	} ifelse
	FontName currentdict
 end
	definefont pop
} def
/tr
{
	_ax _ay 3 2 roll
} def
/trj
{
	_cx _cy _sp _ax _ay 6 5 roll
} def
/a0
{
	/Tx
	{
		dup
		currentpoint 3 2 roll
		tr _psf
		newpath moveto
		tr _ctm _pss
	} ddef
	/Tj
	{
		dup
		currentpoint 3 2 roll
		trj _pjsf
		newpath moveto
		trj _ctm _pjss
	} ddef
} def
/a1
{
	/Tx
	{
		dup currentpoint 4 2 roll gsave
		dup currentpoint 3 2 roll
		tr _psf
		newpath moveto
		tr _ctm _pss
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll gsave
		dup currentpoint 3 2 roll
		trj _pjsf
		newpath moveto
		trj _ctm _pjss
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/e0
{
	/Tx
	{
		tr _psf
	} ddef
	/Tj
	{
		trj _pjsf
	} ddef
} def
/e1
{
	/Tx
	{
		dup currentpoint 4 2 roll gsave
		tr _psf
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll gsave
		trj _pjsf
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/i0
{
	/Tx
	{
		tr sp
	} ddef
	/Tj
	{
		trj jsp
	} ddef
} def
/i1
{
	W N
} def
/o0
{
	/Tx
	{
		tr sw rmoveto
	} ddef
	/Tj
	{
		trj swj rmoveto
	} ddef
} def
/r0
{
	/Tx
	{
		tr _ctm _pss
	} ddef
	/Tj
	{
		trj _ctm _pjss
	} ddef
} def
/r1
{
	/Tx
	{
		dup currentpoint 4 2 roll currentpoint gsave newpath moveto
		tr _ctm _pss
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll currentpoint gsave newpath moveto
		trj _ctm _pjss
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/To
{
	pop _ctm currentmatrix pop
} def
/TO
{
	iTe _ctm setmatrix newpath
} def
/Tp
{
	pop _tm astore pop _ctm setmatrix
	_tDict begin
	/W
	{
	} def
	/h
	{
	} def
} def
/TP
{
 end
	iTm 0 0 moveto
} def
/Tr
{
	_render 3 le
	{
		currentpoint newpath moveto
	} if
	dup 8 eq
	{
		pop 0
	}
	{
		dup 9 eq
		{
			pop 1
		} if
	} ifelse
	dup /_render exch ddef
	_renderStart exch get load exec
} def
/iTm
{
	_ctm setmatrix _tm concat 0 _rise translate _hs 1 scale
} def
/Tm
{
	_tm astore pop iTm 0 0 moveto
} def
/Td
{
	_mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
} def
/iTe
{
	_render -1 eq
	{
	}
	{
		_renderEnd _render get dup null ne
		{
			load exec
		}
		{
			pop
		} ifelse
	} ifelse
	/_render -1 ddef
} def
/Ta
{
	pop
} def
/Tf
{
	dup 1000 div /_fScl exch ddef
%
	selectfont
} def
/Tl
{
	pop
	0 exch _leading astore pop
} def
/Tt
{
	pop
} def
/TW
{
	3 npop
} def
/Tw
{
	/_cx exch ddef
} def
/TC
{
	3 npop
} def
/Tc
{
	/_ax exch ddef
} def
/Ts
{
	/_rise exch ddef
	currentpoint
	iTm
	moveto
} def
/Ti
{
	3 npop
} def
/Tz
{
	100 div /_hs exch ddef
	iTm
} def
/TA
{
	pop
} def
/Tq
{
	pop
} def
/Th
{
	pop pop pop pop pop
} def
/TX
{
	pop
} def
/Tk
{
	exch pop _fScl mul neg 0 rmoveto
} def
/TK
{
	2 npop
} def
/T*
{
	_leading aload pop neg Td
} def
/T*-
{
	_leading aload pop Td
} def
/T-
{
	_hyphen Tx
} def
/T+
{
} def
/TR
{
	_ctm currentmatrix pop
	_tm astore pop
	iTm 0 0 moveto
} def
/TS
{
	currentfont 3 1 roll
	/_Symbol_ _fScl 1000 mul selectfont
	
	0 eq
	{
		Tx
	}
	{
		Tj
	} ifelse
	setfont
} def
/Xb
{
	pop pop
} def
/Tb /Xb load def
/Xe
{
	pop pop pop pop
} def
/Te /Xe load def
/XB
{
} def
/TB /XB load def
currentdict readonly pop
end
setpacking
%%EndResource
%%BeginResource: procset Adobe_screens_AI5 1.2 0
%%Title: (Adobe Illustrator (R) Version 5.0 Custom Halftone Screens ProcSet)
%%Version: 1.2 0
%%CreationDate: (03/24/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
systemdict begin
userdict /Adobe_screens_AI5 15 dict dup begin
put
/initialize
{
	Adobe_screens_AI5 begin
	/screenid
		deviceDPI 600 gt composite? not or
		{
		-1
		}
		{
			deviceDPI currentScreenFreq 
			dup dup 60 ge exch 150 le and deviceDPI 300 le and
		{
			pop 60
		} if
		div 1.41421 div 0.5 add cvi
		} ifelse
	def
	
	2 screenid eq
	{
		/customsize 16 def
		/customdata /customdata2 def
		setcustomscreen
	} if
	
	3 screenid eq
	{
		/customsize 24 def
		/customdata /customdata3 def
		setcustomscreen
	} if
	
	4 screenid eq
	{
		/customsize 16 def
		/customdata /customdata4 def
		setcustomscreen
	} if
	
	5 screenid eq
	{
		/customsize 20 def
		/customdata /customdata5 def
		setcustomscreen
	} if
	
	6 screenid eq
	{
		/customsize 24 def
		/customdata /customdata6 def
		setcustomscreen
	} if
	
	7 screenid eq
	{
		/customsize 28 def
		/customdata /customdata7 def
		setcustomscreen
	} if
	
	8 screenid eq
	{
		/customsize 16 def
		/customdata /customdata8 def
		setcustomscreen
	} if
} def
/terminate
{
	currentdict Adobe_screens_AI5 eq
	{
	 end
	} if
} def
/setcustomscreen
{
	deviceDPI customsize div 0
	{
		1 add 2 div customsize mul cvi exch
		1 add 2 div customsize mul cvi exch
		customsize mul add
		customdata load exch get 256 div
	} setscreen
} def
/customdata2 28 28 mul string def
currentfile customdata2 readhexstring
4180E8694988E2634382EA6B4B8AE061A01939C8A81737C2A21B3BCAAA1636C0
F8795998F6775796FA7B5B9AF57656952ED8B80727D6B60F2FDABA0626D5B50E
4E8DE6674786EE6F4F8EE5664685ED6EAD1434C6A61F3FCEAE1232C5A51E3ECD
F3745493FE7F5F9EF1725291FD7E5E9D24D3B30C2CDEBE0222D1B10A2ADDBD04
4483EB6C4C8BE1624281E96A4A89E364A31C3CCBAB1535C1A11A3AC9A91838C3
FB7C5C9BF4755594F97A5A99F778589730DBBB0525D4B40D2DD9B90828D7B710
508FE4654584EC6D4D8CE7684887EF70AF1131C4A41D3DCCAC1333C7A72040CF
F0715190FC7D5D9CF2735392FF80609F21D0B00929DCBC0323D2B20B2BDFBF01
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata3 28 28 mul string def
currentfile customdata3 readhexstring
011DC7F5E73D0421CBF3E43A021EC8F6E83E0522CCF2E43A2B648BC4A0762F68
8AC39E732C658CC5A177306989C29D72D5B6521A6192D9B55219608FD6B6531B
6193DAB451185F8FFCEE440C28D2FCED430B27D1FDEF450C29D3FBEC420A26D0
BEA77D366F83BCA77C356E87BFA87E377082BBA67B346D86145B99E0AE4A1259
98DFB14E155C9AE1AD4A115897DEB04D0623CDF4E63C0420CAF8EA400723CDF4
E53B031FC9F7E93F316988C19F752E678EC6A378326A88C09F742D668DC6A278
DBB350175E91D8B8551C6395DCB24F165D90D7B7541C6294FAEC420925CFFFF1
470E2BD5F9EB410824CEFEF0460D2AD4BAA57A336C85BEAA80397180B9A47933
6B84BDA97F387181105797DDAF4C145A9CE3AB480F5696DDAE4B13599BE2AC49
021EC8F6E83E0522CCF2E43A011DC7F5E73D0421CBF3E43A2C658CC5A1773069
89C29D722B648BC4A0762F688AC39E73D6B6531B6193DAB451185F8FD5B6521A
6192D9B55219608FFDEF450C29D3FBEC420A26D0FCEE440C28D2FCED430B27D1
BFA87E377082BBA67B346D86BEA77D366F83BCA77C356E87155C9AE1AD4A1158
97DEB04D145B99E0AE4A125998DFB14E0723CDF4E53B031FC9F7E93F0623CDF4
E63C0420CAF8EA40326A88C09F742D668DC6A278316988C19F752E678EC6A378
DCB24F165D90D7B7541C6294DBB350175E91D8B8551C6395F9EB410824CEFEF0
460D2AD4FAEC420925CFFFF1470E2BD5B9A479336B84BDA97F387181BAA57A33
6C85BEAA803971800F5696DDAE4B13599BE2AC49105797DDAF4C145A9CE3AB48
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata4 28 28 mul string def
currentfile customdata4 readhexstring
1139B8E0FAD2531B133BBAE2F8D05119417180A6AE9A7B4B437382A5AD987949
C08867272F6F92CAC28A66262E6E90C8E8DE5F070F37B6F2EADD5E060E36B5F0
FED6571F173FBEE6FDD5561E163EBDE5AB9E7F4F477786A1A99D7E4E467685A3
2C6C96CEC68E62222A6A95CDC58D64240C34B3F6EED95A020A32B1F5EDDB5C04
143CBBE3F9D1521A123AB9E1FBD3541C447483A4AC997A4A427281A7AF9B7C4C
C38B65252D6D91C9C1896828307093CBEBDC5D050D35B4F1E9DF60081038B7F3
FCD4551D153DBCE4FFD758201840BFE7A89C7D4D457584A2AA9F8050487887A0
296994CCC48C63232B6B97CFC78F61210931B0F4ECDA5B030B33B2F7EFD85901
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata5 28 28 mul string def
currentfile customdata5 readhexstring
010B34C3EBFCF7CE3F16020C35C4EDFBF6CD3E15102552A4D6EADDB5632B1126
54A5D5EADCB3622A3958768499C19E8C7C5E3A59778498C19D8B7B5DC8A99370
47334C7587AFC9AA936F46324B7485AEF1E5BC6B1E0A2351A3D8F2E4BC6A1E09
2351A2D7FFF9D14219050F38C6EFFEF9D04118040E37C6EFE8E0B7662D142856
A8D3E7DFB7652D132856A7D4BF9C8E7F603D5B7A8195BE9A8E7E603C5B798297
314A7389B2CCAD906D442F497289B1CBAC926E4508214FA1DBF4E2B9671B0720
4EA0DAF4E3BA691C030D36C5EDFBF6CD3F16010C34C3ECFDF8CF4017122654A6
D4E9DDB4622A112553A5D6EBDEB5642C3B59788397C09C8B7C5D3A58778599C2
9E8C7D5FCAAB926E46314B7486AFC8AA947048334D7587B0F2E4BB691D082250
A1D8F1E6BD6B1F0A2452A3D9FDF8CF4118030E36C5EEFFFAD1421A050F38C7F0
E6DFB6642C132755A7D3E8E1B8662E152957A8D2BE9A8D7E5F3B5A798296BF9B
8F80613D5C7B80952F487188B1CAAC916D443049728AB3CCAE906C43061F4D9F
DAF3E2BA681C07214FA0DBF5E1B8671A00000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata6 28 28 mul string def
currentfile customdata6 readhexstring
081A44B6E0F2FDECC150250C091B45B6E1F3FCEBC04F240C1D336199C7D8DCD3
A56C37221E33619AC8D7DBD2A46B36214864798091AEB1958C7E694C49657A81
90ADB0948B7D684BB99D8475593C405C7888A1BEBA9E8574583B3F5B7888A0BD
E4CBAA712E1215326098CFE8E4CCA9712D1114315F97CEE7F5F1C6552B040719
43B5DFFAF6F0C6542A03061842B4DEF9FFEDC352270E0B1C47B8E3F4FEECC251
260D0A1C46B7E2F4DAD5A76E39232035639CCAD5D9D4A66D38231F34629BC9D6
AF938E806A4E4A677C838FABAE928D7F694D4A667B828FAC3E5A778AA3BFBC9F
8772563A3D597689A2BEBB9F8673573A14305E97D1EAE6CDA76F2B0F132F5D96
D0E9E5CDA8702C10051742B3DDFCF8EEC4522801041641B2DDFBF7EFC5532902
091B45B6E1F3FCEBC04F240C081A44B6E0F2FDECC150250C1E33619AC8D7DBD2
A46B36211D336199C7D8DCD3A56C372249657A8190ADB0948B7D684B48647980
91AEB1958C7E694CBA9E8574583B3F5B7888A0BDB99D8475593C405C7888A1BE
E4CCA9712D1114315F97CEE7E4CBAA712E1215326098CFE8F6F0C6542A030618
42B4DEF9F5F1C6552B04071943B5DFFAFEECC251260D0A1C46B7E2F4FFEDC352
270E0B1C47B8E3F4D9D4A66D38231F34629BC9D6DAD5A76E39232035639CCAD5
AE928D7F694D4A667B828FACAF938E806A4E4A677C838FAB3D597689A2BEBB9F
8673573A3E5A778AA3BFBC9F8772563A132F5D96D0E9E5CDA8702C1014305E97
D1EAE6CDA76F2B0F041641B2DDFBF7EFC5532902051742B3DDFCF8EEC4522801
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata7 28 28 mul string def
currentfile customdata7 readhexstring
01061B44B7E1F5FEFBE6BD4A210C01071B45B8E1F6FDFBE6BC4A200B09132A54
A7D1EAF5EED9B05D331609142B55A8D2EAF4EED9AF5C32161D2D3D6993C1CBE0
CEC59B7140301E2E3D6A93C0CADFCDC49A713F3047576C7B828DA2B6A48F867E
6F5A48576C7C828CA1B6A38F867E6E59BAAA958A78634E4451667A8498ADBAAB
968977624E4350657A8398ADE3D4C99F7539251A273C6892C2D7E4D4C89E7539
241A273B6891C1D6F8F2DDB460371005122A53A7D0ECF9F2DDB360360F051229
53A6D0EBFFFDE8BE4C220D03081D46B9E3F7FFFCE7BD4B210D02071C46B8E2F7
F3F0DBB15E34180B152C56A9D3E8F3EFDAB05D34170A142C55A9D2E9DFCCC69C
7341321F2F3F6B94BFC9DECCC59C7241311F2E3E6A94BFCAB5A38E8780705B49
596D7D808BA0B4A28D877F6F5B48586D7C818BA043506479859AAFBCAC978876
614C424F64798499AEBBAB968977624D19263B6791C3D8E5D6C79D7337231825
3A6690C3D7E5D5C79E74382304112952A5CFEDFAF0DBB25E350E03102851A5CE
ECF9F1DCB25F360E01071B45B8E1F6FDFBE6BC4A200B01061B44B7E1F5FEFBE6
BD4A210C09142B55A8D2EAF4EED9AF5C321609132A54A7D1EAF5EED9B05D3316
1E2E3D6A93C0CADFCDC49A713F301D2D3D6993C1CBE0CEC59B71403048576C7C
828CA1B6A38F867E6E5947576C7B828DA2B6A48F867E6F5ABAAB968977624E43
50657A8398ADBAAA958A78634E4451667A8498ADE4D4C89E7539241A273B6891
C1D6E3D4C99F7539251A273C6892C2D7F9F2DDB360360F05122953A6D0EBF8F2
DDB460371005122A53A7D0ECFFFCE7BD4B210D02071C46B8E2F7FFFDE8BE4C22
0D03081D46B9E3F7F3EFDAB05D34170A142C55A9D2E9F3F0DBB15E34180B152C
56A9D3E8DECCC59C7241311F2E3E6A94BFCADFCCC69C7341321F2F3F6B94BFC9
B4A28D877F6F5B48586D7C818BA0B5A38E8780705B49596D7D808BA0424F6479
8499AEBBAB968977624D43506479859AAFBCAC978876614C18253A6690C3D7E5
D5C79E74382319263B6791C3D8E5D6C79D73372303102851A5CEECF9F1DCB25F
360E04112952A5CFEDFAF0DBB25E350E
pop pop
/customdata8 28 28 mul string def
currentfile customdata8 readhexstring
050F2747B6D6EEF8FEF4DCBC4D2D1507111D375F9EC6E0E9EBE6CCA4653D1F13
2939556F8EA8C1D1D3C3AE9475573B2B4961717D808999B1B39B8B867F73634B
B8A090827A6A5A42445C6C7C8492A2BAD8C8AA97785232222434546E8DACCADA
F0E2CFA768401A0A0C1C365E9DC5E4F2FAF7DFBF50301802040E2646B5D5EDFC
FFF5DDBD4E2E160806102848B7D7EFF9EAE7CDA5663E2014121E38609FC7E1E8
D2C2AF9576583C2C2A3A56708FA9C0D0B29A8A878074644C4A62727E818898B0
435B6B7B8593A3BBB9A19183796959412333536D8CADCBDBD9C9AB9677513121
0B1B355D9CC4E5F3F1E3CEA6673F1909030D2545B4D4ECFDFBF6DEBE4F2F1701
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset AGM_Gradient_Sep 1.0 0
%%Title: (AGM Gradient Procset)
%%Version: 1.0 0
%%CreationDate: (4/26/96) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /AGM_Gradient_Sep 5 dict dup begin put
/AGM_Gradient_Sep_private 100 dict def
/initialize{
	AGM_Gradient_Sep begin
	AGM_Gradient_Sep_private begin
	_compositeJob{
		initializeSinglePassSeps
	}{
		initializeMultiPassSeps
	}ifelse
	initializeSeps
	AGM_Gradient_private begin
		/_fillSD newSpotDict def
		/_rampSD newSpotDict def
		/_nCustomColorSD nd
 end
	AGM_Gradient_Sep_private 
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
	AGM_Gradient_Sep
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
 end
	
	currentdict readonly pop	
 end
}def
/terminate{
	currentdict AGM_Gradient_Sep eq{
	 end
	}if
}def
 
AGM_Gradient_Sep_private begin
/initializeSeps{
	_noImage not _level2PS not and{
		/_whiteBytes 1 makeByte8 pt
		/knockOut{
			8 setImageParms _whiteBytes /_image load 5 execImage
		}def
		/linealFill{
			mySave
			8 setImageParms
			_color{
				_nCustomColorSD begin
					cyan magenta yellow black
					_spotColor{
						spot1 begin
							/tintImage tintValue 1 exch sub makeByte8 def
					 end
						spot2 begin
							/tintImage tintValue 1 exch sub makeByte8 def
					 end
					}if
			 end
				4{
					makeByte8 4 1 roll
				}repeat
				true 4 _nCustomColorSD ncolorimage
			}{
				_nCustomColorSD/black get 1 exch sub makeByte8 
				_nCustomColorSD bwImage
			}ifelse
			myRestore
		}def
	}{
		 /knockOut{
			gsave
			false setoverprint
			1 setgray 
			0 0 1 1 rectfill
			grestore
		}def
	}ifelse
	/newSpotDict{
		11 dict dup begin
			/nSpots 2 def
			/spot1 7 dict def
			/spot2 7 dict def
	 end
	}def
	/initSpotData
	{
	 begin
			/name nd
			/tintImage nd
			/tintValue nd
			/spot_C nd
			/spot_M nd
			/spot_Y nd
			/spot_K nd
	 end
	}def
	/initSpotDict{
	 begin
			/cyanInk false def
			/magentaInk false def
			/yellowInk false def
			/blackInk false def
			/cyan nd
			/magenta nd
			/yellow nd
			/black nd
			spot1 initSpotData
			spot2 initSpotData
	 end
	}def
	/copySpotDict{
		/_dst xp
	 begin
			cyanInk magentaInk yellowInk blackInk
			cyan magenta yellow black
			spot1 spot2
	 end
		_dst begin
			/spot1 spot1 maxlength dict def
			/spot2 spot2 maxlength dict def
			spot2 copy pop
			spot1 copy pop
			/black xd
			/yellow xd
			/magenta xd
			/cyan xd
			/blackInk xd
			/yellowInk xd
			/magentaInk xd
			/cyanInk xd
	 end
	}def
	/setCustomColor
	{
		1 index /Black eq{
			6 1 roll 5 npop
			1 exch sub
			setgray
		}{
			6 1 roll _ccAry1 astore exch
			dup null eq{
				pop 0
			}if
			setcustomcolor
		}ifelse
	}def
	/setCStop{
		/_colorStyle exch pt
		
		_colorStyle 0 eq{
			0 0 0
			4 -1 roll
			1 exch sub
			_spotColor{
				/_colorStyle 3 pt
				/Black
				1 index
				1 exch sub
			}if
		}if
		_colorStyle 2 eq{
			3 npop
		}if
		_rampSD _fillSD copySpotDict
		
		_colorStyle 4 eq{ 
			pop
			9 2 roll 3 npop 6 -2 roll
		} if
		
		_colorStyle 3 eq _colorStyle 4 eq or{
				
			_fillSD begin
				exch
				dup spot1/name get eq{
					spot1 spot2
				}{
					spot2 spot1
				}ifelse
			 begin
				 begin
						/name xd
						1 exch sub /tintValue xd
						4{
							tintValue mul 4 1 roll
						}repeat
						_spotColor not{
							/tintValue null def
						}if
				 end
					/tintValue 0 def
			 end
		 end
		}if
		_fillSD nsetcustomcolor
	}def
	/renderCMYK{
		spot1/name get null eq
		spot2/name get null eq and
		dup not{
			pop
			spot1 spotConverted
		}if
		dup not{
			pop
			spot2 spotConverted
		}if
	}def
	/fill_ /fill load def
	/fillOvp{
		currentoverprint{
			_inRipSep{
				currentcolorspace 0 get
				dup /DeviceGray eq
				1 index /DeviceCMYK eq or{
					pop
					currentcmykcolor add add add 0 eq{
						newpath
					}if
				}{
					/Separation eq{
						currentcolor 0 eq{
							newpath
						}if
					}if
				}ifelse
			}{
				currentgray 1 eq{
					newpath
				}if
			}ifelse
		}if
		fill_
	}def
	/fill{
		_nCustomColorSD begin
			renderCMYK
			{
				fillOvp
			}{
				spot1 begin
					gsave
					name null ne{
						spot_C spot_M spot_Y spot_K name tintValue setCustomColor
					}{
						1 setgray
					}ifelse
					fillOvp 
					grestore
			 end
				spot2 begin
					name null ne{
						gsave
						true setoverprint
						spot_C spot_M spot_Y spot_K name tintValue setCustomColor
						fillOvp
						grestore
					}if
			 end
				newpath
			}ifelse
	 end
	}def
	/expandSpot{
		_spotColor{
			/_len xp
			_rampSD begin
				spot1 begin
					tintImage null ne{
						tintImage _len expandOne /tintImage xd
					}if
			 end
				spot2 begin
					tintImage null ne{
						tintImage _len expandOne /tintImage xd
					}if
			 end
		 end
		}{
			pop
		}ifelse
	}def
	/rampImage{
		_rampSD begin
			_color{
				/cyanInk _cyanData 0 ne def
				/magentaInk _magentaData 0 ne def
				/yellowInk _yellowData 0 ne def
				/blackInk _blackData 0 ne def
				_nSamples setImageParms
				_nSamples expandSpot
				_cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
				true 4 _rampSD ncolorimage
			}{
				/cyanInk false def
				/magentaInk false def
				/yellowInk false def
				/blackInk true def
				_nSamples setImageParms 
				_blackData _rampSD bwImage
			}ifelse
	 end
	}def
	/nsetcustomcolor where{
		pop
	}{
		/nsetcustomcolor
		{
			/_nCustomColorSD xp
			_nCustomColorSD begin
				4 copy
				/black xd
				/yellow xd
				/magenta xd
				/cyan xd
				4 copy
				0 ne /blackInk xd
				0 ne /yellowInk xd
				0 ne /magentaInk xd
				0 ne /cyanInk xd
		 end
			setcmykcolor
		}def
	}ifelse
	/nsetcustomcolorend where{
		pop
	}{
		/nsetcustomcolorend
		{
			/_nCustomColorSD null pt
		}def
	}ifelse
}def
/initializeSinglePassSeps{
	/_decodeNorm	[0 1] pt
	/_decodeInvert 	[1 0] pt
	/spotConverted
	{
	 begin
			name null eq{
				false
			}{
				tintValue null eq tintImage null eq and{
					true
				}{
					false
					currentpagedevice/SeparationOrder get{name eq or}forall
					not
				}ifelse
			}ifelse
	 end
	}def
	/dictImage
	{
		20 dict dup begin
			/Dict xd
			/Decode xd
			/DataSource xd
			/ImageMatrix xd
			/BitsPerComponent xd
			/Height xd
			/Width xd
			/ImageType 1 def
			Dict
	 end
		/_image load 1 execImage
	}def
	/bwImage{
	 begin
			gsave
			currentoverprint{
				blackInk{
					[/Separation /Black /DeviceGray{}] setcolorspace
					_decodeInvert dictImage
				}{
					5 npop
				}ifelse
			}{
				/DeviceGray setcolorspace
				_decodeNorm dictImage
			}ifelse
			grestore
	 end
	}def
	/ncolorimage where{
		pop
	}{
		/ncolorimage{
		 begin
				renderCMYK
				{
					cyanInk 
					magentaInk and
					yellowInk and
					blackInk and
					not
					currentoverprint 
					and
					{
						pop pop
						gsave
						cyanInk{
							8 copy
							[/Separation /Cyan /DeviceGray{}] setcolorspace
							3 npop
							_decodeNorm dictImage
						}if
						magentaInk{
							8 copy
							[/Separation /Magenta /DeviceGray{}] setcolorspace
							4 -1 roll
							3 npop
							_decodeNorm dictImage
						}if
						yellowInk{
							8 copy
							[/Separation /Yellow /DeviceGray{}] setcolorspace
							4 -2 roll
							3 npop
							_decodeNorm dictImage
						}if
						blackInk{
							4 -3 roll
							[/Separation /Black /DeviceGray{}] setcolorspace
							3 npop
							_decodeNorm dictImage
						}{
							8 npop
						}ifelse
						grestore
					}{
						/_colorimage load 10 execImage
					}ifelse
				}{
					6 npop
					gsave
					spot1 begin
						name null ne tintImage null ne and{
							[/Separation name /DeviceGray{}] setcolorspace
							4 copy
							tintImage 
							name /Black eq{
								_decodeNorm
							}{
								_decodeInvert
							}ifelse 
							dictImage
						}{
							1 setgray fill
						}ifelse
				 end
					spot2 begin
						true setoverprint
						name null ne tintImage null ne and{
							[/Separation name /DeviceGray{}] setcolorspace
							tintImage 
							name /Black eq{
								_decodeNorm
							}{
								_decodeInvert
							}ifelse 
							dictImage
						}{
							4 npop
							1 setgray fill
						}ifelse
				 end
					grestore
				}ifelse
		 end
		}def
	}ifelse
}def
/initializeMultiPassSeps{
	/_isCMYKSep
		_cyanPlate _magentaPlate or _yellowPlate or _blackPlate or
	pt
	/invertXfer{
		[
		{
			1 exch sub
		}/exec load systemdict /currenttransfer get exec /exec load
		] cvx systemdict /settransfer get exec
	}def
	/ccThrough{
		gsave
		1 setCustomColor
		currentcmykcolor
		grestore
		add add add 0 ne
	}def
	/spotConverted
	{
	 begin
			_isCMYKSep not{
				false
			}{
				name null eq{
					false
				}{
					tintValue null eq tintImage null eq and{
						true
					}{
						spot_C spot_M spot_Y spot_K name ccThrough
					}ifelse
				}ifelse
			}ifelse
	 end
	}def
	/spotChannel
	{
		_isCMYKSep{
			pop false
		}{
		 begin
				name null eq{
					false
				}{
					spot_C spot_M spot_Y spot_K name ccThrough 
				}ifelse
		 end
		}ifelse
	}def
	/getChannelData
	{
		_isCMYKSep dup{
			pop renderCMYK
		}if
		{
			_blackPlate{
				4 1 roll 3 npop blackInk
			}{
				_yellowPlate{
					4 2 roll 3 npop yellowInk
				}{
					_magentaPlate{
						4 3 roll 3 npop magentaInk
					}{
						3 npop cyanInk
					}ifelse
				}ifelse
			}ifelse
			{
				true /nonZeroData
			}{
				true /zeroData
			}ifelse
		}{
			4 npop
			spot1/name get null ne 
			spot1 spotChannel and{
				spot1/tintImage get dup null ne{
					false /nonZeroData
				}{
					pop false /noData
				}ifelse
			}{
				spot2/name get null ne 
				spot2 spotChannel and{
					spot2/tintImage get dup null ne{
						false /nonZeroData
					}{
						pop false /noData
					}ifelse
				}{
					false /noData
				}ifelse
			}ifelse
		}ifelse
	}def
	/renderChannelData
	{
		/_tmp xp
		_tmp /nonZeroData ne currentoverprint and{
			pop
			_tmp /zeroData eq{pop}if
			4 npop
		}{
			_tmp /nonZeroData eq{
				{
					invertXfer
				}if
					systemdict/image
				get 5 execImage
			}{
				pop
				_tmp /zeroData eq{pop}if
				4 npop
				knockOut
			}ifelse
		}ifelse
	}def
	/bwImage{
	 begin
			gsave
			dup dup dup
			getChannelData
			exch pop false exch
			renderChannelData
			grestore
	 end
	}def
	/ncolorimage{
	 begin
			pop pop
			gsave
			spot2/name get null ne spot2 spotChannel and{
				true setoverprint
			}if
			getChannelData 
			renderChannelData
			grestore
	 end
	}def
}def
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset AGM_Gradient 1.0 0
%%Title: (AGM Gradient Procset)
%%Version: 1.0 0
%%CreationDate: (4/26/96) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /AGM_Gradient 20 dict dup begin put
/AGM_Gradient_private 200 dict def
/initialize
{
	AGM_Gradient begin
	AGM_Gradient_private begin
	initializeVars
	
	/bd systemdict/mark get def
	/ed
		_level2PS 
		{
			(>>)
		}{
			(counttomark 2 idiv dup dict begin {def} repeat pop currentdict end)
		} ifelse
	cvx def
	
	_level2PS{
		initializeLev2
	}{
		initializeLev1
	}ifelse
	
	queryDevice
	
	initializeShading
	initializeOps
	_producingSeps{
		AGM_Gradient_Sep/initialize get exec
	}{
		initializeComposite
	}ifelse
	_illustrator{
		/f{}def
		/F{}def
		/s{}def
		/S{}def
		/b{}def
		/B{}def
	}if
	/image where{
		/image get /_image xd
	}if
	/colorimage where{
		/colorimage get /_colorimage xd
	}if
	/rectfill where dup{
		exch pop not _producingSeps or
	}{
		not
	}ifelse
	{
		/rectfill{
			gsave
			newpath
			4 2 roll moveto
			1 index 0 rlineto
			0 1 index rlineto
			1 index neg 0 rlineto
			pop pop
			closepath
			fill
			grestore
		}def
	}if
	/linealImage _noImage{
		/rectImage load
	}{
		_producingSeps{
			AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
			/rampImage load
		 end
		}{
			/rampImage load
		}ifelse
	}ifelse
	def
	AGM_Gradient_private
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
	AGM_Gradient
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
 end
	
	currentdict readonly pop
 end
}def
/initializeAI
{
	pop pop 
	AGM_Gradient/AGM_Gradient_private get /_illustrator true put
	AGM_Gradient/initialize get exec
		AGM_Gradient begin
}def
/unload{
	systemdict/languagelevel known{
		systemdict/languagelevel get 2 ge{
			userdict/AGM_Gradient_Sep 2 copy known{
				undef
			}{
				pop pop
			}ifelse
			userdict/AGM_Gradient 2 copy known{
				undef
			}{
				pop pop
			}ifelse
		}if
	}if
}def
/terminate{
	currentdict AGM_Gradient eq{
	 end
	}if
}def
 
AGM_Gradient_private begin
/initializeVars{
	/_d255 256 array def
	0 1 255{
		_d255 exch dup 255 div put
	}bind for
	/_d255- 256 array def
	0 1 255{
		_d255- exch 1 _d255 2 index get sub put
	}bind for
	/_sSave nd
	/_dUserSpace matrix defaultmatrix def
	/_bUMatrix matrix def
	/_imageMatrix matrix def
	/_saveMatrix matrix def
	/_xm matrix def
	/_ccAry1 5 array def
	/_level2PS 
		systemdict/languagelevel known dup{
			pop systemdict/languagelevel get 2 ge
		}if
	def
	/_level3PS
		_level2PS systemdict/shfill known and
	def
	currentdict /_illustrator known not{
		/_illustrator false def
	}if
	
}def
/initializeOps
{
	AGM_Gradient begin
	currentdict/Bc known not{
		/Bc{
		
			_renderFlag 2 eq{
				6 npop
			}{
				pushBSpace
				_rampIndex 0 eq{
					pop pop
					setCStop
				}if
				linealFill
				popBSpace
			}ifelse
		
		}def
	}if
	
	currentdict/Bg known not{
		/Bg{
			10 npop
			/_gradName xp
			/_renderFlag xp
		
			_renderFlag 2 ne{
		
				_illustrator{
					_of setoverprint
				}if
		
				_illustrator _eo and _renderFlag 3 eq or{
					eoclip
				}{
					clip
				}ifelse
		
				_gradNames _gradName 2 copy known{
					get
					mark exch aload pop
					/_gradType xp
					1 sub dup /_rampIndex xp
					/_maxRampIndex xp
					mark exch aload pop
					0 0
				}if
				pop pop
				getRampData
			}{
				mark mark
			}ifelse
		}def
	}if
	
	currentdict/Bm known not{
		/Bm{
			_renderFlag 2 ne{
				_gradType 0 eq{
					linealRamp
				}{
					radialGrad
				}ifelse
			}{
				6 npop
			}ifelse
		}def
	}if
	
	currentdict/Bh known not{
		/Bh{
			2 npop
			/_yHi xp
			/_xHi xp
			/_radHilite _xHi 0 ne _yHi 0 ne or pt
		}def
	}if
	
	currentdict/Bn known not{
		/Bn{
			AGM_Gradient_private begin
				dict /_gradNames xp
		 end
		}def
	}if
	
	currentdict/Bd known not{
		/Bd{
			AGM_Gradient begin
			AGM_Gradient_private begin
				/_nColorsBd xp
				/_gradType xp
				/_gradName xp
		}def
	}if
	
	currentdict/BD known not{
		/BD{
				currentdict/_gradNames known not{
					/_gradNames 20 dict def
				}if
				] _nColorsBd _gradType
				]  _gradName exch /_gradNames xput
		 end
		 end
		}def
	}if
	
	currentdict/Bb known not{
		/Bb{
		
			AGM_Gradient begin
			AGM_Gradient_private begin
			_producingSeps{
				AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
			}if
			mySave
		}def
	}if
	
	currentdict/BB known not{
		/BB{
		
			/_tmp xp
			cleartomark cleartomark
		
			_tmp dup
			_renderFlag
		
			myRestore
		
			_producingSeps{
			 end
			}if
		
			_illustrator
		 end
		 end
		
			{
				2 ne exch 0 gt and{
					2 eq{
						s
					}{
						S
					}ifelse
				}{
					pop newpath
				}ifelse
			}{
				pop newpath
			}ifelse
		
		
		}def
	}if
	
	currentdict/Xm known not{
		/Xm{
			_xm astore pop
		}def
	}if
	
 end
}def
/queryDevice{
	/_inRipSep
		_level2PS{
			currentpagedevice/Separations 2 copy known{
				get
			}{
				pop pop false
			}ifelse
		}{
			false
		}ifelse
	def
	/_noImage /lv1Fix where{
		pop lv1Fix
	}{
		false
	}ifelse
	def
	/_useShells where{
		pop
	}{
		/_useShells true def
	}ifelse
	
	/_useSmoothShade where{
		pop
	}{
		/_useSmoothShade false def 
	}ifelse
	/_cyanPlate 1 0 0 0 testCMYKColorThrough def
	/_magentaPlate 0 1 0 0 testCMYKColorThrough def
	/_yellowPlate 0 0 1 0 testCMYKColorThrough def
	/_blackPlate 0 0 0 1 testCMYKColorThrough def
	/_compositeJob
		_cyanPlate _magentaPlate and _yellowPlate and _blackPlate and
	def
	/_compositeSpotDevice where{
		pop
	}{
		/_compositeSpotDevice _compositeJob not _inRipSep or{
			1
		}{
			0
		}ifelse
		def
	}ifelse
	/_producingSeps _compositeSpotDevice 0 ne def
	/_deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt def
	/_dpiThreshold where{
		pop
	}{
		/_dpiThreshold 600 def
	}ifelse
	/_screenFreqThreshold where{
		pop
	}{
		/_screenFreqThreshold 150 def
	}ifelse
	/_contoneDevice where{
		pop
	}{
		/_contoneDevice false def
	}ifelse
	/_subSampleOK 
		_deviceDPI _dpiThreshold le 
		currentScreenFreq _screenFreqThreshold le and 
		_contoneDevice not and 
		_producingSeps not and
	def
}def
/initializeLev1{
	/makeByte8{
		/_tmp 0 pt
		255 mul cvi
		8 string 8{
			dup _tmp 3 index put 
			/_tmp _tmp 1 add pt
		}repeat
		exch pop
	}def
	/currentScreenFreq{
		currentscreen pop pop
	}def
	/_byte 1 string def
	/colorimage where{
		pop
	}{
		/colorimage{
			pop pop
			/_blackTmp xp
			/_yellowTmp xp
			/_magentaTmp xp
			/_cyanTmp xp
			/_cnt 0 pt
			[
			_byte dup 0
			_cyanTmp 
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .3 /mul cvx
			_magentaTmp
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .59 /mul cvx
			_yellowTmp
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .11 /mul cvx
			_blackTmp 
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx
			/add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
			/dup cvx 0 /lt cvx{
				pop 0
			}/if cvx
			/dup cvx 1 /gt cvx{
				pop 1
			}/if cvx
			255 /mul cvx /cvi cvx
			256 /mod cvx
			/dup cvx 0 /lt cvx{
				pop 0
			}/if cvx
			/put cvx
			/_cnt dup cvx 1 /add cvx /pt cvx
			] cvx
			bind
			/_image load 5 execImage
		}def
	}ifelse
}def
/initializeLev2{
	/level2ScreenFreq{
	 begin
		60
		HalftoneType 1 eq{
			pop Frequency
		}if
		HalftoneType 2 eq{
			pop GrayFrequency
		}if
		HalftoneType 5 eq{
			pop Default level2ScreenFreq
		}if
		 end
	}def
	/currentScreenFreq{
		currenthalftone level2ScreenFreq
	}def
}def
/initializeShading{
	_useSmoothShade _level3PS and{
		/_usingSmoothShade true pt
		initializeLev3_Ops
	}{
		/_usingSmoothShade false pt
	}ifelse
}def
/initializeLev3_Ops
{
	/initShFill{
		/_index _gradType 0 eq {0}{_maxRampIndex 1 sub} ifelse pt
		/_rampFuncsArray _maxRampIndex array pt
		/_boundsArray _maxRampIndex 1 sub array pt
		/_encodeArray _maxRampIndex 2 mul array pt
		/_beginCoord _rampPoint pt
		/_colorSpace null pt
		/_firstFill _rampIndex _maxRampIndex eq pt
		/_lastFill false pt
	}def
	/getRampColorSpace{
		_nSamples 1 gt{ 
			/_ndx 0 pt
			[blendColor] cvx exec
		}if
		/_C0 [currentcolor] pt
		/_C0_Space currentcolorspace pt
		
		_nSamples 1 gt{ 
			/_ndx _nSamples 1 sub pt
			[blendColor] cvx exec
		}if
		/_C1 [currentcolor] pt
		/_C1_Space currentcolorspace pt
		
		_C0_Space _C1_Space eq{
			/_rampColorSpace _C0_Space pt
		}{
			(colorspace conflict!) ==
			showpage
			stop
		}ifelse
		
		_spotColor{
			nsetcustomcolorend
		}if
	}def
	/linealShFill{
		popBSpace
		_xm aload pop pushBSpace
		
		/_size _index 1 add pt
		_size _maxRampIndex lt {
			/_rampFuncsArray _rampFuncsArray 0 _size getinterval pt
			/_boundsArray _boundsArray 0 _size 1 sub getinterval pt
			/_encodeArray _encodeArray 0 _size 2 mul getinterval pt
		}if
		
		bd
			/ShadingType 2
			/ColorSpace _colorSpace
			/Function 
				bd
					/FunctionType 3
					/Domain [0 1]
					/Functions _rampFuncsArray
					/Bounds _boundsArray
					/Encode _encodeArray
				ed
			/Extend [_firstFill _lastFill]
			/Domain [0 1] 
			/Coords [_beginCoord 0 _endCoord 0]
		ed
		shfill
	}def
	
	/radialShFill{
		/_size _maxRampIndex _index sub pt
		_size _maxRampIndex lt {
			/_rampFuncsArray _rampFuncsArray _index _size getinterval pt
			/_boundsArray _boundsArray _index _size 1 sub getinterval pt
			/_encodeArray _encodeArray _index 2 mul _size 2 mul getinterval pt
		}if
		
		/_rampLen _beginCoord _endCoord sub pt
		bd
			/ShadingType 3
			/ColorSpace _colorSpace
			/Function 
				bd
					/FunctionType 3
					/Domain [0 1]
					/Functions _rampFuncsArray
					/Bounds _boundsArray
					/Encode _encodeArray
				ed
			/Extend [_lastFill _firstFill]
			/Domain [0 1] 
			/Coords [_xHi _rampLen mul _yHi _rampLen mul _endCoord 0 0 _beginCoord] 
		ed
		shfill
		
		_radHilite{
			_xHi _rampLen mul _yHi _rampLen mul translate
		}if
	}def
	
	/fillRamp{ 
	
	
		/_invert _midPoint 0.5 lt pt
		_rampIndex _maxRampIndex eq {
			initShFill
		}if
		
		getRampColorSpace
		
		_colorSpace null eq{
			/_colorSpace _rampColorSpace pt
		}{
			_colorSpace _rampColorSpace ne{
				/_index _index 1 
				_gradType 0 eq{
					sub pt
					linealShFill
				}{
					add pt
					radialShFill
				}ifelse
				initShFill
				/_colorSpace _rampColorSpace pt
			} if
		}ifelse
		/_endCoord _endPoint pt	
		_rampFuncsArray _index
		bd
			/FunctionType 2
			/Domain [0 1]
			/N 0.5 log _invert{1 _midPoint sub}{_midPoint}ifelse log div
			_gradType 0 eq{
				_invert{/C1}{/C0}ifelse _C0
				_invert{/C0}{/C1}ifelse _C1
			}{
				_invert{/C0}{/C1}ifelse _C1
				_invert{/C1}{/C0}ifelse _C0
			}ifelse
		ed
		put
		
		_rampIndex 1 ne{
			_boundsArray _index _gradType 1 eq{1 sub}if _endCoord put
		} if
		
		0 1 _invert {exch}if
		_encodeArray _index 2 mul 1 add 3 -1 roll put
		_encodeArray _index 2 mul 3 -1 roll put
		_rampIndex 1 eq {
			/_lastFill true pt
			_gradType 0 eq{
				linealShFill
			}{
				radialShFill
			}ifelse
		}if
		/_index _index 1 
		_gradType 0 eq{
			add pt
		}{
			sub pt
		}ifelse
	}def
	
	/radialRamp
		/fillRamp load def
	
	/rampImage
		/fillRamp load def
	
	AGM_Gradient begin
	/Bc{
		6 npop
	}def
	
 end
	
	
}def
/initializeComposite{
	/bwImage{
		pop /_image load 5 execImage 
	}def
	currentdict/rampImage known not{
		/rampImage{
			_color{
				_nSamples setImageParms
	
				
				_rgbRamp{
					_redData _greenData _blueData _nSamples 3 expandColor
					true 3 null ncolorimage
				}{
					_cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
					true 4 null ncolorimage
				}ifelse
			}{
				_nSamples setImageParms _blackData null bwImage
			}ifelse
		}def
	}if
	/setCStop{
		/_colorStyle exch pt
		_colorStyle 0 eq{
			1 exch sub
			0 0 0
			4 -1 roll
		}if
		
		_colorStyle 2 eq{
			setrgbcolor 4 npop
		}if
		
		_colorStyle 3 eq{
			1 exch sub /_tmp xp
			pop
			4{
				_tmp mul 4 1 roll
			}repeat
		}if
		
		_colorStyle 4 eq{
			3 -1 roll pop pop
			1 exch sub /_tmp xp
			3{
				1 exch sub _tmp mul 1 exch sub 3 1 roll
			}repeat
			setrgbcolor 
			4 npop
		}if
		_colorStyle 2 ne _colorStyle 4 ne and{
			null nsetcustomcolor
		}if
	}def
	/nsetcustomcolor
	{
		pop setcmykcolor
	}def
	/nsetcustomcolorend
	{
	}def
	/ncolorimage{
		pop 
		/_colorimage load 10 execImage
	}def
	_noImage not _level2PS not and{
		/linealFill{
			8 setImageParms
			_color{
				currentcmykcolor
				4{
					makeByte8 4 1 roll
				}repeat
				true 4 null ncolorimage
			}{
				currentgray makeByte8 null bwImage
			}ifelse
		}def
	}if
}def
/npop{
	{pop}repeat
}def
/xd{
	exch def
}def
/nd{
	null def
}def
/pt{
	AGM_Gradient_private 3 1 roll put
}def
/xp{
	exch pt
}def
/xput{
	dup load dup length exch maxlength eq{
		dup dup load dup
		length 2 mul dict copy def
	}if
	load begin
		def
  end
}def
/mySave{
	save /_sSave xp
}def
/myRestore{
	_sSave type /savetype eq{
		_sSave restore
	}if
}def
/gMark{
	counttomark 2 add -1 roll
}def
/execImage{
	/_tmp xp
	{
		exec
	}stopped{
		$error /errorname get /undefinedresult ne{
			stop
		}{
			_tmp npop
		}ifelse
	}if
}def
/pushBSpace{
	newpath gsave
	_bUMatrix astore concat 
}def
/popBSpace{
	grestore
}def
/setImageParms{
	1 8 2 index 0 0 1 0 0 _imageMatrix astore
}def
/linealFill{
	0 0 1 1 rectfill
}def
/testCMYKColorThrough{
	gsave
	setcmykcolor currentcmykcolor
	grestore
	add add add 0 ne
}def
/expandOne	{
	/_tmp xp
	dup type /stringtype ne{
		_tmp string
		exch
		dup 0 ne{
			255 mul cvi
			0 1 _tmp 1 sub{
				3 copy
				exch put pop
			}for
		}if
		pop
	}if
}def
/expandColor{
	/_channels xp
	/_len xp
	_channels{
		_len expandOne _channels 1 roll
	}repeat
}def
/blendColor{
	
	_color{
		_rgbRamp _producingSeps not and{
			_redData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_greenData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_blueData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			/setrgbcolor cvx
		}{
			_cyanData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_magentaData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_yellowData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_blackData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
	
			_spotColor{
				_rampSD begin
					/_rampSD cvx /begin cvx
	
					spot1 begin
						tintImage dup type /stringtype eq{
							/_ndx cvx /get cvx _d255- /exch cvx /get cvx
						}{
							dup null ne{
								name type /nametype ne{
									1 exch sub
								}if
							}if
						}ifelse
				 end
					/spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
	
					spot2 begin
						tintImage dup type /stringtype eq{
							/_ndx cvx /get cvx _d255- /exch cvx /get cvx
						}{
							dup null ne{
								name type /nametype ne{
									1 exch sub
								}if
							}if
						}ifelse
				 end
					/spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
					/end cvx
			 end
				/_rampSD cvx
				/nsetcustomcolor cvx
			}{
				/setcmykcolor cvx
			}ifelse
		}ifelse
	}{
		_blackData /_ndx cvx /get cvx
		_d255 /exch cvx /get cvx
		
		_usingSmoothShade{
			1 /exch cvx /sub cvx 0 0 0 4 -1 /roll cvx /setcmykcolor cvx
		}{
			 /setgray cvx
		}ifelse
	}ifelse
}def
/linealRamp{
	pushBSpace
	_ramp{
		linealImage
	}{
		linealFill
	}ifelse
	popBSpace
	/_rampIndex _rampIndex 1 sub pt
	_rampIndex 0 gt{
		getRampData
	}if
}def
/radialGrad{
	/_firstShell true pt
	_usingSmoothShade not{
		fill
	}if
	pushBSpace
	
	_radHilite{
		_xHi _yHi _bUMatrix idtransform /_yHi xp /_xHi xp
		_rampPoint 1 lt{
			1 _rampPoint sub dup _xHi mul exch _yHi mul translate
		}if
	}if
	_rampIndex{
			radialRamp
		/_rampIndex _rampIndex 1 sub pt
		_rampIndex 0 gt{
			getRampData
		}if
	}repeat
	
	popBSpace
	
}def
/getNSamples{
	0 exch
	{
		dup type /stringtype eq{
			length exch pop exit
		}if
		pop
	}forall
	dup 0 eq{
		pop 1
	}if
}def
/getRampData{
	/_rampType gMark pt
	/_color _rampType 0 gt pt
	/_ccRGB _rampType 5 eq _rampType 6 eq or pt
	/_rgbRamp _rampType 4 eq _ccRGB or pt
	/_ccProcess _rampType 2 eq _rampType 3 eq or pt
	_producingSeps{
		_rampSD initSpotDict
		/_spotColor _ccProcess _ccRGB or pt
	}{
		/_spotColor false pt
	}ifelse
	/_ramp true pt
	100 div /_rampPoint xp
	100 div /_midPoint xp
	
	dup /_colorStyle xp
	_colorStyle 0 eq{ 
		2
	}{
		_colorStyle 1 eq{ 
			5
		}{
			_colorStyle 2 eq{
				8
			}{
				_colorStyle 3 eq{
					_producingSeps{
						_rampSD begin
							spot1 begin
								/name 3 index def
								/spot_K 4 index def
								/spot_Y 5 index def
								/spot_M 6 index def
								/spot_C 7 index def
						 end
					 end
					}if
					7
				}{
					_producingSeps{
						_rampSD begin
							spot1 begin
								/name 4 index def
								/spot_K 8 index def
								/spot_Y 9 index def
								/spot_M 10 index def
								/spot_C 11 index def
						 end
					 end
					}if
					11
				} ifelse
			}ifelse
		}ifelse
	}ifelse
	/_tmp xp
	_tmp index 100 div /_endPoint xp
	
	_gradType 1 eq{
		_tmp 1 add index 100 div /_midPoint xp
	}if
	
	_producingSeps{
		_tmp 2 add index /_nextColorStyle xp
		_nextColorStyle 3 eq{
			/_tmp _tmp 4 add pt
			_tmp index dup
			_rampSD begin
				spot1 /name get ne{
					spot2 begin
						/name xd
						/spot_K _tmp 2 add index def
						/spot_Y _tmp 3 add index def
						/spot_M _tmp 4 add index def
						/spot_C _tmp 5 add index def
				 end
				}{
					pop
				}ifelse
		 end
		}if
		_nextColorStyle 4 eq{
			/_tmp _tmp 5 add pt
			_tmp index dup
			_rampSD begin
				spot1 /name get ne{
					spot2 begin
						/name xd
						/spot_K _tmp 5 add index def
						/spot_Y _tmp 6 add index def
						/spot_M _tmp 7 add index def
						/spot_C _tmp 8 add index def
				 end
				}{
					pop
				}ifelse
		 end
		}if
	}if
	_rampType 3 eq _rampType 6 eq or{
		/_tint2Data gMark pt
	}if
	_ccProcess _ccRGB or{
		/_tint1Data gMark pt
	}if
	_rgbRamp{
		/_blueData gMark pt
		/_greenData gMark pt
		/_redData gMark pt
	}if
	
	_producingSeps{
		_rampSD begin
			_ccProcess _ccRGB or{
				_rampType 3 eq _rampType 6 eq or{
					spot2 begin
						/tintImage _gradType 0 eq{
							_tint2Data
						}{
							_tint1Data
						}ifelse
						def
						name null eq{
							/name /Black def
						}if
				 end
				}if
				spot1 begin
					/tintImage _gradType 0 eq _rampType 2 eq or _rampType 5 eq or{
						_tint1Data
					}{
						_tint2Data
					}ifelse
					def
					_rampType 2 eq _rampType 5 eq or{
						name null eq{
							/name spot2 /name get def
							spot2 /name null put
						}if
					}{
						name null eq{
							/name /Black def
						}if
					}ifelse
			 end
			}if
	 end
	}if
	/_blackData gMark pt
	_rampType 0 gt{
		counttomark 4 add -3 roll
		/_yellowData xp
		/_magentaData xp
		/_cyanData xp
	}if
	_ramp{
		/_nSamples
			[
			_rampType 0 eq {_blackData}if
			_rampType 1 eq {_cyanData _magentaData _yellowData _blackData}if
			_rampType 2 eq {_cyanData _magentaData _yellowData _blackData _tint1Data}if
			_rampType 3 eq {_cyanData _magentaData _yellowData _blackData _tint1Data _tint2Data}if
			_rampType 4 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData}if
			_rampType 5 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data}if
			_rampType 6 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data _tint2Data}if
			] getNSamples pt
		_usingSmoothShade not {/_ramp _nSamples 1 gt pt} if
	} if
	
	setCStop
}def
/rectImage{
	gsave
	/_sInc 1 pt
	/_bInc 1 _nSamples div pt
	/_uRampLen 1 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt pt
	/_pChange _uRampLen 0 eq{0}{_nSamples _uRampLen div}ifelse pt
	0
	_nSamples
	[
	/dup cvx
	/_ndx /exch cvx /pt cvx
	blendColor
	0 0 _bInc 1 /rectfill cvx
	_bInc 0 /translate cvx
	_sInc /add cvx
	] cvx
	bind
	repeat
	pop
	_spotColor{
		nsetcustomcolorend
	}if
	grestore
}def
/radialInit{
	/_nRadSamples _nSamples dup 0 eq{pop 1}if pt
	/_sInc -1 pt
	/_rampLen _rampPoint _endPoint sub pt
	/_bInc _rampLen _nSamples div neg pt
	/_optimize false pt
	_subSampleOK{
		/_uRampLen
			_rampLen 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
			0 _rampLen dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
			2 copy lt{
				exch
			}if pop
		pt
		/_pChange 
			_uRampLen 0 eq{
				0
			}{
				_nSamples _uRampLen div
			}ifelse
		pt
		_pChange .5 gt dup /_optimize xp{
			/_nRadSamples _uRampLen 2 div round cvi dup 1 le{pop 2}if pt
			/_bInc _rampLen _nRadSamples div neg pt
			/_sInc _nSamples 1 sub _nRadSamples 1 sub div neg pt
		}if
	}if
	_radHilite{
		/_xBCInc _xHi _rampLen mul _nRadSamples div pt
		/_yBCInc _yHi _rampLen mul _nRadSamples div pt
	}if
}def
currentdict/radialRamp known not{
	/radialRamp{
	
		/_saveMatrix _saveMatrix currentmatrix def
		
		radialInit
	
		_rampPoint
	
		_nSamples 1 sub
	
		_nRadSamples 
		[
			/dup cvx
	
			_optimize{
				/round cvx /cvi cvx
			}if
	
			/_ndx /exch cvx /pt cvx
			
			_useShells{
				/_firstShell cvx{
					/_firstShell false pt
				}{
					0 0 3 index 360 0 arcn fill
				}/ifelse cvx
			}if
	
			blendColor
	
			_useShells{
				0 0 3 /index cvx 0 360 /arc cvx 
			}{
				0 0 3 /index cvx 0 360 /arc cvx /fill cvx
			}ifelse
	
			/exch cvx _bInc /add cvx /exch cvx
	
			_sInc /add cvx
	
			_radHilite{
				_xBCInc _yBCInc /translate cvx
			}if
		] cvx bind
		repeat
	
		pop pop
	
		_saveMatrix setmatrix
	
		_radHilite{
			_xHi _rampLen mul _yHi _rampLen mul translate
		}if
		
		_useShells _rampIndex 1 eq and{
			fill
		}if
		_spotColor{
			nsetcustomcolorend
		}if
	
		
	}def
}if
end
end
defaultpacking setpacking
%%EndResource
%%BeginProcSet: Adobe_ColorImage_AI6 1.1 0
userdict /Adobe_ColorImage_AI6 known not
{
	userdict /Adobe_ColorImage_AI6 24 dict put 
} if
userdict /Adobe_ColorImage_AI6 get begin
/initialize
{ 
	Adobe_ColorImage_AI6 begin
	Adobe_ColorImage_AI6
	{
		dup type /arraytype eq
		{
			dup xcheck
			{
				bind
			} if
		} if
		pop pop
	} forall
} def
/terminate { end } def
currentdict /Adobe_ColorImage_AI6_Vars known not
{
	/Adobe_ColorImage_AI6_Vars 15 dict def
} if
Adobe_ColorImage_AI6_Vars begin
	/channelcount 0 def
	/sourcecount 0 def
	/sourcearray 4 array def
	/plateindex -1 def
	/XIMask 0 def
	/XIBinary 0 def
	/XIChannelCount 0 def
	/XIBitsPerPixel 0 def
	/XIImageHeight 0 def
	/XIImageWidth 0 def
	/XIImageMatrix null def
	/XIBuffer null def
	/XIDataProc null def
	/XIVersion 6 def
end
/WalkRGBString null def
/WalkCMYKString null def
/StuffRGBIntoGrayString null def
/RGBToGrayImageProc null def
/StuffCMYKIntoGrayString null def
/CMYKToGrayImageProc null def
/ColorImageCompositeEmulator null def
/SeparateCMYKImageProc null def
/FourEqual null def
/TestPlateIndex null def
currentdict /_colorimage known not
{
	/colorimage where
	{
		/colorimage get /_colorimage exch def
	}
	{
		/_colorimage null def
	} ifelse
} if
/_currenttransfer systemdict /currenttransfer get def
/colorimage null def
/XI null def
/WalkRGBString
{
	0 3 index
	dup length 1 sub 0 3 3 -1 roll
	{
		3 getinterval { } forall
		5 index exec
		3 index
	} for
	
	 5 { pop } repeat
} def
/WalkCMYKString
{
	0 3 index
	dup length 1 sub 0 4 3 -1 roll
	{
		4 getinterval { } forall
		
		6 index exec
		
		3 index
		
	} for
	
	5 { pop } repeat
	
} def
/StuffRGBIntoGrayString
{
	.11 mul exch
	
	.59 mul add exch
	
	.3 mul add
	
	cvi 3 copy put
	
	pop 1 add
} def
/RGBToGrayImageProc
{	
	Adobe_ColorImage_AI6_Vars begin 
		sourcearray 0 get exec
		dup length 3 idiv string
		dup 3 1 roll 
		
		/StuffRGBIntoGrayString load exch
		WalkRGBString
 end
} def
/StuffCMYKIntoGrayString
{
	exch .11 mul add
	
	exch .59 mul add
	
	exch .3 mul add
	
	dup 255 gt { pop 255 } if
	
	255 exch sub cvi 3 copy put
	
	pop 1 add
} def
/CMYKToGrayImageProc
{	
	Adobe_ColorImage_AI6_Vars begin
		sourcearray 0 get exec
		dup length 4 idiv string
		dup 3 1 roll 
		
		/StuffCMYKIntoGrayString load exch
		WalkCMYKString
 end
} def
/ColorImageCompositeEmulator
{
	pop true eq
	{
		Adobe_ColorImage_AI6_Vars /sourcecount get 5 add { pop } repeat
	}
	{
		Adobe_ColorImage_AI6_Vars /channelcount get 1 ne
		{
			Adobe_ColorImage_AI6_Vars begin
				sourcearray 0 3 -1 roll put
			
				channelcount 3 eq 
				{ 
					/RGBToGrayImageProc 
				}
				{ 
					/CMYKToGrayImageProc
				} ifelse
				load
		 end
		} if
		image
	} ifelse
} def
/SeparateCMYKImageProc
{	
	Adobe_ColorImage_AI6_Vars begin
		sourcecount 0 ne
		{
			sourcearray plateindex get exec
		}
		{			
			sourcearray 0 get exec
			
			dup length 4 idiv string
			
			0 2 index
			
			plateindex 4 2 index length 1 sub
			{
				get 255 exch sub
				
				3 copy put pop 1 add
				
				2 index
			} for
			pop pop exch pop
		} ifelse
 end
} def
	
/FourEqual
{
	4 index ne
	{
		pop pop pop false
	}
	{
		4 index ne
		{
			pop pop false
		}
		{
			4 index ne
			{
				pop false
			}
			{
				4 index eq
			} ifelse
		} ifelse
	} ifelse
} def
/TestPlateIndex
{
	Adobe_ColorImage_AI6_Vars begin
		/plateindex -1 def
		/setcmykcolor where
		{
			pop
			gsave
			1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
			grestore
			1 0 0 0 FourEqual 
			{ 
				/plateindex 0 def
			}
			{
				0 1 0 0 FourEqual
				{ 
					/plateindex 1 def
				}
				{
					0 0 1 0 FourEqual
					{
						/plateindex 2 def
					}
					{
						0 0 0 1 FourEqual
						{ 
							/plateindex 3 def
						}
						{
							0 0 0 0 FourEqual
							{
								/plateindex 5 def
							} if
						} ifelse
					} ifelse
				} ifelse
			} ifelse
			pop pop pop pop
		} if
		plateindex
 end
} def
/colorimage
{
	Adobe_ColorImage_AI6_Vars begin
		/channelcount 1 index def
		/sourcecount 2 index 1 eq { channelcount 1 sub } { 0 } ifelse def
		4 sourcecount add index dup 
		8 eq exch 1 eq or not
 end
	
	{
		/_colorimage load null ne
		{
			_colorimage
		}
		{
			Adobe_ColorImage_AI6_Vars /sourcecount get
			7 add { pop } repeat
		} ifelse
	}
	{
		dup 3 eq
		TestPlateIndex
		dup -1 eq exch 5 eq or or
		{
			/_colorimage load null eq
			{
				ColorImageCompositeEmulator
			}
			{
				dup 1 eq
				{
					pop pop image
				}
				{
					Adobe_ColorImage_AI6_Vars /plateindex get 5 eq
					{
						gsave
						
						0 _currenttransfer exec
						1 _currenttransfer exec
						eq
						{ 0 _currenttransfer exec 0.5 lt }
						{ 0 _currenttransfer exec 1 _currenttransfer exec gt } ifelse
						
						{ { pop 0 } } { { pop 1 } } ifelse
						systemdict /settransfer get exec
					} if
					
					_colorimage
					
					Adobe_ColorImage_AI6_Vars /plateindex get 5 eq
					{
						grestore
					} if
				} ifelse
			} ifelse
		}
		{
			dup 1 eq
			{
				pop pop
				image
			}
			{
				pop pop
				Adobe_ColorImage_AI6_Vars begin
					sourcecount -1 0
					{			
						exch sourcearray 3 1 roll put
					} for
					/SeparateCMYKImageProc load
			 end
				systemdict /image get exec
			} ifelse
		} ifelse
	} ifelse
} def
/XG
{
	pop pop
} def
/XF
{
	13 {pop} repeat
} def
/Xh
{
	Adobe_ColorImage_AI6_Vars begin
		gsave
		/XIMask exch 0 ne def
		/XIImageHeight exch def
		/XIImageWidth exch def
		/XIImageMatrix exch def
		0 0 moveto
		XIImageMatrix concat
		XIImageWidth XIImageHeight scale
		
		XIMask
		{
			/_lp /null ddef
			_fc
			/_lp /imagemask ddef
		}
		if
		/XIVersion 7 def
 end
} def
/XH
{
	Adobe_ColorImage_AI6_Vars begin
		/XIVersion 6 def
		grestore
 end
} def
/XI
{
	Adobe_ColorImage_AI6_Vars begin
		gsave
		/XIMask exch 0 ne def
		/XIBinary exch 0 ne def
		pop
		pop
		/XIChannelCount exch def
		/XIBitsPerPixel exch def
		/XIImageHeight exch def
		/XIImageWidth exch def
		pop pop pop pop
		/XIImageMatrix exch def
		XIBitsPerPixel 1 eq
		{
			XIImageWidth 8 div ceiling cvi
		}
		{
			XIImageWidth XIChannelCount mul
		} ifelse
		/XIBuffer exch string def
		XIBinary
		{
			/XIDataProc { currentfile XIBuffer readstring pop } def
			XIVersion 6 le
			{
				currentfile 128 string readline pop pop
			}
			if
		}
		{
			/XIDataProc { currentfile XIBuffer readhexstring pop } def
		} ifelse
		
		XIVersion 6 le
		{
			0 0 moveto
			XIImageMatrix concat
			XIImageWidth XIImageHeight scale
			XIMask
			{
				/_lp /null ddef
				_fc
				/_lp /imagemask ddef
			} if
		} if
		
		XIMask
		{
			XIImageWidth XIImageHeight
			false
			[ XIImageWidth 0 0 XIImageHeight neg 0 0 ]
			/XIDataProc load
			imagemask
		}
		{
			XIImageWidth XIImageHeight
			XIBitsPerPixel
			[ XIImageWidth 0 0 XIImageHeight neg 0 0 ]
			/XIDataProc load
			
			XIChannelCount 1 eq
			{
				gsave
				0 setgray
				image
				grestore
			}
			{
				false
				XIChannelCount
				colorimage
			} ifelse
		} ifelse
		grestore
 end
} def
end
%%EndProcSet
%%BeginResource: procset Adobe_Illustrator_AI5 1.1 0
%%Title: (Adobe Illustrator (R) Version 5.0 Full Prolog)
%%Version: 1.1 0
%%CreationDate: (3/7/1994) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_Illustrator_AI5_vars 81 dict dup begin
put
/_eo false def
/_lp /none def
/_pf
{
} def
/_ps
{
} def
/_psf
{
} def
/_pss
{
} def
/_pjsf
{
} def
/_pjss
{
} def
/_pola 0 def
/_doClip 0 def
/cf currentflat def
/_tm matrix def
/_renderStart
[
/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
] def
/_renderEnd
[
null null null null /i1 /i1 /i1 /i1
] def
/_render -1 def
/_rise 0 def
/_ax 0 def
/_ay 0 def
/_cx 0 def
/_cy 0 def
/_leading
[
0 0
] def
/_ctm matrix def
/_mtx matrix def
/_sp 16#020 def
/_hyphen (-) def
/_fScl 0 def
/_cnt 0 def
/_hs 1 def
/_nativeEncoding 0 def
/_useNativeEncoding 0 def
/_tempEncode 0 def
/_pntr 0 def
/_tDict 2 dict def
/_wv 0 def
/Tx
{
} def
/Tj
{
} def
/CRender
{
} def
/_AI3_savepage
{
} def
/_gf null def
/_cf 4 array def
/_if null def
/_of false def
/_fc
{
} def
/_gs null def
/_cs 4 array def
/_is null def
/_os false def
/_sc
{
} def
/_pd 1 dict def
/_ed 15 dict def
/_pm matrix def
/_fm null def
/_fd null def
/_fdd null def
/_sm null def
/_sd null def
/_sdd null def
/_i null def
/discardSave null def
/buffer 256 string def
/beginString null def
/endString null def
/endStringLength null def
/layerCnt 1 def
/layerCount 1 def
/perCent (%) 0 get def
/perCentSeen? false def
/newBuff null def
/newBuffButFirst null def
/newBuffLast null def
/clipForward? false def
end
userdict /Adobe_Illustrator_AI5 known not {
	userdict /Adobe_Illustrator_AI5 91 dict put
} if
userdict /Adobe_Illustrator_AI5 get begin
/initialize
{
	Adobe_Illustrator_AI5 dup begin
	Adobe_Illustrator_AI5_vars begin
	discardDict
	{
		bind pop pop
	} forall
	dup /nc get begin
	{
		dup xcheck 1 index type /operatortype ne and
		{
			bind
		} if
		pop pop
	} forall
 end
	newpath
} def
/terminate
{
 end
 end
} def
/_
null def
/ddef
{
	Adobe_Illustrator_AI5_vars 3 1 roll put
} def
/xput
{
	dup load dup length exch maxlength eq
	{
		dup dup load dup
		length 2 mul dict copy def
	} if
	load begin
	def
 end
} def
/npop
{
	{
		pop
	} repeat
} def
/sw
{
	dup length exch stringwidth
	exch 5 -1 roll 3 index mul add
	4 1 roll 3 1 roll mul add
} def
/swj
{
	dup 4 1 roll
	dup length exch stringwidth
	exch 5 -1 roll 3 index mul add
	4 1 roll 3 1 roll mul add
	6 2 roll /_cnt 0 ddef
	{
		1 index eq
		{
			/_cnt _cnt 1 add ddef
		} if
	} forall
	pop
	exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop
} def
/ss
{
	4 1 roll
	{
		2 npop
		(0) exch 2 copy 0 exch put pop
		gsave
		false charpath currentpoint
		4 index setmatrix
		stroke
		grestore
		moveto
		2 copy rmoveto
	} exch cshow
	3 npop
} def
/jss
{
	4 1 roll
	{
		2 npop
		(0) exch 2 copy 0 exch put
		gsave
		_sp eq
		{
			exch 6 index 6 index 6 index 5 -1 roll widthshow
			currentpoint
		}
		{
			false charpath currentpoint
			4 index setmatrix stroke
		} ifelse
		grestore
		moveto
		2 copy rmoveto
	} exch cshow
	6 npop
} def
/sp
{
	{
		2 npop (0) exch
		2 copy 0 exch put pop
		false charpath
		2 copy rmoveto
	} exch cshow
	2 npop
} def
/jsp
{
	{
		2 npop
		(0) exch 2 copy 0 exch put
		_sp eq
		{
			exch 5 index 5 index 5 index 5 -1 roll widthshow
		}
		{
			false charpath
		} ifelse
		2 copy rmoveto
	} exch cshow
	5 npop
} def
/pl
{
	transform
	0.25 sub round 0.25 add exch
	0.25 sub round 0.25 add exch
	itransform
} def
/setstrokeadjust where
{
	pop true setstrokeadjust
	/c
	{
		curveto
	} def
	/C
	/c load def
	/v
	{
		currentpoint 6 2 roll curveto
	} def
	/V
	/v load def
	/y
	{
		2 copy curveto
	} def
	/Y
	/y load def
	/l
	{
		lineto
	} def
	/L
	/l load def
	/m
	{
		moveto
	} def
}
{
	/c
	{
		pl curveto
	} def
	/C
	/c load def
	/v
	{
		currentpoint 6 2 roll pl curveto
	} def
	/V
	/v load def
	/y
	{
		pl 2 copy curveto
	} def
	/Y
	/y load def
	/l
	{
		pl lineto
	} def
	/L
	/l load def
	/m
	{
		pl moveto
	} def
} ifelse
/d
{
	setdash
} def
/cf
{
} def
/i
{
	dup 0 eq
	{
		pop cf
	} if
	setflat
} def
/j
{
	setlinejoin
} def
/J
{
	setlinecap
} def
/M
{
	setmiterlimit
} def
/w
{
	setlinewidth
} def
/XR
{
	0 ne
	/_eo exch ddef
} def
/H
{
} def
/h
{
	closepath
} def
/N
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			_eo {eoclip} {clip} ifelse /_doClip 0 ddef
		} if
		newpath
	}
	{
		/CRender
		{
			N
		} ddef
	} ifelse
} def
/n
{
	N
} def
/F
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
			/_doClip 0 ddef
		}
		{
			_pf
		} ifelse
	}
	{
		/CRender
		{
			F
		} ddef
	} ifelse
} def
/f
{
	closepath
	F
} def
/S
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
			/_doClip 0 ddef
		}
		{
			_ps
		} ifelse
	}
	{
		/CRender
		{
			S
		} ddef
	} ifelse
} def
/s
{
	closepath
	S
} def
/B
{
	_pola 0 eq
	{
		_doClip 1 eq
		gsave F grestore
		{
			gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
			/_doClip 0 ddef
		}
		{
			S
		} ifelse
	}
	{
		/CRender
		{
			B
		} ddef
	} ifelse
} def
/b
{
	closepath
	B
} def
/W
{
	/_doClip 1 ddef
} def
/*
{
	count 0 ne
	{
		dup type /stringtype eq
		{
			pop
		} if
	} if
	newpath
} def
/u
{
} def
/U
{
} def
/q
{
	_pola 0 eq
	{
		gsave
	} if
} def
/Q
{
	_pola 0 eq
	{
		grestore
	} if
} def
/*u
{
	_pola 1 add /_pola exch ddef
} def
/*U
{
	_pola 1 sub /_pola exch ddef
	_pola 0 eq
	{
		CRender
	} if
} def
/D
{
	pop
} def
/*w
{
} def
/*W
{
} def
/`
{
	/_i save ddef
	clipForward?
	{
		nulldevice
	} if
	6 1 roll 4 npop
	concat pop
	userdict begin
	/showpage
	{
	} def
	0 setgray
	0 setlinecap
	1 setlinewidth
	0 setlinejoin
	10 setmiterlimit
	[] 0 setdash
	/setstrokeadjust where {pop false setstrokeadjust} if
	newpath
	0 setgray
	false setoverprint
} def
/~
{
 end
	_i restore
} def
/O
{
	0 ne
	/_of exch ddef
	/_lp /none ddef
} def
/R
{
	0 ne
	/_os exch ddef
	/_lp /none ddef
} def
/g
{
	/_gf exch ddef
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_gf setgray
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/G
{
	/_gs exch ddef
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_gs setgray
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/k
{
	_cf astore pop
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_cf aload pop setcmykcolor
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/K
{
	_cs astore pop
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_cs aload pop setcmykcolor
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/x
{
	/_gf exch ddef
	findcmykcustomcolor
	/_if exch ddef
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_if _gf 1 exch sub setcustomcolor
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/X
{
	/_gs exch ddef
	findcmykcustomcolor
	/_is exch ddef
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_is _gs 1 exch sub setcustomcolor
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/A
{
	pop
} def
/annotatepage
{
userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
} def
/XT {
	pop pop
} def
/discard
{
	save /discardSave exch store
	discardDict begin
	/endString exch store
	gt38?
	{
		2 add
	} if
	load
	stopped
	pop
 end
	discardSave restore
} bind def
userdict /discardDict 7 dict dup begin
put
/pre38Initialize
{
	/endStringLength endString length store
	/newBuff buffer 0 endStringLength getinterval store
	/newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
	/newBuffLast newBuff endStringLength 1 sub 1 getinterval store
} def
/shiftBuffer
{
	newBuff 0 newBuffButFirst putinterval
	newBuffLast 0
	currentfile read not
	{
	stop
	} if
	put
} def
0
{
	pre38Initialize
	mark
	currentfile newBuff readstring exch pop
	{
		{
			newBuff endString eq
			{
				cleartomark stop
			} if
			shiftBuffer
		} loop
	}
	{
	stop
	} ifelse
} def
1
{
	pre38Initialize
	/beginString exch store
	mark
	currentfile newBuff readstring exch pop
	{
		{
			newBuff beginString eq
			{
				/layerCount dup load 1 add store
			}
			{
				newBuff endString eq
				{
					/layerCount dup load 1 sub store
					layerCount 0 eq
					{
						cleartomark stop
					} if
				} if
			} ifelse
			shiftBuffer
		} loop
	} if
} def
2
{
	mark
	{
		currentfile buffer readline not
		{
		stop
		} if
		endString eq
		{
			cleartomark stop
		} if
	} loop
} def
3
{
	/beginString exch store
	/layerCnt 1 store
	mark
	{
		currentfile buffer readline not
		{
		stop
		} if
		dup beginString eq
		{
			pop /layerCnt dup load 1 add store
		}
		{
			endString eq
			{
				layerCnt 1 eq
				{
					cleartomark stop
				}
				{
					/layerCnt dup load 1 sub store
				} ifelse
			} if
		} ifelse
	} loop
} def
end
userdict /clipRenderOff 15 dict dup begin
put
{
	/n /N /s /S /f /F /b /B
}
{
	{
		_doClip 1 eq
		{
			/_doClip 0 ddef _eo {eoclip} {clip} ifelse
		} if
		newpath
	} def
} forall
/Tr /pop load def
/Bb {} def
/BB /pop load def
/Bg {12 npop} def
/Bm {6 npop} def
/Bc /Bm load def
/Bh {4 npop} def
end
/Lb
{
	4 npop
	6 1 roll
	pop
	4 1 roll
	pop pop pop
	0 eq
	{
		0 eq
		{
			(%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
		}
		{
			
			/clipForward? true def
			
			/Tx /pop load def
			/Tj /pop load def
			
			currentdict end clipRenderOff begin begin
		} ifelse
	}
	{
		0 eq
		{
			save /discardSave exch store
		} if
	} ifelse
} bind def
/LB
{
	discardSave dup null ne
	{
		restore
	}
	{
		pop
		clipForward?
		{
			currentdict
		 end
		 end
		 begin
					
			/clipForward? false ddef
		} if
	} ifelse
} bind def
/Pb
{
	pop pop
	0 (%AI5_EndPalette) discard
} bind def
/Np
{
	0 (%AI5_End_NonPrinting--) discard
} bind def
/Ln /pop load def
/Ap
/pop load def
/Ar
{
	72 exch div
	0 dtransform dup mul exch dup mul add sqrt
	dup 1 lt
	{
		pop 1
	} if
	setflat
} def
/Mb
{
	q
} def
/Md
{
} def
/MB
{
	Q
} def
/nc 3 dict def
nc begin
/setgray
{
	pop
} bind def
/setcmykcolor
{
	4 npop
} bind def
/setcustomcolor
{
	2 npop
} bind def
currentdict readonly pop
end
end
setpacking
%%EndResource
%%BeginResource: procset Adobe_blend_AI5 1.4 0
%%Title: (Adobe Illustrator (R) Version 5.0 Blend ProcSet)
%%Version: 1.4 0
%%CreationDate: (11/19/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /Adobe_blend_AI5 70 dict dup begin
put
/bd
{
	bind def
} bind def
/xs
{
	exch store
} bd
/nullProc
{
	{
	}
} def
/initialize
{
	pop pop
	Adobe_blend_AI5 begin
		Adobe_blend_AI5_vars begin
			/_contoneDevice where
			{
				pop
			}
			{
				/_contoneDevice false def	
			} ifelse
					
			/_dpiThreshold where
			{
				pop
			}
			{	
				/_dpiThreshold 600 def
			} ifelse
			
			/_screenFreqThreshold where
			{
				pop
			}
			{	
				/_screenFreqThreshold 150 def
			} ifelse
			
			/tRectOK? deviceDPI _dpiThreshold le currentScreenFreq _screenFreqThreshold le and _contoneDevice not and def
	/invertXfer
	{
		[
		{
			1 exch sub
				} /exec load systemdict/currenttransfer get exec /exec load
				] cvx systemdict/settransfer get exec
			} bd
			/spotDict 3 dict dup begin
				/nSpots 2 def
				/spot1 7 dict def
				/spot2 7 dict def
		 end
			def
			composite?
			{
				/_setgray_ /setgray load def
				/_fill_ /fill load def
				/_image_ /image load def
			}
			{
				/_setgray_ systemdict/setgray get def
				/_fill_ systemdict/fill get def
				/_image_ systemdict/image get def
			} ifelse
		} bd
		/terminate
		{
			currentdict Adobe_blend_AI5_vars eq
			{
		 end
			currentdict Adobe_blend_AI5 eq
			{
		 end
		} if
	} if
} bd
/_compositeSpotDevice where
{
 begin
		_compositeSpotDevice 0 ne {userdict /composite? true put} if
 end
}
{
	/_compositeSpotDevice 0 def	
} ifelse
	
/nullString () def
/d255 256 array def
0 1 255
{
	d255 exch dup 255 div put
} bind for
/d255- 256 array def
0 1 255
{
	d255- exch 1 d255 2 index get sub put
} bind for
/dUserSpace matrix defaultmatrix def
currentdict /Adobe_blend_AI5_vars 89 dict dup begin
put
{
	/f /F /s /S /b /B
}
{
	null def
} bind forall
/byte 1 string def
/sSave null def
/setSSave
{
	save /sSave exch store
} bind def
/Bm null def
/doBlend null def
/startC? false def
/endC? false def
/fCMYK? null def
/startTint 0 def
/endTint 0 def
/bSMatrix matrix def
/bUMatrix matrix def
/dMatrix matrix def
/inLine? true def
/pTState? false def
/bHi? false def
/yHi 0 def
/xHi 0 def
/noImg /lv1Fix where
{
	pop lv1Fix
}
{
	false
} ifelse
def
/ccAry1 5 array def
/ccTint 0 def
/spotColor? false def
/colorimage? true def
[
/tint1Data
/tint2Data
/spotDict
/bAxis
/ubAxis
/pChange
/optimize?
/nSamples
/sInc
/blendProc
/_bn
/xBCInc
/yBCInc
/bInc
/bRender
/cBName
/cBType
/nColors
/color?
/blend?
/colorType
/cData
/cDataLen
/bDataLen
/rampPoint
/midPoint
/endPoint
/blendLength
/blackData
/yeData
/mgData
/cyData
/cnt1
/ndx
/_fill
/tmp
counttomark
{
	null def
} bind
repeat
pop
currentdict
end
currentdict
end
exch
begin
begin
/unitSq
{
	0 0 moveto 0 1 lineto 1 1 lineto 1 0 lineto closepath
} bd
/gMark
{
	counttomark 2 add -1 roll
} bd
/setCustomColor
{
	dup /ccTint exch store
	1 exch sub 6 1 roll
	ccAry1 astore
	exch setcustomcolor
} bd
/currentCustomColor
{
	ccAry1 aload pop ccTint
} bd
/nsetcustomcolor where 
{
	pop
}
{
	/nsetcustomcolor
	{
		pop setcmykcolor	
	} bd
} ifelse
/nsetcustomcolorend where 
{
	pop
}
{
	/nsetcustomcolorend
	{
	} bd
} ifelse
/setBSpace
{
	newpath bUMatrix astore concat unitSq
} bd
/setCStop
{
	dup 0 eq
	{
		pop
		
		spotColor?
			{
			dup 1 exch sub /ccTint exch def
			ccAry1 4 /Black put
			} if
		setgray
	}
	{
		1 eq
		{
			setcmykcolor
		}
		{
			composite? not colorType 2 lt and
			{
				forceCMYK
			}
			{
				setCustomColor
			} ifelse
		} ifelse
	} ifelse
} bd
/makeByte
{
	/tmp 0 store
	255 mul cvi
	8 string 8
	{
		dup tmp 3 index put /tmp tmp 1 add store
	} repeat
	exch pop
} bd
/setImgSpace
{
	cDataLen 1 8
	2 index 0 0 1 0 0 dMatrix astore
} bd
/bwImage
{
	setImgSpace cData /_image_ load
	{
		exec
	} stopped
	{
		$error /errorname get /undefinedresult ne
		{
			stop
		}
		{
			pop pop pop pop pop
		} ifelse
	} if
} bd
level2?
{
	/bFill
	{
		_fill
	} def
	/bCImg
	{
		/cDataLen bDataLen store
		setImgSpace
		setSSave
		expandSpot
		cyData mgData yeData cData
		expandCMYK
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
} if
/expandOne
{
			dup type /stringtype ne
			{
				cDataLen string
				exch
				dup 0 ne
				{
					255 mul cvi
					0 1 cDataLen 1 sub
					{
						3 copy
						exch put pop
					} for
				} if
				pop
			} if
} bd
/expandSpot
{
	spotColor?
	{
		spotDict begin
			spot1 begin
				tintImage type /nulltype ne
				{
					tintImage expandOne /tintImage exch def
				} if
		  end
			spot2 begin
				tintImage type /nulltype ne
				{
					tintImage expandOne /tintImage exch def
				} if
		  end
	 end
	} if
} bd
/expandCMYK
{
	4
	{
		expandOne 4 1 roll
	} repeat
} bd
/colorimage where dup
{
	exch pop
	
	/ncolorimage where
	{
		pop
	}
	{
		/ncolorimage {pop colorimage} bd
	} ifelse
} if
not
{
	/ncolorimage where 
	{
		pop
	}
	{
		/colorimage? false store
		/ncolorimage
		{
			pop pop pop
	
		setSSave
		/blackData xs
		/yeData xs
		/mgData xs
		/cyData xs
		/cnt1 0 store
		[
		byte dup 0
		cyData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .3 /mul cvx
		}
		{
			.3 mul
		} ifelse
		mgData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .59 /mul cvx
		}
		{
			.59 mul
		} ifelse
		yeData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .11 /mul cvx
		}
		{
			.11 mul
		} ifelse
		blackData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx
		} if
		/add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
		/dup cvx 0 /lt cvx
		{
			pop 0
		} /if cvx
		/dup cvx 1 /gt cvx
		{
			pop 1
		} /if cvx
		255 /mul cvx /cvi cvx
		256 /mod cvx
		/dup cvx 0 /lt cvx
		{
			pop 0
		} /if cvx
		/put cvx
		/cnt1 dup cvx 1 /add cvx /store cvx
		] cvx
		bind
			_image_ 
		sSave restore
	} bd
	} ifelse
} if
level2? not
{
	/bCImg
	{
		/cDataLen bDataLen store
		setImgSpace
		setSSave
		expandSpot
		cyData mgData yeData cData
		colorimage? 
		{
			expandCMYK
		} if
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
	/bwFill
	{
		setSSave
		/cDataLen 8 store
		/cData currentgray makeByte store
		bwImage
		sSave restore
	} bd
	/c1ImgFill
	{
		setSSave
		/cDataLen 8 store
		setImgSpace
		spotColor?
		{
			spotDict begin
				spot1 begin
					currentCustomColor makeByte /tintImage exch def
					/name exch def
					/spot_K exch def
					/spot_Y exch def
					/spot_M exch def
					/spot_C exch def
			 end
				spot2 initSpotData
		 end
		} if
		currentcmykcolor
		4
		{
			makeByte 4 1 roll
		} repeat
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
	/bFill
	noImg
	{
		{
			_fill
		}
	}
	{
		{
			color?
			{
				c1ImgFill
			}
			{
				bwFill
			} ifelse
		}
	} ifelse
	bd
} if
composite?
{
	/bCFun
	{
		color?
		{
			cyData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			mgData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			yeData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			cData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			spotColor?
			{
				spotDict begin
					/spotDict cvx /begin cvx
					spot1 begin
						tintImage dup type /stringtype eq
						{
							/ndx cvx /get cvx d255- /exch cvx /get cvx
						}
						{
							dup type /nulltype ne 
							{
								name type /nametype ne {1 exch sub} if
							} if
						} ifelse
				 end
					/spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
					spot2 begin
						tintImage dup type /stringtype eq
						{
							/ndx cvx /get cvx d255- /exch cvx /get cvx
						}
						{
							dup type /nulltype ne 
							{
								name type /nametype ne {1 exch sub} if
							} if
						} ifelse
				 end
					/spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
					/end cvx
			 end
				/spotDict cvx
				/nsetcustomcolor cvx
			}
			{
				/setcmykcolor cvx
			} ifelse
		}
		{
			cData /ndx cvx /get cvx
			d255 /exch cvx /get cvx
			/setgray cvx
		} ifelse
	} bd
	/Bc
	{
		newpath
		gsave
		setBSpace
		nColors 1 eq
		{
			pop pop
			setCStop
		} if
		bFill
		grestore
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			linImg
		}
		{
			bFill
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/rdBm
	{
		/nColors dup load 1 sub store
		_fill
		gsave
		bUMatrix astore concat
		bHi?
		{
			xHi yHi bUMatrix idtransform /yHi exch store /xHi exch store
			rampPoint 1 lt
			{
				1 rampPoint sub dup xHi mul exch yHi mul translate
			} if
		} if
		nColors
		{
			0 0 rampPoint 0 360 arc
			_fill
			blend? bHi? or
			{
				rdBlend
			} if
			nColors 1 gt
			{
				getRData
			} if
			/nColors dup load 1 sub store
		} repeat
		/nColors 1 store
		grestore
	} bd
	/cGetRData
	{
		setCStop
		/blend?
		cData type /stringtype eq
		dup not color? and
		{
			pop
			cyData type /stringtype eq
			mgData type /stringtype eq
			yeData type /stringtype eq
			or or
		} if
		store
	} def
	/cGetRData
} if
/eCStop
{
	mark
	1 index 3 mul 3 add dup 8 gt
	{
		pop 8
	} if
	1 roll
	cleartomark
} bd
composite? not
{
	/knockOut
	level2?
	{
		{
			0 0 0 0 setcmykcolor _fill
		}
	}
	{
		/bFill noImg
		{
			{
				_fill
			}
		}
		{
			{
				_of true eq
				{
					currentgray 1 ne
					{
						bwFill
					} if
				}
				{
					bwFill
				} ifelse
			}
		} ifelse
		def
		/whiteByte 1 makeByte def
		noImg
		{
			{
				0 0 0 0 setcmykcolor _fill
			}
		}
		{
			{
				cBType 0 eq
				{
					setSSave
					/cData whiteByte store
					/cDataLen 8 store
					bwImage
					sSave restore
				}
				{
					_fill
				} ifelse
			}
		} ifelse
	} ifelse
	bd
	/bCFun
	{
		cData dup type /stringtype ne
		{
			color?
			{
				1 exch sub
			} if
		}
		{
			/ndx cvx /get cvx
			color? customColor? not and
			{
				d255-
			}
			{
				d255
			} ifelse
			/exch cvx /get cvx
		} ifelse
		/_setgray_ cvx
	} bd
	/eCCBlend
	{
		dup 3 eq
		{
			pop
			mark 7 1 roll
			6 copy ccThrough? dup /blend? xs
			{
				/startC? true store
				setCustomColor
				customColor?
				{
					/cData tint1Data store
					setCDataLen
				} if
				/endC?
				3 index 3 eq
				{
					4 index 1 ne
				}
				{
					false
				} ifelse
				store
			} if
			cleartomark
			stop
		} if
		1 eq
		{
			pop pop pop
		} if
		pop
		/startC? false store
		6
		{
			8 index
		} repeat
		ccThrough? dup /blend? xs
		{
			/endC? true store
			blend? not
			{
				stop
			} if
			customColor?
			{
				/cData tint1Data store
				setCDataLen
			} if
		} if
	} bd
	/handleOP
	{
		_of not
		{
			knockOut
		} if
	} bd
	/handleROP
	{
		_of not
		{
			0 0 0 0 setcmykcolor _fill
		}
		{
			newpath	
		} ifelse
	} bd
	/rdBm
	{
		/nColors dup load 1 sub store
		blend? 
		{
			_fill
		}
		{
			handleROP
		} ifelse
		gsave
		bUMatrix astore concat
		bHi?
		{
			xHi yHi bUMatrix idtransform /yHi exch store /xHi exch store
			rampPoint 1 lt
			{
				1 rampPoint sub dup xHi mul exch yHi mul translate
			} if
		} if
		nColors
		{
			0 0 rampPoint 0 360 arc
			blend?
			{
				cData type /stringtype ne bHi? not and
				{
					cData color?
					{
						1 exch sub
					} if
					_setgray_ 
					_fill_ 
				}
				{
					cData type /stringtype ne
					{
						/cDataLen 1 store
						/bDataLen 1 store
					} if
					rdBlend
				} ifelse
			}
			{
				
				handleROP
				
				pTState?
				{
					/bAxis rampPoint endPoint sub store
					xHi bAxis mul yHi bAxis mul translate
				} if
			} ifelse
				
			nColors 1 gt
			{
				getRData
			} if
			/nColors dup load 1 sub store
		} repeat
		/nColors 1 store
		grestore
	} bd
	/ccThrough?
	{
		gsave
		pop 0 setCustomColor
		currentcmykcolor
		grestore
		anyColor?
	} bd
	/forceCMYK
	{
		exch pop
		1 exch sub 5 1 roll
		4
		{
			4 index mul 4 1 roll
		} repeat
		0
		cCMYKData dup /cData ne
		{
			dup /yeData eq
			{
				pop 1 add
			}
			{
				/mgData eq
				{
					2
				}
				{
					3
				} ifelse
				add
			} ifelse
			0
		} if
		pop
		index
		0 eq
		{
			pop pop pop pop 0 0 0 0
		} if
		setcmykcolor
		pop
		/fCMYK? true store
	} bd
	/endCapSepBc
	{
		pop pop
		dup 0 eq
		{
			pop
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				colorType 1 eq
				{
					forceCMYK
				}
				{
					fCMYK?
					{
						forceCMYK
					}
					{
						setCustomColor
					} ifelse
				} ifelse
			} ifelse
		} ifelse
		currentcmykcolor anyColor? 
		blend? and
		{
			bFill
		}
		{
			handleOP
		} ifelse
		
	} bd
} if
/cCMYKData 0 def
composite? dup not
{
	pop customColor?
} if
not
{
	/cCMYKData
	/cyData /mgData /yeData /cData
	black? not
	{
		yellow?
		{
			exch
		}
		{
			magenta?
			{
				3
			}
			{
				4
			} ifelse
			-1 roll
		} ifelse
	} if
	4 1 roll pop pop pop
	store
	/Bc
	{
		gsave
		setBSpace
		nColors 1 gt
		{
			
			blend? currentcmykcolor anyColor? and
			{
				bFill
			}
			{
				handleOP
			} ifelse
		}
		{
			endCapSepBc
		} ifelse
		grestore
		newpath
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			cCMYKData load dup type /stringtype eq
			{
				dup length /cDataLen xs
				/cData xs
				gsave
				colorType 0 ne noImg not and
				{
					invertXfer
				} if
				linImg
				grestore
			}
			{
				pop bFill
			} ifelse
		}
		{
			handleOP
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/cmykGetRData
	{
		/fCMYK? false store
		blend?
		{
			{
				cmykDataProcs colorType get exec
			} stopped
			pop
			blend?
			{
				/cData cCMYKData load store
				setCDataLen
			} if
		} if
	} def
	/cmykDataProcs
	[
	{
		pop
		black? dup /blend? xs
		{
			setgray
			0
		} if
		pop
	}
	{
		cCMYKData load dup type /stringtype ne
		{
			0 0 0
			cyan? not
			{
				4 magenta?
				{
					1
				}
				{
					yellow?
					{
						2
					}
					{
						3
					} ifelse
				} ifelse
				roll
			} if
			4 copy add add add 0 eq
			{
				/blend? false store
			} if
			
			setcmykcolor
			/startC? true store
			/endC? true store
			eCStop
			stop
		} if
		pop
		dup 0 eq
		{
			pop
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				forceCMYK
			} ifelse
		} ifelse
	} bind
	/eCCBlend load
	{
		cBType 1 eq
		{
			tint1Data tint2Data
			/tint1Data xs
			/tint2Data xs
		} if
		0 eq
		{
			black?
			{
				setgray
			}
			{
				0 0 0 4 -1 roll 1 exch sub setcmykcolor
			} ifelse
			black?
			{
				/blend? true store
			} if
			6
			{
				8 index
			} repeat
			ccThrough?
			{
				/blend? true store
			}
			{
				black?
				{
					/cData tint1Data store
					setCDataLen
				}
				{
					/blend? false store
				} ifelse
			} ifelse
		}
		{
			mark 7 1 roll
			6 copy ccThrough?
			{
				forceCMYK
				pop
				stop
			} if
			9 index 0 eq
			{
				black? dup /blend? xs
				{
					pop 1 setgray
					/cData tint2Data store
					setCDataLen
					0
				} if
				pop
			}
			{
				/blend?
				6
				{
					16 index
				} repeat
				ccThrough?
				store
				blend?
				{
					forceCMYK
				} if
			} ifelse
			cleartomark
		} ifelse
	} bind
	] def
	/cmykGetRData
} if
composite? dup not
{
	pop isCMYKSep?
} if
not
{
	/endCapSepBc
	{
		/white? false store
		pop pop
		dup 0 eq
		{
			pop
			/white? 1 index 1 eq store
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				setCustomColor
			} ifelse
		} ifelse
%
		currentcmykcolor anyColor?
		endC? or
		blend? and
		{
			bFill
		}
		{
			handleOP
		} ifelse
	} bd
	/Bc
	{
		gsave
		setBSpace
		nColors 1 gt
		{
			blend? startC? and
			{
				bFill
			}
			{
				handleOP
			} ifelse
		}
		{
			endCapSepBc
		} ifelse
		grestore
		newpath
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			cData type /stringtype eq
			{
				linImg
			}
			{
				bFill
			} ifelse
		}
		{
			handleOP
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/discardCMY
	{
		counttomark 4 add -3 roll pop pop pop
	} bd
	/testTopCC
	{
		6 copy ccThrough?
	} bd
	/getCRamp
	{
		{
			ccDataProcs colorType 2 sub get exec
		} stopped pop
		blend? cDataLen 0 eq and
		{
			/cDataLen bDataLen store
		} if
	} bd
	/ccGetRData
	{
		/fCMYK? false store
		/startC? false store
		/endC? false store
		colorType 2 lt
		{
			/blend? false def
		} if
		blend?
		{
			getCRamp
		}
		{
			setCStop
		} ifelse
		blend?
		{
			/blend? cData 1 ne store
			blend?
			{
				cData dup type /stringtype ne
				{
					1 exch sub /cData xs 0
				} if
				pop
			} if
		} if
	} def
	/ccDataProcs
	[
	/eCCBlend load
	{
		cBType 1 eq
		{
			tint1Data tint2Data
			/tint1Data xs
			/tint2Data xs
		} if
		0 eq
		{
			/blend? false store
			pop
		}
		{
			mark 7 1 roll
			testTopCC
			{
				/blend? 1 index 1 ne store
				/startC? blend? store
				/endC? false store
				blend? not
				{
					cleartomark stop
				} if
				/cData tint1Data store
				setCDataLen
				setCustomColor
				pop
				stop
			} if
			cleartomark
		} ifelse
		2 index 0 eq
		{
			/blend? false store
		}
		{
			mark 6
			{
				9 index
			} repeat
			testTopCC dup /blend? xs
			{
				/blend? 1 index 1 ne store
				/endC? blend? store
				/startC? false store
				blend? not
				{
					cleartomark stop
				} if
				/cData tint2Data store
				setCDataLen
			} if
			cleartomark
		} ifelse
	} bind
	] def
	/ccGetRData
} if
load Adobe_blend_AI5_vars /getData 3 -1 roll put
/setCDataLen
{
	/cDataLen 0 cData dup type /stringtype eq
	{
		length exch
	} if
	pop store
} bd
/initSpotData
{
 begin
		/name null def
		/tintImage null def
		/tintValue null def
		/spot_C  null def
		/spot_M  null def
		/spot_Y  null def
		/spot_K  null def
 end
} bd
/getRData
{
	/colorType gMark store
	_compositeSpotDevice 0 ne
	{
		spotDict begin
			spot1 initSpotData
			spot2 initSpotData
	 end
		/spotColor? colorType 2 eq colorType 3 eq or def
	} 
	{
		/spotColor? false store
	} ifelse
	/blend? true store
	0 0 0 0 setcmykcolor
	100 div /rampPoint xs
% (between 13 and 87%) 
	100 div /midPoint xs
	dup 0 eq
	{
		2
	}
	{
		dup 1 eq
		{
			5
		}
		{
			_compositeSpotDevice 0 ne
			{
				spotDict begin
					spot1 begin
						/name 3 index def
						/spot_K 4 index def
						/spot_Y 5 index def
						/spot_M 6 index def
						/spot_C 7 index def
				 end
			 end
			} if
			7
		} ifelse
	} ifelse
	/tmp exch def
	tmp index 100 div /endPoint xs
	_compositeSpotDevice 0 ne
	{
		tmp 2 add index 3 eq
		{
			/tmp tmp 4 add def
			tmp index dup 
			spotDict begin
				spot1/name get ne
				{
					spot2 begin
						/name exch def
						/spot_K tmp 2 add index def
						/spot_Y tmp 3 add index def
						/spot_M tmp 4 add index def
						/spot_C tmp 5 add index def
				 end
				}
				{
					pop
				} ifelse
		 end
		} if
	} if
	/color? colorType 0 gt store
	
	colorType 3 eq
	{
		/tint2Data gMark store
	} if
	
	colorType 2 ge
	{
		/tint1Data gMark store
	} if
	_compositeSpotDevice 0 ne
	{
		spotDict begin
		
			colorType 2 ge
			{
				colorType 3 eq
				{
					spot2 begin
						/tintImage cBType 0 eq {tint2Data} {tint1Data} ifelse def
						name null eq {/name /Black def} if
				 end
				} if
				spot1 begin
					/tintImage cBType 0 eq colorType 2 eq or {tint1Data} {tint2Data} ifelse def
					colorType 2 eq 
					{
						name null eq 
						{
							/name spot2/name get def
							spot2/name null put
						} if
					}
					{
						name null eq {/name /Black def} if
					} ifelse
			 end
			} if
	 end
	} if
	
	/cData gMark store
	setCDataLen
	colorType 0 gt
	{
		counttomark 4 add -3 roll
		/yeData xs
		/mgData xs
		/cyData xs
	} if
	blend?
	{
		/bDataLen
		cDataLen dup 0 eq color? and
		{
			[
			cyData mgData yeData
			]
			{
				dup type /stringtype eq
				{
					length exch pop exit
				} if
				pop
			} forall
		} if
		store
		bDataLen 0 eq
		{
			/bDataLen 1 store
		} if
		getData
		blend?
		{
			composite? cDataLen 0 eq and
			{
				/cDataLen bDataLen store
			} if
		} if
	}
	{
		setCStop
	} ifelse
} bd
/Bg
{
	0 0 0 0 setcmykcolor
	6
	{
		pop
	} repeat
	/blendLength xs
	pop pop pop
	/cBName xs
	/bRender xs
	bRender 2 ne
	{
		composite? not
		{
			_of setoverprint
		} if
		_eo {eoclip} {clip} ifelse
		_bn cBName 2 copy known
		{
			get
			mark exch aload pop
			/cBType xs
			/nColors xs
			mark exch aload pop
			0 0
		} if
		pop pop
		getRData
		cBType 0 eq
		{
			/linealBm
		}
		{
			bHi?
			{
				/pTState? nColors 2 gt store
			} if
			/doBlend /rdBlend load store
			/rdBm
		} ifelse
	}
	{
		inLine? not
		{
			mark mark
		} if
		/Bc dup
		{
			cleartomark mark
		} bd
		/nullProc
	} ifelse
	load /Bm xs
} bd
/linImg
noImg
{
	{
		newpath doRctBlend
	}
}
{
	{
		/doBlend
		color? composite? and
		{
			/bCImg
		}
		{
			/bwImage
		} ifelse
		load
		store
	
		0 0 moveto
		tRectOK? composite? and
		{
			{
				mark
				0 1 dtransform atan cvi 90 mod 0 eq
				1 0 dtransform atan cvi 90 mod 0 eq
			} stopped
			{
				cleartomark
			}
			{
				and exch pop
				{
					newpath
					doRctBlend
				}
				{
					doBlend
				} ifelse
			} ifelse
		}
		{
			doBlend
		} ifelse
	} 
} ifelse
bd
/doRctBlend
{
	gsave
	/sInc 1 store
	/nSamples bDataLen store
	/bInc 1 bDataLen div store
	/ubAxis 1 0 dtransform dUserSpace idtransform dup mul exch dup mul add sqrt store
	/pChange ubAxis 0 eq
	{
		0
	}
	{
		bDataLen ubAxis div
	} ifelse
	store
	pChange .5 gt noImg not and dup /optimize? xs
	{
		/nSamples ubAxis 2 div round cvi dup 1 le
		{
			pop 2
		} if
		store
		/bInc 1 nSamples div store
		/sInc bDataLen 1 sub nSamples 1 sub div store
	} if
	0
	nSamples
	[
	/dup cvx
	optimize?
	{
		/round cvx /cvi cvx
	} if
	/ndx /exch cvx /store cvx
	bCFun
	/rectfill where dup
	{
		exch pop _compositeSpotDevice 1 ne and
	} if
	{
		0 0 bInc 1 /rectfill cvx	
	}
	{
		0 0 /moveto cvx
		bInc 0 /lineto cvx
		bInc 1 /lineto cvx
		0 1 /lineto cvx
		/closepath cvx
		/_fill_ cvx
	} ifelse
	bInc 0 /translate cvx
	sInc /add cvx
	] cvx
	bind
	repeat
	pop
	spotColor? {nsetcustomcolorend} if
	
	grestore
} bd
/rdPrep
{
	/nSamples bDataLen dup 0 eq
	{
		pop 1
	} if
	store
	/sInc -1 store
	/bAxis rampPoint endPoint sub store
	/bInc bAxis bDataLen div neg store
	/optimize? false store
	tRectOK?
	{
		/ubAxis
		bAxis 0 dtransform dUserSpace idtransform dup mul exch dup mul add sqrt
		0 bAxis dtransform dUserSpace idtransform dup mul exch dup mul add sqrt
		2 copy lt
		{
			exch
		} if
		pop store
		/pChange ubAxis 0 eq
		{
			0
		}
		{
			bDataLen ubAxis div
		} ifelse
		store
		pChange .5 gt noImg not and dup /optimize? xs
		{
			/nSamples ubAxis 2 div round cvi dup 1 le
			{
				pop 2
			} if
			store
			/bInc bAxis nSamples div neg store
			/sInc bDataLen 1 sub nSamples 1 sub div neg store
		} if
	} if
	bHi?
	{
		/xBCInc xHi bAxis mul nSamples div store
		/yBCInc yHi bAxis mul nSamples div store
	} if
} bd
/rdBlend
{
	newpath
	gsave
	rdPrep
	rampPoint
	bDataLen 1 sub
	nSamples
	[
	/dup cvx
	optimize?
	{
		/round cvx /cvi cvx
	} if
	/ndx /exch cvx /store cvx
	bCFun
	0 0 3 /index cvx 0 360 /arc cvx /_fill_ cvx
	/exch cvx bInc /add cvx /exch cvx
	sInc /add cvx
	bHi?
	{
		xBCInc yBCInc /translate cvx
	} if
	] cvx
	bind
	repeat
	pop pop
	spotColor? {nsetcustomcolorend} if
	grestore
	pTState?
	{
		xHi bAxis mul yHi bAxis mul translate
	} if
} bd
/Bh
{
	pop pop
	/pTState? false store
	2 copy 0 ne exch 0 ne or dup /bHi? xs
	{
		/yHi xs
		/xHi xs
		0 0
	} if
	pop pop
} bd
/BD
{
	inLine? not
	{
		] nColors cBType
		] _bn cBName 3 -1 roll put
 end
} if
} bd
/Bn
{
1 add dict
dup nullString null put
/_bn xs
} bd
/Bd
{
Adobe_blend_AI5_vars begin
	3 -1 roll dup nullString eq dup
	{
		setSSave
	} if
	/inLine? exch def
	/cBName exch def
	/nColors exch def
	/cBType exch def
} bd
/Bb
{
	sSave null eq
	{
		Adobe_blend_AI5_vars begin
		setSSave
	} if
	composite?
	{
		/_fill /fill load store
	}
	{
		/__fill /fill load store
			/_fill
			{
				_of true eq
				{
					currentgray 1 ne
					{
						__fill
					} if
				}
				{
					__fill
				} ifelse
			} def
	} ifelse
	/fill
	{
	} def
	} bd
	/BB
	{
	/cBType xs
	cleartomark cleartomark
	cBType dup
	bRender
	sSave dup type /savetype eq
	{
		restore 0
	} if
	pop
	currentdict Adobe_blend_AI5_vars eq
	{
	 end
	} if
	2 ne exch 0 gt and
	{
		2 eq
		{
			s
		}
		{
			S
		} ifelse
	}
	{
		pop newpath
	} ifelse
} bd
currentdict readonly pop
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset Adobe_pattern_AI5 1.1 0
%%Title: (Adobe Illustrator (R) Version 5.0 Pattern Operators)
%%Version: 1.1 0
%%CreationDate: (03/26/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_Illustrator_AI5 known not {
	userdict /Adobe_Illustrator_AI5 95 dict put
} if
userdict /Adobe_Illustrator_AI5 get begin
/@
{
} def
/&
{
} def
/dp
{
	dup null eq
	{
		pop
		_dp 0 ne
		{
			0 1 _dp 1 sub _dl mod
			{
				_da exch get 3 get
			} for
			_dp 1 sub _dl mod 1 add packedarray
			_da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll
			definepattern pop
		} if
	}
	{
		_dp 0 ne _dp _dl mod 0 eq and
		{
			null dp
		} if
		7 packedarray _da exch _dp _dl mod exch put
		_dp _dl mod _da 0 get 4 get 2 packedarray
		/_dp _dp 1 add def
	} ifelse
} def
/E
{
	_ed begin
	dup 0 get type /arraytype ne
	{
		0
		{
			dup 1 add index type /arraytype eq
			{
				1 add
			}
			{
				exit
			} ifelse
		} loop
		array astore
	} if
	/_dd exch def
	/_ury exch def
	/_urx exch def
	/_lly exch def
	/_llx exch def
	/_n exch def
	/_y 0 def
	/_dl 4 def
	/_dp 0 def
	/_da _dl array def
	0 1 _dd length 1 sub
	{
		/_d exch _dd exch get def
		0 2 _d length 2 sub
		{
			/_x exch def
			/_c _d _x get _ ne def
			/_r _d _x 1 add get cvlit def
			_r _ ne
			{
				_urx _llx sub _ury _lly sub
				[
				1 0 0 1 0 0
				]
				[
				/save cvx
				_llx neg _lly neg /translate cvx
				_c
				{
					nc /begin cvx
				} if
				_r dup type /stringtype eq
				{
					cvx
				}
				{
					{
						exec
					} /forall cvx
				} ifelse
				_c
				{
					/end cvx
				} if
				/restore cvx
				] cvx
				/_fn 12 _n length add string def
				_y _fn cvs pop
				/_y _y 1 add def
				_fn 12 _n putinterval
				_fn _c false dp
				_d exch _x 1 add exch put
			} if
		} for
	} for
	null dp
	_n _dd /_pd
 end
	xput
} def
/fc
{
	_fm dup concatmatrix pop
} def
/p
{
	/_fm exch ddef
	9 -2 roll _pm translate fc
	7 -2 roll _pm scale fc
	5 -1 roll _pm rotate fc
	4 -2 roll exch 0 ne
	{
		dup _pm rotate fc
		1 -1 _pm scale fc
		neg _pm rotate fc
	}
	{
		pop
	} ifelse
	dup _pm rotate fc
	exch dup sin exch cos div 1 0 0 1 0 6 2 roll
	_pm astore fc
	neg _pm rotate fc
	_pd exch get /_fdd exch ddef
	/_pf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					patternfill
				}
				{
					pop
					fill
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		newpath
	} ddef
	/_psf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					9 copy 6 npop patternashow
				}
				{
					pop
					6 copy 3 npop hvashow
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		sw rmoveto
	} ddef
	/_pjsf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					12 copy 6 npop patternawidthshow
				}
				{
					pop 9 copy 3 npop hvawidthshow
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		swj rmoveto
	} ddef
	/_lp /none ddef
} def
/sc
{
	_sm dup concatmatrix pop
} def
/P
{
	/_sm exch ddef
	9 -2 roll _pm translate sc
	7 -2 roll _pm scale sc
	5 -1 roll _pm rotate sc
	4 -2 roll exch 0 ne
	{
		dup _pm rotate sc
		1 -1 _pm scale sc
		neg _pm rotate sc
	}
	{
		pop
	} ifelse
	dup _pm rotate sc
	exch dup sin exch cos div 1 0 0 1 0 6 2 roll
	_pm astore sc
	neg _pm rotate sc
	_pd exch get /_sdd exch ddef
	/_ps
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					patternstroke
				}
				{
					pop stroke
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		newpath
	} ddef
	/_pss
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					10 copy 6 npop patternashowstroke
				}
				{
					pop 7 copy 3 npop ss
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		pop sw rmoveto
	} ddef
	/_pjss
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					13 copy 6 npop patternawidthshowstroke
				}
				{
					pop 10 copy 3 npop jss
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		pop swj rmoveto
	} ddef
	/_lp /none ddef
} def
end
userdict /Adobe_pattern_AI5 18 dict dup begin
put
/initialize
{
	/definepattern where
	{
		pop
	}
	{
	 begin
	 begin
		Adobe_pattern_AI5 begin
		Adobe_pattern_AI5
		{
			dup xcheck
			{
				bind
			} if
			pop pop
		} forall
		mark
		cachestatus 7 1 roll pop pop pop pop exch pop exch
		{
			{
				10000 add
				dup 2 index gt
				{
					exit
				} if
				dup setcachelimit
			} loop
		} stopped
		cleartomark
	 end 	
		
	 end
	 end
		
		Adobe_pattern_AI5 begin
	} ifelse
} def
/terminate
{
	currentdict Adobe_pattern_AI5 eq
	{
	 end
	} if
} def
errordict
/nocurrentpoint
{
	pop
	stop
} put
errordict
/invalidaccess
{
	pop
	stop
} put
/patternencoding
256 array def
0 1 255
{
	patternencoding exch ( ) 2 copy exch 0 exch put cvn put
} for
/definepattern
{
	17 dict begin
	/uniform exch def
	/cache exch def
	/key exch def
	/procarray exch def
	/mtx exch matrix invertmatrix def
	/height exch def
	/width exch def
	/ctm matrix currentmatrix def
	/ptm matrix def
	/str 32 string def
	/slice 9 dict def
	slice /s 1 put
	slice /q 256 procarray length div sqrt floor cvi put
	slice /b 0 put
	/FontBBox
	[
	0 0 0 0
	] def
	/FontMatrix mtx matrix copy def
	/Encoding patternencoding def
	/FontType 3 def
	/BuildChar
	{
		exch
	 begin
		/setstrokeadjust where {pop true setstrokeadjust} if
		slice begin
		dup q dup mul mod s idiv /i exch def
		dup q dup mul mod s mod /j exch def
		q dup mul idiv procarray exch get
		/xl j width s div mul def
		/xg j 1 add width s div mul def
		/yl i height s div mul def
		/yg i 1 add height s div mul def
		uniform
		{
			1 1
		}
		{
			width 0 dtransform
			dup mul exch dup mul add sqrt dup 1 add exch div
			0 height dtransform
			dup mul exch dup mul add sqrt dup 1 add exch div
		} ifelse
		width 0 cache
		{
			xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul
			setcachedevice
		}
		{
			setcharwidth
		} ifelse
		gsave
		scale
		newpath
		xl yl moveto
		xg yl lineto
		xg yg lineto
		xl yg lineto
		closepath
		clip
		newpath
	 end
	 end
		exec
		grestore
	} def
	key currentdict definefont
 end
} def
/patterncachesize
{
	gsave
	newpath
	0 0 moveto
	width 0 lineto
	width height lineto
	0 height lineto
	closepath
	patternmatrix setmatrix
	pathbbox
	exch ceiling 4 -1 roll floor sub 3 1 roll
	ceiling exch floor sub
	mul 1 add
	grestore
} def
/patterncachelimit
{
	cachestatus 7 1 roll 6 npop 8 mul
} def
/patternpath
{
	exch dup begin
	setfont
	ctm setmatrix
	concat
	slice exch /b exch slice /q get dup mul mul put
	FontMatrix concat
	uniform
	{
		width 0 dtransform round width div exch round width div exch
		0 height dtransform round height div exch height div exch
		0 0 transform round exch round exch
		ptm astore setmatrix
	}
	{
		ptm currentmatrix pop
	} ifelse
	{
		currentpoint
	} stopped not
	{
		2 npop
		pathbbox
		true
		4 index 3 index eq
		4 index 3 index eq
		and
		{
			pop false
			{
				{
					2 npop
				}
				{
					3 npop true
				}
				{
					7 npop true
				}
				{
					pop true
				} pathforall
			} stopped
			{
				5 npop true
			} if
		} if
		{
			height div ceiling height mul 4 1 roll
			width div ceiling width mul 4 1 roll
			height div floor height mul 4 1 roll
			width div floor width mul 4 1 roll
			2 index sub height div ceiling cvi exch
			3 index sub width div ceiling cvi exch
			4 2 roll moveto
			FontMatrix mtx invertmatrix
			dup dup 4 get exch 5 get rmoveto
			ptm ptm concatmatrix pop
			slice /s
			patterncachesize patterncachelimit div ceiling sqrt ceiling cvi
			dup slice /q get gt
			{
				pop slice /q get
			} if
			put
			0 1 slice /s get dup mul 1 sub
			{
				slice /b get add
				gsave
				0 1 str length 1 sub
				{
					str exch 2 index put
				} for
				pop
				dup
				{
					gsave
					ptm setmatrix
					1 index str length idiv
					{
						str show
					} repeat
					1 index str length mod str exch 0 exch getinterval show
					grestore
					0 height rmoveto
				} repeat
				grestore
			} for
			2 npop
		}
		{
			4 npop
		} ifelse
	} if
 end
} def
/patternclip
{
	_eo {eoclip} {clip} ifelse
} def
/patternstrokepath
{
	strokepath
} def
/patternmatrix
matrix def
/patternfill
{
	dup type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get
	} if
	gsave
	patternclip
	Adobe_pattern_AI5 /patternpath get exec
	grestore
	newpath
} def
/patternstroke
{
	dup type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get
	} if
	gsave
	patternstrokepath
	true
	{
		{
			{
				newpath
				moveto
			}
			{
				lineto
			}
			{
				curveto
			}
			{
				closepath
				3 copy
				Adobe_pattern_AI5 /patternfill get exec
			} pathforall
			3 npop
		} stopped
		{
			5 npop
			patternclip
			Adobe_pattern_AI5 /patternfill get exec
		} if
	}
	{
		patternclip
		Adobe_pattern_AI5 /patternfill get exec
	} ifelse
	grestore
	newpath
} def
/vpatternawidthshow
{
	6 1 roll
	/_hvay exch ddef
	/_hvax exch ddef
	/_hvwb exch ddef
	/_hvcy exch ddef
	/_hvcx exch ddef
	
	{
		dup cstring
		dup length 1 eq
		_charorientation 1 eq
		and
		{
			-90 rotate
			currentpoint
			_fontRotateAdjust add
			moveto
			gsave
			false charpath currentpoint
			5 index 5 index 5 index Adobe_pattern_AI5 /patternfill get exec
			grestore
			_fontRotateAdjust sub
			moveto
			_hvwb eq { _hvcx _hvcy rmoveto } if
			_hvax _hvay rmoveto
			90 rotate
		}
		{
			currentpoint
			_fontHeight sub
			_hvax sub
			3 index _hvwb eq { _hvcx sub } if
			currentpoint
			exch 4 index stringwidth pop 2 div sub
			exch _fontAscent sub
			moveto
			gsave
			2 index false charpath
			6 index 6 index 6 index Adobe_pattern_AI5 /patternfill get exec
			grestore
			newpath moveto pop pop
		} ifelse
	} cforall
	3 npop
} def
/hpatternawidthshow
{
	{
		dup cstring exch
		gsave
		3 index eq { 5 index 5 index rmoveto } if
		false charpath currentpoint
		9 index 9 index 9 index
		Adobe_pattern_AI5 /patternfill get exec
		grestore
		newpath moveto
		2 copy rmoveto
	} cforall
	8 npop
} def
/patternashow
{
0 0 0 6 3 roll
patternawidthshow
} def
/patternawidthshow
{
	6 index type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get 7 1 roll
	} if
	_lineorientation 0 eq { hpatternawidthshow } { vpatternawidthshow } ifelse
} def
/vpatternawidthshowstroke
{
	7 1 roll
	6 1 roll
	/_hvay exch ddef
	/_hvax exch ddef
	/_hvwb exch ddef
	/_hvcy exch ddef
	/_hvcx exch ddef
	{
		dup cstring
		dup length 1 eq
		_charorientation 1 eq
		and
		{
			-90 rotate
			currentpoint
			_fontRotateAdjust add
			moveto
			gsave
			false charpath currentpoint
			3 index setmatrix
			6 index 6 index 6 index Adobe_pattern_AI5 /patternstroke get exec
			grestore
			_fontRotateAdjust sub
			moveto
			_hvwb eq { _hvcx _hvcy rmoveto } if
			_hvax _hvay rmoveto
			90 rotate
		}
		{
			currentpoint
			_fontHeight sub
			_hvax sub
			3 index _hvwb eq { _hvcx sub } if
			currentpoint
			exch 4 index stringwidth pop 2 div sub
			exch _fontAscent sub
			moveto
			gsave
			2 index false charpath
			4 index setmatrix
			7 index 7 index 7 index Adobe_pattern_AI5 /patternstroke get exec
			grestore
			newpath moveto pop pop
		} ifelse
	} cforall
	4 npop
} def
/hpatternawidthshowstroke
{
	7 1 roll
	{
		dup cstring exch
		gsave
		3 index eq { 5 index 5 index rmoveto } if
		false charpath currentpoint
		7 index setmatrix
		10 index 10 index 10 index
		Adobe_pattern_AI5 /patternstroke get exec
		grestore
		newpath moveto
		2 copy rmoveto
	} cforall
	9 npop
} def
/patternashowstroke
{
	0 0 0 7 3 roll
	patternawidthshowstroke
} def
/patternawidthshowstroke
{
	7 index type /dicttype eq
	{
		patternmatrix /patternmatrix get 8 1 roll
	} if
	_lineorientation 0 eq { hpatternawidthshowstroke } { vpatternawidthshowstroke } ifelse
} def
end
setpacking
%%EndResource
%%EndProlog
%%BeginSetup
Adobe_level2_AI5 /initialize get exec
Adobe_screens_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_blend_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_pattern_AI5 /initialize get exec
Adobe_ColorImage_AI6 /initialize get exec
Adobe_Illustrator_AI5 /initialize get exec
[
39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase
133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 
138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 
147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 
152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 
159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 
170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 
177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 
183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 
188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 
194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 
200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 
206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 
212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 
217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 
223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 
229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 
235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 
240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 
246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 
252/udieresis 253/yacute 254/thorn 255/ydieresis
TE
%AI3_BeginEncoding: _Helvetica Helvetica
[
/_Helvetica/Helvetica 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-Bold Helvetica-Bold
[
/_Helvetica-Bold/Helvetica-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-Oblique Helvetica-Oblique
[
/_Helvetica-Oblique/Helvetica-Oblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-BoldOblique Helvetica-BoldOblique
[
/_Helvetica-BoldOblique/Helvetica-BoldOblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Roman Times-Roman
[
/_Times-Roman/Times-Roman 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Bold Times-Bold
[
/_Times-Bold/Times-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Italic Times-Italic
[
/_Times-Italic/Times-Italic 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-BoldItalic Times-BoldItalic
[
/_Times-BoldItalic/Times-BoldItalic 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier Courier
[
/_Courier/Courier 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-Bold Courier-Bold
[
/_Courier-Bold/Courier-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-Oblique Courier-Oblique
[
/_Courier-Oblique/Courier-Oblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-BoldOblique Courier-BoldOblique
[
/_Courier-BoldOblique/Courier-BoldOblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Symbol Symbol
[
/_Symbol/Symbol 0 0 1 TZ
%AI3_EndEncoding AdobeType
%%EndSetup

1 XR

u
 [] 0 d
0.0000 w
  0.000 0.000 0.000 1.000 K
1 J
1 j
  486.5092 139.3278 m
  486.5092 181.0183 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  0.000 0.000 0.000 1.000 K
  483.7537 180.2995 m
  486.5092 188.5657 L
  489.2646 180.2995 L
  483.7537 180.2995 L
F
U
u
0.0000 w
  485.3111 276.0200 m
  485.3111 298.9018 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  482.5557 298.1830 m
  485.3111 306.4493 L
  488.0666 298.1830 L
  482.5557 298.1830 L
F
U
u
0.0000 w
  379.7671 466.8619 m
  379.7671 492.2596 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  377.0116 491.5408 m
  379.7671 499.8070 L
  382.5225 491.5408 L
  377.0116 491.5408 L
F
U
u
  0.000 0.000 0.000 0.000 k
  370.0632 477.5241 m
  388.5125 477.5241 L
  388.5125 488.9052 L
  370.0632 488.9052 L
  370.0632 477.5241 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 371.0216 480.5191 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  503.7604 355.2080 m
  503.7604 368.6256 L
  503.7604 368.6256 L
  503.7604 400.8519 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  501.0050 400.1331 m
  503.7604 408.3993 L
  506.5158 400.1331 L
  501.0050 400.1331 L
F
U
u
  0.000 0.000 0.000 0.000 k
  493.8170 376.4126 m
  513.5840 376.4126 L
  513.5840 387.7937 L
  493.8170 387.7937 L
  493.8170 376.4126 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 494.7754 379.4077 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  379.1681 354.8486 m
  379.1681 368.6256 L
  379.2879 368.6256 L
  379.2879 419.6606 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  376.5324 418.9418 m
  379.2879 427.2080 L
  382.0433 418.9418 L
  376.5324 418.9418 L
F
U
u
  0.000 0.000 0.000 0.000 k
  362.0366 378.4493 m
  397.8569 378.4493 L
  397.8569 389.8303 L
  362.0366 389.8303 L
  362.0366 378.4493 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 362.9950 381.4443 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(!intCheck\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.3777 513.4642 m
  563.3012 513.4642 L
  563.3012 526.2829 L
  37.3777 526.2829 L
  37.3777 513.4642 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 293.3910 517.0582 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(IDLE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.3777 499.8070 m
  563.3012 499.8070 L
  563.3012 513.4642 L
  37.3777 513.4642 L
  37.3777 499.8070 L
B
U
u
  0.000 0.000 0.000 0.000 k
  444.4592 453.2047 m
  563.3012 453.2047 L
  563.3012 466.8619 L
  444.4592 466.8619 L
  444.4592 453.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 473.0915 457.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SEND_REQUEST\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  444.4592 408.3993 m
  563.3012 408.3993 L
  563.3012 453.2047 L
  444.4592 453.2047 L
  444.4592 408.3993 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 450.4493 444.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(retransCount = 0\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 450.4493 434.5158 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(lastReqData = eapReqData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 450.4493 424.9318 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapResp = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 450.4493 415.3478 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapReq = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  503.8802 466.8619 m
  503.8802 480.1597 L
  503.8802 480.1597 L
  503.8802 491.6606 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  501.1248 491.0616 m
  503.8802 499.3278 L
  506.6356 491.0616 L
  501.1248 491.0616 L
F
U
u
  0.000 0.000 0.000 0.000 k
  495.2546 477.0449 m
  513.5840 477.0449 L
  513.5840 488.4260 L
  495.2546 488.4260 L
  495.2546 477.0449 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 496.2130 480.0399 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  131.5408 560.4260 m
  229.1780 560.4260 L
  229.1780 574.5624 L
  131.5408 574.5624 L
  131.5408 560.4260 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 162.5691 565.4576 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(DISABLED\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  131.5408 546.8885 m
  229.1780 546.8885 L
  229.1780 560.4260 L
  131.5408 560.4260 L
  131.5408 546.8885 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 137.5308 551.3211 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapRestart\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 176.7055 551.3211 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
( = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  300.9384 561.0250 m
  445.5374 561.0250 L
  445.5374 574.5624 L
  300.9384 574.5624 L
  300.9384 561.0250 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 355.3278 565.4576 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(INITIALIZE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  300.9384 546.8885 m
  445.5374 546.8885 L
  445.5374 561.0250 L
  300.9384 561.0250 L
  300.9384 546.8885 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 306.9285 551.8003 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentId = NONE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  229.1780 560.7854 m
  293.3910 560.7854 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  292.6722 563.5408 m
  300.9384 560.7854 L
  292.6722 558.0300 L
  292.6722 563.5408 L
F
U
u
0.0000 w
  445.5374 560.7854 m
  576.7188 560.7854 L
  576.7188 119.9201 L
  570.2496 119.9201 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  570.9684 117.1647 m
  562.7022 119.9201 L
  570.9684 122.6755 L
  570.9684 117.1647 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  319.9867 453.2047 m
  438.8286 453.2047 L
  438.8286 466.8619 L
  319.9867 466.8619 L
  319.9867 453.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 363.3544 457.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(DISCARD\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  319.9867 426.9684 m
  438.8286 426.9684 L
  438.8286 453.2047 L
  319.9867 453.2047 L
  319.9867 426.9684 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 325.8569 444.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapResp = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 325.8569 434.5158 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapNoReq = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  402.8885 54.5092 m
  563.3012 54.5092 L
  563.3012 68.1664 L
  402.8885 68.1664 L
  402.8885 54.5092 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 465.7837 58.9418 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SUCCESS\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  402.8885 1.4376 m
  563.3012 1.4376 L
  563.3012 54.5092 L
  402.8885 54.5092 L
  402.8885 1.4376 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 408.8785 45.2845 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentId = nextId\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 408.8785 35.8203 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapReqData = buildSuccess\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 408.8785 26.2363 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(eapKeyData != NONE\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 408.8785 16.6522 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapKeyAvailable = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 408.8785 7.0682 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapSuccess = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  232.5324 53.9101 m
  392.9451 53.9101 L
  392.9451 67.5674 L
  232.5324 67.5674 L
  232.5324 53.9101 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 297.7038 58.3428 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(FAILURE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  232.5324 1.4376 m
  392.9451 1.4376 L
  392.9451 53.9101 L
  232.5324 53.9101 L
  232.5324 1.4376 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 238.5225 44.8053 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentId = nextId\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 238.5225 35.3411 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapReqData = buildFailure\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 238.5225 25.7571 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapFail = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  245.9501 426.7288 m
  245.9501 335.2013 L
  268.5923 335.2013 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  267.9933 337.9567 m
  276.2596 335.2013 L
  267.9933 332.4459 L
  267.9933 337.9567 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  156.5790 125.7903 m
  242.5957 125.7903 L
  242.5957 139.3278 L
  156.5790 139.3278 L
  156.5790 125.7903 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 193.3577 130.1032 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(NAK\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  156.5790 101.2313 m
  242.5957 101.2313 L
  242.5957 125.7903 L
  156.5790 125.7903 L
  156.5790 101.2313 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 162.6889 116.5657 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(m.reset\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 162.6889 107.1015 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(Policy.update\(<...>\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  242.4759 120.5191 m
  256.0133 120.5191 L
  256.0133 120.5191 L
  268.5923 120.5191 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  267.9933 123.2745 m
  276.2596 120.5191 L
  267.9933 117.7637 L
  267.9933 123.2745 L
F
U
u
  0.000 0.000 0.000 0.000 k
  250.1431 115.1281 m
  268.4725 115.1281 L
  268.4725 126.5092 L
  250.1431 126.5092 L
  250.1431 115.1281 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 251.1015 118.1231 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  313.2779 101.2313 m
  313.2779 85.5374 L
  313.3977 85.5374 L
  313.3977 75.1148 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  316.1531 75.8336 m
  313.3977 67.5674 L
  310.6423 75.8336 L
  316.1531 75.8336 L
F
U
u
  0.000 0.000 0.000 0.000 k
  273.6240 79.0682 m
  352.8120 79.0682 L
  352.8120 90.4493 L
  273.6240 90.4493 L
  273.6240 79.0682 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 274.7022 82.0632 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(decision == FAILURE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  482.7953 101.2313 m
  482.7953 87.8136 L
  483.0349 87.8136 L
  483.0349 75.7138 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  485.7903 76.4326 m
  483.0349 68.1664 L
  480.2795 76.4326 L
  485.7903 76.4326 L
F
U
u
  0.000 0.000 0.000 0.000 k
  441.1048 79.4276 m
  525.2047 79.4276 L
  525.2047 90.8087 L
  441.1048 90.8087 L
  441.1048 79.4276 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 442.0632 82.4226 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(decision == SUCCESS\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  338.1963 188.5657 m
  338.1963 169.6373 L
  338.4359 169.6373 L
  338.4359 146.8752 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  341.1913 147.5940 m
  338.4359 139.3278 L
  335.6805 147.5940 L
  341.1913 147.5940 L
F
U
u
  0.000 0.000 0.000 0.000 k
  299.2612 158.7354 m
  377.6106 158.7354 L
  377.6106 170.1165 L
  299.2612 170.1165 L
  299.2612 158.7354 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 300.3394 161.7304 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(methodState == END\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  199.5874 426.7288 m
  199.5874 146.8752 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  202.3428 147.5940 m
  199.5874 139.3278 L
  196.8319 147.5940 L
  202.3428 147.5940 L
F
U
u
0.0000 w
  104.1065 400.0133 m
  104.1065 386.5957 L
  104.1065 386.5957 L
  104.1065 36.8985 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  106.8619 37.6173 m
  104.1065 29.4709 L
  101.3511 37.6173 L
  106.8619 37.6173 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  276.2596 125.7903 m
  563.3012 125.7903 L
  563.3012 139.3278 L
  276.2596 139.3278 L
  276.2596 125.7903 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 388.8719 130.1032 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SELECT_ACTION\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  276.2596 101.2313 m
  563.3012 101.2313 L
  563.3012 125.7903 L
  276.2596 125.7903 L
  276.2596 101.2313 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 116.5657 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(decision = Policy.getDecision\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  202.8220 363.8336 m
  317.5907 363.8336 L
  317.5907 394.3827 L
  202.8220 394.3827 L
  202.8220 363.8336 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 241.1581 385.9967 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxResp &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 217.1980 376.4126 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respId == currentId\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 203.7804 366.8286 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respMethod == currentMethod\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  132.7388 158.3760 m
  266.5557 158.3760 L
  266.5557 207.9734 L
  132.7388 207.9734 L
  132.7388 158.3760 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 180.5391 199.5874 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxResp &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 156.6988 190.0033 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respId == currentId\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 161.2512 180.4193 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respMethod==NAK ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 133.6972 170.9551 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(respMethod==EXPANDED_NAK\) &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 144.5990 161.3710 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 147.2346 161.3710 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(methodState == PROPOSED\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.8569 453.2047 m
  170.3561 453.2047 L
  170.3561 466.8619 L
  37.8569 466.8619 L
  37.8569 453.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 80.1464 457.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(RETRANSMIT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.8569 400.0133 m
  170.3561 400.0133 L
  170.3561 453.2047 L
  37.8569 453.2047 L
  37.8569 400.0133 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 43.8469 444.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(retransCount++\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 43.8469 434.5158 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(retransCount <= MaxRetrans\)  {\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 43.8469 424.9318 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapReqData = lastReqData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 43.8469 415.3478 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapReq = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 43.8469 405.7637 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(}\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  37.8569 433.4376 m
  21.0849 433.4376 L
  21.0849 512.9850 L
  29.8303 512.9850 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  29.2313 515.7404 m
  37.3777 512.9850 L
  29.2313 510.2296 L
  29.2313 515.7404 L
F
U
u
  0.000 0.000 0.000 0.000 k
  11.7404 467.5807 m
  30.3095 467.5807 L
  30.3095 478.8419 L
  11.7404 478.8419 L
  11.7404 467.5807 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 12.6988 470.4559 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  245.9501 499.8070 m
  245.9501 486.3894 L
  245.9501 486.3894 L
  245.9501 474.2895 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  248.7055 475.0083 m
  245.9501 466.8619 L
  243.1947 475.0083 L
  248.7055 475.0083 L
F
U
u
  0.000 0.000 0.000 0.000 k
  229.1780 478.1231 m
  262.9617 478.1231 L
  262.9617 489.5042 L
  229.1780 489.5042 L
  229.1780 478.1231 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 230.1364 481.1181 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(eapResp\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  291.8336 426.7288 m
  291.8336 398.3361 L
  343.3478 398.3361 L
  343.3478 419.4210 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  340.5923 418.7022 m
  343.3478 426.9684 L
  346.1032 418.7022 L
  340.5923 418.7022 L
F
U
u
  0.000 0.000 0.000 0.000 k
  308.4859 393.0649 m
  327.0549 393.0649 L
  327.0549 404.3261 L
  308.4859 404.3261 L
  308.4859 393.0649 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 309.4443 395.9401 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  103.6273 498.7288 m
  103.6273 486.3894 L
  104.1065 486.3894 L
  104.1065 474.2895 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  106.8619 475.0083 m
  104.1065 466.8619 L
  101.3511 475.0083 L
  106.8619 475.0083 L
F
U
u
  0.000 0.000 0.000 0.000 k
  73.5574 477.6439 m
  134.5358 477.6439 L
  134.5358 489.0250 L
  73.5574 489.0250 L
  73.5574 477.6439 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 74.6356 480.6389 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(retransWhile==0\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  103.0283 560.7854 m
  123.9933 560.7854 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  123.2745 563.5408 m
  131.5408 560.7854 L
  123.2745 558.0300 L
  123.2745 563.5408 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 45.2845 563.9002 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(\(!portEnabled ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 51.7537 554.3161 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapRestart\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 90.9285 554.3161 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  56.7854 373.8968 m
  157.0582 373.8968 L
  157.0582 385.2779 L
  56.7854 385.2779 L
  56.7854 373.8968 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 57.7438 376.8918 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(retransCount > MaxRetrans\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  237.9235 555.5141 m
  282.9684 555.5141 L
  282.9684 566.8952 L
  237.9235 566.8952 L
  237.9235 555.5141 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 238.8819 558.5092 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(portEnabled\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  502.2030 555.2745 m
  520.5324 555.2745 L
  520.5324 566.6556 L
  502.2030 566.6556 L
  502.2030 555.2745 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 503.1614 558.2696 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.3777 15.9334 m
  169.7571 15.9334 L
  169.7571 29.4709 L
  37.3777 29.4709 L
  37.3777 15.9334 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 68.4060 20.2463 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(TIMEOUT_FAILURE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  37.3777 1.4376 m
  169.7571 1.4376 L
  169.7571 15.9334 L
  37.3777 15.9334 L
  37.3777 1.4376 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 43.3677 6.7088 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapTimeout = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  276.2596 341.5507 m
  399.5341 341.5507 L
  399.5341 355.0882 L
  276.2596 355.0882 L
  276.2596 341.5507 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 302.2562 345.9834 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(INTEGRITY_CHECK\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  276.2596 315.4343 m
  399.5341 315.4343 L
  399.5341 341.5507 L
  276.2596 341.5507 L
  276.2596 315.4343 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 332.3261 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(intCheck =\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 322.8619 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   m.intCheck\(eapRespData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  276.2596 262.4825 m
  399.5341 262.4825 L
  399.5341 276.0200 L
  276.2596 276.0200 L
  276.2596 262.4825 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 298.0632 266.9151 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(METHOD_RESPONSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  276.2596 188.5657 m
  399.5341 188.5657 L
  399.5341 262.4825 L
  276.2596 262.4825 L
  276.2596 188.5657 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 253.2579 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(m.process\(eapRespData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 243.7937 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(m.isDone\(\)\) {\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 234.2097 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   Policy.update\(<...>\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 224.6256 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapKeyData = m.getKey\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 215.0416 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   methodState = END\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 205.4576 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(} else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.2496 195.8735 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   methodState = CONTINUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  409.5973 341.5507 m
  563.3012 341.5507 L
  563.3012 355.0882 L
  409.5973 355.0882 L
  409.5973 341.5507 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 449.6106 345.9834 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(METHOD_REQUEST\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  409.5973 306.4493 m
  563.3012 306.4493 L
  563.3012 341.5507 L
  409.5973 341.5507 L
  409.5973 306.4493 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 415.5874 332.3261 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentId = nextId\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.5874 322.8619 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapReqData = m.buildReq\(currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.5874 313.2779 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(methodTimeout = m.getTimeout\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  409.5973 262.4825 m
  563.3012 262.4825 L
  563.3012 276.0200 L
  409.5973 276.0200 L
  409.5973 262.4825 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 449.1314 266.9151 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(PROPOSE_METHOD\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  409.5973 188.5657 m
  563.3012 188.5657 L
  563.3012 262.4825 L
  409.5973 262.4825 L
  409.5973 188.5657 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 415.5874 253.2579 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(currentMethod = Policy.getNextMethod\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.5874 243.7937 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(m.init\(\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.5874 234.2097 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(currentMethod==IDENTITY ||\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.5874 224.6256 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(    currentMethod==NOTIFICATION\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.5874 215.0416 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(  methodState = CONTINUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.5874 205.4576 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 415.5874 195.8735 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(  methodState = PROPOSED\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  379.1681 276.1398 m
  379.1681 289.5574 L
  429.6040 289.5574 L
  429.6040 298.9018 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  426.8486 298.1830 m
  429.6040 306.4493 L
  432.3594 298.1830 L
  426.8486 298.1830 L
F
U
u
  0.000 0.000 0.000 0.000 k
  397.3777 284.1664 m
  414.6290 284.1664 L
  414.6290 295.5474 L
  397.3777 295.5474 L
  397.3777 284.1664 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 398.4559 287.1614 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  338.3161 315.3145 m
  338.3161 301.8968 L
  338.4359 301.8968 L
  338.4359 283.6872 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  341.1913 284.4060 m
  338.4359 276.1398 L
  335.6805 284.4060 L
  341.1913 284.4060 L
F
U
u
  0.000 0.000 0.000 0.000 k
  321.9035 290.3960 m
  355.0882 290.3960 L
  355.0882 301.7770 L
  321.9035 301.7770 L
  321.9035 290.3960 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 322.8619 293.3910 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(intCheck\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  477.8835 158.3760 m
  495.1348 158.3760 L
  495.1348 169.7571 L
  477.8835 169.7571 L
  477.8835 158.3760 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 478.9617 161.3710 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  476.3261 281.1714 m
  494.6556 281.1714 L
  494.6556 292.5524 L
  476.3261 292.5524 L
  476.3261 281.1714 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 477.2845 284.1664 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 43.4875 504.2396 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(retransWhile = calculateTimeout\(retransCount, eapSRTT, eapRTTVAR, methodTimeout\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.5000 w
1 j
  563.3012 107.8203 m
  574.8020 107.8203 L
S
U
u
  581.2712 107.8203 m
  592.7720 107.8203 L
S
U
u
  599.2413 107.8203 m
  610.7421 107.8203 L
S
U
u
  617.0915 107.8203 m
  628.5923 107.8203 L
S
U
u
  635.0616 107.8203 m
  641.8902 107.8203 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  641.0516 110.9351 m
  650.7554 107.8203 L
  641.0516 104.5857 L
  641.0516 110.9351 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 569.0516 98.2363 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(decision==PASSTHROUGH\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 282.1298 105.5441 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(/* SUCCESS, FAILURE, CONTINUE, or PASSTHROUGH */\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  177.6639 453.2047 m
  314.3561 453.2047 L
  314.3561 466.8619 L
  177.6639 466.8619 L
  177.6639 453.2047 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 227.3810 457.6373 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(RECEIVED\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  177.6639 426.7288 m
  314.3561 426.7288 L
  314.3561 453.2047 L
  177.6639 453.2047 L
  177.6639 426.7288 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 183.5341 444.0998 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(\(rxResp,respId,respMethod\)=\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 183.5341 434.5158 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   parseEapResp\(eapRespData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
%%PageTrailer
gsave annotatepage grestore showpage
%%Trailer
Adobe_Illustrator_AI5 /terminate get exec
Adobe_pattern_AI5 /terminate get exec
Adobe_blend_AI5 /terminate get exec
Adobe_ColorImage_AI6 /terminate get exec
Adobe_typography_AI5 /terminate get exec
Adobe_screens_AI5 /terminate get exec
Adobe_level2_AI5 /terminate get exec
%%EOF

%%EndDocument
 @endspecial 857 3435 a(Figure)h(6:)25 b(EAP)c(Full)f(Authenticator)f
(State)h(Machine)g(\(P)o(art)g(1\))208 3785 y(Set)27
b(to)f(TR)m(UE)g(in)h(lo)n(wer)f(layer)m(,)g(F)-6 b(ALSE)27
b(in)f(authenticator)f(state)i(machine.)42 b(Indicates)25
b(a)i(ne)n(w)f(EAP)h(request)f(is)208 3885 y(a)n(v)n(ailable)19
b(from)g(the)i(AAA)f(serv)o(er)-5 b(.)125 4051 y Fb(\017)41
b Fg(aaaEapNoReq)18 b(\(boolean\))208 4184 y(Set)i(to)h(TR)m(UE)f(in)h
(lo)n(wer)e(layer)m(,)h(F)-6 b(ALSE)20 b(in)g(authenticator)f(state)i
(machine.)j(Indicates)19 b(the)i(most)f(recent)g(response)208
4283 y(has)g(been)f(processed,)g(b)n(ut)i(there)e(is)i(no)f(ne)n(w)g
(request)g(to)g(send.)125 4449 y Fb(\017)41 b Fg(aaaSuccess)20
b(\(boolean\))208 4582 y(Set)e(to)g(TR)m(UE)g(in)g(lo)n(wer)f(layer)-5
b(.)24 b(Indicates)17 b(the)h(AAA)g(back)o(end)e(authenticator)g(has)i
(reached)e(the)i(SUCCESS)h(state.)125 4748 y Fb(\017)41
b Fg(aaaF)o(ail)20 b(\(boolean\))208 4881 y(Set)f(to)g(TR)m(UE)g(in)g
(lo)n(wer)f(layer)-5 b(.)25 b(Indicates)18 b(the)h(AAA)g(back)o(end)e
(authenticator)g(has)i(reached)e(the)i(F)-6 b(AILURE)19
b(state.)125 5047 y Fb(\017)41 b Fg(aaaEapReqData)18
b(\(EAP)j(pack)o(et\))208 5180 y(Set)e(in)f(the)g(lo)n(wer)g(layer)g
(when)g(aaaEapReq,)f(aaaSuccess,)h(or)g(aaaF)o(ail)h(is)g(set)g(to)f
(TR)m(UE.)h(The)e(actual)i(EAP)f(request)208 5280 y(to)i(be)g(sent)h
(\(or)e(success/f)o(ailure\).)0 5656 y(V)-11 b(ollbrecht,)19
b(et)i(al.)965 b(Expires)19 b(March)h(18,)f(2004)964
b([P)o(age)19 b(25])p eop
%%Page: 26 26
26 25 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)18 3155 y
@beginspecial 0 @llx 0 @lly 622 @urx 497 @ury 4276 @rwi
@setspecial
%%BeginDocument: ../../../diagrams/20030912_passthrough_authenticator2.eps
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: ImageMark Software Labs
%%For: () ()
%%Title: C:\USERS\IETF\EAP\State machines\AuthenticatorSplit\20030912_passthrough_authenticator2.eps
%%CreationDate: () ()
%%BoundingBox: 0 0 622 497
%%DocumentProcessColors: Black
%%ColorUsage:Color
%%DocumentFonts: Helvetica
%%+Helvetica-Bold
%%+Helvetica-Oblique
%%+Helvetica-BoldOblique
%%+Times-Roman
%%+Times-Bold
%%+Times-Italic
%%+Times-BoldItalic
%%+Courier
%%+Courier-Bold
%%+Courier-Oblique
%%+Courier-BoldOblique
%%+Symbol
%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
%%+ procset Adobe_screens_AI5 1.0 0
%%+ procset Adobe_typography_AI5 1.0 0
%%+ procset Adobe_ColorImage_AI6 1.1 0
%%+ procset Adobe_blend_AI5 1.0 0
%%+ procset Adobe_pattern_AI5 1.0 0
%%+ procset Adobe_Illustrator_AI5 1.0 0
%AI5_FileFormat 3.0
%AI3_ColorUsage: Color
%AI3_TemplateBox: 0 0 622 497
%AI3_TileBox: 0 0 622 497
%AI3_DocumentPreview: None
%%Template:
%%PageOrigin:0.0000 0.0000
%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
%%EndComments
%%BeginProlog
%%BeginResource: procset Adobe_level2_AI5 1.2 0
%%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation)
%%Version: 1.2 0
%%CreationDate: (04/10/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /Adobe_level2_AI5 25 dict dup begin
	put
	/packedarray where not
	{
		userdict begin
		/packedarray
		{
			array astore readonly
		} bind def
		/setpacking /pop load def
		/currentpacking false def
	 end
		0
	} if
	pop
	userdict /defaultpacking currentpacking put true setpacking
	/initialize
	{
		Adobe_level2_AI5 begin
	} bind def
	/terminate
	{
		currentdict Adobe_level2_AI5 eq
		{
		 end
		} if
	} bind def
	mark
	/setcustomcolor where not
	{
		/findcmykcustomcolor
		{
			0
			6 packedarray
		} bind def
		/findrgbcustomcolor
		{
			1
			5 packedarray
		} bind def
		/setcustomcolor
		{
			exch 
			aload pop 
			0 eq
			{
				pop
				4
				{
					4 index mul
					4 1 roll
				} repeat
				5 -1 roll pop
				setcmykcolor
			}
			{
				pop
				3
				{
					1 exch sub
					3 index mul 
					1 exch sub
					3 1 roll
				} repeat
				4 -1 roll pop
				setrgbcolor
			} ifelse
		}
		def
	} if
	
	/gt38? mark {version cvr cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def
	userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put
	userdict /level2?
	systemdict /languagelevel known dup
	{
		pop systemdict /languagelevel get 2 ge
	} if
	put
/level2ScreenFreq
{
 begin
		60
		HalftoneType 1 eq
		{
			pop Frequency
		} if
		HalftoneType 2 eq
		{
			pop GrayFrequency
		} if
		HalftoneType 5 eq
		{
			pop Default level2ScreenFreq
		} if
 end
} bind def
userdict /currentScreenFreq  
	level2? {currenthalftone level2ScreenFreq} {currentscreen pop pop} ifelse put
level2? not
	{
		/setcmykcolor where not
		{
			/setcmykcolor
			{
				exch .11 mul add exch .59 mul add exch .3 mul add
				1 exch sub setgray
			} def
		} if
		/currentcmykcolor where not
		{
			/currentcmykcolor
			{
				0 0 0 1 currentgray sub
			} def
		} if
		/setoverprint where not
		{
			/setoverprint /pop load def
		} if
		/selectfont where not
		{
			/selectfont
			{
				exch findfont exch
				dup type /arraytype eq
				{
					makefont
				}
				{
					scalefont
				} ifelse
				setfont
			} bind def
		} if
		/cshow where not
		{
			/cshow
			{
				[
				0 0 5 -1 roll aload pop
				] cvx bind forall
			} bind def
		} if
	} if
	cleartomark
	/anyColor?
	{
		add add add 0 ne
	} bind def
	/testColor
	{
		gsave
		setcmykcolor currentcmykcolor
		grestore
	} bind def
	/testCMYKColorThrough
	{
		testColor anyColor?
	} bind def
	userdict /composite?
	level2?
	{
		gsave 1 1 1 1 setcmykcolor currentcmykcolor grestore
		add add add 4 eq
	}
	{
		1 0 0 0 testCMYKColorThrough
		0 1 0 0 testCMYKColorThrough
		0 0 1 0 testCMYKColorThrough
		0 0 0 1 testCMYKColorThrough
		and and and
	} ifelse
	put
	composite? not
	{
		userdict begin
		gsave
		/cyan? 1 0 0 0 testCMYKColorThrough def
		/magenta? 0 1 0 0 testCMYKColorThrough def
		/yellow? 0 0 1 0 testCMYKColorThrough def
		/black? 0 0 0 1 testCMYKColorThrough def
		grestore
		/isCMYKSep? cyan? magenta? yellow? black? or or or def
		/customColor? isCMYKSep? not def
	 end
	} if
 end defaultpacking setpacking
%%EndResource
%%BeginResource: procset Adobe_typography_AI5 1.0 1
%%Title: (Typography Operators)
%%Version: 1.0 
%%CreationDate:(03/26/93) ()
%%Copyright: ((C) 1987-1993 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_typography_AI5 54 dict dup begin
put
/initialize
{
 begin
 begin
	Adobe_typography_AI5 begin
	Adobe_typography_AI5
	{
		dup xcheck
		{
			bind
		} if
		pop pop
	} forall
 end
 end
 end
	Adobe_typography_AI5 begin
} def
/terminate
{
	currentdict Adobe_typography_AI5 eq
	{
	 end
	} if
} def
/modifyEncoding
{
	/_tempEncode exch ddef
	/_pntr 0 ddef
	{
		counttomark -1 roll
		dup type dup /marktype eq
		{
			pop pop exit
		}
		{
			/nametype eq
			{
				_tempEncode /_pntr dup load dup 3 1 roll 1 add ddef 3 -1 roll
				put
			}
			{
				/_pntr exch ddef
			} ifelse
		} ifelse
	} loop
	_tempEncode
} def
/TE
{
	StandardEncoding 256 array copy modifyEncoding
	/_nativeEncoding exch def
} def
%
/TZ
{
	dup type /arraytype eq
	{
		/_wv exch def
	}
	{
		/_wv 0 def
	} ifelse
	/_useNativeEncoding exch def
	pop pop
	findfont _wv type /arraytype eq
	{
		_wv makeblendedfont
	} if
	dup length 2 add dict
 begin
	mark exch
	{
		1 index /FID ne
		{
			def
		} if
		cleartomark mark
	} forall
	pop
	/FontName exch def
	counttomark 0 eq
	{
		1 _useNativeEncoding eq
		{
			/Encoding _nativeEncoding def
		} if
		cleartomark
	}
	{
		/Encoding load 256 array copy
		modifyEncoding /Encoding exch def
	} ifelse
	FontName currentdict
 end
	definefont pop
} def
/tr
{
	_ax _ay 3 2 roll
} def
/trj
{
	_cx _cy _sp _ax _ay 6 5 roll
} def
/a0
{
	/Tx
	{
		dup
		currentpoint 3 2 roll
		tr _psf
		newpath moveto
		tr _ctm _pss
	} ddef
	/Tj
	{
		dup
		currentpoint 3 2 roll
		trj _pjsf
		newpath moveto
		trj _ctm _pjss
	} ddef
} def
/a1
{
	/Tx
	{
		dup currentpoint 4 2 roll gsave
		dup currentpoint 3 2 roll
		tr _psf
		newpath moveto
		tr _ctm _pss
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll gsave
		dup currentpoint 3 2 roll
		trj _pjsf
		newpath moveto
		trj _ctm _pjss
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/e0
{
	/Tx
	{
		tr _psf
	} ddef
	/Tj
	{
		trj _pjsf
	} ddef
} def
/e1
{
	/Tx
	{
		dup currentpoint 4 2 roll gsave
		tr _psf
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll gsave
		trj _pjsf
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/i0
{
	/Tx
	{
		tr sp
	} ddef
	/Tj
	{
		trj jsp
	} ddef
} def
/i1
{
	W N
} def
/o0
{
	/Tx
	{
		tr sw rmoveto
	} ddef
	/Tj
	{
		trj swj rmoveto
	} ddef
} def
/r0
{
	/Tx
	{
		tr _ctm _pss
	} ddef
	/Tj
	{
		trj _ctm _pjss
	} ddef
} def
/r1
{
	/Tx
	{
		dup currentpoint 4 2 roll currentpoint gsave newpath moveto
		tr _ctm _pss
		grestore 3 1 roll moveto tr sp
	} ddef
	/Tj
	{
		dup currentpoint 4 2 roll currentpoint gsave newpath moveto
		trj _ctm _pjss
		grestore 3 1 roll moveto tr jsp
	} ddef
} def
/To
{
	pop _ctm currentmatrix pop
} def
/TO
{
	iTe _ctm setmatrix newpath
} def
/Tp
{
	pop _tm astore pop _ctm setmatrix
	_tDict begin
	/W
	{
	} def
	/h
	{
	} def
} def
/TP
{
 end
	iTm 0 0 moveto
} def
/Tr
{
	_render 3 le
	{
		currentpoint newpath moveto
	} if
	dup 8 eq
	{
		pop 0
	}
	{
		dup 9 eq
		{
			pop 1
		} if
	} ifelse
	dup /_render exch ddef
	_renderStart exch get load exec
} def
/iTm
{
	_ctm setmatrix _tm concat 0 _rise translate _hs 1 scale
} def
/Tm
{
	_tm astore pop iTm 0 0 moveto
} def
/Td
{
	_mtx translate _tm _tm concatmatrix pop iTm 0 0 moveto
} def
/iTe
{
	_render -1 eq
	{
	}
	{
		_renderEnd _render get dup null ne
		{
			load exec
		}
		{
			pop
		} ifelse
	} ifelse
	/_render -1 ddef
} def
/Ta
{
	pop
} def
/Tf
{
	dup 1000 div /_fScl exch ddef
%
	selectfont
} def
/Tl
{
	pop
	0 exch _leading astore pop
} def
/Tt
{
	pop
} def
/TW
{
	3 npop
} def
/Tw
{
	/_cx exch ddef
} def
/TC
{
	3 npop
} def
/Tc
{
	/_ax exch ddef
} def
/Ts
{
	/_rise exch ddef
	currentpoint
	iTm
	moveto
} def
/Ti
{
	3 npop
} def
/Tz
{
	100 div /_hs exch ddef
	iTm
} def
/TA
{
	pop
} def
/Tq
{
	pop
} def
/Th
{
	pop pop pop pop pop
} def
/TX
{
	pop
} def
/Tk
{
	exch pop _fScl mul neg 0 rmoveto
} def
/TK
{
	2 npop
} def
/T*
{
	_leading aload pop neg Td
} def
/T*-
{
	_leading aload pop Td
} def
/T-
{
	_hyphen Tx
} def
/T+
{
} def
/TR
{
	_ctm currentmatrix pop
	_tm astore pop
	iTm 0 0 moveto
} def
/TS
{
	currentfont 3 1 roll
	/_Symbol_ _fScl 1000 mul selectfont
	
	0 eq
	{
		Tx
	}
	{
		Tj
	} ifelse
	setfont
} def
/Xb
{
	pop pop
} def
/Tb /Xb load def
/Xe
{
	pop pop pop pop
} def
/Te /Xe load def
/XB
{
} def
/TB /XB load def
currentdict readonly pop
end
setpacking
%%EndResource
%%BeginResource: procset Adobe_screens_AI5 1.2 0
%%Title: (Adobe Illustrator (R) Version 5.0 Custom Halftone Screens ProcSet)
%%Version: 1.2 0
%%CreationDate: (03/24/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
systemdict begin
userdict /Adobe_screens_AI5 15 dict dup begin
put
/initialize
{
	Adobe_screens_AI5 begin
	/screenid
		deviceDPI 600 gt composite? not or
		{
		-1
		}
		{
			deviceDPI currentScreenFreq 
			dup dup 60 ge exch 150 le and deviceDPI 300 le and
		{
			pop 60
		} if
		div 1.41421 div 0.5 add cvi
		} ifelse
	def
	
	2 screenid eq
	{
		/customsize 16 def
		/customdata /customdata2 def
		setcustomscreen
	} if
	
	3 screenid eq
	{
		/customsize 24 def
		/customdata /customdata3 def
		setcustomscreen
	} if
	
	4 screenid eq
	{
		/customsize 16 def
		/customdata /customdata4 def
		setcustomscreen
	} if
	
	5 screenid eq
	{
		/customsize 20 def
		/customdata /customdata5 def
		setcustomscreen
	} if
	
	6 screenid eq
	{
		/customsize 24 def
		/customdata /customdata6 def
		setcustomscreen
	} if
	
	7 screenid eq
	{
		/customsize 28 def
		/customdata /customdata7 def
		setcustomscreen
	} if
	
	8 screenid eq
	{
		/customsize 16 def
		/customdata /customdata8 def
		setcustomscreen
	} if
} def
/terminate
{
	currentdict Adobe_screens_AI5 eq
	{
	 end
	} if
} def
/setcustomscreen
{
	deviceDPI customsize div 0
	{
		1 add 2 div customsize mul cvi exch
		1 add 2 div customsize mul cvi exch
		customsize mul add
		customdata load exch get 256 div
	} setscreen
} def
/customdata2 28 28 mul string def
currentfile customdata2 readhexstring
4180E8694988E2634382EA6B4B8AE061A01939C8A81737C2A21B3BCAAA1636C0
F8795998F6775796FA7B5B9AF57656952ED8B80727D6B60F2FDABA0626D5B50E
4E8DE6674786EE6F4F8EE5664685ED6EAD1434C6A61F3FCEAE1232C5A51E3ECD
F3745493FE7F5F9EF1725291FD7E5E9D24D3B30C2CDEBE0222D1B10A2ADDBD04
4483EB6C4C8BE1624281E96A4A89E364A31C3CCBAB1535C1A11A3AC9A91838C3
FB7C5C9BF4755594F97A5A99F778589730DBBB0525D4B40D2DD9B90828D7B710
508FE4654584EC6D4D8CE7684887EF70AF1131C4A41D3DCCAC1333C7A72040CF
F0715190FC7D5D9CF2735392FF80609F21D0B00929DCBC0323D2B20B2BDFBF01
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata3 28 28 mul string def
currentfile customdata3 readhexstring
011DC7F5E73D0421CBF3E43A021EC8F6E83E0522CCF2E43A2B648BC4A0762F68
8AC39E732C658CC5A177306989C29D72D5B6521A6192D9B55219608FD6B6531B
6193DAB451185F8FFCEE440C28D2FCED430B27D1FDEF450C29D3FBEC420A26D0
BEA77D366F83BCA77C356E87BFA87E377082BBA67B346D86145B99E0AE4A1259
98DFB14E155C9AE1AD4A115897DEB04D0623CDF4E63C0420CAF8EA400723CDF4
E53B031FC9F7E93F316988C19F752E678EC6A378326A88C09F742D668DC6A278
DBB350175E91D8B8551C6395DCB24F165D90D7B7541C6294FAEC420925CFFFF1
470E2BD5F9EB410824CEFEF0460D2AD4BAA57A336C85BEAA80397180B9A47933
6B84BDA97F387181105797DDAF4C145A9CE3AB480F5696DDAE4B13599BE2AC49
021EC8F6E83E0522CCF2E43A011DC7F5E73D0421CBF3E43A2C658CC5A1773069
89C29D722B648BC4A0762F688AC39E73D6B6531B6193DAB451185F8FD5B6521A
6192D9B55219608FFDEF450C29D3FBEC420A26D0FCEE440C28D2FCED430B27D1
BFA87E377082BBA67B346D86BEA77D366F83BCA77C356E87155C9AE1AD4A1158
97DEB04D145B99E0AE4A125998DFB14E0723CDF4E53B031FC9F7E93F0623CDF4
E63C0420CAF8EA40326A88C09F742D668DC6A278316988C19F752E678EC6A378
DCB24F165D90D7B7541C6294DBB350175E91D8B8551C6395F9EB410824CEFEF0
460D2AD4FAEC420925CFFFF1470E2BD5B9A479336B84BDA97F387181BAA57A33
6C85BEAA803971800F5696DDAE4B13599BE2AC49105797DDAF4C145A9CE3AB48
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata4 28 28 mul string def
currentfile customdata4 readhexstring
1139B8E0FAD2531B133BBAE2F8D05119417180A6AE9A7B4B437382A5AD987949
C08867272F6F92CAC28A66262E6E90C8E8DE5F070F37B6F2EADD5E060E36B5F0
FED6571F173FBEE6FDD5561E163EBDE5AB9E7F4F477786A1A99D7E4E467685A3
2C6C96CEC68E62222A6A95CDC58D64240C34B3F6EED95A020A32B1F5EDDB5C04
143CBBE3F9D1521A123AB9E1FBD3541C447483A4AC997A4A427281A7AF9B7C4C
C38B65252D6D91C9C1896828307093CBEBDC5D050D35B4F1E9DF60081038B7F3
FCD4551D153DBCE4FFD758201840BFE7A89C7D4D457584A2AA9F8050487887A0
296994CCC48C63232B6B97CFC78F61210931B0F4ECDA5B030B33B2F7EFD85901
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata5 28 28 mul string def
currentfile customdata5 readhexstring
010B34C3EBFCF7CE3F16020C35C4EDFBF6CD3E15102552A4D6EADDB5632B1126
54A5D5EADCB3622A3958768499C19E8C7C5E3A59778498C19D8B7B5DC8A99370
47334C7587AFC9AA936F46324B7485AEF1E5BC6B1E0A2351A3D8F2E4BC6A1E09
2351A2D7FFF9D14219050F38C6EFFEF9D04118040E37C6EFE8E0B7662D142856
A8D3E7DFB7652D132856A7D4BF9C8E7F603D5B7A8195BE9A8E7E603C5B798297
314A7389B2CCAD906D442F497289B1CBAC926E4508214FA1DBF4E2B9671B0720
4EA0DAF4E3BA691C030D36C5EDFBF6CD3F16010C34C3ECFDF8CF4017122654A6
D4E9DDB4622A112553A5D6EBDEB5642C3B59788397C09C8B7C5D3A58778599C2
9E8C7D5FCAAB926E46314B7486AFC8AA947048334D7587B0F2E4BB691D082250
A1D8F1E6BD6B1F0A2452A3D9FDF8CF4118030E36C5EEFFFAD1421A050F38C7F0
E6DFB6642C132755A7D3E8E1B8662E152957A8D2BE9A8D7E5F3B5A798296BF9B
8F80613D5C7B80952F487188B1CAAC916D443049728AB3CCAE906C43061F4D9F
DAF3E2BA681C07214FA0DBF5E1B8671A00000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata6 28 28 mul string def
currentfile customdata6 readhexstring
081A44B6E0F2FDECC150250C091B45B6E1F3FCEBC04F240C1D336199C7D8DCD3
A56C37221E33619AC8D7DBD2A46B36214864798091AEB1958C7E694C49657A81
90ADB0948B7D684BB99D8475593C405C7888A1BEBA9E8574583B3F5B7888A0BD
E4CBAA712E1215326098CFE8E4CCA9712D1114315F97CEE7F5F1C6552B040719
43B5DFFAF6F0C6542A03061842B4DEF9FFEDC352270E0B1C47B8E3F4FEECC251
260D0A1C46B7E2F4DAD5A76E39232035639CCAD5D9D4A66D38231F34629BC9D6
AF938E806A4E4A677C838FABAE928D7F694D4A667B828FAC3E5A778AA3BFBC9F
8772563A3D597689A2BEBB9F8673573A14305E97D1EAE6CDA76F2B0F132F5D96
D0E9E5CDA8702C10051742B3DDFCF8EEC4522801041641B2DDFBF7EFC5532902
091B45B6E1F3FCEBC04F240C081A44B6E0F2FDECC150250C1E33619AC8D7DBD2
A46B36211D336199C7D8DCD3A56C372249657A8190ADB0948B7D684B48647980
91AEB1958C7E694CBA9E8574583B3F5B7888A0BDB99D8475593C405C7888A1BE
E4CCA9712D1114315F97CEE7E4CBAA712E1215326098CFE8F6F0C6542A030618
42B4DEF9F5F1C6552B04071943B5DFFAFEECC251260D0A1C46B7E2F4FFEDC352
270E0B1C47B8E3F4D9D4A66D38231F34629BC9D6DAD5A76E39232035639CCAD5
AE928D7F694D4A667B828FACAF938E806A4E4A677C838FAB3D597689A2BEBB9F
8673573A3E5A778AA3BFBC9F8772563A132F5D96D0E9E5CDA8702C1014305E97
D1EAE6CDA76F2B0F041641B2DDFBF7EFC5532902051742B3DDFCF8EEC4522801
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
/customdata7 28 28 mul string def
currentfile customdata7 readhexstring
01061B44B7E1F5FEFBE6BD4A210C01071B45B8E1F6FDFBE6BC4A200B09132A54
A7D1EAF5EED9B05D331609142B55A8D2EAF4EED9AF5C32161D2D3D6993C1CBE0
CEC59B7140301E2E3D6A93C0CADFCDC49A713F3047576C7B828DA2B6A48F867E
6F5A48576C7C828CA1B6A38F867E6E59BAAA958A78634E4451667A8498ADBAAB
968977624E4350657A8398ADE3D4C99F7539251A273C6892C2D7E4D4C89E7539
241A273B6891C1D6F8F2DDB460371005122A53A7D0ECF9F2DDB360360F051229
53A6D0EBFFFDE8BE4C220D03081D46B9E3F7FFFCE7BD4B210D02071C46B8E2F7
F3F0DBB15E34180B152C56A9D3E8F3EFDAB05D34170A142C55A9D2E9DFCCC69C
7341321F2F3F6B94BFC9DECCC59C7241311F2E3E6A94BFCAB5A38E8780705B49
596D7D808BA0B4A28D877F6F5B48586D7C818BA043506479859AAFBCAC978876
614C424F64798499AEBBAB968977624D19263B6791C3D8E5D6C79D7337231825
3A6690C3D7E5D5C79E74382304112952A5CFEDFAF0DBB25E350E03102851A5CE
ECF9F1DCB25F360E01071B45B8E1F6FDFBE6BC4A200B01061B44B7E1F5FEFBE6
BD4A210C09142B55A8D2EAF4EED9AF5C321609132A54A7D1EAF5EED9B05D3316
1E2E3D6A93C0CADFCDC49A713F301D2D3D6993C1CBE0CEC59B71403048576C7C
828CA1B6A38F867E6E5947576C7B828DA2B6A48F867E6F5ABAAB968977624E43
50657A8398ADBAAA958A78634E4451667A8498ADE4D4C89E7539241A273B6891
C1D6E3D4C99F7539251A273C6892C2D7F9F2DDB360360F05122953A6D0EBF8F2
DDB460371005122A53A7D0ECFFFCE7BD4B210D02071C46B8E2F7FFFDE8BE4C22
0D03081D46B9E3F7F3EFDAB05D34170A142C55A9D2E9F3F0DBB15E34180B152C
56A9D3E8DECCC59C7241311F2E3E6A94BFCADFCCC69C7341321F2F3F6B94BFC9
B4A28D877F6F5B48586D7C818BA0B5A38E8780705B49596D7D808BA0424F6479
8499AEBBAB968977624D43506479859AAFBCAC978876614C18253A6690C3D7E5
D5C79E74382319263B6791C3D8E5D6C79D73372303102851A5CEECF9F1DCB25F
360E04112952A5CFEDFAF0DBB25E350E
pop pop
/customdata8 28 28 mul string def
currentfile customdata8 readhexstring
050F2747B6D6EEF8FEF4DCBC4D2D1507111D375F9EC6E0E9EBE6CCA4653D1F13
2939556F8EA8C1D1D3C3AE9475573B2B4961717D808999B1B39B8B867F73634B
B8A090827A6A5A42445C6C7C8492A2BAD8C8AA97785232222434546E8DACCADA
F0E2CFA768401A0A0C1C365E9DC5E4F2FAF7DFBF50301802040E2646B5D5EDFC
FFF5DDBD4E2E160806102848B7D7EFF9EAE7CDA5663E2014121E38609FC7E1E8
D2C2AF9576583C2C2A3A56708FA9C0D0B29A8A878074644C4A62727E818898B0
435B6B7B8593A3BBB9A19183796959412333536D8CADCBDBD9C9AB9677513121
0B1B355D9CC4E5F3F1E3CEA6673F1909030D2545B4D4ECFDFBF6DEBE4F2F1701
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000
pop pop
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset AGM_Gradient_Sep 1.0 0
%%Title: (AGM Gradient Procset)
%%Version: 1.0 0
%%CreationDate: (4/26/96) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /AGM_Gradient_Sep 5 dict dup begin put
/AGM_Gradient_Sep_private 100 dict def
/initialize{
	AGM_Gradient_Sep begin
	AGM_Gradient_Sep_private begin
	_compositeJob{
		initializeSinglePassSeps
	}{
		initializeMultiPassSeps
	}ifelse
	initializeSeps
	AGM_Gradient_private begin
		/_fillSD newSpotDict def
		/_rampSD newSpotDict def
		/_nCustomColorSD nd
 end
	AGM_Gradient_Sep_private 
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
	AGM_Gradient_Sep
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
 end
	
	currentdict readonly pop	
 end
}def
/terminate{
	currentdict AGM_Gradient_Sep eq{
	 end
	}if
}def
 
AGM_Gradient_Sep_private begin
/initializeSeps{
	_noImage not _level2PS not and{
		/_whiteBytes 1 makeByte8 pt
		/knockOut{
			8 setImageParms _whiteBytes /_image load 5 execImage
		}def
		/linealFill{
			mySave
			8 setImageParms
			_color{
				_nCustomColorSD begin
					cyan magenta yellow black
					_spotColor{
						spot1 begin
							/tintImage tintValue 1 exch sub makeByte8 def
					 end
						spot2 begin
							/tintImage tintValue 1 exch sub makeByte8 def
					 end
					}if
			 end
				4{
					makeByte8 4 1 roll
				}repeat
				true 4 _nCustomColorSD ncolorimage
			}{
				_nCustomColorSD/black get 1 exch sub makeByte8 
				_nCustomColorSD bwImage
			}ifelse
			myRestore
		}def
	}{
		 /knockOut{
			gsave
			false setoverprint
			1 setgray 
			0 0 1 1 rectfill
			grestore
		}def
	}ifelse
	/newSpotDict{
		11 dict dup begin
			/nSpots 2 def
			/spot1 7 dict def
			/spot2 7 dict def
	 end
	}def
	/initSpotData
	{
	 begin
			/name nd
			/tintImage nd
			/tintValue nd
			/spot_C nd
			/spot_M nd
			/spot_Y nd
			/spot_K nd
	 end
	}def
	/initSpotDict{
	 begin
			/cyanInk false def
			/magentaInk false def
			/yellowInk false def
			/blackInk false def
			/cyan nd
			/magenta nd
			/yellow nd
			/black nd
			spot1 initSpotData
			spot2 initSpotData
	 end
	}def
	/copySpotDict{
		/_dst xp
	 begin
			cyanInk magentaInk yellowInk blackInk
			cyan magenta yellow black
			spot1 spot2
	 end
		_dst begin
			/spot1 spot1 maxlength dict def
			/spot2 spot2 maxlength dict def
			spot2 copy pop
			spot1 copy pop
			/black xd
			/yellow xd
			/magenta xd
			/cyan xd
			/blackInk xd
			/yellowInk xd
			/magentaInk xd
			/cyanInk xd
	 end
	}def
	/setCustomColor
	{
		1 index /Black eq{
			6 1 roll 5 npop
			1 exch sub
			setgray
		}{
			6 1 roll _ccAry1 astore exch
			dup null eq{
				pop 0
			}if
			setcustomcolor
		}ifelse
	}def
	/setCStop{
		/_colorStyle exch pt
		
		_colorStyle 0 eq{
			0 0 0
			4 -1 roll
			1 exch sub
			_spotColor{
				/_colorStyle 3 pt
				/Black
				1 index
				1 exch sub
			}if
		}if
		_colorStyle 2 eq{
			3 npop
		}if
		_rampSD _fillSD copySpotDict
		
		_colorStyle 4 eq{ 
			pop
			9 2 roll 3 npop 6 -2 roll
		} if
		
		_colorStyle 3 eq _colorStyle 4 eq or{
				
			_fillSD begin
				exch
				dup spot1/name get eq{
					spot1 spot2
				}{
					spot2 spot1
				}ifelse
			 begin
				 begin
						/name xd
						1 exch sub /tintValue xd
						4{
							tintValue mul 4 1 roll
						}repeat
						_spotColor not{
							/tintValue null def
						}if
				 end
					/tintValue 0 def
			 end
		 end
		}if
		_fillSD nsetcustomcolor
	}def
	/renderCMYK{
		spot1/name get null eq
		spot2/name get null eq and
		dup not{
			pop
			spot1 spotConverted
		}if
		dup not{
			pop
			spot2 spotConverted
		}if
	}def
	/fill_ /fill load def
	/fillOvp{
		currentoverprint{
			_inRipSep{
				currentcolorspace 0 get
				dup /DeviceGray eq
				1 index /DeviceCMYK eq or{
					pop
					currentcmykcolor add add add 0 eq{
						newpath
					}if
				}{
					/Separation eq{
						currentcolor 0 eq{
							newpath
						}if
					}if
				}ifelse
			}{
				currentgray 1 eq{
					newpath
				}if
			}ifelse
		}if
		fill_
	}def
	/fill{
		_nCustomColorSD begin
			renderCMYK
			{
				fillOvp
			}{
				spot1 begin
					gsave
					name null ne{
						spot_C spot_M spot_Y spot_K name tintValue setCustomColor
					}{
						1 setgray
					}ifelse
					fillOvp 
					grestore
			 end
				spot2 begin
					name null ne{
						gsave
						true setoverprint
						spot_C spot_M spot_Y spot_K name tintValue setCustomColor
						fillOvp
						grestore
					}if
			 end
				newpath
			}ifelse
	 end
	}def
	/expandSpot{
		_spotColor{
			/_len xp
			_rampSD begin
				spot1 begin
					tintImage null ne{
						tintImage _len expandOne /tintImage xd
					}if
			 end
				spot2 begin
					tintImage null ne{
						tintImage _len expandOne /tintImage xd
					}if
			 end
		 end
		}{
			pop
		}ifelse
	}def
	/rampImage{
		_rampSD begin
			_color{
				/cyanInk _cyanData 0 ne def
				/magentaInk _magentaData 0 ne def
				/yellowInk _yellowData 0 ne def
				/blackInk _blackData 0 ne def
				_nSamples setImageParms
				_nSamples expandSpot
				_cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
				true 4 _rampSD ncolorimage
			}{
				/cyanInk false def
				/magentaInk false def
				/yellowInk false def
				/blackInk true def
				_nSamples setImageParms 
				_blackData _rampSD bwImage
			}ifelse
	 end
	}def
	/nsetcustomcolor where{
		pop
	}{
		/nsetcustomcolor
		{
			/_nCustomColorSD xp
			_nCustomColorSD begin
				4 copy
				/black xd
				/yellow xd
				/magenta xd
				/cyan xd
				4 copy
				0 ne /blackInk xd
				0 ne /yellowInk xd
				0 ne /magentaInk xd
				0 ne /cyanInk xd
		 end
			setcmykcolor
		}def
	}ifelse
	/nsetcustomcolorend where{
		pop
	}{
		/nsetcustomcolorend
		{
			/_nCustomColorSD null pt
		}def
	}ifelse
}def
/initializeSinglePassSeps{
	/_decodeNorm	[0 1] pt
	/_decodeInvert 	[1 0] pt
	/spotConverted
	{
	 begin
			name null eq{
				false
			}{
				tintValue null eq tintImage null eq and{
					true
				}{
					false
					currentpagedevice/SeparationOrder get{name eq or}forall
					not
				}ifelse
			}ifelse
	 end
	}def
	/dictImage
	{
		20 dict dup begin
			/Dict xd
			/Decode xd
			/DataSource xd
			/ImageMatrix xd
			/BitsPerComponent xd
			/Height xd
			/Width xd
			/ImageType 1 def
			Dict
	 end
		/_image load 1 execImage
	}def
	/bwImage{
	 begin
			gsave
			currentoverprint{
				blackInk{
					[/Separation /Black /DeviceGray{}] setcolorspace
					_decodeInvert dictImage
				}{
					5 npop
				}ifelse
			}{
				/DeviceGray setcolorspace
				_decodeNorm dictImage
			}ifelse
			grestore
	 end
	}def
	/ncolorimage where{
		pop
	}{
		/ncolorimage{
		 begin
				renderCMYK
				{
					cyanInk 
					magentaInk and
					yellowInk and
					blackInk and
					not
					currentoverprint 
					and
					{
						pop pop
						gsave
						cyanInk{
							8 copy
							[/Separation /Cyan /DeviceGray{}] setcolorspace
							3 npop
							_decodeNorm dictImage
						}if
						magentaInk{
							8 copy
							[/Separation /Magenta /DeviceGray{}] setcolorspace
							4 -1 roll
							3 npop
							_decodeNorm dictImage
						}if
						yellowInk{
							8 copy
							[/Separation /Yellow /DeviceGray{}] setcolorspace
							4 -2 roll
							3 npop
							_decodeNorm dictImage
						}if
						blackInk{
							4 -3 roll
							[/Separation /Black /DeviceGray{}] setcolorspace
							3 npop
							_decodeNorm dictImage
						}{
							8 npop
						}ifelse
						grestore
					}{
						/_colorimage load 10 execImage
					}ifelse
				}{
					6 npop
					gsave
					spot1 begin
						name null ne tintImage null ne and{
							[/Separation name /DeviceGray{}] setcolorspace
							4 copy
							tintImage 
							name /Black eq{
								_decodeNorm
							}{
								_decodeInvert
							}ifelse 
							dictImage
						}{
							1 setgray fill
						}ifelse
				 end
					spot2 begin
						true setoverprint
						name null ne tintImage null ne and{
							[/Separation name /DeviceGray{}] setcolorspace
							tintImage 
							name /Black eq{
								_decodeNorm
							}{
								_decodeInvert
							}ifelse 
							dictImage
						}{
							4 npop
							1 setgray fill
						}ifelse
				 end
					grestore
				}ifelse
		 end
		}def
	}ifelse
}def
/initializeMultiPassSeps{
	/_isCMYKSep
		_cyanPlate _magentaPlate or _yellowPlate or _blackPlate or
	pt
	/invertXfer{
		[
		{
			1 exch sub
		}/exec load systemdict /currenttransfer get exec /exec load
		] cvx systemdict /settransfer get exec
	}def
	/ccThrough{
		gsave
		1 setCustomColor
		currentcmykcolor
		grestore
		add add add 0 ne
	}def
	/spotConverted
	{
	 begin
			_isCMYKSep not{
				false
			}{
				name null eq{
					false
				}{
					tintValue null eq tintImage null eq and{
						true
					}{
						spot_C spot_M spot_Y spot_K name ccThrough
					}ifelse
				}ifelse
			}ifelse
	 end
	}def
	/spotChannel
	{
		_isCMYKSep{
			pop false
		}{
		 begin
				name null eq{
					false
				}{
					spot_C spot_M spot_Y spot_K name ccThrough 
				}ifelse
		 end
		}ifelse
	}def
	/getChannelData
	{
		_isCMYKSep dup{
			pop renderCMYK
		}if
		{
			_blackPlate{
				4 1 roll 3 npop blackInk
			}{
				_yellowPlate{
					4 2 roll 3 npop yellowInk
				}{
					_magentaPlate{
						4 3 roll 3 npop magentaInk
					}{
						3 npop cyanInk
					}ifelse
				}ifelse
			}ifelse
			{
				true /nonZeroData
			}{
				true /zeroData
			}ifelse
		}{
			4 npop
			spot1/name get null ne 
			spot1 spotChannel and{
				spot1/tintImage get dup null ne{
					false /nonZeroData
				}{
					pop false /noData
				}ifelse
			}{
				spot2/name get null ne 
				spot2 spotChannel and{
					spot2/tintImage get dup null ne{
						false /nonZeroData
					}{
						pop false /noData
					}ifelse
				}{
					false /noData
				}ifelse
			}ifelse
		}ifelse
	}def
	/renderChannelData
	{
		/_tmp xp
		_tmp /nonZeroData ne currentoverprint and{
			pop
			_tmp /zeroData eq{pop}if
			4 npop
		}{
			_tmp /nonZeroData eq{
				{
					invertXfer
				}if
					systemdict/image
				get 5 execImage
			}{
				pop
				_tmp /zeroData eq{pop}if
				4 npop
				knockOut
			}ifelse
		}ifelse
	}def
	/bwImage{
	 begin
			gsave
			dup dup dup
			getChannelData
			exch pop false exch
			renderChannelData
			grestore
	 end
	}def
	/ncolorimage{
	 begin
			pop pop
			gsave
			spot2/name get null ne spot2 spotChannel and{
				true setoverprint
			}if
			getChannelData 
			renderChannelData
			grestore
	 end
	}def
}def
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset AGM_Gradient 1.0 0
%%Title: (AGM Gradient Procset)
%%Version: 1.0 0
%%CreationDate: (4/26/96) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /AGM_Gradient 20 dict dup begin put
/AGM_Gradient_private 200 dict def
/initialize
{
	AGM_Gradient begin
	AGM_Gradient_private begin
	initializeVars
	
	/bd systemdict/mark get def
	/ed
		_level2PS 
		{
			(>>)
		}{
			(counttomark 2 idiv dup dict begin {def} repeat pop currentdict end)
		} ifelse
	cvx def
	
	_level2PS{
		initializeLev2
	}{
		initializeLev1
	}ifelse
	
	queryDevice
	
	initializeShading
	initializeOps
	_producingSeps{
		AGM_Gradient_Sep/initialize get exec
	}{
		initializeComposite
	}ifelse
	_illustrator{
		/f{}def
		/F{}def
		/s{}def
		/S{}def
		/b{}def
		/B{}def
	}if
	/image where{
		/image get /_image xd
	}if
	/colorimage where{
		/colorimage get /_colorimage xd
	}if
	/rectfill where dup{
		exch pop not _producingSeps or
	}{
		not
	}ifelse
	{
		/rectfill{
			gsave
			newpath
			4 2 roll moveto
			1 index 0 rlineto
			0 1 index rlineto
			1 index neg 0 rlineto
			pop pop
			closepath
			fill
			grestore
		}def
	}if
	/linealImage _noImage{
		/rectImage load
	}{
		_producingSeps{
			AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
			/rampImage load
		 end
		}{
			/rampImage load
		}ifelse
	}ifelse
	def
	AGM_Gradient_private
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
	AGM_Gradient
	{
		dup xcheck 1 index type /arraytype eq and
		{
			bind
		}if
		pop pop
	}forall
 end
	
	currentdict readonly pop
 end
}def
/initializeAI
{
	pop pop 
	AGM_Gradient/AGM_Gradient_private get /_illustrator true put
	AGM_Gradient/initialize get exec
		AGM_Gradient begin
}def
/unload{
	systemdict/languagelevel known{
		systemdict/languagelevel get 2 ge{
			userdict/AGM_Gradient_Sep 2 copy known{
				undef
			}{
				pop pop
			}ifelse
			userdict/AGM_Gradient 2 copy known{
				undef
			}{
				pop pop
			}ifelse
		}if
	}if
}def
/terminate{
	currentdict AGM_Gradient eq{
	 end
	}if
}def
 
AGM_Gradient_private begin
/initializeVars{
	/_d255 256 array def
	0 1 255{
		_d255 exch dup 255 div put
	}bind for
	/_d255- 256 array def
	0 1 255{
		_d255- exch 1 _d255 2 index get sub put
	}bind for
	/_sSave nd
	/_dUserSpace matrix defaultmatrix def
	/_bUMatrix matrix def
	/_imageMatrix matrix def
	/_saveMatrix matrix def
	/_xm matrix def
	/_ccAry1 5 array def
	/_level2PS 
		systemdict/languagelevel known dup{
			pop systemdict/languagelevel get 2 ge
		}if
	def
	/_level3PS
		_level2PS systemdict/shfill known and
	def
	currentdict /_illustrator known not{
		/_illustrator false def
	}if
	
}def
/initializeOps
{
	AGM_Gradient begin
	currentdict/Bc known not{
		/Bc{
		
			_renderFlag 2 eq{
				6 npop
			}{
				pushBSpace
				_rampIndex 0 eq{
					pop pop
					setCStop
				}if
				linealFill
				popBSpace
			}ifelse
		
		}def
	}if
	
	currentdict/Bg known not{
		/Bg{
			10 npop
			/_gradName xp
			/_renderFlag xp
		
			_renderFlag 2 ne{
		
				_illustrator{
					_of setoverprint
				}if
		
				_illustrator _eo and _renderFlag 3 eq or{
					eoclip
				}{
					clip
				}ifelse
		
				_gradNames _gradName 2 copy known{
					get
					mark exch aload pop
					/_gradType xp
					1 sub dup /_rampIndex xp
					/_maxRampIndex xp
					mark exch aload pop
					0 0
				}if
				pop pop
				getRampData
			}{
				mark mark
			}ifelse
		}def
	}if
	
	currentdict/Bm known not{
		/Bm{
			_renderFlag 2 ne{
				_gradType 0 eq{
					linealRamp
				}{
					radialGrad
				}ifelse
			}{
				6 npop
			}ifelse
		}def
	}if
	
	currentdict/Bh known not{
		/Bh{
			2 npop
			/_yHi xp
			/_xHi xp
			/_radHilite _xHi 0 ne _yHi 0 ne or pt
		}def
	}if
	
	currentdict/Bn known not{
		/Bn{
			AGM_Gradient_private begin
				dict /_gradNames xp
		 end
		}def
	}if
	
	currentdict/Bd known not{
		/Bd{
			AGM_Gradient begin
			AGM_Gradient_private begin
				/_nColorsBd xp
				/_gradType xp
				/_gradName xp
		}def
	}if
	
	currentdict/BD known not{
		/BD{
				currentdict/_gradNames known not{
					/_gradNames 20 dict def
				}if
				] _nColorsBd _gradType
				]  _gradName exch /_gradNames xput
		 end
		 end
		}def
	}if
	
	currentdict/Bb known not{
		/Bb{
		
			AGM_Gradient begin
			AGM_Gradient_private begin
			_producingSeps{
				AGM_Gradient_Sep/AGM_Gradient_Sep_private get begin
			}if
			mySave
		}def
	}if
	
	currentdict/BB known not{
		/BB{
		
			/_tmp xp
			cleartomark cleartomark
		
			_tmp dup
			_renderFlag
		
			myRestore
		
			_producingSeps{
			 end
			}if
		
			_illustrator
		 end
		 end
		
			{
				2 ne exch 0 gt and{
					2 eq{
						s
					}{
						S
					}ifelse
				}{
					pop newpath
				}ifelse
			}{
				pop newpath
			}ifelse
		
		
		}def
	}if
	
	currentdict/Xm known not{
		/Xm{
			_xm astore pop
		}def
	}if
	
 end
}def
/queryDevice{
	/_inRipSep
		_level2PS{
			currentpagedevice/Separations 2 copy known{
				get
			}{
				pop pop false
			}ifelse
		}{
			false
		}ifelse
	def
	/_noImage /lv1Fix where{
		pop lv1Fix
	}{
		false
	}ifelse
	def
	/_useShells where{
		pop
	}{
		/_useShells true def
	}ifelse
	
	/_useSmoothShade where{
		pop
	}{
		/_useSmoothShade false def 
	}ifelse
	/_cyanPlate 1 0 0 0 testCMYKColorThrough def
	/_magentaPlate 0 1 0 0 testCMYKColorThrough def
	/_yellowPlate 0 0 1 0 testCMYKColorThrough def
	/_blackPlate 0 0 0 1 testCMYKColorThrough def
	/_compositeJob
		_cyanPlate _magentaPlate and _yellowPlate and _blackPlate and
	def
	/_compositeSpotDevice where{
		pop
	}{
		/_compositeSpotDevice _compositeJob not _inRipSep or{
			1
		}{
			0
		}ifelse
		def
	}ifelse
	/_producingSeps _compositeSpotDevice 0 ne def
	/_deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt def
	/_dpiThreshold where{
		pop
	}{
		/_dpiThreshold 600 def
	}ifelse
	/_screenFreqThreshold where{
		pop
	}{
		/_screenFreqThreshold 150 def
	}ifelse
	/_contoneDevice where{
		pop
	}{
		/_contoneDevice false def
	}ifelse
	/_subSampleOK 
		_deviceDPI _dpiThreshold le 
		currentScreenFreq _screenFreqThreshold le and 
		_contoneDevice not and 
		_producingSeps not and
	def
}def
/initializeLev1{
	/makeByte8{
		/_tmp 0 pt
		255 mul cvi
		8 string 8{
			dup _tmp 3 index put 
			/_tmp _tmp 1 add pt
		}repeat
		exch pop
	}def
	/currentScreenFreq{
		currentscreen pop pop
	}def
	/_byte 1 string def
	/colorimage where{
		pop
	}{
		/colorimage{
			pop pop
			/_blackTmp xp
			/_yellowTmp xp
			/_magentaTmp xp
			/_cyanTmp xp
			/_cnt 0 pt
			[
			_byte dup 0
			_cyanTmp 
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .3 /mul cvx
			_magentaTmp
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .59 /mul cvx
			_yellowTmp
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx .11 /mul cvx
			_blackTmp 
				/_cnt cvx /get cvx _d255 /exch cvx /get cvx
			/add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
			/dup cvx 0 /lt cvx{
				pop 0
			}/if cvx
			/dup cvx 1 /gt cvx{
				pop 1
			}/if cvx
			255 /mul cvx /cvi cvx
			256 /mod cvx
			/dup cvx 0 /lt cvx{
				pop 0
			}/if cvx
			/put cvx
			/_cnt dup cvx 1 /add cvx /pt cvx
			] cvx
			bind
			/_image load 5 execImage
		}def
	}ifelse
}def
/initializeLev2{
	/level2ScreenFreq{
	 begin
		60
		HalftoneType 1 eq{
			pop Frequency
		}if
		HalftoneType 2 eq{
			pop GrayFrequency
		}if
		HalftoneType 5 eq{
			pop Default level2ScreenFreq
		}if
		 end
	}def
	/currentScreenFreq{
		currenthalftone level2ScreenFreq
	}def
}def
/initializeShading{
	_useSmoothShade _level3PS and{
		/_usingSmoothShade true pt
		initializeLev3_Ops
	}{
		/_usingSmoothShade false pt
	}ifelse
}def
/initializeLev3_Ops
{
	/initShFill{
		/_index _gradType 0 eq {0}{_maxRampIndex 1 sub} ifelse pt
		/_rampFuncsArray _maxRampIndex array pt
		/_boundsArray _maxRampIndex 1 sub array pt
		/_encodeArray _maxRampIndex 2 mul array pt
		/_beginCoord _rampPoint pt
		/_colorSpace null pt
		/_firstFill _rampIndex _maxRampIndex eq pt
		/_lastFill false pt
	}def
	/getRampColorSpace{
		_nSamples 1 gt{ 
			/_ndx 0 pt
			[blendColor] cvx exec
		}if
		/_C0 [currentcolor] pt
		/_C0_Space currentcolorspace pt
		
		_nSamples 1 gt{ 
			/_ndx _nSamples 1 sub pt
			[blendColor] cvx exec
		}if
		/_C1 [currentcolor] pt
		/_C1_Space currentcolorspace pt
		
		_C0_Space _C1_Space eq{
			/_rampColorSpace _C0_Space pt
		}{
			(colorspace conflict!) ==
			showpage
			stop
		}ifelse
		
		_spotColor{
			nsetcustomcolorend
		}if
	}def
	/linealShFill{
		popBSpace
		_xm aload pop pushBSpace
		
		/_size _index 1 add pt
		_size _maxRampIndex lt {
			/_rampFuncsArray _rampFuncsArray 0 _size getinterval pt
			/_boundsArray _boundsArray 0 _size 1 sub getinterval pt
			/_encodeArray _encodeArray 0 _size 2 mul getinterval pt
		}if
		
		bd
			/ShadingType 2
			/ColorSpace _colorSpace
			/Function 
				bd
					/FunctionType 3
					/Domain [0 1]
					/Functions _rampFuncsArray
					/Bounds _boundsArray
					/Encode _encodeArray
				ed
			/Extend [_firstFill _lastFill]
			/Domain [0 1] 
			/Coords [_beginCoord 0 _endCoord 0]
		ed
		shfill
	}def
	
	/radialShFill{
		/_size _maxRampIndex _index sub pt
		_size _maxRampIndex lt {
			/_rampFuncsArray _rampFuncsArray _index _size getinterval pt
			/_boundsArray _boundsArray _index _size 1 sub getinterval pt
			/_encodeArray _encodeArray _index 2 mul _size 2 mul getinterval pt
		}if
		
		/_rampLen _beginCoord _endCoord sub pt
		bd
			/ShadingType 3
			/ColorSpace _colorSpace
			/Function 
				bd
					/FunctionType 3
					/Domain [0 1]
					/Functions _rampFuncsArray
					/Bounds _boundsArray
					/Encode _encodeArray
				ed
			/Extend [_lastFill _firstFill]
			/Domain [0 1] 
			/Coords [_xHi _rampLen mul _yHi _rampLen mul _endCoord 0 0 _beginCoord] 
		ed
		shfill
		
		_radHilite{
			_xHi _rampLen mul _yHi _rampLen mul translate
		}if
	}def
	
	/fillRamp{ 
	
	
		/_invert _midPoint 0.5 lt pt
		_rampIndex _maxRampIndex eq {
			initShFill
		}if
		
		getRampColorSpace
		
		_colorSpace null eq{
			/_colorSpace _rampColorSpace pt
		}{
			_colorSpace _rampColorSpace ne{
				/_index _index 1 
				_gradType 0 eq{
					sub pt
					linealShFill
				}{
					add pt
					radialShFill
				}ifelse
				initShFill
				/_colorSpace _rampColorSpace pt
			} if
		}ifelse
		/_endCoord _endPoint pt	
		_rampFuncsArray _index
		bd
			/FunctionType 2
			/Domain [0 1]
			/N 0.5 log _invert{1 _midPoint sub}{_midPoint}ifelse log div
			_gradType 0 eq{
				_invert{/C1}{/C0}ifelse _C0
				_invert{/C0}{/C1}ifelse _C1
			}{
				_invert{/C0}{/C1}ifelse _C1
				_invert{/C1}{/C0}ifelse _C0
			}ifelse
		ed
		put
		
		_rampIndex 1 ne{
			_boundsArray _index _gradType 1 eq{1 sub}if _endCoord put
		} if
		
		0 1 _invert {exch}if
		_encodeArray _index 2 mul 1 add 3 -1 roll put
		_encodeArray _index 2 mul 3 -1 roll put
		_rampIndex 1 eq {
			/_lastFill true pt
			_gradType 0 eq{
				linealShFill
			}{
				radialShFill
			}ifelse
		}if
		/_index _index 1 
		_gradType 0 eq{
			add pt
		}{
			sub pt
		}ifelse
	}def
	
	/radialRamp
		/fillRamp load def
	
	/rampImage
		/fillRamp load def
	
	AGM_Gradient begin
	/Bc{
		6 npop
	}def
	
 end
	
	
}def
/initializeComposite{
	/bwImage{
		pop /_image load 5 execImage 
	}def
	currentdict/rampImage known not{
		/rampImage{
			_color{
				_nSamples setImageParms
	
				
				_rgbRamp{
					_redData _greenData _blueData _nSamples 3 expandColor
					true 3 null ncolorimage
				}{
					_cyanData _magentaData _yellowData _blackData _nSamples 4 expandColor
					true 4 null ncolorimage
				}ifelse
			}{
				_nSamples setImageParms _blackData null bwImage
			}ifelse
		}def
	}if
	/setCStop{
		/_colorStyle exch pt
		_colorStyle 0 eq{
			1 exch sub
			0 0 0
			4 -1 roll
		}if
		
		_colorStyle 2 eq{
			setrgbcolor 4 npop
		}if
		
		_colorStyle 3 eq{
			1 exch sub /_tmp xp
			pop
			4{
				_tmp mul 4 1 roll
			}repeat
		}if
		
		_colorStyle 4 eq{
			3 -1 roll pop pop
			1 exch sub /_tmp xp
			3{
				1 exch sub _tmp mul 1 exch sub 3 1 roll
			}repeat
			setrgbcolor 
			4 npop
		}if
		_colorStyle 2 ne _colorStyle 4 ne and{
			null nsetcustomcolor
		}if
	}def
	/nsetcustomcolor
	{
		pop setcmykcolor
	}def
	/nsetcustomcolorend
	{
	}def
	/ncolorimage{
		pop 
		/_colorimage load 10 execImage
	}def
	_noImage not _level2PS not and{
		/linealFill{
			8 setImageParms
			_color{
				currentcmykcolor
				4{
					makeByte8 4 1 roll
				}repeat
				true 4 null ncolorimage
			}{
				currentgray makeByte8 null bwImage
			}ifelse
		}def
	}if
}def
/npop{
	{pop}repeat
}def
/xd{
	exch def
}def
/nd{
	null def
}def
/pt{
	AGM_Gradient_private 3 1 roll put
}def
/xp{
	exch pt
}def
/xput{
	dup load dup length exch maxlength eq{
		dup dup load dup
		length 2 mul dict copy def
	}if
	load begin
		def
  end
}def
/mySave{
	save /_sSave xp
}def
/myRestore{
	_sSave type /savetype eq{
		_sSave restore
	}if
}def
/gMark{
	counttomark 2 add -1 roll
}def
/execImage{
	/_tmp xp
	{
		exec
	}stopped{
		$error /errorname get /undefinedresult ne{
			stop
		}{
			_tmp npop
		}ifelse
	}if
}def
/pushBSpace{
	newpath gsave
	_bUMatrix astore concat 
}def
/popBSpace{
	grestore
}def
/setImageParms{
	1 8 2 index 0 0 1 0 0 _imageMatrix astore
}def
/linealFill{
	0 0 1 1 rectfill
}def
/testCMYKColorThrough{
	gsave
	setcmykcolor currentcmykcolor
	grestore
	add add add 0 ne
}def
/expandOne	{
	/_tmp xp
	dup type /stringtype ne{
		_tmp string
		exch
		dup 0 ne{
			255 mul cvi
			0 1 _tmp 1 sub{
				3 copy
				exch put pop
			}for
		}if
		pop
	}if
}def
/expandColor{
	/_channels xp
	/_len xp
	_channels{
		_len expandOne _channels 1 roll
	}repeat
}def
/blendColor{
	
	_color{
		_rgbRamp _producingSeps not and{
			_redData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_greenData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_blueData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			/setrgbcolor cvx
		}{
			_cyanData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_magentaData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_yellowData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
			_blackData dup type /stringtype eq{
				/_ndx cvx /get cvx _d255 /exch cvx /get cvx
			}if
	
			_spotColor{
				_rampSD begin
					/_rampSD cvx /begin cvx
	
					spot1 begin
						tintImage dup type /stringtype eq{
							/_ndx cvx /get cvx _d255- /exch cvx /get cvx
						}{
							dup null ne{
								name type /nametype ne{
									1 exch sub
								}if
							}if
						}ifelse
				 end
					/spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
	
					spot2 begin
						tintImage dup type /stringtype eq{
							/_ndx cvx /get cvx _d255- /exch cvx /get cvx
						}{
							dup null ne{
								name type /nametype ne{
									1 exch sub
								}if
							}if
						}ifelse
				 end
					/spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
					/end cvx
			 end
				/_rampSD cvx
				/nsetcustomcolor cvx
			}{
				/setcmykcolor cvx
			}ifelse
		}ifelse
	}{
		_blackData /_ndx cvx /get cvx
		_d255 /exch cvx /get cvx
		
		_usingSmoothShade{
			1 /exch cvx /sub cvx 0 0 0 4 -1 /roll cvx /setcmykcolor cvx
		}{
			 /setgray cvx
		}ifelse
	}ifelse
}def
/linealRamp{
	pushBSpace
	_ramp{
		linealImage
	}{
		linealFill
	}ifelse
	popBSpace
	/_rampIndex _rampIndex 1 sub pt
	_rampIndex 0 gt{
		getRampData
	}if
}def
/radialGrad{
	/_firstShell true pt
	_usingSmoothShade not{
		fill
	}if
	pushBSpace
	
	_radHilite{
		_xHi _yHi _bUMatrix idtransform /_yHi xp /_xHi xp
		_rampPoint 1 lt{
			1 _rampPoint sub dup _xHi mul exch _yHi mul translate
		}if
	}if
	_rampIndex{
			radialRamp
		/_rampIndex _rampIndex 1 sub pt
		_rampIndex 0 gt{
			getRampData
		}if
	}repeat
	
	popBSpace
	
}def
/getNSamples{
	0 exch
	{
		dup type /stringtype eq{
			length exch pop exit
		}if
		pop
	}forall
	dup 0 eq{
		pop 1
	}if
}def
/getRampData{
	/_rampType gMark pt
	/_color _rampType 0 gt pt
	/_ccRGB _rampType 5 eq _rampType 6 eq or pt
	/_rgbRamp _rampType 4 eq _ccRGB or pt
	/_ccProcess _rampType 2 eq _rampType 3 eq or pt
	_producingSeps{
		_rampSD initSpotDict
		/_spotColor _ccProcess _ccRGB or pt
	}{
		/_spotColor false pt
	}ifelse
	/_ramp true pt
	100 div /_rampPoint xp
	100 div /_midPoint xp
	
	dup /_colorStyle xp
	_colorStyle 0 eq{ 
		2
	}{
		_colorStyle 1 eq{ 
			5
		}{
			_colorStyle 2 eq{
				8
			}{
				_colorStyle 3 eq{
					_producingSeps{
						_rampSD begin
							spot1 begin
								/name 3 index def
								/spot_K 4 index def
								/spot_Y 5 index def
								/spot_M 6 index def
								/spot_C 7 index def
						 end
					 end
					}if
					7
				}{
					_producingSeps{
						_rampSD begin
							spot1 begin
								/name 4 index def
								/spot_K 8 index def
								/spot_Y 9 index def
								/spot_M 10 index def
								/spot_C 11 index def
						 end
					 end
					}if
					11
				} ifelse
			}ifelse
		}ifelse
	}ifelse
	/_tmp xp
	_tmp index 100 div /_endPoint xp
	
	_gradType 1 eq{
		_tmp 1 add index 100 div /_midPoint xp
	}if
	
	_producingSeps{
		_tmp 2 add index /_nextColorStyle xp
		_nextColorStyle 3 eq{
			/_tmp _tmp 4 add pt
			_tmp index dup
			_rampSD begin
				spot1 /name get ne{
					spot2 begin
						/name xd
						/spot_K _tmp 2 add index def
						/spot_Y _tmp 3 add index def
						/spot_M _tmp 4 add index def
						/spot_C _tmp 5 add index def
				 end
				}{
					pop
				}ifelse
		 end
		}if
		_nextColorStyle 4 eq{
			/_tmp _tmp 5 add pt
			_tmp index dup
			_rampSD begin
				spot1 /name get ne{
					spot2 begin
						/name xd
						/spot_K _tmp 5 add index def
						/spot_Y _tmp 6 add index def
						/spot_M _tmp 7 add index def
						/spot_C _tmp 8 add index def
				 end
				}{
					pop
				}ifelse
		 end
		}if
	}if
	_rampType 3 eq _rampType 6 eq or{
		/_tint2Data gMark pt
	}if
	_ccProcess _ccRGB or{
		/_tint1Data gMark pt
	}if
	_rgbRamp{
		/_blueData gMark pt
		/_greenData gMark pt
		/_redData gMark pt
	}if
	
	_producingSeps{
		_rampSD begin
			_ccProcess _ccRGB or{
				_rampType 3 eq _rampType 6 eq or{
					spot2 begin
						/tintImage _gradType 0 eq{
							_tint2Data
						}{
							_tint1Data
						}ifelse
						def
						name null eq{
							/name /Black def
						}if
				 end
				}if
				spot1 begin
					/tintImage _gradType 0 eq _rampType 2 eq or _rampType 5 eq or{
						_tint1Data
					}{
						_tint2Data
					}ifelse
					def
					_rampType 2 eq _rampType 5 eq or{
						name null eq{
							/name spot2 /name get def
							spot2 /name null put
						}if
					}{
						name null eq{
							/name /Black def
						}if
					}ifelse
			 end
			}if
	 end
	}if
	/_blackData gMark pt
	_rampType 0 gt{
		counttomark 4 add -3 roll
		/_yellowData xp
		/_magentaData xp
		/_cyanData xp
	}if
	_ramp{
		/_nSamples
			[
			_rampType 0 eq {_blackData}if
			_rampType 1 eq {_cyanData _magentaData _yellowData _blackData}if
			_rampType 2 eq {_cyanData _magentaData _yellowData _blackData _tint1Data}if
			_rampType 3 eq {_cyanData _magentaData _yellowData _blackData _tint1Data _tint2Data}if
			_rampType 4 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData}if
			_rampType 5 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data}if
			_rampType 6 eq {_cyanData _magentaData _yellowData _blackData _redData _greenData _blueData _tint1Data _tint2Data}if
			] getNSamples pt
		_usingSmoothShade not {/_ramp _nSamples 1 gt pt} if
	} if
	
	setCStop
}def
/rectImage{
	gsave
	/_sInc 1 pt
	/_bInc 1 _nSamples div pt
	/_uRampLen 1 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt pt
	/_pChange _uRampLen 0 eq{0}{_nSamples _uRampLen div}ifelse pt
	0
	_nSamples
	[
	/dup cvx
	/_ndx /exch cvx /pt cvx
	blendColor
	0 0 _bInc 1 /rectfill cvx
	_bInc 0 /translate cvx
	_sInc /add cvx
	] cvx
	bind
	repeat
	pop
	_spotColor{
		nsetcustomcolorend
	}if
	grestore
}def
/radialInit{
	/_nRadSamples _nSamples dup 0 eq{pop 1}if pt
	/_sInc -1 pt
	/_rampLen _rampPoint _endPoint sub pt
	/_bInc _rampLen _nSamples div neg pt
	/_optimize false pt
	_subSampleOK{
		/_uRampLen
			_rampLen 0 dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
			0 _rampLen dtransform _dUserSpace idtransform dup mul exch dup mul add sqrt
			2 copy lt{
				exch
			}if pop
		pt
		/_pChange 
			_uRampLen 0 eq{
				0
			}{
				_nSamples _uRampLen div
			}ifelse
		pt
		_pChange .5 gt dup /_optimize xp{
			/_nRadSamples _uRampLen 2 div round cvi dup 1 le{pop 2}if pt
			/_bInc _rampLen _nRadSamples div neg pt
			/_sInc _nSamples 1 sub _nRadSamples 1 sub div neg pt
		}if
	}if
	_radHilite{
		/_xBCInc _xHi _rampLen mul _nRadSamples div pt
		/_yBCInc _yHi _rampLen mul _nRadSamples div pt
	}if
}def
currentdict/radialRamp known not{
	/radialRamp{
	
		/_saveMatrix _saveMatrix currentmatrix def
		
		radialInit
	
		_rampPoint
	
		_nSamples 1 sub
	
		_nRadSamples 
		[
			/dup cvx
	
			_optimize{
				/round cvx /cvi cvx
			}if
	
			/_ndx /exch cvx /pt cvx
			
			_useShells{
				/_firstShell cvx{
					/_firstShell false pt
				}{
					0 0 3 index 360 0 arcn fill
				}/ifelse cvx
			}if
	
			blendColor
	
			_useShells{
				0 0 3 /index cvx 0 360 /arc cvx 
			}{
				0 0 3 /index cvx 0 360 /arc cvx /fill cvx
			}ifelse
	
			/exch cvx _bInc /add cvx /exch cvx
	
			_sInc /add cvx
	
			_radHilite{
				_xBCInc _yBCInc /translate cvx
			}if
		] cvx bind
		repeat
	
		pop pop
	
		_saveMatrix setmatrix
	
		_radHilite{
			_xHi _rampLen mul _yHi _rampLen mul translate
		}if
		
		_useShells _rampIndex 1 eq and{
			fill
		}if
		_spotColor{
			nsetcustomcolorend
		}if
	
		
	}def
}if
end
end
defaultpacking setpacking
%%EndResource
%%BeginProcSet: Adobe_ColorImage_AI6 1.1 0
userdict /Adobe_ColorImage_AI6 known not
{
	userdict /Adobe_ColorImage_AI6 24 dict put 
} if
userdict /Adobe_ColorImage_AI6 get begin
/initialize
{ 
	Adobe_ColorImage_AI6 begin
	Adobe_ColorImage_AI6
	{
		dup type /arraytype eq
		{
			dup xcheck
			{
				bind
			} if
		} if
		pop pop
	} forall
} def
/terminate { end } def
currentdict /Adobe_ColorImage_AI6_Vars known not
{
	/Adobe_ColorImage_AI6_Vars 15 dict def
} if
Adobe_ColorImage_AI6_Vars begin
	/channelcount 0 def
	/sourcecount 0 def
	/sourcearray 4 array def
	/plateindex -1 def
	/XIMask 0 def
	/XIBinary 0 def
	/XIChannelCount 0 def
	/XIBitsPerPixel 0 def
	/XIImageHeight 0 def
	/XIImageWidth 0 def
	/XIImageMatrix null def
	/XIBuffer null def
	/XIDataProc null def
	/XIVersion 6 def
end
/WalkRGBString null def
/WalkCMYKString null def
/StuffRGBIntoGrayString null def
/RGBToGrayImageProc null def
/StuffCMYKIntoGrayString null def
/CMYKToGrayImageProc null def
/ColorImageCompositeEmulator null def
/SeparateCMYKImageProc null def
/FourEqual null def
/TestPlateIndex null def
currentdict /_colorimage known not
{
	/colorimage where
	{
		/colorimage get /_colorimage exch def
	}
	{
		/_colorimage null def
	} ifelse
} if
/_currenttransfer systemdict /currenttransfer get def
/colorimage null def
/XI null def
/WalkRGBString
{
	0 3 index
	dup length 1 sub 0 3 3 -1 roll
	{
		3 getinterval { } forall
		5 index exec
		3 index
	} for
	
	 5 { pop } repeat
} def
/WalkCMYKString
{
	0 3 index
	dup length 1 sub 0 4 3 -1 roll
	{
		4 getinterval { } forall
		
		6 index exec
		
		3 index
		
	} for
	
	5 { pop } repeat
	
} def
/StuffRGBIntoGrayString
{
	.11 mul exch
	
	.59 mul add exch
	
	.3 mul add
	
	cvi 3 copy put
	
	pop 1 add
} def
/RGBToGrayImageProc
{	
	Adobe_ColorImage_AI6_Vars begin 
		sourcearray 0 get exec
		dup length 3 idiv string
		dup 3 1 roll 
		
		/StuffRGBIntoGrayString load exch
		WalkRGBString
 end
} def
/StuffCMYKIntoGrayString
{
	exch .11 mul add
	
	exch .59 mul add
	
	exch .3 mul add
	
	dup 255 gt { pop 255 } if
	
	255 exch sub cvi 3 copy put
	
	pop 1 add
} def
/CMYKToGrayImageProc
{	
	Adobe_ColorImage_AI6_Vars begin
		sourcearray 0 get exec
		dup length 4 idiv string
		dup 3 1 roll 
		
		/StuffCMYKIntoGrayString load exch
		WalkCMYKString
 end
} def
/ColorImageCompositeEmulator
{
	pop true eq
	{
		Adobe_ColorImage_AI6_Vars /sourcecount get 5 add { pop } repeat
	}
	{
		Adobe_ColorImage_AI6_Vars /channelcount get 1 ne
		{
			Adobe_ColorImage_AI6_Vars begin
				sourcearray 0 3 -1 roll put
			
				channelcount 3 eq 
				{ 
					/RGBToGrayImageProc 
				}
				{ 
					/CMYKToGrayImageProc
				} ifelse
				load
		 end
		} if
		image
	} ifelse
} def
/SeparateCMYKImageProc
{	
	Adobe_ColorImage_AI6_Vars begin
		sourcecount 0 ne
		{
			sourcearray plateindex get exec
		}
		{			
			sourcearray 0 get exec
			
			dup length 4 idiv string
			
			0 2 index
			
			plateindex 4 2 index length 1 sub
			{
				get 255 exch sub
				
				3 copy put pop 1 add
				
				2 index
			} for
			pop pop exch pop
		} ifelse
 end
} def
	
/FourEqual
{
	4 index ne
	{
		pop pop pop false
	}
	{
		4 index ne
		{
			pop pop false
		}
		{
			4 index ne
			{
				pop false
			}
			{
				4 index eq
			} ifelse
		} ifelse
	} ifelse
} def
/TestPlateIndex
{
	Adobe_ColorImage_AI6_Vars begin
		/plateindex -1 def
		/setcmykcolor where
		{
			pop
			gsave
			1 0 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 1 0 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 0 1 0 setcmykcolor systemdict /currentgray get exec 1 exch sub
			0 0 0 1 setcmykcolor systemdict /currentgray get exec 1 exch sub
			grestore
			1 0 0 0 FourEqual 
			{ 
				/plateindex 0 def
			}
			{
				0 1 0 0 FourEqual
				{ 
					/plateindex 1 def
				}
				{
					0 0 1 0 FourEqual
					{
						/plateindex 2 def
					}
					{
						0 0 0 1 FourEqual
						{ 
							/plateindex 3 def
						}
						{
							0 0 0 0 FourEqual
							{
								/plateindex 5 def
							} if
						} ifelse
					} ifelse
				} ifelse
			} ifelse
			pop pop pop pop
		} if
		plateindex
 end
} def
/colorimage
{
	Adobe_ColorImage_AI6_Vars begin
		/channelcount 1 index def
		/sourcecount 2 index 1 eq { channelcount 1 sub } { 0 } ifelse def
		4 sourcecount add index dup 
		8 eq exch 1 eq or not
 end
	
	{
		/_colorimage load null ne
		{
			_colorimage
		}
		{
			Adobe_ColorImage_AI6_Vars /sourcecount get
			7 add { pop } repeat
		} ifelse
	}
	{
		dup 3 eq
		TestPlateIndex
		dup -1 eq exch 5 eq or or
		{
			/_colorimage load null eq
			{
				ColorImageCompositeEmulator
			}
			{
				dup 1 eq
				{
					pop pop image
				}
				{
					Adobe_ColorImage_AI6_Vars /plateindex get 5 eq
					{
						gsave
						
						0 _currenttransfer exec
						1 _currenttransfer exec
						eq
						{ 0 _currenttransfer exec 0.5 lt }
						{ 0 _currenttransfer exec 1 _currenttransfer exec gt } ifelse
						
						{ { pop 0 } } { { pop 1 } } ifelse
						systemdict /settransfer get exec
					} if
					
					_colorimage
					
					Adobe_ColorImage_AI6_Vars /plateindex get 5 eq
					{
						grestore
					} if
				} ifelse
			} ifelse
		}
		{
			dup 1 eq
			{
				pop pop
				image
			}
			{
				pop pop
				Adobe_ColorImage_AI6_Vars begin
					sourcecount -1 0
					{			
						exch sourcearray 3 1 roll put
					} for
					/SeparateCMYKImageProc load
			 end
				systemdict /image get exec
			} ifelse
		} ifelse
	} ifelse
} def
/XG
{
	pop pop
} def
/XF
{
	13 {pop} repeat
} def
/Xh
{
	Adobe_ColorImage_AI6_Vars begin
		gsave
		/XIMask exch 0 ne def
		/XIImageHeight exch def
		/XIImageWidth exch def
		/XIImageMatrix exch def
		0 0 moveto
		XIImageMatrix concat
		XIImageWidth XIImageHeight scale
		
		XIMask
		{
			/_lp /null ddef
			_fc
			/_lp /imagemask ddef
		}
		if
		/XIVersion 7 def
 end
} def
/XH
{
	Adobe_ColorImage_AI6_Vars begin
		/XIVersion 6 def
		grestore
 end
} def
/XI
{
	Adobe_ColorImage_AI6_Vars begin
		gsave
		/XIMask exch 0 ne def
		/XIBinary exch 0 ne def
		pop
		pop
		/XIChannelCount exch def
		/XIBitsPerPixel exch def
		/XIImageHeight exch def
		/XIImageWidth exch def
		pop pop pop pop
		/XIImageMatrix exch def
		XIBitsPerPixel 1 eq
		{
			XIImageWidth 8 div ceiling cvi
		}
		{
			XIImageWidth XIChannelCount mul
		} ifelse
		/XIBuffer exch string def
		XIBinary
		{
			/XIDataProc { currentfile XIBuffer readstring pop } def
			XIVersion 6 le
			{
				currentfile 128 string readline pop pop
			}
			if
		}
		{
			/XIDataProc { currentfile XIBuffer readhexstring pop } def
		} ifelse
		
		XIVersion 6 le
		{
			0 0 moveto
			XIImageMatrix concat
			XIImageWidth XIImageHeight scale
			XIMask
			{
				/_lp /null ddef
				_fc
				/_lp /imagemask ddef
			} if
		} if
		
		XIMask
		{
			XIImageWidth XIImageHeight
			false
			[ XIImageWidth 0 0 XIImageHeight neg 0 0 ]
			/XIDataProc load
			imagemask
		}
		{
			XIImageWidth XIImageHeight
			XIBitsPerPixel
			[ XIImageWidth 0 0 XIImageHeight neg 0 0 ]
			/XIDataProc load
			
			XIChannelCount 1 eq
			{
				gsave
				0 setgray
				image
				grestore
			}
			{
				false
				XIChannelCount
				colorimage
			} ifelse
		} ifelse
		grestore
 end
} def
end
%%EndProcSet
%%BeginResource: procset Adobe_Illustrator_AI5 1.1 0
%%Title: (Adobe Illustrator (R) Version 5.0 Full Prolog)
%%Version: 1.1 0
%%CreationDate: (3/7/1994) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_Illustrator_AI5_vars 81 dict dup begin
put
/_eo false def
/_lp /none def
/_pf
{
} def
/_ps
{
} def
/_psf
{
} def
/_pss
{
} def
/_pjsf
{
} def
/_pjss
{
} def
/_pola 0 def
/_doClip 0 def
/cf currentflat def
/_tm matrix def
/_renderStart
[
/e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0
] def
/_renderEnd
[
null null null null /i1 /i1 /i1 /i1
] def
/_render -1 def
/_rise 0 def
/_ax 0 def
/_ay 0 def
/_cx 0 def
/_cy 0 def
/_leading
[
0 0
] def
/_ctm matrix def
/_mtx matrix def
/_sp 16#020 def
/_hyphen (-) def
/_fScl 0 def
/_cnt 0 def
/_hs 1 def
/_nativeEncoding 0 def
/_useNativeEncoding 0 def
/_tempEncode 0 def
/_pntr 0 def
/_tDict 2 dict def
/_wv 0 def
/Tx
{
} def
/Tj
{
} def
/CRender
{
} def
/_AI3_savepage
{
} def
/_gf null def
/_cf 4 array def
/_if null def
/_of false def
/_fc
{
} def
/_gs null def
/_cs 4 array def
/_is null def
/_os false def
/_sc
{
} def
/_pd 1 dict def
/_ed 15 dict def
/_pm matrix def
/_fm null def
/_fd null def
/_fdd null def
/_sm null def
/_sd null def
/_sdd null def
/_i null def
/discardSave null def
/buffer 256 string def
/beginString null def
/endString null def
/endStringLength null def
/layerCnt 1 def
/layerCount 1 def
/perCent (%) 0 get def
/perCentSeen? false def
/newBuff null def
/newBuffButFirst null def
/newBuffLast null def
/clipForward? false def
end
userdict /Adobe_Illustrator_AI5 known not {
	userdict /Adobe_Illustrator_AI5 91 dict put
} if
userdict /Adobe_Illustrator_AI5 get begin
/initialize
{
	Adobe_Illustrator_AI5 dup begin
	Adobe_Illustrator_AI5_vars begin
	discardDict
	{
		bind pop pop
	} forall
	dup /nc get begin
	{
		dup xcheck 1 index type /operatortype ne and
		{
			bind
		} if
		pop pop
	} forall
 end
	newpath
} def
/terminate
{
 end
 end
} def
/_
null def
/ddef
{
	Adobe_Illustrator_AI5_vars 3 1 roll put
} def
/xput
{
	dup load dup length exch maxlength eq
	{
		dup dup load dup
		length 2 mul dict copy def
	} if
	load begin
	def
 end
} def
/npop
{
	{
		pop
	} repeat
} def
/sw
{
	dup length exch stringwidth
	exch 5 -1 roll 3 index mul add
	4 1 roll 3 1 roll mul add
} def
/swj
{
	dup 4 1 roll
	dup length exch stringwidth
	exch 5 -1 roll 3 index mul add
	4 1 roll 3 1 roll mul add
	6 2 roll /_cnt 0 ddef
	{
		1 index eq
		{
			/_cnt _cnt 1 add ddef
		} if
	} forall
	pop
	exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop
} def
/ss
{
	4 1 roll
	{
		2 npop
		(0) exch 2 copy 0 exch put pop
		gsave
		false charpath currentpoint
		4 index setmatrix
		stroke
		grestore
		moveto
		2 copy rmoveto
	} exch cshow
	3 npop
} def
/jss
{
	4 1 roll
	{
		2 npop
		(0) exch 2 copy 0 exch put
		gsave
		_sp eq
		{
			exch 6 index 6 index 6 index 5 -1 roll widthshow
			currentpoint
		}
		{
			false charpath currentpoint
			4 index setmatrix stroke
		} ifelse
		grestore
		moveto
		2 copy rmoveto
	} exch cshow
	6 npop
} def
/sp
{
	{
		2 npop (0) exch
		2 copy 0 exch put pop
		false charpath
		2 copy rmoveto
	} exch cshow
	2 npop
} def
/jsp
{
	{
		2 npop
		(0) exch 2 copy 0 exch put
		_sp eq
		{
			exch 5 index 5 index 5 index 5 -1 roll widthshow
		}
		{
			false charpath
		} ifelse
		2 copy rmoveto
	} exch cshow
	5 npop
} def
/pl
{
	transform
	0.25 sub round 0.25 add exch
	0.25 sub round 0.25 add exch
	itransform
} def
/setstrokeadjust where
{
	pop true setstrokeadjust
	/c
	{
		curveto
	} def
	/C
	/c load def
	/v
	{
		currentpoint 6 2 roll curveto
	} def
	/V
	/v load def
	/y
	{
		2 copy curveto
	} def
	/Y
	/y load def
	/l
	{
		lineto
	} def
	/L
	/l load def
	/m
	{
		moveto
	} def
}
{
	/c
	{
		pl curveto
	} def
	/C
	/c load def
	/v
	{
		currentpoint 6 2 roll pl curveto
	} def
	/V
	/v load def
	/y
	{
		pl 2 copy curveto
	} def
	/Y
	/y load def
	/l
	{
		pl lineto
	} def
	/L
	/l load def
	/m
	{
		pl moveto
	} def
} ifelse
/d
{
	setdash
} def
/cf
{
} def
/i
{
	dup 0 eq
	{
		pop cf
	} if
	setflat
} def
/j
{
	setlinejoin
} def
/J
{
	setlinecap
} def
/M
{
	setmiterlimit
} def
/w
{
	setlinewidth
} def
/XR
{
	0 ne
	/_eo exch ddef
} def
/H
{
} def
/h
{
	closepath
} def
/N
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			_eo {eoclip} {clip} ifelse /_doClip 0 ddef
		} if
		newpath
	}
	{
		/CRender
		{
			N
		} ddef
	} ifelse
} def
/n
{
	N
} def
/F
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			gsave _pf grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _fc
			/_doClip 0 ddef
		}
		{
			_pf
		} ifelse
	}
	{
		/CRender
		{
			F
		} ddef
	} ifelse
} def
/f
{
	closepath
	F
} def
/S
{
	_pola 0 eq
	{
		_doClip 1 eq
		{
			gsave _ps grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
			/_doClip 0 ddef
		}
		{
			_ps
		} ifelse
	}
	{
		/CRender
		{
			S
		} ddef
	} ifelse
} def
/s
{
	closepath
	S
} def
/B
{
	_pola 0 eq
	{
		_doClip 1 eq
		gsave F grestore
		{
			gsave S grestore _eo {eoclip} {clip} ifelse newpath /_lp /none ddef _sc
			/_doClip 0 ddef
		}
		{
			S
		} ifelse
	}
	{
		/CRender
		{
			B
		} ddef
	} ifelse
} def
/b
{
	closepath
	B
} def
/W
{
	/_doClip 1 ddef
} def
/*
{
	count 0 ne
	{
		dup type /stringtype eq
		{
			pop
		} if
	} if
	newpath
} def
/u
{
} def
/U
{
} def
/q
{
	_pola 0 eq
	{
		gsave
	} if
} def
/Q
{
	_pola 0 eq
	{
		grestore
	} if
} def
/*u
{
	_pola 1 add /_pola exch ddef
} def
/*U
{
	_pola 1 sub /_pola exch ddef
	_pola 0 eq
	{
		CRender
	} if
} def
/D
{
	pop
} def
/*w
{
} def
/*W
{
} def
/`
{
	/_i save ddef
	clipForward?
	{
		nulldevice
	} if
	6 1 roll 4 npop
	concat pop
	userdict begin
	/showpage
	{
	} def
	0 setgray
	0 setlinecap
	1 setlinewidth
	0 setlinejoin
	10 setmiterlimit
	[] 0 setdash
	/setstrokeadjust where {pop false setstrokeadjust} if
	newpath
	0 setgray
	false setoverprint
} def
/~
{
 end
	_i restore
} def
/O
{
	0 ne
	/_of exch ddef
	/_lp /none ddef
} def
/R
{
	0 ne
	/_os exch ddef
	/_lp /none ddef
} def
/g
{
	/_gf exch ddef
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_gf setgray
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/G
{
	/_gs exch ddef
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_gs setgray
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/k
{
	_cf astore pop
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_cf aload pop setcmykcolor
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/K
{
	_cs astore pop
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_cs aload pop setcmykcolor
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/x
{
	/_gf exch ddef
	findcmykcustomcolor
	/_if exch ddef
	/_fc
	{
		_lp /fill ne
		{
			_of setoverprint
			_if _gf 1 exch sub setcustomcolor
			/_lp /fill ddef
		} if
	} ddef
	/_pf
	{
		_fc
		_eo {eofill} {fill} ifelse
	} ddef
	/_psf
	{
		_fc
		ashow
	} ddef
	/_pjsf
	{
		_fc
		awidthshow
	} ddef
	/_lp /none ddef
} def
/X
{
	/_gs exch ddef
	findcmykcustomcolor
	/_is exch ddef
	/_sc
	{
		_lp /stroke ne
		{
			_os setoverprint
			_is _gs 1 exch sub setcustomcolor
			/_lp /stroke ddef
		} if
	} ddef
	/_ps
	{
		_sc
		stroke
	} ddef
	/_pss
	{
		_sc
		ss
	} ddef
	/_pjss
	{
		_sc
		jss
	} ddef
	/_lp /none ddef
} def
/A
{
	pop
} def
/annotatepage
{
userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse
} def
/XT {
	pop pop
} def
/discard
{
	save /discardSave exch store
	discardDict begin
	/endString exch store
	gt38?
	{
		2 add
	} if
	load
	stopped
	pop
 end
	discardSave restore
} bind def
userdict /discardDict 7 dict dup begin
put
/pre38Initialize
{
	/endStringLength endString length store
	/newBuff buffer 0 endStringLength getinterval store
	/newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store
	/newBuffLast newBuff endStringLength 1 sub 1 getinterval store
} def
/shiftBuffer
{
	newBuff 0 newBuffButFirst putinterval
	newBuffLast 0
	currentfile read not
	{
	stop
	} if
	put
} def
0
{
	pre38Initialize
	mark
	currentfile newBuff readstring exch pop
	{
		{
			newBuff endString eq
			{
				cleartomark stop
			} if
			shiftBuffer
		} loop
	}
	{
	stop
	} ifelse
} def
1
{
	pre38Initialize
	/beginString exch store
	mark
	currentfile newBuff readstring exch pop
	{
		{
			newBuff beginString eq
			{
				/layerCount dup load 1 add store
			}
			{
				newBuff endString eq
				{
					/layerCount dup load 1 sub store
					layerCount 0 eq
					{
						cleartomark stop
					} if
				} if
			} ifelse
			shiftBuffer
		} loop
	} if
} def
2
{
	mark
	{
		currentfile buffer readline not
		{
		stop
		} if
		endString eq
		{
			cleartomark stop
		} if
	} loop
} def
3
{
	/beginString exch store
	/layerCnt 1 store
	mark
	{
		currentfile buffer readline not
		{
		stop
		} if
		dup beginString eq
		{
			pop /layerCnt dup load 1 add store
		}
		{
			endString eq
			{
				layerCnt 1 eq
				{
					cleartomark stop
				}
				{
					/layerCnt dup load 1 sub store
				} ifelse
			} if
		} ifelse
	} loop
} def
end
userdict /clipRenderOff 15 dict dup begin
put
{
	/n /N /s /S /f /F /b /B
}
{
	{
		_doClip 1 eq
		{
			/_doClip 0 ddef _eo {eoclip} {clip} ifelse
		} if
		newpath
	} def
} forall
/Tr /pop load def
/Bb {} def
/BB /pop load def
/Bg {12 npop} def
/Bm {6 npop} def
/Bc /Bm load def
/Bh {4 npop} def
end
/Lb
{
	4 npop
	6 1 roll
	pop
	4 1 roll
	pop pop pop
	0 eq
	{
		0 eq
		{
			(%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard
		}
		{
			
			/clipForward? true def
			
			/Tx /pop load def
			/Tj /pop load def
			
			currentdict end clipRenderOff begin begin
		} ifelse
	}
	{
		0 eq
		{
			save /discardSave exch store
		} if
	} ifelse
} bind def
/LB
{
	discardSave dup null ne
	{
		restore
	}
	{
		pop
		clipForward?
		{
			currentdict
		 end
		 end
		 begin
					
			/clipForward? false ddef
		} if
	} ifelse
} bind def
/Pb
{
	pop pop
	0 (%AI5_EndPalette) discard
} bind def
/Np
{
	0 (%AI5_End_NonPrinting--) discard
} bind def
/Ln /pop load def
/Ap
/pop load def
/Ar
{
	72 exch div
	0 dtransform dup mul exch dup mul add sqrt
	dup 1 lt
	{
		pop 1
	} if
	setflat
} def
/Mb
{
	q
} def
/Md
{
} def
/MB
{
	Q
} def
/nc 3 dict def
nc begin
/setgray
{
	pop
} bind def
/setcmykcolor
{
	4 npop
} bind def
/setcustomcolor
{
	2 npop
} bind def
currentdict readonly pop
end
end
setpacking
%%EndResource
%%BeginResource: procset Adobe_blend_AI5 1.4 0
%%Title: (Adobe Illustrator (R) Version 5.0 Blend ProcSet)
%%Version: 1.4 0
%%CreationDate: (11/19/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
userdict /defaultpacking currentpacking put true setpacking
userdict /Adobe_blend_AI5 70 dict dup begin
put
/bd
{
	bind def
} bind def
/xs
{
	exch store
} bd
/nullProc
{
	{
	}
} def
/initialize
{
	pop pop
	Adobe_blend_AI5 begin
		Adobe_blend_AI5_vars begin
			/_contoneDevice where
			{
				pop
			}
			{
				/_contoneDevice false def	
			} ifelse
					
			/_dpiThreshold where
			{
				pop
			}
			{	
				/_dpiThreshold 600 def
			} ifelse
			
			/_screenFreqThreshold where
			{
				pop
			}
			{	
				/_screenFreqThreshold 150 def
			} ifelse
			
			/tRectOK? deviceDPI _dpiThreshold le currentScreenFreq _screenFreqThreshold le and _contoneDevice not and def
	/invertXfer
	{
		[
		{
			1 exch sub
				} /exec load systemdict/currenttransfer get exec /exec load
				] cvx systemdict/settransfer get exec
			} bd
			/spotDict 3 dict dup begin
				/nSpots 2 def
				/spot1 7 dict def
				/spot2 7 dict def
		 end
			def
			composite?
			{
				/_setgray_ /setgray load def
				/_fill_ /fill load def
				/_image_ /image load def
			}
			{
				/_setgray_ systemdict/setgray get def
				/_fill_ systemdict/fill get def
				/_image_ systemdict/image get def
			} ifelse
		} bd
		/terminate
		{
			currentdict Adobe_blend_AI5_vars eq
			{
		 end
			currentdict Adobe_blend_AI5 eq
			{
		 end
		} if
	} if
} bd
/_compositeSpotDevice where
{
 begin
		_compositeSpotDevice 0 ne {userdict /composite? true put} if
 end
}
{
	/_compositeSpotDevice 0 def	
} ifelse
	
/nullString () def
/d255 256 array def
0 1 255
{
	d255 exch dup 255 div put
} bind for
/d255- 256 array def
0 1 255
{
	d255- exch 1 d255 2 index get sub put
} bind for
/dUserSpace matrix defaultmatrix def
currentdict /Adobe_blend_AI5_vars 89 dict dup begin
put
{
	/f /F /s /S /b /B
}
{
	null def
} bind forall
/byte 1 string def
/sSave null def
/setSSave
{
	save /sSave exch store
} bind def
/Bm null def
/doBlend null def
/startC? false def
/endC? false def
/fCMYK? null def
/startTint 0 def
/endTint 0 def
/bSMatrix matrix def
/bUMatrix matrix def
/dMatrix matrix def
/inLine? true def
/pTState? false def
/bHi? false def
/yHi 0 def
/xHi 0 def
/noImg /lv1Fix where
{
	pop lv1Fix
}
{
	false
} ifelse
def
/ccAry1 5 array def
/ccTint 0 def
/spotColor? false def
/colorimage? true def
[
/tint1Data
/tint2Data
/spotDict
/bAxis
/ubAxis
/pChange
/optimize?
/nSamples
/sInc
/blendProc
/_bn
/xBCInc
/yBCInc
/bInc
/bRender
/cBName
/cBType
/nColors
/color?
/blend?
/colorType
/cData
/cDataLen
/bDataLen
/rampPoint
/midPoint
/endPoint
/blendLength
/blackData
/yeData
/mgData
/cyData
/cnt1
/ndx
/_fill
/tmp
counttomark
{
	null def
} bind
repeat
pop
currentdict
end
currentdict
end
exch
begin
begin
/unitSq
{
	0 0 moveto 0 1 lineto 1 1 lineto 1 0 lineto closepath
} bd
/gMark
{
	counttomark 2 add -1 roll
} bd
/setCustomColor
{
	dup /ccTint exch store
	1 exch sub 6 1 roll
	ccAry1 astore
	exch setcustomcolor
} bd
/currentCustomColor
{
	ccAry1 aload pop ccTint
} bd
/nsetcustomcolor where 
{
	pop
}
{
	/nsetcustomcolor
	{
		pop setcmykcolor	
	} bd
} ifelse
/nsetcustomcolorend where 
{
	pop
}
{
	/nsetcustomcolorend
	{
	} bd
} ifelse
/setBSpace
{
	newpath bUMatrix astore concat unitSq
} bd
/setCStop
{
	dup 0 eq
	{
		pop
		
		spotColor?
			{
			dup 1 exch sub /ccTint exch def
			ccAry1 4 /Black put
			} if
		setgray
	}
	{
		1 eq
		{
			setcmykcolor
		}
		{
			composite? not colorType 2 lt and
			{
				forceCMYK
			}
			{
				setCustomColor
			} ifelse
		} ifelse
	} ifelse
} bd
/makeByte
{
	/tmp 0 store
	255 mul cvi
	8 string 8
	{
		dup tmp 3 index put /tmp tmp 1 add store
	} repeat
	exch pop
} bd
/setImgSpace
{
	cDataLen 1 8
	2 index 0 0 1 0 0 dMatrix astore
} bd
/bwImage
{
	setImgSpace cData /_image_ load
	{
		exec
	} stopped
	{
		$error /errorname get /undefinedresult ne
		{
			stop
		}
		{
			pop pop pop pop pop
		} ifelse
	} if
} bd
level2?
{
	/bFill
	{
		_fill
	} def
	/bCImg
	{
		/cDataLen bDataLen store
		setImgSpace
		setSSave
		expandSpot
		cyData mgData yeData cData
		expandCMYK
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
} if
/expandOne
{
			dup type /stringtype ne
			{
				cDataLen string
				exch
				dup 0 ne
				{
					255 mul cvi
					0 1 cDataLen 1 sub
					{
						3 copy
						exch put pop
					} for
				} if
				pop
			} if
} bd
/expandSpot
{
	spotColor?
	{
		spotDict begin
			spot1 begin
				tintImage type /nulltype ne
				{
					tintImage expandOne /tintImage exch def
				} if
		  end
			spot2 begin
				tintImage type /nulltype ne
				{
					tintImage expandOne /tintImage exch def
				} if
		  end
	 end
	} if
} bd
/expandCMYK
{
	4
	{
		expandOne 4 1 roll
	} repeat
} bd
/colorimage where dup
{
	exch pop
	
	/ncolorimage where
	{
		pop
	}
	{
		/ncolorimage {pop colorimage} bd
	} ifelse
} if
not
{
	/ncolorimage where 
	{
		pop
	}
	{
		/colorimage? false store
		/ncolorimage
		{
			pop pop pop
	
		setSSave
		/blackData xs
		/yeData xs
		/mgData xs
		/cyData xs
		/cnt1 0 store
		[
		byte dup 0
		cyData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .3 /mul cvx
		}
		{
			.3 mul
		} ifelse
		mgData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .59 /mul cvx
		}
		{
			.59 mul
		} ifelse
		yeData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx .11 /mul cvx
		}
		{
			.11 mul
		} ifelse
		blackData dup type /stringtype eq
		{
			/cnt1 cvx /get cvx d255 /exch cvx /get cvx
		} if
		/add cvx /add cvx /add cvx 1 /exch cvx /sub cvx
		/dup cvx 0 /lt cvx
		{
			pop 0
		} /if cvx
		/dup cvx 1 /gt cvx
		{
			pop 1
		} /if cvx
		255 /mul cvx /cvi cvx
		256 /mod cvx
		/dup cvx 0 /lt cvx
		{
			pop 0
		} /if cvx
		/put cvx
		/cnt1 dup cvx 1 /add cvx /store cvx
		] cvx
		bind
			_image_ 
		sSave restore
	} bd
	} ifelse
} if
level2? not
{
	/bCImg
	{
		/cDataLen bDataLen store
		setImgSpace
		setSSave
		expandSpot
		cyData mgData yeData cData
		colorimage? 
		{
			expandCMYK
		} if
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
	/bwFill
	{
		setSSave
		/cDataLen 8 store
		/cData currentgray makeByte store
		bwImage
		sSave restore
	} bd
	/c1ImgFill
	{
		setSSave
		/cDataLen 8 store
		setImgSpace
		spotColor?
		{
			spotDict begin
				spot1 begin
					currentCustomColor makeByte /tintImage exch def
					/name exch def
					/spot_K exch def
					/spot_Y exch def
					/spot_M exch def
					/spot_C exch def
			 end
				spot2 initSpotData
		 end
		} if
		currentcmykcolor
		4
		{
			makeByte 4 1 roll
		} repeat
		true 4 spotDict
		{
			ncolorimage
		} stopped
		{
			$error /errorname get /undefinedresult ne
			{
				stop
			}
			{
				10
				{
					pop
				} repeat
			} ifelse
		} if
		sSave restore
	} bd
	/bFill
	noImg
	{
		{
			_fill
		}
	}
	{
		{
			color?
			{
				c1ImgFill
			}
			{
				bwFill
			} ifelse
		}
	} ifelse
	bd
} if
composite?
{
	/bCFun
	{
		color?
		{
			cyData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			mgData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			yeData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			cData dup type /stringtype eq
			{
				/ndx cvx /get cvx d255 /exch cvx /get cvx
			} if
			spotColor?
			{
				spotDict begin
					/spotDict cvx /begin cvx
					spot1 begin
						tintImage dup type /stringtype eq
						{
							/ndx cvx /get cvx d255- /exch cvx /get cvx
						}
						{
							dup type /nulltype ne 
							{
								name type /nametype ne {1 exch sub} if
							} if
						} ifelse
				 end
					/spot1 cvx /tintValue 3 -1 /roll cvx /put cvx
					spot2 begin
						tintImage dup type /stringtype eq
						{
							/ndx cvx /get cvx d255- /exch cvx /get cvx
						}
						{
							dup type /nulltype ne 
							{
								name type /nametype ne {1 exch sub} if
							} if
						} ifelse
				 end
					/spot2 cvx /tintValue 3 -1 /roll cvx /put cvx
					/end cvx
			 end
				/spotDict cvx
				/nsetcustomcolor cvx
			}
			{
				/setcmykcolor cvx
			} ifelse
		}
		{
			cData /ndx cvx /get cvx
			d255 /exch cvx /get cvx
			/setgray cvx
		} ifelse
	} bd
	/Bc
	{
		newpath
		gsave
		setBSpace
		nColors 1 eq
		{
			pop pop
			setCStop
		} if
		bFill
		grestore
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			linImg
		}
		{
			bFill
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/rdBm
	{
		/nColors dup load 1 sub store
		_fill
		gsave
		bUMatrix astore concat
		bHi?
		{
			xHi yHi bUMatrix idtransform /yHi exch store /xHi exch store
			rampPoint 1 lt
			{
				1 rampPoint sub dup xHi mul exch yHi mul translate
			} if
		} if
		nColors
		{
			0 0 rampPoint 0 360 arc
			_fill
			blend? bHi? or
			{
				rdBlend
			} if
			nColors 1 gt
			{
				getRData
			} if
			/nColors dup load 1 sub store
		} repeat
		/nColors 1 store
		grestore
	} bd
	/cGetRData
	{
		setCStop
		/blend?
		cData type /stringtype eq
		dup not color? and
		{
			pop
			cyData type /stringtype eq
			mgData type /stringtype eq
			yeData type /stringtype eq
			or or
		} if
		store
	} def
	/cGetRData
} if
/eCStop
{
	mark
	1 index 3 mul 3 add dup 8 gt
	{
		pop 8
	} if
	1 roll
	cleartomark
} bd
composite? not
{
	/knockOut
	level2?
	{
		{
			0 0 0 0 setcmykcolor _fill
		}
	}
	{
		/bFill noImg
		{
			{
				_fill
			}
		}
		{
			{
				_of true eq
				{
					currentgray 1 ne
					{
						bwFill
					} if
				}
				{
					bwFill
				} ifelse
			}
		} ifelse
		def
		/whiteByte 1 makeByte def
		noImg
		{
			{
				0 0 0 0 setcmykcolor _fill
			}
		}
		{
			{
				cBType 0 eq
				{
					setSSave
					/cData whiteByte store
					/cDataLen 8 store
					bwImage
					sSave restore
				}
				{
					_fill
				} ifelse
			}
		} ifelse
	} ifelse
	bd
	/bCFun
	{
		cData dup type /stringtype ne
		{
			color?
			{
				1 exch sub
			} if
		}
		{
			/ndx cvx /get cvx
			color? customColor? not and
			{
				d255-
			}
			{
				d255
			} ifelse
			/exch cvx /get cvx
		} ifelse
		/_setgray_ cvx
	} bd
	/eCCBlend
	{
		dup 3 eq
		{
			pop
			mark 7 1 roll
			6 copy ccThrough? dup /blend? xs
			{
				/startC? true store
				setCustomColor
				customColor?
				{
					/cData tint1Data store
					setCDataLen
				} if
				/endC?
				3 index 3 eq
				{
					4 index 1 ne
				}
				{
					false
				} ifelse
				store
			} if
			cleartomark
			stop
		} if
		1 eq
		{
			pop pop pop
		} if
		pop
		/startC? false store
		6
		{
			8 index
		} repeat
		ccThrough? dup /blend? xs
		{
			/endC? true store
			blend? not
			{
				stop
			} if
			customColor?
			{
				/cData tint1Data store
				setCDataLen
			} if
		} if
	} bd
	/handleOP
	{
		_of not
		{
			knockOut
		} if
	} bd
	/handleROP
	{
		_of not
		{
			0 0 0 0 setcmykcolor _fill
		}
		{
			newpath	
		} ifelse
	} bd
	/rdBm
	{
		/nColors dup load 1 sub store
		blend? 
		{
			_fill
		}
		{
			handleROP
		} ifelse
		gsave
		bUMatrix astore concat
		bHi?
		{
			xHi yHi bUMatrix idtransform /yHi exch store /xHi exch store
			rampPoint 1 lt
			{
				1 rampPoint sub dup xHi mul exch yHi mul translate
			} if
		} if
		nColors
		{
			0 0 rampPoint 0 360 arc
			blend?
			{
				cData type /stringtype ne bHi? not and
				{
					cData color?
					{
						1 exch sub
					} if
					_setgray_ 
					_fill_ 
				}
				{
					cData type /stringtype ne
					{
						/cDataLen 1 store
						/bDataLen 1 store
					} if
					rdBlend
				} ifelse
			}
			{
				
				handleROP
				
				pTState?
				{
					/bAxis rampPoint endPoint sub store
					xHi bAxis mul yHi bAxis mul translate
				} if
			} ifelse
				
			nColors 1 gt
			{
				getRData
			} if
			/nColors dup load 1 sub store
		} repeat
		/nColors 1 store
		grestore
	} bd
	/ccThrough?
	{
		gsave
		pop 0 setCustomColor
		currentcmykcolor
		grestore
		anyColor?
	} bd
	/forceCMYK
	{
		exch pop
		1 exch sub 5 1 roll
		4
		{
			4 index mul 4 1 roll
		} repeat
		0
		cCMYKData dup /cData ne
		{
			dup /yeData eq
			{
				pop 1 add
			}
			{
				/mgData eq
				{
					2
				}
				{
					3
				} ifelse
				add
			} ifelse
			0
		} if
		pop
		index
		0 eq
		{
			pop pop pop pop 0 0 0 0
		} if
		setcmykcolor
		pop
		/fCMYK? true store
	} bd
	/endCapSepBc
	{
		pop pop
		dup 0 eq
		{
			pop
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				colorType 1 eq
				{
					forceCMYK
				}
				{
					fCMYK?
					{
						forceCMYK
					}
					{
						setCustomColor
					} ifelse
				} ifelse
			} ifelse
		} ifelse
		currentcmykcolor anyColor? 
		blend? and
		{
			bFill
		}
		{
			handleOP
		} ifelse
		
	} bd
} if
/cCMYKData 0 def
composite? dup not
{
	pop customColor?
} if
not
{
	/cCMYKData
	/cyData /mgData /yeData /cData
	black? not
	{
		yellow?
		{
			exch
		}
		{
			magenta?
			{
				3
			}
			{
				4
			} ifelse
			-1 roll
		} ifelse
	} if
	4 1 roll pop pop pop
	store
	/Bc
	{
		gsave
		setBSpace
		nColors 1 gt
		{
			
			blend? currentcmykcolor anyColor? and
			{
				bFill
			}
			{
				handleOP
			} ifelse
		}
		{
			endCapSepBc
		} ifelse
		grestore
		newpath
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			cCMYKData load dup type /stringtype eq
			{
				dup length /cDataLen xs
				/cData xs
				gsave
				colorType 0 ne noImg not and
				{
					invertXfer
				} if
				linImg
				grestore
			}
			{
				pop bFill
			} ifelse
		}
		{
			handleOP
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/cmykGetRData
	{
		/fCMYK? false store
		blend?
		{
			{
				cmykDataProcs colorType get exec
			} stopped
			pop
			blend?
			{
				/cData cCMYKData load store
				setCDataLen
			} if
		} if
	} def
	/cmykDataProcs
	[
	{
		pop
		black? dup /blend? xs
		{
			setgray
			0
		} if
		pop
	}
	{
		cCMYKData load dup type /stringtype ne
		{
			0 0 0
			cyan? not
			{
				4 magenta?
				{
					1
				}
				{
					yellow?
					{
						2
					}
					{
						3
					} ifelse
				} ifelse
				roll
			} if
			4 copy add add add 0 eq
			{
				/blend? false store
			} if
			
			setcmykcolor
			/startC? true store
			/endC? true store
			eCStop
			stop
		} if
		pop
		dup 0 eq
		{
			pop
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				forceCMYK
			} ifelse
		} ifelse
	} bind
	/eCCBlend load
	{
		cBType 1 eq
		{
			tint1Data tint2Data
			/tint1Data xs
			/tint2Data xs
		} if
		0 eq
		{
			black?
			{
				setgray
			}
			{
				0 0 0 4 -1 roll 1 exch sub setcmykcolor
			} ifelse
			black?
			{
				/blend? true store
			} if
			6
			{
				8 index
			} repeat
			ccThrough?
			{
				/blend? true store
			}
			{
				black?
				{
					/cData tint1Data store
					setCDataLen
				}
				{
					/blend? false store
				} ifelse
			} ifelse
		}
		{
			mark 7 1 roll
			6 copy ccThrough?
			{
				forceCMYK
				pop
				stop
			} if
			9 index 0 eq
			{
				black? dup /blend? xs
				{
					pop 1 setgray
					/cData tint2Data store
					setCDataLen
					0
				} if
				pop
			}
			{
				/blend?
				6
				{
					16 index
				} repeat
				ccThrough?
				store
				blend?
				{
					forceCMYK
				} if
			} ifelse
			cleartomark
		} ifelse
	} bind
	] def
	/cmykGetRData
} if
composite? dup not
{
	pop isCMYKSep?
} if
not
{
	/endCapSepBc
	{
		/white? false store
		pop pop
		dup 0 eq
		{
			pop
			/white? 1 index 1 eq store
			setgray
		}
		{
			1 eq
			{
				setcmykcolor
			}
			{
				setCustomColor
			} ifelse
		} ifelse
%
		currentcmykcolor anyColor?
		endC? or
		blend? and
		{
			bFill
		}
		{
			handleOP
		} ifelse
	} bd
	/Bc
	{
		gsave
		setBSpace
		nColors 1 gt
		{
			blend? startC? and
			{
				bFill
			}
			{
				handleOP
			} ifelse
		}
		{
			endCapSepBc
		} ifelse
		grestore
		newpath
	} bd
	/linealBm
	{
		/nColors dup load 1 sub store
		newpath
		gsave
		setBSpace
		blend?
		{
			cData type /stringtype eq
			{
				linImg
			}
			{
				bFill
			} ifelse
		}
		{
			handleOP
		} ifelse
		grestore
		nColors 1 gt
		{
			getRData
		} if
	} bd
	/discardCMY
	{
		counttomark 4 add -3 roll pop pop pop
	} bd
	/testTopCC
	{
		6 copy ccThrough?
	} bd
	/getCRamp
	{
		{
			ccDataProcs colorType 2 sub get exec
		} stopped pop
		blend? cDataLen 0 eq and
		{
			/cDataLen bDataLen store
		} if
	} bd
	/ccGetRData
	{
		/fCMYK? false store
		/startC? false store
		/endC? false store
		colorType 2 lt
		{
			/blend? false def
		} if
		blend?
		{
			getCRamp
		}
		{
			setCStop
		} ifelse
		blend?
		{
			/blend? cData 1 ne store
			blend?
			{
				cData dup type /stringtype ne
				{
					1 exch sub /cData xs 0
				} if
				pop
			} if
		} if
	} def
	/ccDataProcs
	[
	/eCCBlend load
	{
		cBType 1 eq
		{
			tint1Data tint2Data
			/tint1Data xs
			/tint2Data xs
		} if
		0 eq
		{
			/blend? false store
			pop
		}
		{
			mark 7 1 roll
			testTopCC
			{
				/blend? 1 index 1 ne store
				/startC? blend? store
				/endC? false store
				blend? not
				{
					cleartomark stop
				} if
				/cData tint1Data store
				setCDataLen
				setCustomColor
				pop
				stop
			} if
			cleartomark
		} ifelse
		2 index 0 eq
		{
			/blend? false store
		}
		{
			mark 6
			{
				9 index
			} repeat
			testTopCC dup /blend? xs
			{
				/blend? 1 index 1 ne store
				/endC? blend? store
				/startC? false store
				blend? not
				{
					cleartomark stop
				} if
				/cData tint2Data store
				setCDataLen
			} if
			cleartomark
		} ifelse
	} bind
	] def
	/ccGetRData
} if
load Adobe_blend_AI5_vars /getData 3 -1 roll put
/setCDataLen
{
	/cDataLen 0 cData dup type /stringtype eq
	{
		length exch
	} if
	pop store
} bd
/initSpotData
{
 begin
		/name null def
		/tintImage null def
		/tintValue null def
		/spot_C  null def
		/spot_M  null def
		/spot_Y  null def
		/spot_K  null def
 end
} bd
/getRData
{
	/colorType gMark store
	_compositeSpotDevice 0 ne
	{
		spotDict begin
			spot1 initSpotData
			spot2 initSpotData
	 end
		/spotColor? colorType 2 eq colorType 3 eq or def
	} 
	{
		/spotColor? false store
	} ifelse
	/blend? true store
	0 0 0 0 setcmykcolor
	100 div /rampPoint xs
% (between 13 and 87%) 
	100 div /midPoint xs
	dup 0 eq
	{
		2
	}
	{
		dup 1 eq
		{
			5
		}
		{
			_compositeSpotDevice 0 ne
			{
				spotDict begin
					spot1 begin
						/name 3 index def
						/spot_K 4 index def
						/spot_Y 5 index def
						/spot_M 6 index def
						/spot_C 7 index def
				 end
			 end
			} if
			7
		} ifelse
	} ifelse
	/tmp exch def
	tmp index 100 div /endPoint xs
	_compositeSpotDevice 0 ne
	{
		tmp 2 add index 3 eq
		{
			/tmp tmp 4 add def
			tmp index dup 
			spotDict begin
				spot1/name get ne
				{
					spot2 begin
						/name exch def
						/spot_K tmp 2 add index def
						/spot_Y tmp 3 add index def
						/spot_M tmp 4 add index def
						/spot_C tmp 5 add index def
				 end
				}
				{
					pop
				} ifelse
		 end
		} if
	} if
	/color? colorType 0 gt store
	
	colorType 3 eq
	{
		/tint2Data gMark store
	} if
	
	colorType 2 ge
	{
		/tint1Data gMark store
	} if
	_compositeSpotDevice 0 ne
	{
		spotDict begin
		
			colorType 2 ge
			{
				colorType 3 eq
				{
					spot2 begin
						/tintImage cBType 0 eq {tint2Data} {tint1Data} ifelse def
						name null eq {/name /Black def} if
				 end
				} if
				spot1 begin
					/tintImage cBType 0 eq colorType 2 eq or {tint1Data} {tint2Data} ifelse def
					colorType 2 eq 
					{
						name null eq 
						{
							/name spot2/name get def
							spot2/name null put
						} if
					}
					{
						name null eq {/name /Black def} if
					} ifelse
			 end
			} if
	 end
	} if
	
	/cData gMark store
	setCDataLen
	colorType 0 gt
	{
		counttomark 4 add -3 roll
		/yeData xs
		/mgData xs
		/cyData xs
	} if
	blend?
	{
		/bDataLen
		cDataLen dup 0 eq color? and
		{
			[
			cyData mgData yeData
			]
			{
				dup type /stringtype eq
				{
					length exch pop exit
				} if
				pop
			} forall
		} if
		store
		bDataLen 0 eq
		{
			/bDataLen 1 store
		} if
		getData
		blend?
		{
			composite? cDataLen 0 eq and
			{
				/cDataLen bDataLen store
			} if
		} if
	}
	{
		setCStop
	} ifelse
} bd
/Bg
{
	0 0 0 0 setcmykcolor
	6
	{
		pop
	} repeat
	/blendLength xs
	pop pop pop
	/cBName xs
	/bRender xs
	bRender 2 ne
	{
		composite? not
		{
			_of setoverprint
		} if
		_eo {eoclip} {clip} ifelse
		_bn cBName 2 copy known
		{
			get
			mark exch aload pop
			/cBType xs
			/nColors xs
			mark exch aload pop
			0 0
		} if
		pop pop
		getRData
		cBType 0 eq
		{
			/linealBm
		}
		{
			bHi?
			{
				/pTState? nColors 2 gt store
			} if
			/doBlend /rdBlend load store
			/rdBm
		} ifelse
	}
	{
		inLine? not
		{
			mark mark
		} if
		/Bc dup
		{
			cleartomark mark
		} bd
		/nullProc
	} ifelse
	load /Bm xs
} bd
/linImg
noImg
{
	{
		newpath doRctBlend
	}
}
{
	{
		/doBlend
		color? composite? and
		{
			/bCImg
		}
		{
			/bwImage
		} ifelse
		load
		store
	
		0 0 moveto
		tRectOK? composite? and
		{
			{
				mark
				0 1 dtransform atan cvi 90 mod 0 eq
				1 0 dtransform atan cvi 90 mod 0 eq
			} stopped
			{
				cleartomark
			}
			{
				and exch pop
				{
					newpath
					doRctBlend
				}
				{
					doBlend
				} ifelse
			} ifelse
		}
		{
			doBlend
		} ifelse
	} 
} ifelse
bd
/doRctBlend
{
	gsave
	/sInc 1 store
	/nSamples bDataLen store
	/bInc 1 bDataLen div store
	/ubAxis 1 0 dtransform dUserSpace idtransform dup mul exch dup mul add sqrt store
	/pChange ubAxis 0 eq
	{
		0
	}
	{
		bDataLen ubAxis div
	} ifelse
	store
	pChange .5 gt noImg not and dup /optimize? xs
	{
		/nSamples ubAxis 2 div round cvi dup 1 le
		{
			pop 2
		} if
		store
		/bInc 1 nSamples div store
		/sInc bDataLen 1 sub nSamples 1 sub div store
	} if
	0
	nSamples
	[
	/dup cvx
	optimize?
	{
		/round cvx /cvi cvx
	} if
	/ndx /exch cvx /store cvx
	bCFun
	/rectfill where dup
	{
		exch pop _compositeSpotDevice 1 ne and
	} if
	{
		0 0 bInc 1 /rectfill cvx	
	}
	{
		0 0 /moveto cvx
		bInc 0 /lineto cvx
		bInc 1 /lineto cvx
		0 1 /lineto cvx
		/closepath cvx
		/_fill_ cvx
	} ifelse
	bInc 0 /translate cvx
	sInc /add cvx
	] cvx
	bind
	repeat
	pop
	spotColor? {nsetcustomcolorend} if
	
	grestore
} bd
/rdPrep
{
	/nSamples bDataLen dup 0 eq
	{
		pop 1
	} if
	store
	/sInc -1 store
	/bAxis rampPoint endPoint sub store
	/bInc bAxis bDataLen div neg store
	/optimize? false store
	tRectOK?
	{
		/ubAxis
		bAxis 0 dtransform dUserSpace idtransform dup mul exch dup mul add sqrt
		0 bAxis dtransform dUserSpace idtransform dup mul exch dup mul add sqrt
		2 copy lt
		{
			exch
		} if
		pop store
		/pChange ubAxis 0 eq
		{
			0
		}
		{
			bDataLen ubAxis div
		} ifelse
		store
		pChange .5 gt noImg not and dup /optimize? xs
		{
			/nSamples ubAxis 2 div round cvi dup 1 le
			{
				pop 2
			} if
			store
			/bInc bAxis nSamples div neg store
			/sInc bDataLen 1 sub nSamples 1 sub div neg store
		} if
	} if
	bHi?
	{
		/xBCInc xHi bAxis mul nSamples div store
		/yBCInc yHi bAxis mul nSamples div store
	} if
} bd
/rdBlend
{
	newpath
	gsave
	rdPrep
	rampPoint
	bDataLen 1 sub
	nSamples
	[
	/dup cvx
	optimize?
	{
		/round cvx /cvi cvx
	} if
	/ndx /exch cvx /store cvx
	bCFun
	0 0 3 /index cvx 0 360 /arc cvx /_fill_ cvx
	/exch cvx bInc /add cvx /exch cvx
	sInc /add cvx
	bHi?
	{
		xBCInc yBCInc /translate cvx
	} if
	] cvx
	bind
	repeat
	pop pop
	spotColor? {nsetcustomcolorend} if
	grestore
	pTState?
	{
		xHi bAxis mul yHi bAxis mul translate
	} if
} bd
/Bh
{
	pop pop
	/pTState? false store
	2 copy 0 ne exch 0 ne or dup /bHi? xs
	{
		/yHi xs
		/xHi xs
		0 0
	} if
	pop pop
} bd
/BD
{
	inLine? not
	{
		] nColors cBType
		] _bn cBName 3 -1 roll put
 end
} if
} bd
/Bn
{
1 add dict
dup nullString null put
/_bn xs
} bd
/Bd
{
Adobe_blend_AI5_vars begin
	3 -1 roll dup nullString eq dup
	{
		setSSave
	} if
	/inLine? exch def
	/cBName exch def
	/nColors exch def
	/cBType exch def
} bd
/Bb
{
	sSave null eq
	{
		Adobe_blend_AI5_vars begin
		setSSave
	} if
	composite?
	{
		/_fill /fill load store
	}
	{
		/__fill /fill load store
			/_fill
			{
				_of true eq
				{
					currentgray 1 ne
					{
						__fill
					} if
				}
				{
					__fill
				} ifelse
			} def
	} ifelse
	/fill
	{
	} def
	} bd
	/BB
	{
	/cBType xs
	cleartomark cleartomark
	cBType dup
	bRender
	sSave dup type /savetype eq
	{
		restore 0
	} if
	pop
	currentdict Adobe_blend_AI5_vars eq
	{
	 end
	} if
	2 ne exch 0 gt and
	{
		2 eq
		{
			s
		}
		{
			S
		} ifelse
	}
	{
		pop newpath
	} ifelse
} bd
currentdict readonly pop
end
end
defaultpacking setpacking
%%EndResource
%%BeginResource: procset Adobe_pattern_AI5 1.1 0
%%Title: (Adobe Illustrator (R) Version 5.0 Pattern Operators)
%%Version: 1.1 0
%%CreationDate: (03/26/93) ()
%%Copyright: ((C) 1987-1996 Adobe Systems Incorporated All Rights Reserved)
currentpacking true setpacking
userdict /Adobe_Illustrator_AI5 known not {
	userdict /Adobe_Illustrator_AI5 95 dict put
} if
userdict /Adobe_Illustrator_AI5 get begin
/@
{
} def
/&
{
} def
/dp
{
	dup null eq
	{
		pop
		_dp 0 ne
		{
			0 1 _dp 1 sub _dl mod
			{
				_da exch get 3 get
			} for
			_dp 1 sub _dl mod 1 add packedarray
			_da 0 get aload pop 8 -1 roll 5 -1 roll pop 4 1 roll
			definepattern pop
		} if
	}
	{
		_dp 0 ne _dp _dl mod 0 eq and
		{
			null dp
		} if
		7 packedarray _da exch _dp _dl mod exch put
		_dp _dl mod _da 0 get 4 get 2 packedarray
		/_dp _dp 1 add def
	} ifelse
} def
/E
{
	_ed begin
	dup 0 get type /arraytype ne
	{
		0
		{
			dup 1 add index type /arraytype eq
			{
				1 add
			}
			{
				exit
			} ifelse
		} loop
		array astore
	} if
	/_dd exch def
	/_ury exch def
	/_urx exch def
	/_lly exch def
	/_llx exch def
	/_n exch def
	/_y 0 def
	/_dl 4 def
	/_dp 0 def
	/_da _dl array def
	0 1 _dd length 1 sub
	{
		/_d exch _dd exch get def
		0 2 _d length 2 sub
		{
			/_x exch def
			/_c _d _x get _ ne def
			/_r _d _x 1 add get cvlit def
			_r _ ne
			{
				_urx _llx sub _ury _lly sub
				[
				1 0 0 1 0 0
				]
				[
				/save cvx
				_llx neg _lly neg /translate cvx
				_c
				{
					nc /begin cvx
				} if
				_r dup type /stringtype eq
				{
					cvx
				}
				{
					{
						exec
					} /forall cvx
				} ifelse
				_c
				{
					/end cvx
				} if
				/restore cvx
				] cvx
				/_fn 12 _n length add string def
				_y _fn cvs pop
				/_y _y 1 add def
				_fn 12 _n putinterval
				_fn _c false dp
				_d exch _x 1 add exch put
			} if
		} for
	} for
	null dp
	_n _dd /_pd
 end
	xput
} def
/fc
{
	_fm dup concatmatrix pop
} def
/p
{
	/_fm exch ddef
	9 -2 roll _pm translate fc
	7 -2 roll _pm scale fc
	5 -1 roll _pm rotate fc
	4 -2 roll exch 0 ne
	{
		dup _pm rotate fc
		1 -1 _pm scale fc
		neg _pm rotate fc
	}
	{
		pop
	} ifelse
	dup _pm rotate fc
	exch dup sin exch cos div 1 0 0 1 0 6 2 roll
	_pm astore fc
	neg _pm rotate fc
	_pd exch get /_fdd exch ddef
	/_pf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					patternfill
				}
				{
					pop
					fill
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		newpath
	} ddef
	/_psf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					9 copy 6 npop patternashow
				}
				{
					pop
					6 copy 3 npop hvashow
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		sw rmoveto
	} ddef
	/_pjsf
	{
		save
		/_doClip 0 ddef
		0 1 _fdd length 1 sub
		{
			/_fd exch _fdd exch get ddef
			_fd
			0 2 _fd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _fc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _fm
					12 copy 6 npop patternawidthshow
				}
				{
					pop 9 copy 3 npop hvawidthshow
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		swj rmoveto
	} ddef
	/_lp /none ddef
} def
/sc
{
	_sm dup concatmatrix pop
} def
/P
{
	/_sm exch ddef
	9 -2 roll _pm translate sc
	7 -2 roll _pm scale sc
	5 -1 roll _pm rotate sc
	4 -2 roll exch 0 ne
	{
		dup _pm rotate sc
		1 -1 _pm scale sc
		neg _pm rotate sc
	}
	{
		pop
	} ifelse
	dup _pm rotate sc
	exch dup sin exch cos div 1 0 0 1 0 6 2 roll
	_pm astore sc
	neg _pm rotate sc
	_pd exch get /_sdd exch ddef
	/_ps
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					patternstroke
				}
				{
					pop stroke
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		newpath
	} ddef
	/_pss
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					10 copy 6 npop patternashowstroke
				}
				{
					pop 7 copy 3 npop ss
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		pop sw rmoveto
	} ddef
	/_pjss
	{
		save
		/_doClip 0 ddef
		0 1 _sdd length 1 sub
		{
			/_sd exch _sdd exch get ddef
			_sd
			0 2 _sd length 2 sub
			{
				gsave
				2 copy get dup _ ne
				{
					cvx exec _sc
				}
				{
					pop
				} ifelse
				2 copy 1 add get dup _ ne
				{
					aload pop findfont _sm
					13 copy 6 npop patternawidthshowstroke
				}
				{
					pop 10 copy 3 npop jss
				} ifelse
				grestore
				pop
			} for
			pop
		} for
		restore
		pop swj rmoveto
	} ddef
	/_lp /none ddef
} def
end
userdict /Adobe_pattern_AI5 18 dict dup begin
put
/initialize
{
	/definepattern where
	{
		pop
	}
	{
	 begin
	 begin
		Adobe_pattern_AI5 begin
		Adobe_pattern_AI5
		{
			dup xcheck
			{
				bind
			} if
			pop pop
		} forall
		mark
		cachestatus 7 1 roll pop pop pop pop exch pop exch
		{
			{
				10000 add
				dup 2 index gt
				{
					exit
				} if
				dup setcachelimit
			} loop
		} stopped
		cleartomark
	 end 	
		
	 end
	 end
		
		Adobe_pattern_AI5 begin
	} ifelse
} def
/terminate
{
	currentdict Adobe_pattern_AI5 eq
	{
	 end
	} if
} def
errordict
/nocurrentpoint
{
	pop
	stop
} put
errordict
/invalidaccess
{
	pop
	stop
} put
/patternencoding
256 array def
0 1 255
{
	patternencoding exch ( ) 2 copy exch 0 exch put cvn put
} for
/definepattern
{
	17 dict begin
	/uniform exch def
	/cache exch def
	/key exch def
	/procarray exch def
	/mtx exch matrix invertmatrix def
	/height exch def
	/width exch def
	/ctm matrix currentmatrix def
	/ptm matrix def
	/str 32 string def
	/slice 9 dict def
	slice /s 1 put
	slice /q 256 procarray length div sqrt floor cvi put
	slice /b 0 put
	/FontBBox
	[
	0 0 0 0
	] def
	/FontMatrix mtx matrix copy def
	/Encoding patternencoding def
	/FontType 3 def
	/BuildChar
	{
		exch
	 begin
		/setstrokeadjust where {pop true setstrokeadjust} if
		slice begin
		dup q dup mul mod s idiv /i exch def
		dup q dup mul mod s mod /j exch def
		q dup mul idiv procarray exch get
		/xl j width s div mul def
		/xg j 1 add width s div mul def
		/yl i height s div mul def
		/yg i 1 add height s div mul def
		uniform
		{
			1 1
		}
		{
			width 0 dtransform
			dup mul exch dup mul add sqrt dup 1 add exch div
			0 height dtransform
			dup mul exch dup mul add sqrt dup 1 add exch div
		} ifelse
		width 0 cache
		{
			xl 4 index mul yl 4 index mul xg 6 index mul yg 6 index mul
			setcachedevice
		}
		{
			setcharwidth
		} ifelse
		gsave
		scale
		newpath
		xl yl moveto
		xg yl lineto
		xg yg lineto
		xl yg lineto
		closepath
		clip
		newpath
	 end
	 end
		exec
		grestore
	} def
	key currentdict definefont
 end
} def
/patterncachesize
{
	gsave
	newpath
	0 0 moveto
	width 0 lineto
	width height lineto
	0 height lineto
	closepath
	patternmatrix setmatrix
	pathbbox
	exch ceiling 4 -1 roll floor sub 3 1 roll
	ceiling exch floor sub
	mul 1 add
	grestore
} def
/patterncachelimit
{
	cachestatus 7 1 roll 6 npop 8 mul
} def
/patternpath
{
	exch dup begin
	setfont
	ctm setmatrix
	concat
	slice exch /b exch slice /q get dup mul mul put
	FontMatrix concat
	uniform
	{
		width 0 dtransform round width div exch round width div exch
		0 height dtransform round height div exch height div exch
		0 0 transform round exch round exch
		ptm astore setmatrix
	}
	{
		ptm currentmatrix pop
	} ifelse
	{
		currentpoint
	} stopped not
	{
		2 npop
		pathbbox
		true
		4 index 3 index eq
		4 index 3 index eq
		and
		{
			pop false
			{
				{
					2 npop
				}
				{
					3 npop true
				}
				{
					7 npop true
				}
				{
					pop true
				} pathforall
			} stopped
			{
				5 npop true
			} if
		} if
		{
			height div ceiling height mul 4 1 roll
			width div ceiling width mul 4 1 roll
			height div floor height mul 4 1 roll
			width div floor width mul 4 1 roll
			2 index sub height div ceiling cvi exch
			3 index sub width div ceiling cvi exch
			4 2 roll moveto
			FontMatrix mtx invertmatrix
			dup dup 4 get exch 5 get rmoveto
			ptm ptm concatmatrix pop
			slice /s
			patterncachesize patterncachelimit div ceiling sqrt ceiling cvi
			dup slice /q get gt
			{
				pop slice /q get
			} if
			put
			0 1 slice /s get dup mul 1 sub
			{
				slice /b get add
				gsave
				0 1 str length 1 sub
				{
					str exch 2 index put
				} for
				pop
				dup
				{
					gsave
					ptm setmatrix
					1 index str length idiv
					{
						str show
					} repeat
					1 index str length mod str exch 0 exch getinterval show
					grestore
					0 height rmoveto
				} repeat
				grestore
			} for
			2 npop
		}
		{
			4 npop
		} ifelse
	} if
 end
} def
/patternclip
{
	_eo {eoclip} {clip} ifelse
} def
/patternstrokepath
{
	strokepath
} def
/patternmatrix
matrix def
/patternfill
{
	dup type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get
	} if
	gsave
	patternclip
	Adobe_pattern_AI5 /patternpath get exec
	grestore
	newpath
} def
/patternstroke
{
	dup type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get
	} if
	gsave
	patternstrokepath
	true
	{
		{
			{
				newpath
				moveto
			}
			{
				lineto
			}
			{
				curveto
			}
			{
				closepath
				3 copy
				Adobe_pattern_AI5 /patternfill get exec
			} pathforall
			3 npop
		} stopped
		{
			5 npop
			patternclip
			Adobe_pattern_AI5 /patternfill get exec
		} if
	}
	{
		patternclip
		Adobe_pattern_AI5 /patternfill get exec
	} ifelse
	grestore
	newpath
} def
/vpatternawidthshow
{
	6 1 roll
	/_hvay exch ddef
	/_hvax exch ddef
	/_hvwb exch ddef
	/_hvcy exch ddef
	/_hvcx exch ddef
	
	{
		dup cstring
		dup length 1 eq
		_charorientation 1 eq
		and
		{
			-90 rotate
			currentpoint
			_fontRotateAdjust add
			moveto
			gsave
			false charpath currentpoint
			5 index 5 index 5 index Adobe_pattern_AI5 /patternfill get exec
			grestore
			_fontRotateAdjust sub
			moveto
			_hvwb eq { _hvcx _hvcy rmoveto } if
			_hvax _hvay rmoveto
			90 rotate
		}
		{
			currentpoint
			_fontHeight sub
			_hvax sub
			3 index _hvwb eq { _hvcx sub } if
			currentpoint
			exch 4 index stringwidth pop 2 div sub
			exch _fontAscent sub
			moveto
			gsave
			2 index false charpath
			6 index 6 index 6 index Adobe_pattern_AI5 /patternfill get exec
			grestore
			newpath moveto pop pop
		} ifelse
	} cforall
	3 npop
} def
/hpatternawidthshow
{
	{
		dup cstring exch
		gsave
		3 index eq { 5 index 5 index rmoveto } if
		false charpath currentpoint
		9 index 9 index 9 index
		Adobe_pattern_AI5 /patternfill get exec
		grestore
		newpath moveto
		2 copy rmoveto
	} cforall
	8 npop
} def
/patternashow
{
0 0 0 6 3 roll
patternawidthshow
} def
/patternawidthshow
{
	6 index type /dicttype eq
	{
		Adobe_pattern_AI5 /patternmatrix get 7 1 roll
	} if
	_lineorientation 0 eq { hpatternawidthshow } { vpatternawidthshow } ifelse
} def
/vpatternawidthshowstroke
{
	7 1 roll
	6 1 roll
	/_hvay exch ddef
	/_hvax exch ddef
	/_hvwb exch ddef
	/_hvcy exch ddef
	/_hvcx exch ddef
	{
		dup cstring
		dup length 1 eq
		_charorientation 1 eq
		and
		{
			-90 rotate
			currentpoint
			_fontRotateAdjust add
			moveto
			gsave
			false charpath currentpoint
			3 index setmatrix
			6 index 6 index 6 index Adobe_pattern_AI5 /patternstroke get exec
			grestore
			_fontRotateAdjust sub
			moveto
			_hvwb eq { _hvcx _hvcy rmoveto } if
			_hvax _hvay rmoveto
			90 rotate
		}
		{
			currentpoint
			_fontHeight sub
			_hvax sub
			3 index _hvwb eq { _hvcx sub } if
			currentpoint
			exch 4 index stringwidth pop 2 div sub
			exch _fontAscent sub
			moveto
			gsave
			2 index false charpath
			4 index setmatrix
			7 index 7 index 7 index Adobe_pattern_AI5 /patternstroke get exec
			grestore
			newpath moveto pop pop
		} ifelse
	} cforall
	4 npop
} def
/hpatternawidthshowstroke
{
	7 1 roll
	{
		dup cstring exch
		gsave
		3 index eq { 5 index 5 index rmoveto } if
		false charpath currentpoint
		7 index setmatrix
		10 index 10 index 10 index
		Adobe_pattern_AI5 /patternstroke get exec
		grestore
		newpath moveto
		2 copy rmoveto
	} cforall
	9 npop
} def
/patternashowstroke
{
	0 0 0 7 3 roll
	patternawidthshowstroke
} def
/patternawidthshowstroke
{
	7 index type /dicttype eq
	{
		patternmatrix /patternmatrix get 8 1 roll
	} if
	_lineorientation 0 eq { hpatternawidthshowstroke } { vpatternawidthshowstroke } ifelse
} def
end
setpacking
%%EndResource
%%EndProlog
%%BeginSetup
Adobe_level2_AI5 /initialize get exec
Adobe_screens_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_blend_AI5 /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_pattern_AI5 /initialize get exec
Adobe_ColorImage_AI6 /initialize get exec
Adobe_Illustrator_AI5 /initialize get exec
[
39/quotesingle 96/grave 130/quotesinglbase 131/florin 132/quotedblbase
133/ellipsis 134/dagger 135/daggerdbl 136/circumflex 137/perthousand 
138/Scaron 139/guilsinglleft 140/OE 145/quoteleft 146/quoteright 
147/quotedblleft 148/quotedblright 149/bullet 150/endash 151/emdash 
152/tilde 153/trademark 154/scaron 155/guilsinglright 156/oe 157/dotlessi 
159/Ydieresis 164/currency 166/brokenbar 168/dieresis 169/copyright 
170/ordfeminine 172/logicalnot 174/registered 175/macron 176/ring 
177/plusminus 178/twosuperior 179/threesuperior 180/acute 181/mu 
183/periodcentered 184/cedilla 185/onesuperior 186/ordmasculine 
188/onequarter 189/onehalf 190/threequarters 192/Agrave 193/Aacute 
194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla 
200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute 
206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute 
212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash 
217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn 
223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde 228/adieresis 
229/aring 230/ae 231/ccedilla 232/egrave 233/eacute 234/ecircumflex 
235/edieresis 236/igrave 237/iacute 238/icircumflex 239/idieresis 
240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex 245/otilde 
246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute 251/ucircumflex 
252/udieresis 253/yacute 254/thorn 255/ydieresis
TE
%AI3_BeginEncoding: _Helvetica Helvetica
[
/_Helvetica/Helvetica 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-Bold Helvetica-Bold
[
/_Helvetica-Bold/Helvetica-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-Oblique Helvetica-Oblique
[
/_Helvetica-Oblique/Helvetica-Oblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Helvetica-BoldOblique Helvetica-BoldOblique
[
/_Helvetica-BoldOblique/Helvetica-BoldOblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Roman Times-Roman
[
/_Times-Roman/Times-Roman 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Bold Times-Bold
[
/_Times-Bold/Times-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-Italic Times-Italic
[
/_Times-Italic/Times-Italic 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Times-BoldItalic Times-BoldItalic
[
/_Times-BoldItalic/Times-BoldItalic 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier Courier
[
/_Courier/Courier 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-Bold Courier-Bold
[
/_Courier-Bold/Courier-Bold 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-Oblique Courier-Oblique
[
/_Courier-Oblique/Courier-Oblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Courier-BoldOblique Courier-BoldOblique
[
/_Courier-BoldOblique/Courier-BoldOblique 0 0 1 TZ
%AI3_EndEncoding AdobeType
%AI3_BeginEncoding: _Symbol Symbol
[
/_Symbol/Symbol 0 0 1 TZ
%AI3_EndEncoding AdobeType
%%EndSetup

1 XR

u
 [] 0 d
0.0000 w
  0.000 0.000 0.000 1.000 K
1 J
1 j
  116.8053 299.8602 m
  116.8053 233.6106 L
  115.7271 233.3710 L
  114.7687 232.7720 L
  114.0499 231.8136 L
  113.8103 230.6156 L
  114.0499 229.5374 L
  114.7687 228.5790 L
  115.7271 227.8602 L
  116.8053 227.6206 L
  116.8053 169.2779 L
S
U
u
  0.000 0.000 0.000 1.000 K
  392.4659 366.5890 m
  392.4659 391.9867 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  389.8303 391.3877 m
  392.4659 399.6539 L
  395.2213 391.3877 L
  389.8303 391.3877 L
F
U
u
  0.000 0.000 0.000 0.000 k
  382.8819 377.3710 m
  401.2113 377.3710 L
  401.2113 388.7521 L
  382.8819 388.7521 L
  382.8819 377.3710 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 383.8403 380.3661 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  516.5790 254.9351 m
  516.5790 268.3527 L
  516.5790 268.3527 L
  516.5790 300.6988 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  513.8236 300.0998 m
  516.5790 308.3661 L
  519.3344 300.0998 L
  513.8236 300.0998 L
F
U
u
  0.000 0.000 0.000 0.000 k
  506.6356 276.2596 m
  526.4027 276.2596 L
  526.4027 287.6406 L
  506.6356 287.6406 L
  506.6356 276.2596 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 507.5940 279.2546 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  50.0765 413.1913 m
  576.1198 413.1913 L
  576.1198 426.0100 L
  50.0765 426.0100 L
  50.0765 413.1913 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 304.0532 416.7854 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(IDLE2\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  50.0765 399.6539 m
  576.1198 399.6539 L
  576.1198 413.1913 L
  50.0765 413.1913 L
  50.0765 399.6539 L
B
U
u
  0.000 0.000 0.000 0.000 k
  457.2779 353.0516 m
  576.1198 353.0516 L
  576.1198 366.5890 L
  457.2779 366.5890 L
  457.2779 353.0516 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 483.7537 357.3644 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SEND_REQUEST2\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  457.2779 308.3661 m
  576.1198 308.3661 L
  576.1198 353.0516 L
  457.2779 353.0516 L
  457.2779 308.3661 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 463.1481 343.8270 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(retransCount = 0\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 463.1481 334.2429 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(lastReqData = eapReqData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 463.1481 324.6589 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapResp = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 463.1481 315.1947 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapReq = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  516.6988 366.5890 m
  516.6988 380.1265 L
  516.6988 380.1265 L
  516.6988 391.5075 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  513.9434 390.7887 m
  516.6988 399.0549 L
  519.4542 390.7887 L
  513.9434 390.7887 L
F
U
u
  0.000 0.000 0.000 0.000 k
  508.0732 377.0116 m
  526.4027 377.0116 L
  526.4027 388.3927 L
  508.0732 388.3927 L
  508.0732 377.0116 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 509.0316 380.0067 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  332.6855 353.0516 m
  451.6473 353.0516 L
  451.6473 366.5890 L
  332.6855 366.5890 L
  332.6855 353.0516 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 374.0166 357.3644 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(DISCARD2\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  332.6855 326.8153 m
  451.6473 326.8153 L
  451.6473 353.0516 L
  332.6855 353.0516 L
  332.6855 326.8153 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 338.6755 343.8270 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapResp = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 338.6755 334.2429 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapNoReq = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  50.6755 353.0516 m
  182.9351 353.0516 L
  182.9351 366.5890 L
  50.6755 366.5890 L
  50.6755 353.0516 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 90.6889 357.3644 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(RETRANSMIT2\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  50.6755 299.8602 m
  182.9351 299.8602 L
  182.9351 353.0516 L
  50.6755 353.0516 L
  50.6755 299.8602 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 56.6656 343.8270 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(retransCount++\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 56.6656 334.2429 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(if \(retransCount <= MaxRetrans\)  {\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 56.6656 324.6589 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapReqData = lastReqData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 56.6656 315.1947 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   eapReq = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 56.6656 305.6106 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(}\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  50.6755 333.1647 m
  33.7837 333.1647 L
  33.7837 412.8319 L
  42.5291 412.8319 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  41.8103 415.5874 m
  50.0765 412.8319 L
  41.8103 410.0765 L
  41.8103 415.5874 L
F
U
u
  0.000 0.000 0.000 0.000 k
  24.4393 367.4276 m
  43.0083 367.4276 L
  43.0083 378.8087 L
  24.4393 378.8087 L
  24.4393 367.4276 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 25.5175 370.4226 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  258.6489 399.6539 m
  258.6489 386.2363 L
  258.6489 386.2363 L
  258.6489 374.1364 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  261.4043 374.8552 m
  258.6489 366.5890 L
  255.8935 374.8552 L
  261.4043 374.8552 L
F
U
u
  0.000 0.000 0.000 0.000 k
  241.9967 377.9700 m
  275.7804 377.9700 L
  275.7804 389.3511 L
  241.9967 389.3511 L
  241.9967 377.9700 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 242.9551 380.9651 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(eapResp\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  304.6522 326.5757 m
  304.6522 298.1830 L
  356.1664 298.1830 L
  356.1664 319.3877 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  353.4110 318.6689 m
  356.1664 326.8153 L
  358.9218 318.6689 L
  353.4110 318.6689 L
F
U
u
  0.000 0.000 0.000 0.000 k
  321.1847 292.7920 m
  339.8735 292.7920 L
  339.8735 304.1730 L
  321.1847 304.1730 L
  321.1847 292.7920 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 322.1431 295.7870 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(else\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  116.3261 398.4559 m
  116.3261 386.2363 L
  116.8053 386.2363 L
  116.8053 374.1364 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  119.5607 374.8552 m
  116.8053 366.5890 L
  114.0499 374.8552 L
  119.5607 374.8552 L
F
U
u
  0.000 0.000 0.000 0.000 k
  86.3760 377.4908 m
  147.3544 377.4908 L
  147.3544 388.8719 L
  86.3760 388.8719 L
  86.3760 377.4908 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 87.4542 380.4859 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(retransWhile==0\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  69.6040 273.7438 m
  169.7571 273.7438 L
  169.7571 285.1248 L
  69.6040 285.1248 L
  69.6040 273.7438 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 70.5624 276.7388 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(retransCount > MaxRetrans\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 56.3062 403.9667 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(retransWhile = calculateTimeout\(retransCount, eapSRTT, eapRTTVAR, methodTimeout\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  289.0782 144.1198 m
  576.1198 144.1198 L
  576.1198 157.6572 L
  289.0782 157.6572 L
  289.0782 144.1198 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 415.3478 148.4326 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(AAA_IDLE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  289.0782 89.2512 m
  576.1198 89.2512 L
  576.1198 144.1198 L
  289.0782 144.1198 L
  289.0782 89.2512 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 295.0682 134.8952 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(aaaFail = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 295.0682 125.3111 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaSuccess = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 295.0682 115.7271 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapReq = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 295.0682 106.2629 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapNoReq = FALSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 295.0682 96.6789 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapResp = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  498.1298 157.6572 m
  498.1298 171.1947 L
  498.1298 171.1947 L
  498.1298 198.6290 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  495.3744 197.9101 m
  498.1298 206.1764 L
  500.8852 197.9101 L
  495.3744 197.9101 L
F
U
u
  0.000 0.000 0.000 0.000 k
  476.2063 176.3461 m
  520.4126 176.3461 L
  520.4126 187.6073 L
  476.2063 187.6073 L
  476.2063 176.3461 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 477.2845 179.2213 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(aaaEapReq\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  289.0782 99.1947 m
  151.0682 99.1947 L
  151.0682 37.1381 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  153.8236 37.8569 m
  151.0682 29.7105 L
  148.3128 37.8569 L
  153.8236 37.8569 L
F
U
u
  0.000 0.000 0.000 0.000 k
  163.1681 93.8037 m
  207.3744 93.8037 L
  207.3744 105.1847 L
  163.1681 105.1847 L
  163.1681 93.8037 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 164.1265 96.7987 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(aaaTimeout\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  258.6489 206.1764 m
  258.6489 179.8203 L
  350.6556 179.8203 L
  350.6556 164.4859 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  353.4110 165.2047 m
  350.6556 156.9384 L
  347.9002 165.2047 L
  353.4110 165.2047 L
F
U
u
  0.000 0.000 0.000 0.000 k
  293.7504 174.5491 m
  312.1997 174.5491 L
  312.1997 185.8103 L
  293.7504 185.8103 L
  293.7504 174.5491 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 294.8286 177.4243 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(UCT\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  422.4160 241.3977 m
  576.1198 241.3977 L
  576.1198 254.9351 L
  422.4160 254.9351 L
  422.4160 241.3977 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 468.6589 245.8303 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(AAA_RESPONSE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  422.4160 206.1764 m
  576.1198 206.1764 L
  576.1198 241.3977 L
  422.4160 241.3977 L
  422.4160 206.1764 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 428.4060 232.2928 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapReqData = aaaEapReqData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 428.4060 222.7088 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(currentId = getId\(eapReqData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 428.4060 213.1248 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(methodTimeout = aaaMethodTimeout\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  415.3478 43.6073 m
  575.7604 43.6073 L
  575.7604 57.0250 L
  415.3478 57.0250 L
  415.3478 43.6073 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 475.9667 47.9201 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(SUCCESS2\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  415.3478 1.4376 m
  575.7604 1.4376 L
  575.7604 43.6073 L
  415.3478 43.6073 L
  415.3478 1.4376 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 421.3378 34.5025 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapReqData = aaaEapReqData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 421.3378 24.9185 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapKeyData = aaaEapKeyData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 421.3378 15.3344 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapKeyAvalable = aaaEapKeyAvailable\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 421.3378 5.7504 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapSuccess = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  246.4293 43.4875 m
  406.7221 43.4875 L
  406.7221 57.0250 L
  246.4293 57.0250 L
  246.4293 43.4875 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 309.4443 47.9201 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(FAILURE2\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  246.4293 1.4376 m
  406.7221 1.4376 L
  406.7221 43.4875 L
  246.4293 43.4875 L
  246.4293 1.4376 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 252.2995 34.3827 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapReqData = aaaEapReqData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 252.2995 24.7987 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(eapFail = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  50.0765 15.9334 m
  182.4559 15.9334 L
  182.4559 29.4709 L
  50.0765 29.4709 L
  50.0765 15.9334 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 78.9484 20.2463 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(TIMEOUT_FAILURE2\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  50.0765 1.4376 m
  182.4559 1.4376 L
  182.4559 15.9334 L
  50.0765 15.9334 L
  50.0765 1.4376 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 56.0666 6.7088 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(eapTimeout = TRUE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  392.1065 157.4176 m
  391.9867 319.3877 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  389.3511 318.9085 m
  391.9867 327.0549 L
  394.7421 318.9085 L
  389.3511 318.9085 L
F
U
u
0.0000 w
  258.6489 326.5757 m
  258.6489 313.1581 L
  258.6489 313.1581 L
  258.6489 262.6023 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  261.4043 263.2013 m
  258.6489 254.9351 L
  255.8935 263.2013 L
  261.4043 263.2013 L
F
U
u
  0.000 0.000 0.000 0.000 k
  223.1880 271.7072 m
  298.0632 271.7072 L
  298.0632 292.7920 L
  223.1880 292.7920 L
  223.1880 271.7072 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 241.5175 284.2862 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(rxResp &&\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 224.1464 274.7022 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(\(respId == currentId\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
1 j
  364.7920 171.4343 m
  419.0616 171.4343 L
  419.0616 182.6955 L
  364.7920 182.6955 L
  364.7920 171.4343 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 365.7504 174.4293 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(aaaEapNoReq\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  327.0549 89.0116 m
  327.0549 75.8336 L
  327.1747 75.8336 L
  327.1747 64.6922 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  329.9301 65.2912 m
  327.1747 57.0250 L
  324.4193 65.2912 L
  329.9301 65.2912 L
F
U
u
  0.000 0.000 0.000 0.000 k
  313.1581 67.6872 m
  341.3111 67.6872 L
  341.3111 79.0682 L
  313.1581 79.0682 L
  313.1581 67.6872 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 314.1165 70.6822 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(aaaFail\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  495.3744 89.0116 m
  495.3744 75.8336 L
  495.4942 75.8336 L
  495.4942 64.6922 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  498.2496 65.2912 m
  495.4942 57.0250 L
  492.7388 65.2912 L
  498.2496 65.2912 L
F
U
u
  0.000 0.000 0.000 0.000 k
  472.6123 67.8070 m
  518.4958 67.8070 L
  518.4958 79.1880 L
  472.6123 79.1880 L
  472.6123 67.8070 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 473.5707 70.8020 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(aaaSuccess\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  190.2429 241.5175 m
  327.0549 241.5175 L
  327.0549 254.9351 L
  190.2429 254.9351 L
  190.2429 241.5175 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 231.0948 245.9501 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(AAA_REQUEST\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  190.2429 206.1764 m
  327.0549 206.1764 L
  327.0549 241.5175 L
  190.2429 241.5175 L
  190.2429 206.1764 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 196.2329 232.2928 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(if \(respMethod==IDENTITY\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 196.2329 222.7088 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   aaaIdentity = eapRespData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 196.2329 213.1248 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(aaaEapRespData = eapRespData\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  288.7188 462.1897 m
  288.7188 442.3028 L
  598.5225 442.3028 L
  598.5225 132.6190 L
  583.6672 132.6190 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  584.3860 129.8636 m
  576.1198 132.6190 L
  584.3860 135.3744 L
  584.3860 129.8636 L
F
U
u
0.0000 w
  232.4126 462.4293 m
  232.4126 441.7038 L
  21.0849 441.7038 L
  21.0849 230.6156 L
  182.6955 230.6156 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  181.9767 233.3710 m
  190.2429 230.6156 L
  181.9767 227.8602 L
  181.9767 233.3710 L
F
U
u
  0.000 0.000 0.000 0.000 k
  179.7005 446.8552 m
  248.3461 446.8552 L
  248.3461 458.2363 L
  179.7005 458.2363 L
  179.7005 446.8552 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 180.7787 449.8502 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(currentId != NONE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 26.5957 474.0499 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(decision==PASSTHROUGH\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.0000 w
1 j
  116.8053 36.8985 m
  116.8053 189.4043 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  119.5607 37.6173 m
  116.8053 29.4709 L
  114.0499 37.6173 L
  119.5607 37.6173 L
F
U
u
  0.000 0.000 0.000 0.000 k
  266.5557 446.4958 m
  337.1181 446.4958 L
  337.1181 457.8769 L
  266.5557 457.8769 L
  266.5557 446.4958 L
F
U
0 To
1.0000 0.0000 0.0000 1.0000 267.6339 449.4908 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0 j
  0.000 0.000 0.000 1.000 k
(currentId == NONE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
0.5000 w
1 j
  132.7388 476.6855 m
  144.2396 476.6855 L
S
U
u
  150.7088 476.6855 m
  162.2097 476.6855 L
S
U
u
  168.6789 476.6855 m
  180.0599 476.6855 L
S
U
u
  0.000 0.000 0.000 1.000 k
0.0000 w
  180.5391 479.9201 m
  190.2429 476.6855 L
  180.5391 473.4509 L
  180.5391 479.9201 L
F
U
u
  0.000 0.000 0.000 0.000 k
0.0000 w
  190.2429 353.0516 m
  327.0549 353.0516 L
  327.0549 366.5890 L
  190.2429 366.5890 L
  190.2429 353.0516 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 238.0433 357.3644 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(RECEIVED2\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  190.2429 326.5757 m
  327.0549 326.5757 L
  327.0549 353.0516 L
  190.2429 353.0516 L
  190.2429 326.5757 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 196.2329 343.8270 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(\(rxResp,respId,respMethod\)=\r) Tx
TO
  0.000 0.000 0.000 1.000 K
0 To
1.0000 0.0000 0.0000 1.0000 196.2329 334.2429 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
  0.000 0.000 0.000 1.000 k
(   parseEapResp\(eapRespData\)\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  190.2429 477.5241 m
  327.0549 477.5241 L
  327.0549 491.0616 L
  190.2429 491.0616 L
  190.2429 477.5241 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 207.6140 481.8369 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(INITIALIZE_PASSTHROUGH\r) Tx
TO
  0.000 0.000 0.000 1.000 K
u
  0.000 0.000 0.000 0.000 k
0.0000 w
1 j
  190.2429 462.1897 m
  327.0549 462.1897 L
  327.0549 477.5241 L
  190.2429 477.5241 L
  190.2429 462.1897 L
B
U
0 To
1.0000 0.0000 0.0000 1.0000 196.2329 468.2995 0 Tp
TP
/_Helvetica 8.0000 Tf
0.0000 Tc
 0 Tr
0.0000 w
0 j
  0.000 0.000 0.000 1.000 k
(aaaEapRespData = NONE\r) Tx
TO
  0.000 0.000 0.000 1.000 K
%%PageTrailer
gsave annotatepage grestore showpage
%%Trailer
Adobe_Illustrator_AI5 /terminate get exec
Adobe_pattern_AI5 /terminate get exec
Adobe_blend_AI5 /terminate get exec
Adobe_ColorImage_AI6 /terminate get exec
Adobe_typography_AI5 /terminate get exec
Adobe_screens_AI5 /terminate get exec
Adobe_level2_AI5 /terminate get exec
%%EOF

%%EndDocument
 @endspecial 857 3338 a(Figure)h(7:)25 b(EAP)c(Full)f(Authenticator)f
(State)h(Machine)g(\(P)o(art)g(2\))125 3668 y Fb(\017)41
b Fg(aaaEapK)n(e)o(yData)18 b(\(EAP)i(K)n(e)o(y\))208
3796 y(Set)h(in)g(lo)n(wer)g(layer)f(when)h(k)o(e)o(ying)e(material)i
(becomes)f(a)n(v)n(ailable)g(from)g(the)h(AAA)h(serv)o(er)-5
b(.)26 b(Note)21 b(that)g(this)h(docu-)208 3896 y(ment)17
b(does)h(not)g(yet)g(de\002ne)f(the)h(structure)g(of)f(the)h(type)g
(\224EAP)g(K)n(e)o(y\224.)24 b(W)-7 b(e)19 b(e)o(xpect)e(it)i(to)f(be)g
(de\002ned)f(in)h([I-D.aboba-)208 3996 y(pppe)o(xt-k)o(e)o(y-problem)o
(].)125 4152 y Fb(\017)41 b Fg(aaaEapK)n(e)o(yA)-6 b(v)n(ailable)17
b(\(boolean\))208 4280 y(Set)k(to)h(TR)m(UE)f(in)h(the)f(lo)n(wer)g
(layer)g(if)g(k)o(e)o(ying)f(material)h(is)h(a)n(v)n(ailable.)28
b(The)21 b(actual)g(k)o(e)o(y)f(is)j(stored)d(in)i(aaaEapK)n(e)o(y-)208
4380 y(Data.)125 4536 y Fb(\017)41 b Fg(aaaMethodT)m(imeout)17
b(\(inte)o(ger\))208 4664 y(Method-pro)o(vided)e(hint)20
b(for)g(suitable)g(retransmission)f(timeout,)g(or)h(NONE.)0
4980 y Fd(7.1.2)81 b(V)-8 b(ariables)20 b(\(full)h(authenticator)d(to)i
(AAA)h(interface\))125 5180 y Fb(\017)41 b Fg(aaaEapResp)19
b(\(boolean\))208 5308 y(Set)k(to)h(TR)m(UE)f(in)g(authenticator)f
(state)i(machine,)e(F)-6 b(ALSE)24 b(in)f(the)g(lo)n(wer)g(layer)-5
b(.)34 b(Indicates)23 b(an)g(EAP)g(response)g(is)208
5407 y(a)n(v)n(ailable)c(for)h(processing)f(by)g(the)i(AAA)f(serv)o(er)
-5 b(.)0 5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)965
b(Expires)19 b(March)h(18,)f(2004)964 b([P)o(age)19 b(26])p
eop
%%Page: 27 27
27 26 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)125 390 y
Fb(\017)41 b Fg(aaaEapRespData)19 b(\(EAP)h(pack)o(et\))208
523 y(Set)g(in)h(authenticator)d(state)j(machine)e(when)h(eapResp)g(is)
h(set)g(to)f(TR)m(UE.)g(The)g(EAP)g(pack)o(et)g(to)g(be)g(processed.)
125 689 y Fb(\017)41 b Fg(aaaIdentity)18 b(\(EAP)i(pack)o(et\))208
822 y(Set)f(in)h(authenticator)d(state)i(machine)f(when)h(an)g
(IDENTITY)f(response)g(is)i(recei)n(v)o(ed.)j(Mak)o(es)c(that)g
(identity)g(a)n(v)n(ail-)208 922 y(able)h(to)g(AAA)h(lo)n(wer)e(layer)
-5 b(.)125 1088 y Fb(\017)41 b Fg(aaaT)m(imeout)18 b(\(boolean\))208
1220 y(Set)h(in)g(AAA)p 602 1220 25 4 v 30 w(IDLE)f(if)h(after)f(a)i
(con\002gurable)c(amount)h(of)i(time)g(there)f(is)i(no)e(response)g
(from)g(the)g(AAA)h(layer)-5 b(.)25 b(The)208 1320 y(AAA)g(layer)g(in)h
(the)g(N)m(AS)g(is)g(itself)g(ali)n(v)o(e)g(and)e(OK,)i(b)n(ut)g(for)f
(some)g(reason)g(it)h(hasn')o(t)e(recei)n(v)o(ed)g(a)i(v)n(alid)f
(Access-)208 1420 y(Accept/Reject)20 b(indication)e(from)i(the)g(back)o
(end)0 1740 y Fd(7.1.3)81 b(Constants)0 1996 y Fg(Same)20
b(as)h(Section)f(5.)0 2333 y Ff(7.2)99 b(Interface)26
b(between)h(full)e(authenticator)h(state)f(machine)h(and)f(methods)0
2588 y Fg(Same)20 b(as)h(standalone)e(authenticator)f(\()j(Section)e
(5.2\))0 2925 y Ff(7.3)99 b(Full)25 b(authenticator)h(state)f(machine)h
(local)e(v)o(ariables)0 3181 y Fg(Man)o(y)d(of)g(the)h(v)n(ariables)e
(of)i(the)f(full)h(authenticator)e(ha)n(v)o(e)h(already)f(been)h
(de\002ned)g(in)h(Section)f(5.)29 b(This)22 b(section)f(contains)0
3280 y(de\002nitions)e(for)h(those)g(not)g(e)o(xistent)g(in)g(the)g
(standalone)f(v)o(ersion,)g(as)i(well)f(as)h(those)f(which)g(are)g
(de\002ned)f(dif)n(ferently)-5 b(.)0 3601 y Fd(7.3.1)81
b(Short-term)19 b(\(not)h(maintained)g(between)g(pack)o(ets\))125
3800 y Fb(\017)41 b Fg(decision)19 b(\(enumeration\))208
3933 y(Set)i(in)f(SELECT)p 730 3933 V 30 w(A)m(CTION)g(state.)26
b(T)-6 b(emporarily)19 b(store)h(the)h(polic)o(y)e(decision)h(to)g
(succeed,)g(f)o(ail,)h(continue)d(with)j(a)208 4033 y(local)f(method,)e
(or)i(continue)f(in)h(passthrough)e(mode.)0 4370 y Ff(7.4)99
b(EAP)25 b(full)g(authenticator)i(pr)n(ocedur)n(es)0
4625 y Fg(All)22 b(of)g(the)f(procedures)f(de\002ned)h(in)g(Section)h
(5)f(e)o(xist)h(in)g(the)g(full)f(v)o(ersion.)29 b(In)21
b(addition,)f(the)i(follo)n(wing)e(procedures)g(are)0
4725 y(de\002ned.)125 5007 y Fb(\017)41 b Fg(getId\(\))208
5140 y(Determine)19 b(the)h(identi\002er)f(v)n(alue)h(chosen)f(by)h
(the)g(AAA)h(serv)o(er)e(for)h(the)g(current)f(EAP)h(request.)0
5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19
b(March)h(18,)f(2004)964 b([P)o(age)19 b(27])p eop
%%Page: 28 28
28 27 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y Ff(7.5)99
b(EAP)25 b(full)g(authenticator)i(states)0 645 y Fg(All)21
b(of)f(the)g(states)h(de\002ned)e(in)i(Section)f(5)g(e)o(xist)g(in)g
(the)h(full)f(v)o(ersion.)j(In)d(addition,)f(the)h(follo)n(wing)f
(states)i(are)f(de\002ned.)125 928 y Fb(\017)41 b Fg(INITIALIZE)p
649 928 25 4 v 27 w(P)-8 b(ASSTHR)m(OUGH)208 1061 y(Initializes)20
b(v)n(ariables)f(when)h(the)g(passthrough)e(portion)h(of)g(the)i(state)
g(machine)e(is)i(acti)n(v)n(ated.)125 1227 y Fb(\017)41
b Fg(IDLE2)208 1359 y(The)17 b(state)h(machine)e(w)o(aits)j(for)e(a)h
(response)f(from)f(the)i(primary)e(lo)n(wer)h(layer)m(,)g(which)g
(transports)f(EAP)i(traf)n(\002c)g(from)208 1459 y(the)i(peer)-5
b(.)125 1625 y Fb(\017)41 b Fg(IDLE)208 1758 y(The)19
b(state)i(machine)e(spends)h(most)g(of)g(its)h(time)g(here,)e(w)o
(aiting)h(for)g(something)e(to)j(happen.)125 1924 y Fb(\017)41
b Fg(RECEIVED2)208 2057 y(This)30 b(state)h(is)g(entered)e(when)g(an)i
(EAP)f(pack)o(et)g(is)h(recei)n(v)o(ed)d(and)i(the)g(authenticator)e
(is)j(in)g(P)-8 b(ASSTHR)m(OUGH)208 2156 y(mode:)24 b(the)c(pack)o(et)g
(header)f(is)i(parsed)e(here.)125 2323 y Fb(\017)41 b
Fg(AAA)p 393 2323 V 29 w(REQ)o(UEST)208 2455 y(The)19
b(incoming)g(EAP)h(pack)o(et)g(is)h(parsed)f(for)f(sending)g(to)i(the)f
(AAA)g(serv)o(er)-5 b(.)125 2621 y Fb(\017)41 b Fg(AAA)p
393 2621 V 29 w(IDLE)208 2754 y(Idle)24 b(state)i(which)e(tells)i(the)f
(AAA)g(layer)f(it)i(has)f(a)g(response)f(and)g(then)g(w)o(aits)i(for)e
(a)i(ne)n(w)e(request,)h(a)h(no-request)208 2854 y(signal,)19
b(or)h(success/f)o(ailure.)125 3020 y Fb(\017)41 b Fg(AAA)p
393 3020 V 29 w(RESPONSE)208 3153 y(State)20 b(in)h(which)e(the)i
(request)e(from)g(the)h(AAA)h(interf)o(ace)e(is)i(processed)f(into)g
(an)g(EAP)g(request.)125 3319 y Fb(\017)41 b Fg(SEND)p
430 3319 V 29 w(REQ)o(UEST2)208 3452 y(This)20 b(state)h(signals)f(the)
g(lo)n(wer)g(layer)g(that)g(a)h(request)e(pack)o(et)h(is)h(ready)e(to)i
(be)f(sent.)125 3618 y Fb(\017)41 b Fg(DISCARD2)208 3751
y(This)24 b(state)h(signals)f(the)g(lo)n(wer)g(layer)g(that)g(the)g
(response)g(w)o(as)h(discarded,)e(and)h(no)g(ne)n(w)g(request)f(pack)o
(et)h(will)h(be)208 3850 y(sent)20 b(at)h(this)f(time.)125
4016 y Fb(\017)41 b Fg(RETRANSMIT2)208 4149 y(Retransmits)20
b(the)g(pre)n(vious)f(request)g(pack)o(et.)125 4315 y
Fb(\017)41 b Fg(SUCCESS2)208 4448 y(A)20 b(\002nal)h(state)g
(indicating)d(success.)125 4614 y Fb(\017)41 b Fg(F)-6
b(AILURE2)208 4747 y(A)20 b(\002nal)h(state)g(indicating)d(f)o(ailure.)
125 4913 y Fb(\017)41 b Fg(TIMEOUT)p 588 4913 V 28 w(F)-6
b(AILURE2)208 5046 y(A)20 b(\002nal)h(state)g(indicating)d(f)o(ailure)i
(with)g(no)g(EAP)h(F)o(ailure)e(pack)o(et)h(sent.)0 5656
y(V)-11 b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19 b(March)h(18,)f
(2004)964 b([P)o(age)19 b(28])p eop
%%Page: 29 29
29 28 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y Fe(8)119
b(Implementation)30 b(Considerations)0 675 y Fg(In)23
b(order)g(to)h(deal)f(with)h(erroneous)e(cases)i(that)g(are)f(not)h
(directly)f(related)g(to)h(the)f(protocol)f(beha)n(vior)m(,)h
(implementations)0 775 y(may)d(need)f(additional)g(considerations)f(to)
j(pro)o(vide)d(rob)n(ustness)i(against)f(errors.)0 974
y(F)o(or)25 b(e)o(xample,)g(an)g(implementation)e(of)i(a)h(state)g
(machine)e(may)h(spend)g(a)g(signi\002cant)g(amount)f(of)h(time)h(in)f
(a)h(particular)0 1074 y(state)e(for)f(performing)e(the)i(procedure)e
(de\002ned)i(for)g(the)g(state)i(without)e(returning)e(a)j(response.)34
b(If)23 b(such)h(an)f(implemen-)0 1174 y(tation)g(is)i(made)e(on)g(a)h
(multithreading)d(system,)j(the)f(procedure)e(may)i(be)h(performed)d
(in)i(a)h(separate)f(thread)g(so)h(that)g(the)0 1273
y(implementation)18 b(can)j(perform)d(appropriate)g(action)i(to)h(deal)
f(with)h(the)f(case)h(without)f(blocking)f(on)h(the)g(state)i(for)d(a)i
(long)0 1373 y(time)c(\(or)f(fore)n(v)o(er)f(if)j(the)f(procedure)d(ne)
n(v)o(er)i(completes)g(due)g(to,)i(e.g.,)f(a)g(non-responding)c(user)k
(or)f(a)i(b)n(ug)e(in)h(an)g(application)0 1472 y(callback)i
(function.\))0 1672 y(The)h(follo)n(wing)e(states)k(are)e(identi\002ed)
f(as)i(the)f(possible)g(places)g(of)g(blocking:)125 1954
y Fb(\017)41 b Fg(IDENTITY)21 b(state)j(in)f(the)g(peer)f(state)h
(machine.)32 b(It)23 b(may)f(tak)o(e)h(some)g(time)g(to)g(process)f
(Identity)g(request)g(when)g(a)208 2054 y(user)f(input)h(is)g(needed)f
(for)g(obtaining)g(an)g(identity)h(from)f(the)g(user)-5
b(.)31 b(The)22 b(user)f(may)h(ne)n(v)o(er)e(input)i(an)f(identity)-5
b(.)30 b(An)208 2153 y(implementation)21 b(may)i(de\002ne)g(an)g
(additional)g(state)h(transition)f(from)f(IDENTITY)g(state)j(to)e(F)-6
b(AILURE)24 b(state)g(so)208 2253 y(that)c(authentication)e(can)i(f)o
(ail)h(if)f(no)g(identity)f(is)i(obtained)e(from)g(the)h(user)h(before)
d(ClientT)m(imeout)i(timer)g(e)o(xpires.)125 2419 y Fb(\017)41
b Fg(METHOD)17 b(state)h(in)g(the)g(peer)f(state)h(machine)e(and)h(in)h
(METHOD)p 2166 2419 25 4 v 29 w(RESPONSE)g(state)h(in)f(the)f
(authenticator)f(state)208 2518 y(machines.)23 b(It)c(may)e(tak)o(e)i
(some)f(time)g(to)g(perform)f(method-speci\002c)f(procedures)g(in)i
(these)h(states.)25 b(An)18 b(implemen-)208 2618 y(tation)h(may)g
(de\002ne)g(an)g(additional)f(state)i(transition)f(from)f(METHOD)i
(state)g(and)f(METHOD)p 2989 2618 V 29 w(RESPONSE)h(state)208
2718 y(to)29 b(F)-6 b(AILURE)28 b(or)h(TIMEOUT)p 1154
2718 V 28 w(F)-6 b(AILURE)29 b(state)h(so)f(that)g(authentication)e
(can)i(f)o(ail)g(if)g(no)f(method)g(processing)208 2817
y(result)20 b(is)h(obtained)e(from)g(the)h(method)f(before)g(methodT)m
(imeout)e(timer)j(e)o(xpires.)0 3197 y Fe(9)119 b(Security)31
b(Considerations)0 3482 y Fg(This)25 b(document')-5 b(s)23
b(intent)i(is)h(to)f(describe)f(the)h(EAP)h(state)f(machine)f(fully)-5
b(.)38 b(T)-7 b(o)25 b(this)h(end,)f(an)o(y)f(security)h(concerns)e
(with)0 3582 y(this)e(document)d(are)i(lik)o(ely)g(a)h(re\003ection)e
(of)h(security)g(concerns)e(with)j(EAP)f(itself.)0 3962
y Fe(10)119 b(Ackno)o(wledgments)0 4247 y Fg(The)18 b(w)o(ork)f(in)i
(this)f(document)e(w)o(as)j(done)e(as)i(part)f(of)g(the)g(EAP)h(Design)
e(T)-6 b(eam.)24 b(It)19 b(w)o(as)g(done)e(primarily)g(by)g(Nick)h
(Petroni,)0 4347 y(John)j(V)-11 b(ollbrecht,)21 b(P)o(asi)i(Eronen)d
(and)h(Y)-9 b(oshihiro)21 b(Ohba.)29 b(Nick)22 b(started)f(this)i(w)o
(ork)e(with)h(Bryan)f(P)o(ayne)g(and)h(Chuk)f(Seng)0
4446 y(at)27 b(the)g(Uni)n(v)o(ersity)e(of)i(Maryland.)43
b(John)26 b(V)-11 b(ollbrecht,)27 b(of)f(V)-11 b(ollbrecht)26
b(Consulting,)h(started)f(independently)e(with)j(help)0
4546 y(from)20 b(Da)n(v)o(e)i(Spence)e(at)i(Interlink)e(Netw)o(orks.)28
b(John)21 b(and)g(Nick)g(combined)e(to)j(create)f(a)h(common)d(draft,)i
(and)g(then)g(were)0 4645 y(joined)h(by)g(P)o(asi)h(Eronen)e(of)i
(Nokia)f(who)g(has)h(made)f(major)g(contrib)n(utions)f(in)i(creating)e
(coherent)h(state)h(machines,)f(and)0 4745 y(Y)-9 b(oshihiro)24
b(Ohba)h(of)h(T)-7 b(oshiba)25 b(who)g(insisted)h(on)g(including)e(P)o
(assthrough)g(documentation)f(and)i(pro)o(vided)e(signi\002cant)0
4845 y(support)c(for)g(understanding)f(implementation)f(issues.)0
5044 y(In)25 b(addition)f(signi\002cant)h(response)g(and)f(con)m(v)o
(ersation)f(has)j(come)f(from)f(the)h(design)g(team,)i(especially)d
(including)g(Jari)0 5144 y(Arkk)o(o)f(of)g(Ericsson)h(and)f(Bernard)g
(Aboba)f(of)i(Microsoft)f(as)h(well)h(as)f(the)g(rest)g(of)g(the)g
(team.)35 b(It)24 b(has)g(also)h(been)e(passed)0 5243
y(through)16 b(the)j(802.1aa)d(group,)h(and)h(has)h(had)f(input)g(from)
f(Jim)i(Burns)f(of)h(Meetinghouse)d(and)i(P)o(aul)h(Congdon)d(of)i(He)n
(wlett)0 5343 y(P)o(ackard.)0 5656 y(V)-11 b(ollbrecht,)19
b(et)i(al.)965 b(Expires)19 b(March)h(18,)f(2004)964
b([P)o(age)19 b(29])p eop
%%Page: 30 30
30 29 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y Fe(Normati)o(v)o(e)
29 b(Refer)n(ences)50 675 y Fg([RFC2119])547 b(Bradner)m(,)24
b(S.,)h(\224K)n(e)o(y)f(w)o(ords)g(for)g(use)g(in)h(RFCs)h(to)e
(Indicate)g(Requirement)e(Le)n(v)o(els\224,)977 775 y(BCP)g(14,)d(RFC)j
(2119,)c(March)i(1997.)50 875 y([RFC2284])547 b(Blunk,)52
b(L.)46 b(and)f(J.)i(V)-11 b(ollbrecht,)51 b(\224PPP)c(Extensible)f
(Authentication)e(Protocol)977 974 y(\(EAP\)\224,)19
b(RFC)j(2284,)d(March)g(1998.)50 1074 y([RFC3579])547
b(Aboba,)21 b(B.)i(and)f(P)-9 b(.)22 b(Calhoun,)f(\224RADIUS)i
(\(Remote)f(Authentication)e(Dial)i(In)g(User)977 1174
y(Service\))14 b(Support)g(F)o(or)h(Extensible)f(Authentication)g
(Protocol)g(\(EAP\)\224,)h(RFC)i(3579,)977 1273 y(September)i(2003.)50
1373 y([I-D.ietf-eap-rfc2284b)o(is])94 b(Blunk,)53 b(L.,)h
(\224Extensible)46 b(Authentication)f(Protocol)h(\(EAP\)\224,)53
b(draft-ietf-eap-)977 1472 y(rfc2284bis-05)16 b(\(w)o(ork)k(in)g
(progress\),)e(September)h(2003.)0 1823 y Fe(Inf)m(ormati)o(v)o(e)28
b(Refer)n(ences)50 2109 y Fg([I-D.aboba-pppe)o(xt-k)n(e)o(y-)o(pr)o(ob)
o(lem])93 b(Aboba,)16 b(B.)h(and)f(D.)g(Simon,)g(\224EAP)h(K)n(e)o(y)f
(Management)e(Frame)n(w)o(ork\224,)h(draft-aboba-)1241
2208 y(pppe)o(xt-k)o(e)o(y-problem-)o(07)f(\(w)o(ork)19
b(in)i(progress\),)d(August)i(2003.)50 2308 y([IEEE.802-1aa.2003)o(])
475 b(Institute)48 b(of)g(Electrical)g(and)f(Electronics)g(Engineers,)
54 b(\224DRAFT)49 b(Local)e(and)1241 2407 y(Metropolitan)16
b(Area)h(Netw)o(orks:)24 b(Port-Based)17 b(Netw)o(ork)f(Access)j
(Control-)d(Amend-)1241 2507 y(ment)k(1\224,)g(IEEE)f(P802.1aa/D6.1,)e
(June)j(2003.)0 2858 y Fe(A)-6 b(uthors')30 b(Addr)n(esses)0
3143 y Fg(John)20 b(R.)g(V)-11 b(ollbrecht)0 3243 y(V)g(ollbrecht)19
b(Consulting)g(LLC)0 3342 y(9682)g(Alice)h(Hill)h(Dri)n(v)o(e)0
3442 y(De)o(xter)m(,)e(MI)h(48130)0 3542 y(USA)0 3641
y(EMail:)25 b(jrv@umich.edu)0 3940 y(P)o(asi)c(Eronen)0
4040 y(Nokia)f(Research)g(Center)0 4139 y(P)-9 b(.O.)20
b(Box)g(407)0 4239 y(FIN-00045)e(Nokia)h(Group,)0 4339
y(Finland)0 4438 y(EMail:)25 b(pasi.eronen@nokia.com)0
4737 y(Nick)20 b(L.)g(Petroni,)g(Jr)-5 b(.)0 4837 y(Uni)n(v)o(ersity)19
b(of)h(Maryland,)e(Colle)o(ge)i(P)o(ark)0 4936 y(A.V)-11
b(.)20 b(W)m(illiams)h(Building)0 5036 y(Colle)o(ge)f(P)o(ark,)f(MD)i
(20742)0 5136 y(USA)0 5235 y(EMail:)k(npetroni@cs.umd.edu)0
5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19
b(March)h(18,)f(2004)964 b([P)o(age)19 b(30])p eop
%%Page: 31 31
31 30 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y(Y)-9
b(oshihiro)19 b(Ohba)0 490 y(T)-7 b(oshiba)20 b(America)f(Information)f
(Systems,)i(Inc.)0 589 y(9740)f(Irvine)g(Blvd.)0 689
y(Irvine,)g(CA)i(92619-1697)0 789 y(USA)0 888 y(EMail:)k
(yohba@tari.toshiba.com)0 1368 y Fe(Intellectual)31 b(Pr)n(operty)f
(Statement)0 1653 y Fg(The)c(IETF)g(tak)o(es)h(no)e(position)h(re)o
(garding)d(the)j(v)n(alidity)g(or)g(scope)g(of)g(an)o(y)f(intellectual)
h(property)e(or)i(other)g(rights)f(that)0 1753 y(might)19
b(be)g(claimed)g(to)h(pertain)f(to)h(the)f(implementation)e(or)j(use)g
(of)f(the)g(technology)f(described)g(in)i(this)g(document)d(or)j(the)0
1852 y(e)o(xtent)f(to)h(which)f(an)o(y)g(license)h(under)f(such)g
(rights)h(might)f(or)g(might)h(not)f(be)h(a)n(v)n(ailable;)f(neither)g
(does)h(it)g(represent)f(that)h(it)0 1952 y(has)i(made)g(an)o(y)f(ef)n
(fort)g(to)h(identify)f(an)o(y)g(such)h(rights.)30 b(Information)19
b(on)j(the)g(IETF')-5 b(s)22 b(procedures)e(with)i(respect)g(to)g
(rights)0 2051 y(in)h(standards-track)d(and)i(standards-related)e
(documentation)g(can)i(be)g(found)f(in)i(BCP-11.)32 b(Copies)23
b(of)f(claims)h(of)f(rights)0 2151 y(made)c(a)n(v)n(ailable)f(for)h
(publication)e(and)i(an)o(y)f(assurances)h(of)g(licenses)g(to)g(be)g
(made)g(a)n(v)n(ailable,)g(or)g(the)g(result)g(of)g(an)g(attempt)0
2251 y(made)f(to)i(obtain)e(a)h(general)f(license)h(or)g(permission)f
(for)h(the)g(use)g(of)g(such)g(proprietary)d(rights)j(by)f
(implementors)g(or)g(users)0 2350 y(of)j(this)h(speci\002cation)e(can)h
(be)g(obtained)f(from)g(the)h(IETF)g(Secretariat.)0 2550
y(The)i(IETF)h(in)m(vites)f(an)o(y)g(interested)g(party)g(to)h(bring)f
(to)h(its)h(attention)d(an)o(y)h(cop)o(yrights,)g(patents)g(or)h
(patent)f(applications,)0 2649 y(or)d(other)f(proprietary)f(rights)i
(which)f(may)h(co)o(v)o(er)f(technology)e(that)k(may)e(be)i(required)d
(to)i(practice)g(this)g(standard.)24 b(Please)0 2749
y(address)c(the)g(information)e(to)i(the)g(IETF)g(Ex)o(ecuti)n(v)o(e)e
(Director)-5 b(.)0 3129 y Fe(Full)31 b(Copyright)f(Statement)0
3414 y Fg(Cop)o(yright)19 b(\(C\))h(The)g(Internet)f(Society)h
(\(2003\).)j(All)d(Rights)h(Reserv)o(ed.)0 3613 y(This)i(document)e
(and)i(translations)f(of)h(it)g(may)g(be)g(copied)f(and)g(furnished)f
(to)i(others,)g(and)g(deri)n(v)n(ati)n(v)o(e)e(w)o(orks)h(that)h(com-)0
3713 y(ment)g(on)h(or)f(otherwise)g(e)o(xplain)g(it)h(or)f(assist)j(in)
d(its)i(implementation)d(may)h(be)h(prepared,)e(copied,)h(published)f
(and)h(dis-)0 3812 y(trib)n(uted,)k(in)g(whole)f(or)h(in)g(part,)h
(without)e(restriction)g(of)g(an)o(y)g(kind,)h(pro)o(vided)e(that)h
(the)h(abo)o(v)o(e)e(cop)o(yright)g(notice)h(and)0 3912
y(this)d(paragraph)e(are)h(included)g(on)g(all)h(such)g(copies)f(and)h
(deri)n(v)n(ati)n(v)o(e)d(w)o(orks.)33 b(Ho)n(we)n(v)o(er)m(,)21
b(this)i(document)e(itself)j(may)e(not)0 4012 y(be)27
b(modi\002ed)e(in)i(an)o(y)f(w)o(ay)-5 b(,)28 b(such)f(as)g(by)g(remo)o
(ving)d(the)j(cop)o(yright)e(notice)h(or)h(references)e(to)i(the)g
(Internet)e(Society)i(or)0 4111 y(other)19 b(Internet)g(or)o
(ganizations,)d(e)o(xcept)j(as)i(needed)e(for)g(the)h(purpose)e(of)i
(de)n(v)o(eloping)d(Internet)i(standards)g(in)h(which)f(case)0
4211 y(the)25 b(procedures)e(for)h(cop)o(yrights)f(de\002ned)h(in)h
(the)g(Internet)f(Standards)g(process)g(must)h(be)g(follo)n(wed,)g(or)g
(as)g(required)e(to)0 4311 y(translate)d(it)h(into)f(languages)f(other)
g(than)h(English.)0 4510 y(The)25 b(limited)h(permissions)f(granted)f
(abo)o(v)o(e)h(are)g(perpetual)g(and)g(will)h(not)g(be)g(re)n(v)n(ok)o
(ed)e(by)h(the)h(Internet)f(Society)g(or)h(its)0 4609
y(successors)20 b(or)g(assignees.)0 4809 y(This)i(document)f(and)g(the)
h(information)e(contained)h(herein)g(is)i(pro)o(vided)d(on)h(an)i
(\224AS)f(IS\224)h(basis)f(and)g(THE)g(INTERNET)0 4908
y(SOCIETY)33 b(AND)g(THE)g(INTERNET)f(ENGINEERING)f(T)-8
b(ASK)34 b(FORCE)g(DISCLAIMS)e(ALL)h(W)-10 b(ARRANTIES,)0
5008 y(EXPRESS)29 b(OR)h(IMPLIED,)d(INCLUDING)h(B)o(UT)h(NO)m(T)g
(LIMITED)e(T)o(O)h(ANY)h(W)-10 b(ARRANTY)30 b(THA)-9
b(T)28 b(THE)g(USE)0 5108 y(OF)j(THE)f(INFORMA)-9 b(TION)30
b(HEREIN)g(WILL)h(NO)m(T)f(INFRINGE)g(ANY)h(RIGHTS)g(OR)g(ANY)g
(IMPLIED)f(W)-10 b(AR-)0 5207 y(RANTIES)20 b(OF)h(MERCHANT)-8
b(ABILITY)20 b(OR)h(FITNESS)f(FOR)i(A)e(P)-8 b(AR)j(TICULAR)22
b(PURPOSE.)0 5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)965
b(Expires)19 b(March)h(18,)f(2004)964 b([P)o(age)19 b(31])p
eop
%%Page: 32 32
32 31 bop 0 100 a Fg(INTERNET)-8 b(-DRAFT)862 b(EAP)21
b(State)f(Machine)841 b(September)19 b(2003)0 390 y Fe(Ackno)o
(wledgement)0 675 y Fg(Funding)g(for)g(the)h(RFC)i(Editor)d(function)g
(is)i(currently)d(pro)o(vided)g(by)i(the)g(Internet)f(Society)-5
b(.)0 5656 y(V)-11 b(ollbrecht,)19 b(et)i(al.)965 b(Expires)19
b(March)h(18,)f(2004)964 b([P)o(age)19 b(32])p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF

PAFTECH AB 2003-20262026-04-23 01:58:12