pax_global_header 0000666 0000000 0000000 00000000064 14573150434 0014520 g ustar 00root root 0000000 0000000 52 comment=93240b15141abd9be961ab7b1c68c77fc445e4e7
ruby-rghost-0.9.9/ 0000775 0000000 0000000 00000000000 14573150434 0014024 5 ustar 00root root 0000000 0000000 ruby-rghost-0.9.9/.gitignore 0000664 0000000 0000000 00000000431 14573150434 0016012 0 ustar 00root root 0000000 0000000 # Ignore all logfiles and tempfiles
/tmp/
/tags
# Environment normalisation
/.env
/.rspec-local
/.yardoc
/lib/bundler/man/
# Gem packaging stuff
/*.gem
/pkg/
# Dependencies and such
/.bundle
/.ruby-version
/Gemfile.lock
# Spec housekeeping
/spec/rspec-status.txt
/spec/reports
ruby-rghost-0.9.9/.rspec 0000664 0000000 0000000 00000000061 14573150434 0015136 0 ustar 00root root 0000000 0000000 --require spec_helper
--color
--format progress
ruby-rghost-0.9.9/Gemfile 0000664 0000000 0000000 00000000343 14573150434 0015317 0 ustar 00root root 0000000 0000000 source "https://rubygems.org"
# Specify runtime dependencies in rghost.gemspec
gemspec
gem "pry-byebug", group: [:development, :test], platforms: [:ruby]
gem "rspec", group: :test
gem "standard", group: [:development, :test]
ruby-rghost-0.9.9/LICENSE 0000664 0000000 0000000 00000002064 14573150434 0015033 0 ustar 00root root 0000000 0000000 Copyright (c) 2007-2008 Shairon Toledo
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
ruby-rghost-0.9.9/README.md 0000664 0000000 0000000 00000000076 14573150434 0015306 0 ustar 00root root 0000000 0000000 [See wiki pages](https://github.com/shairontoledo/rghost/wiki) ruby-rghost-0.9.9/bin/ 0000775 0000000 0000000 00000000000 14573150434 0014574 5 ustar 00root root 0000000 0000000 ruby-rghost-0.9.9/bin/console 0000775 0000000 0000000 00000000331 14573150434 0016161 0 ustar 00root root 0000000 0000000 #!/usr/bin/env ruby
# frozen_string_literal: true
require "bundler/setup"
require "rghost"
# Add fixtures and/or initialization code here to make experimenting with RGhost easier.
require "irb"
IRB.start(__FILE__)
ruby-rghost-0.9.9/bin/rspec 0000775 0000000 0000000 00000001356 14573150434 0015643 0 ustar 00root root 0000000 0000000 #!/usr/bin/env ruby
# frozen_string_literal: true
#
# This file was generated by Bundler.
#
# The application 'rspec' is installed as part of a gem, and
# this file is here to facilitate running it.
#
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
bundle_binstub = File.expand_path("bundle", __dir__)
if File.file?(bundle_binstub)
if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
load(bundle_binstub)
else
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
end
end
require "rubygems"
require "bundler/setup"
load Gem.bin_path("rspec-core", "rspec")
ruby-rghost-0.9.9/bin/standardrb 0000775 0000000 0000000 00000001366 14573150434 0016654 0 ustar 00root root 0000000 0000000 #!/usr/bin/env ruby
# frozen_string_literal: true
#
# This file was generated by Bundler.
#
# The application 'standardrb' is installed as part of a gem, and
# this file is here to facilitate running it.
#
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
bundle_binstub = File.expand_path("bundle", __dir__)
if File.file?(bundle_binstub)
if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
load(bundle_binstub)
else
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
end
end
require "rubygems"
require "bundler/setup"
load Gem.bin_path("standard", "standardrb")
ruby-rghost-0.9.9/lib/ 0000775 0000000 0000000 00000000000 14573150434 0014572 5 ustar 00root root 0000000 0000000 ruby-rghost-0.9.9/lib/rghost.rb 0000664 0000000 0000000 00000000513 14573150434 0016424 0 ustar 00root root 0000000 0000000 $LOAD_PATH << File.dirname(__FILE__) + File::SEPARATOR + "rghost"
require "fileutils"
module RGhost
class RenderException < Exception; end
end
require "rghost/version"
require "rghost/ps_object"
require "rghost/variable"
require "rghost/ps_facade"
require "rghost/function"
require "rghost/document"
require "rghost/grid/grid"
ruby-rghost-0.9.9/lib/rghost/ 0000775 0000000 0000000 00000000000 14573150434 0016100 5 ustar 00root root 0000000 0000000 ruby-rghost-0.9.9/lib/rghost/border.rb 0000664 0000000 0000000 00000004134 14573150434 0017704 0 ustar 00root root 0000000 0000000 # Border object render a border around of vector shapes. Its sketch can be a combination of color, dashes, line joins and line caps.
# Usually its use inside of object facades, such as, Document, CallbackFacade and PsFacade as parameter :border, for example:
# d=Document.new
# d.horizontal_line :middle, :border => { :color => '#058412', :dash => [1,0,2] }
# You can use it as a new instance of Border and set inside of Document by method set, example:
# d=Document.new
# b=Border.new :color => '#058412', :dash => [1,0,2]
# d.set b
# d.lineto :x => 2.5, :y => 5
#===Options
# * :color - Facade to Color using the same parameter.
# * :dash - Facade to Dash using the same parameter.
# * :width - Facade to LineWidth using the same parameter.
# * :linejoin - Sets the line join parameter in the graphics state to int, which must be one of the integers 0, 1, or 2.
#====:linejoin examples
# * Miter join link:images/linejoin0.png :linejoin => 0
# * Round join link:images/linejoin1.png :linejoin => 1
# * Bevel join link:images/linejoin2.png :linejoin => 2
# * :linecap - Sets the line cap parameter in the graphics state to int, which must be one of the integers 0, 1, or 2
#====:linecap examples
# * Butt cap link:images/linecap0.png :linecap => 0
# * Round cap link:images/linecap1.png :linecap => 1
# * Projecting square cap link:images/linecap2.png :linecap => 2
class RGhost::Border < RGhost::PsObject
DEFAULT_OPTIONS = {color: "#49AAFA", dash: false, width: 0.5, linejoin: 0, linecap: 0}
def initialize(options = {})
super("") {}
@options = DEFAULT_OPTIONS.dup.merge(options)
end
def ps # :nodoc:
p = RGhost::PsObject.new
p.set RGhost::LineWidth.new(@options[:width]) if @options[:width]
p.raw "#{@options[:linejoin]} setlinejoin"
p.raw "#{@options[:linecap]} setlinecap"
p.set RGhost::Dash.new(@options[:dash]) if @options[:dash]
p.set RGhost::Color.create(@options[:color]) if @options[:color]
p
end
end
ruby-rghost-0.9.9/lib/rghost/callback.rb 0000664 0000000 0000000 00000003511 14573150434 0020161 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/ruby_to_ps"
# Callbacks are custom code blocks defined inside of Document.
# All callbacks received implicitly a instance of PsFacade can be creates any PsObject.
# The callbacks's execution depend of the algorithims predefined in Postscript core library.
# There are two kind of callbacks, Statics and Dynamics callbacks.
# A Static callback there aren't parameters to control of the inclusion and exception on current scope, usually
# applied for events which happen one time, for example after_document_create, "after document create" always will execute one time for each document.
# Otherwise Dynamic callbacks there is control of scope using conditional :only or :except, this is only difference in relation the static callbacks.
# The parameters of a Dynamic callbak must be one integer or one array of integer. Example:
# For all pages except page 3
# doc.before_page_create :except => 3 do |b|
# # do something
# end
#
# For just 2 and 4 pages
# doc.before_page_create :only => [2,4] do |b|
# # do something
# end
#
# The most of callbacks are defined in facades such as DocumentCallbackFacade and Grid::CallbackFacade
class RGhost::Callback < RGhost::PsObject
attr_accessor :only, :except, :name
include RGhost::RubyToPs
def initialize(name, options = {}, &block)
super("") {}
set RGhost::PsFacade.new(&block) if block
@name = name
@options = options
end
def ps
@only = num_to_array(@options[:only])
@except = num_to_array(@options[:except])
"\n/#{@name} 3 dict def #{@name} begin \n/proc { #{super} } bind def \n/except #{to_array(@except)} def \n/only #{to_array(@only)} def \nend "
end
private
def num_to_array(value)
case value
when Integer
a = []
a << value
when NilClass then []
else
value
end
end
end
ruby-rghost-0.9.9/lib/rghost/circle.rb 0000664 0000000 0000000 00000006261 14573150434 0017673 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/units"
# Draw a circle to the current path(or current row by default).
#===Options
#
# * :x and :y - as center of the circle.
# * :radius - as radius(in points).
# * :ang1 - the angle of a vector from (:x , :y ) of length :radius to the first endpoint of the circle.
# * :ang2 - the angle of a vector from (:x, :y) of length :radius to the second endpoint of the circle.
# * :content - facade to ShapeContent with same parameters.
# * :border - facade to Border with same parameters.
# * :use - :arc draw counterclockwise and :arcn (arc negative) clockwise direction.
#===Examples using facade circle method inside of Document
# d=Document.new
# d.circle :x => 5, :y => 2.5 , :radius => 40
#
# link:images/circle01.png
# d=Document.new
# d.circle :x => 5, :y => 2.5 , :radius => 40, :content => {:fill => false}
#
# link:images/circle02.png
#
# d=Document.new
# d.circle :x => 5, :y => 2.5 , :radius => 40, :content => {:color => "#FF0000"}
#
# link:images/circle03.png
#
# d=Document.new
# d.circle :x => 5, :y => 2.5 , :radius => 40, :content => {:color => "#FF0000"} ,:border => {:color => "#FFFFFF"}
#
# link:images/circle04.png
#
# d=Document.new
# d.circle :x => 5, :y => 2.5 , :radius => 40, :content => {:color => :yellow} ,:border => {:color => :orange, :dash => [1,2,1,2], :width => 20}
#
# link:images/circle05.png
#
# d=Document.new
# colors=%w[#98AE09 #AFE099 #A971FF #CC1010 #FF7201 #34FEE1]
# 6.downto(1) do |v|
# d.circle :x => 5, :y => 2.5 , :radius => v*10, :content =>{:color => colors[v]}
# end
#
# link:images/circle06.png
# d=Document.new
# d.circle :x => 5, :y => 2.5 , :ang1 => 90, :radius => 50, :content => {:fill => false }
#
# link:images/circle07.png
#
# d=Document.new
# d.circle :x => 5, :y => 2.5 , :ang2 => 90, :radius => 50, :content => {:fill => false }
#
# link:images/circle08.png
#
# d=Document.new
# d.circle :x => 5, :y => 2.5 , :ang2 => 90, :radius => 50, :content =>{:color => :green}
#
# link:images/circle09.png
#
# d=Document.new
# d.circle :x => 5, :y => 2.5 , :ang2 => 90, :use => :arcn, :radius => 50, :content =>{:color => :green}
#
# link:images/circle10.png
#
#===Examples using Circle class
# d=Document.new
# d.scale(3,1)
# d.set Circle.new(:x => 1.5, :y => 1.5 , :ang2 => 180, :radius => 25)
#
# link:images/circle11.png
class RGhost::Circle < RGhost::PsObject
DEFAULT_OPTIONS = {
x: :limit_left,
y: :current_row,
radius: 50,
ang1: 0,
ang2: 360,
use: :arc,
content: RGhost::ShapeContent::DEFAULT_OPTIONS,
border: RGhost::Border::DEFAULT_OPTIONS
}
def initialize(options = {})
super("") {}
@options = DEFAULT_OPTIONS.dup.merge(options)
end
def ps
x, y = RGhost::Units.parse(@options[:x]), RGhost::Units.parse(@options[:y]) # with parse
graph = RGhost::Graphic.new
graph.raw :newpath
graph.set RGhost::Border.new(@options[:border]) if @options[:border]
graph.raw "#{x} #{y} #{@options[:radius]} #{@options[:ang1]} #{@options[:ang2]} #{@options[:use]} "
graph.set RGhost::ShapeContent.new(@options[:content]) if @options[:content]
graph.raw :stroke
graph
end
end
ruby-rghost-0.9.9/lib/rghost/color.rb 0000664 0000000 0000000 00000012456 14573150434 0017553 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/constants"
require "rghost/ruby_to_ps" # array_to_stack
# Creates color for postscript components
class RGhost::Color < RGhost::PsObject
include RGhost::RubyToPs
# The method create is a color factory depends when parameter is used. The parameter variate between 0 and 1, if value greatet that 1 will be divided by 100.0 .
#===Examples
#====Creating RGB color
# String HTML color converter
# Color.create '#FFAA33'
# As Symbol will be find in RGhost::Constants::Colors::RGB
# Color.create :red
# As Array with 3 elements
# Color.create [0.5, 0.3, 0.5]
# Hash with 3 pair of key/value. Valids keys :red, :green and :blue
# Color.create :red => 0.5, :green => 0.3, :blue => 0.5
# Hash with 3 pair of key/value. Valids keys :r, :g and :b
# Color.create :r => 0.5, :g => 0.3, :b => 0.5
#====Creating CMYK color
# Hash with 4 pair of key/value. Valids keys :cyan, :magenta, :yellow and :black
# Color.create :cyan=> 1 ,:magenta => 0.3, :yellow => 0, :black => 0
# Hash with 4 pair of key/value. Valids keys :c, :m, :y and :b
# Color.create :c=> 1 ,:m => 0.3, :y => 0, :b => 0
#====Creating CMYK Spot color
# Hash with 5 pair of key/value. Valids keys :cyan, :magenta, :yellow, :black, and :name
# Color.create :cyan=> 0, :magenta => 100, :yellow => 63, :black => 12, :name => 'Pantone 200 C'
#====Creating Gray color
# A single Numeric
# Color.create 0.5
# 50 percent of black will be divided by 100.0
# Color.create 50
def self.create(color = "FFAA99")
case color
when String then RGhost::RGB.new(color)
when Symbol
c = RGhost::Constants::Colors::RGB[color]
raise ArgumentError.new("#{color}##{color.class}") unless c
create c
when Array, Hash
if color.size == 3
RGhost::RGB.new(color)
elsif color.size == 4
RGhost::CMYK.new(color)
elsif color.size == 5
RGhost::CMYKSpot.new(color)
else
raise ArgumentError.new("#{color}##{color.class}")
end
when Numeric then RGhost::Gray.new(color)
else
raise ArgumentError.new("#{color}##{color.class}")
end
end
end
# Creates RGB color
class RGhost::RGB < RGhost::Color
attr_accessor :red, :green, :blue
CONSTANTS = RGhost::Constants::Colors::RGB
DEFAULT_RGB = {red: 0, green: 0, blue: 0}
# String HTML color converter
# Color.create '#FFAA33'
# As Symbol will be find in RGhost::Constants::Colors::RGB
# Color.create :red
# As Array with 3 elements
# Color.create [0.5, 0.3, 0.5]
# Hash with 3 pair of key/value. Valids keys :red, :green and :blue
# Color.create :red => 0.5, :green => 0.3, :blue => 0.5
# Hash with 3 pair of key/value. Valids keys :r, :g and :b
# Color.create :r => 0.5, :g => 0.3, :b => 0.5
def initialize(color_or_red = nil, green = nil, blue = nil)
@color = color_or_red
@color = [color_or_red.to_f, green.to_f, blue.to_f] if color_or_red.is_a? Numeric
@color = DEFAULT_RGB.merge(color_or_red) if color_or_red.is_a? Hash
end
def ps
value = color_params
array_to_stack(value.map { |n| (n > 1) ? n / 100.0 : n }) + "setrgbcolor"
end
def stack_format
color_params
end
def color_params
case @color
when Hash then [@color[:r] || @color[:red], @color[:g] || @color[:green], @color[:b] || @color[:blue]]
when Array then @color
when String then hex_to_rgb(@color)
when NilClass then [0, 0, 1]
end
end
def hex_to_rgb(color = "#FFFFFF")
color.delete("#").scan(/[\dA-F]{2}/).map { |h| h.hex / 255.0 }
end
end
# Creates CMYK color space
class RGhost::CMYK < RGhost::Color
attr_accessor :cyan, :magenta, :yellow, :black
CONSTANTS = RGhost::Constants::Colors::CMYK
# Hash with 4 pair of key/value. Valids keys :cyan, :magenta, :yellow and :black
# Color.create :cyan=> 1 ,:magenta => 0.3, :yellow => 0, :black => 0
# Hash with 4 pair of key/value. Valids keys :c, :m, :y and :b
# Color.create :c=> 1 ,:m => 0.3, :y => 0, :b => 0
def initialize(color = {cyan: 1, magenta: 0, yellow: 0, black: 0})
@color = color
end
def ps
value = case @color
when Hash then [@color[:c] || @color[:cyan], @color[:m] || @color[:magenta], @color[:y] || @color[:yellow], @color[:k] || @color[:black]]
when Array then @color
end
array_to_stack(value.map { |n| (n > 1) ? n / 100.0 : n }) + "setcmykcolor"
end
end
# Creates CMYK Spot color space
class RGhost::CMYKSpot < RGhost::Color
attr_accessor :cyan, :magenta, :yellow, :black, :name
def initialize(color = {name: "spot", cyan: 1, magenta: 0, yellow: 0, black: 0})
@name = color[:name]
color.delete(:name)
@color = color
end
def ps
value = case @color
when Hash then [@color[:c] || @color[:cyan], @color[:m] || @color[:magenta], @color[:y] || @color[:yellow], @color[:k] || @color[:black]]
when Array then @color
end
array_to_stack(value.map { |n| (n > 1) ? n / 100.0 : n }) + "(#{@name}) findcmykcustomcolor \n/#{@name.to_s.tr(" ", "_")} exch def\n\n#{@name.to_s.tr(" ", "_")} 1 setcustomcolor"
end
end
# Creates Gray color
class RGhost::Gray < RGhost::Color
attr_accessor :gray
# A single Numeric
# Color.create 0.5
# 50 percent of black will be divided by 100.0
# Color.create 50
def initialize(gray = 0.8)
@gray = gray
end
def ps # :nodoc:
@gray /= 100.0 if @gray > 1
"#{@gray} setgray"
end
end
ruby-rghost-0.9.9/lib/rghost/constants.rb 0000664 0000000 0000000 00000104352 14573150434 0020446 0 ustar 00root root 0000000 0000000 require "rghost/helpers"
module RGhost::Constants
module HashKeyMethod # :nodoc:
def method_missing(method, *args)
self[method.to_sym]
end
end
class HashKeyMethodClass < Hash # :nodoc:
include RGhost::Constants::HashKeyMethod
end
module Devices
# Standard Devices
STANDARD = RGhost::Constants::HashKeyMethodClass[
#-- MS-DOS displays",
ega: "EGA (640x350, 16-color)",
vga: "VGA (640x480, 16-color)",
#-- Ms Windows => "",
ali: "SuperVGA using Avance Logic Inc. chipset, 256-color modes",
atiw: "ATI Wonder SuperVGA, 256-color modes",
cirr: "SuperVGA using Cirrus Logic CL-GD54XX chips, 256-color modes",
s3vga: "SuperVGA using S3 86C911 chip (e.g., Diamond Stealth board)",
svga16: "Generic SuperVGA in 800x600, 16-color mode",
tseng: "SuperVGA using Tseng Labs ET3000/4000 chips, 256-color modes",
vesa: "SuperVGA with VESA standard API driver",
mswindll: "Microsoft Windows 3.1 DLL => [MS Windows only]",
mswinprn: "Microsoft Windows 3.0, 3.1 DDB printer => [MS Windows only]",
mswinpr2: "Microsoft Windows 3.0, 3.1 DIB printer => [MS Windows only]",
#-- Others Displays",
os2pm: "OS/2 Presentation Manager => [OS/2 only]",
os2dll: "OS/2 DLL bitmap::[OS/2 only]",
os2prn: "OS/2 printer:: => [OS/2 only]",
#-- Unix Displays",
lvga256: "Linux vgalib, 256-color VGA modes => [Linux only]",
vgalib: "Linux vgalib, 16-color VGA modes => [Linux only]",
x11: "X Windows version 11, release >=4 => [Unix and VMS only]",
x11alpha: "X Windows masquerading as a device with alpha capability",
x11cmyk: "X Windows masquerading as a 1-bit-per-plane CMYK device",
x11cmyk2: "X Windows as a 2-bit-per-plane CMYK device",
x11cmyk4: "X Windows as a 4-bit-per-plane CMYK device",
x11cmyk8: "X Windows as an 8-bit-per-plane CMYK device",
x11gray2: "X Windows as a 2-bit gray-scale device",
x11gray4: "X Windows as a 4-bit gray-scale device",
x11mono: "X Windows masquerading as a black-and-white device",
x11rg16x: "X Windows with G5/B5/R6 pixel layout for testing.",
x11rg32x: "X Windows with G11/B10/R11 pixel layout for testing.",
#-- Printers",
epson: "Epson-compatible dot matrix printers (9- or 24-pin)",
eps9mid: "Epson-compatible 9-pin, interleaved lines (intermediate resolution)",
eps9high: "Epson-compatible 9-pin, interleaved lines (triple resolution)",
atx23: "Practical Automation ATX-23 label printer",
atx24: "Practical Automation ATX-24 label printer",
atx38: "Practical Automation ATX-38 label printer",
deskjet: "H-P DeskJet and DeskJet Plus",
djet500: "H-P DeskJet 500; use -r600 for DJ 600 series",
fs600: "Kyocera FS-600 (600 dpi)",
laserjet: "H-P LaserJet",
ljet2p: "H-P LaserJet IId/IIp/III* with TIFF compression",
ljet3: "H-P LaserJet III* with Delta Row compression",
ljet3d: "H-P LaserJet IIID with duplex capability",
ljet4: "H-P LaserJet 4 (defaults to 600 dpi)",
ljet4d: "H-P LaserJet 4 (defaults to 600 dpi) with duplex",
ljetplus: "H-P LaserJet Plus",
lj5mono: "H-P LaserJet 5 & 6 family (PCL XL), bitmap:",
lj5gray: "H-P LaserJet 5 & 6 family, gray-scale bitmap;",
lp2563: "H-P 2563B line printer",
oce9050: "OCE 9050 printe",
#-- Fax file format",
faxg3: "Group 3 fax, with EOLs but no header or EOD",
faxg32d: "Group 3 2-D fax, with EOLs but no header or EOD",
faxg4: "Group 4 fax, with EOLs but no header or EOD",
tiffcrle: "TIFF CCITT RLE 1-dim (= Group 3 fax with no EOLs)",
tiffg3: "TIFF Group 3 fax (with EOLs)",
tiffg32d: "TIFF Group 3 2-D fax",
tiffg4: "TIFF Group 4 fax",
#-- High-level (vector) file formats",
eps2write: "EPS output (like PostScript Distillery)",
pdfwrite: "PDF output (like Adobe Acrobat Distiller)",
pswrite: "PostScript output (like PostScript Distillery)",
pxlmono: "Black-and-white PCL XL",
pxlcolor: "Color PCL XL",
#-- Raster file formats and devices",
bit: "Plain bits, monochrome",
bitrgb: "Plain bits, RGB",
bitcmyk: "Plain bits, CMYK",
bmpmono: "Monochrome MS Windows .BMP file format",
bmpgray: "8-bit gray .BMP file format",
bmpsep1: "Separated 1-bit CMYK .BMP file format, primarily for testing",
bmpsep8: "Separated 8-bit CMYK .BMP file format, primarily for testing",
bmp16: "4-bit (EGA/VGA) .BMP file format",
bmp256: "8-bit (256-color) .BMP file format",
bmp16m: "24-bit .BMP file format",
bmp32b: "32-bit pseudo-.BMP file format",
cgmmono: "Monochrome (black-and-white) CGM -- LOW LEVEL OUTPUT ONLY",
cgm8: "8-bit (256-color) CGM -- DITTO",
cgm24: "24-bit color CGM -- DITTO",
jpeg: "JPEG format, RGB output",
jpeggray: "JPEG format, gray output",
miff24: "ImageMagick MIFF format, 24-bit direct color, RLE compressed",
pcxmono: "PCX file format, monochrome (1-bit black and white)",
pcxgray: "PCX file format, 8-bit gray scale",
pcx16: "PCX file format, 4-bit planar (EGA/VGA) color",
pcx256: "PCX file format, 8-bit chunky color",
pcx24b: "PCX file format, 24-bit color (3 8-bit planes)",
pcxcmyk: "PCX file format, 4-bit chunky CMYK color",
pbm: "Portable Bitmap (plain format)",
pbmraw: "Portable Bitmap (raw format)",
pgm: "Portable Graymap (plain format)",
pgmraw: "Portable Graymap (raw format)",
pgnm: "Portable Graymap (plain format), optimizing to PBM if possible",
pgnmraw: "Portable Graymap (raw format), optimizing to PBM if possible",
pnm: "Portable Pixmap (plain format) (RGB), optimizing to PGM or PBM",
pnmraw: "Portable Pixmap (raw format) (RGB), optimizing to PGM or PBM",
ppm: "Portable Pixmap (plain format) (RGB)",
ppmraw: "Portable Pixmap (raw format) (RGB)",
pkm: "Portable inKmap (plain format) (4-bit CMYK => RGB)",
pkmraw: "Portable inKmap (raw format) (4-bit CMYK => RGB)",
pksm: "Portable Separated map (plain format) (4-bit CMYK => 4 pages)",
pksmraw: "Portable Separated map (raw format) (4-bit CMYK => 4 pages)",
plan9bm: "Plan 9 bitmap format",
pngmono: "Monochrome Portable Network Graphics (PNG)",
pnggray: "8-bit gray Portable Network Graphics (PNG)",
png16: "4-bit color Portable Network Graphics (PNG)",
png256: "8-bit color Portable Network Graphics (PNG)",
png16m: "24-bit color Portable Network Graphics (PNG)",
psmono: "PostScript (Level 1) monochrome image",
psgray: "PostScript (Level 1) 8-bit gray image",
psrgb: "PostScript (Level 2) 24-bit color image",
tiff12nc: "TIFF 12-bit RGB, no compression",
tiff24nc: "TIFF 24-bit RGB, no compression (NeXT standard format)",
tifflzw: "TIFF LZW (tag = 5) (monochrome)",
tiffpack: "TIFF PackBits (tag = 32773) (monochrome)"
]
DEVICES_ALIAS = {
eps: :eps2write,
pdf: :pdfwrite,
ps: :ps2write,
pcl: :pxlmono,
tif: :tiffcrle,
tiff: :tiffcrle,
jpg: :jpeg,
png: :png16m
}
# Load device by alias
def device_for(dev)
return DEVICES_ALIAS[dev] if DEVICES_ALIAS.key? dev
return dev if STANDARD.key? dev
raise "Undefined device: #{dev}"
end
end
module Fonts
# Standard Encodings
ENCODINGS = ["ISOLatin1Encoding", "StandardEncoding "]
# Standard Fonts
STANDARD = {
"AvantGarde-Book" => "Adobe-ITC Avant Garde Gothic-Book-R-Normal--*",
"AvantGarde-BookOblique" => "Adobe-ITC Avant Garde Gothic-Book-O-Normal--*",
"AvantGarde-Demi" => "Adobe-ITC Avant Garde Gothic-Demi-R-Normal--*",
"AvantGarde-DemiOblique" => "Adobe-ITC Avant Garde Gothic-Demi-O-Normal--*",
"Bookman-Demi" => "Adobe-ITC Bookman-Demi-R-Normal--*",
"Bookman-DemiItalic" => "Adobe-ITC Bookman-Demi-I-Normal--*",
"Bookman-Light" => "Adobe-ITC Bookman-Light-R-Normal--*",
"Bookman-LightItalic" => "Adobe-ITC Bookman-Light-I-Normal--*",
:Courier => "Adobe-Courier-Medium-R-Normal--*",
"Courier-Bold" => "Adobe-Courier-Bold-R-Normal--*",
"Courier-BoldOblique" => "Adobe-Courier-Bold-O-Normal--*",
"Courier-Oblique" => "Adobe-Courier-Medium-O-Normal--*",
:Helvetica => "Adobe-Helvetica-Medium-R-Normal--*",
"Helvetica-Bold" => "Adobe-Helvetica-Bold-R-Normal--*",
"Helvetica-BoldOblique" => "Adobe-Helvetica-Bold-O-Normal--*",
"Helvetica-Narrow" => "Adobe-Helvetica-Medium-R-Narrow--*",
"Helvetica-Narrow-Bold" => "Adobe-Helvetica-Bold-R-Narrow--*",
"Helvetica-Narrow-BoldOblique" => "Adobe-Helvetica-Bold-O-Narrow--*",
"Helvetica-Narrow-Oblique" => "Adobe-Helvetica-Medium-O-Narrow--*",
"Helvetica-Oblique" => "Adobe-Helvetica-Medium-O-Normal--*",
"NewCenturySchlbk-Bold" => "Adobe-New Century Schoolbook-Bold-R-Normal--*",
"NewCenturySchlbk-BoldItalic" => "Adobe-New Century Schoolbook-Bold-I-Normal--*",
"NewCenturySchlbk-Italic" => "Adobe-New Century Schoolbook-Medium-I-Normal--*",
"NewCenturySchlbk-Roman" => "Adobe-New Century Schoolbook-Medium-R-Normal--*",
"Palatino-Bold" => "Adobe-Palatino-Bold-R-Normal--*",
"Palatino-BoldItalic" => "Adobe-Palatino-Bold-I-Normal--*",
"Palatino-Italic" => "Adobe-Palatino-Medium-I-Normal--*",
"Palatino-Roman" => "Adobe-Palatino-Medium-R-Normal--*",
:Times => "Adobe-Times-Normal--*",
"Times-Bold" => "Adobe-Times-Bold-R-Normal--*",
"Times-BoldItalic" => "Adobe-Times-Bold-I-Normal--*",
"Times-Italic" => "Adobe-Times-Medium-I-Normal--*",
"Times-Roman" => "Adobe-Times-Medium-R-Normal--*",
"ZapfChancery-MediumItalic" => "Adobe-ITC Zapf Chancery-Medium-I-Normal--",
:Symbol => "Adobe-Symbol-Medium-R-Normal--",
:ZapfDingbats => "Adobe-ITC Zapf Dingbats-Medium-R-Normal--"
}
SUNS = {
"AvantGarde-Book" => "-itc-avantgarde-book-r-normal--*",
"AvantGarde-BookOblique" => "-itc-avantgarde-book-o-normal--*",
"AvantGarde-Demi" => "-itc-avantgarde-demi-r-normal--*",
"AvantGarde-DemiOblique" => "-itc-avantgarde-demi-o-normal--*",
"Bembo" => "-monotype-bembo-medium-r-normal--*",
"Bembo-Bold" => "-monotype-bembo-bold-r-normal--*",
"Bembo-BoldItalic" => "-monotype-bembo-bold-i-normal--*",
"Bembo-Italic" => "-monotype-bembo-medium-i-normal--*",
"Bookman-Demi" => "-itc-bookman-demi-r-normal--*",
"Bookman-DemiItalic" => "-itc-bookman-demi-i-normal--*",
"Bookman-Light" => "-itc-bookman-light-r-normal--*",
"Bookman-LightItalic" => "-itc-bookman-light-i-normal--*",
"Courier" => "-itc-courier-medium-r-normal--*",
"Courier-Bold" => "-itc-courier-bold-r-normal--*",
"Courier-BoldOblique" => "-itc-courier-bold-o-normal--*",
"Courier-Oblique" => "-itc-courier-medium-o-normal--*",
"GillSans" => "-monotype-gill-medium-r-normal-sans-*",
"GillSans-Bold" => "-monotype-gill-bold-r-normal-sans-*",
"GillSans-BoldItalic" => "-monotype-gill-bold-i-normal-sans-*",
"GillSans-Italic" => "-monotype-gill-normal-i-normal-sans-*",
"Helvetica" => "-linotype-helvetica-medium-r-normal--*",
"Helvetica-Bold" => "-linotype-helvetica-bold-r-normal--*",
"Helvetica-BoldOblique" => "-linotype-helvetica-bold-o-normal--*",
"Helvetica-Narrow" => "-linotype-helvetica-medium-r-narrow--*",
"Helvetica-Narrow-Bold" => "-linotype-helvetica-bold-r-narrow--*",
"Helvetica-Narrow-BoldOblique" => "-linotype-helvetica-bold-o-narrow--*",
"Helvetica-Narrow-Oblique" => "-linotype-helvetica-medium-o-narrow--*",
"Helvetica-Oblique" => "-linotype-helvetica-medium-o-normal--*",
"LucidaBright" => "-b&h-lucidabright-medium-r-normal--*",
"LucidaBright-Demi" => "-b&h-lucidabright-demibold-r-normal--*",
"LucidaBright-DemiItalic" => "-b&h-lucidabright-demibold-i-normal--*",
"LucidaBright-Italic" => "-b&h-lucidabright-medium-i-normal--*",
"LucidaSans" => "-b&h-lucida-medium-r-normal-sans-*",
"LucidaSans-Bold" => "-b&h-lucida-bold-r-normal-sans-*",
"LucidaSans-BoldItalic" => "-b&h-lucida-bold-i-normal-sans-*",
"LucidaSans-Italic" => "-b&h-lucida-medium-i-normal-sans-*",
"LucidaSans-Typewriter" => "-b&h-lucidatypewriter-medium-r-normal-sans-*",
"LucidaSans-TypewriterBold" => "-b&h-lucidatypewriter-bold-r-normal-sans-*",
"NewCenturySchlbk-BoldItalic" => "-linotype-new century schoolbook-bold-i-normal--*",
"NewCenturySchlbk-Bold" => "-linotype-new century schoolbook-bold-r-normal--*",
"NewCenturySchlbk-Italic" => "-linotype-new century schoolbook-medium-i-normal--*",
"NewCenturySchlbk-Roman" => "-linotype-new century schoolbook-medium-r-normal--*",
"Palatino-Bold" => "-linotype-palatino-bold-r-normal--*",
"Palatino-BoldItalic" => "-linotype-palatino-bold-i-normal--*",
"Palatino-Italic" => "-linotype-palatino-medium-i-normal--*",
"Palatino-Roman" => "-linotype-palatino-medium-r-normal--*",
"Rockwell" => "-monotype-rockwell-medium-r-normal--*",
"Rockwell-Bold" => "-monotype-rockwell-bold-r-normal--*",
"Rockwell-BoldItalic" => "-monotype-rockwell-bold-i-normal--*",
"Rockwell-Italic" => "-monotype-rockwell-medium-i-normal--*",
"Times-Bold" => "-linotype-times-bold-r-normal--*",
"Times-BoldItalic" => "-linotype-times-bold-i-normal--*",
"Times-Italic" => "-linotype-times-medium-i-normal--*",
"Times-Roman" => "-linotype-times-medium-r-normal--*",
"Utopia-Bold" => "-adobe-utopia-bold-r-normal--*",
"Utopia-BoldItalic" => "-adobe-utopia-bold-i-normal--*",
"Utopia-Italic" => "-adobe-utopia-regular-i-normal--*",
"Utopia-Regular" => "-adobe-utopia-regular-r-normal--*",
"ZapfChancery-MediumItalic" => "-itc-zapfchancery-medium-i-normal--",
"ZapfDingbats" => "-itc-zapfdingbats-medium-r-normal--",
"Symbol" => "--symbol-medium-r-normal--"
}
end
# Color map
module Colors
RGB = RGhost::Constants::HashKeyMethodClass[
aliceBlue: [0.941176470588235, 0.972549019607843, 1.0],
antiqueWhite: [0.980392156862745, 0.92156862745098, 0.843137254901961],
aqua: [0.0, 1.0, 1.0],
aquamarine: [0.498039215686275, 1.0, 0.831372549019608],
azure: [0.941176470588235, 1.0, 1.0],
beige: [0.96078431372549, 0.96078431372549, 0.862745098039216],
bisque: [1.0, 0.894117647058824, 0.768627450980392],
black: [0.0, 0.0, 0.0],
blanchedAlmond: [1.0, 0.92156862745098, 0.803921568627451],
blue: [0.0, 0.0, 1.0],
blueViolet: [0.541176470588235, 0.168627450980392, 0.886274509803922],
brown: [0.647058823529412, 0.164705882352941, 0.164705882352941],
burlyWood: [0.870588235294118, 0.72156862745098, 0.529411764705882],
cadetBlue: [0.372549019607843, 0.619607843137255, 0.627450980392157],
chartreuse: [0.498039215686275, 1.0, 0.0],
chocolate: [0.823529411764706, 0.411764705882353, 0.117647058823529],
coral: [1.0, 0.498039215686275, 0.313725490196078],
cornflowerBlue: [0.392156862745098, 0.584313725490196, 0.929411764705882],
cornsilk: [1.0, 0.972549019607843, 0.862745098039216],
crimson: [0.862745098039216, 0.0784313725490196, 0.235294117647059],
cyan: [0.0, 1.0, 1.0],
darkBlue: [0.0, 0.0, 0.545098039215686],
darkCyan: [0.0, 0.545098039215686, 0.545098039215686],
darkGoldenRod: [0.72156862745098, 0.525490196078431, 0.0431372549019608],
darkGray: [0.662745098039216, 0.662745098039216, 0.662745098039216],
darkGreen: [0.0, 0.392156862745098, 0.0],
darkGrey: [0.662745098039216, 0.662745098039216, 0.662745098039216],
darkKhaki: [0.741176470588235, 0.717647058823529, 0.419607843137255],
darkMagenta: [0.545098039215686, 0.0, 0.545098039215686],
darkOliveGreen: [0.333333333333333, 0.419607843137255, 0.184313725490196],
darkOrchid: [0.6, 0.196078431372549, 0.8],
darkRed: [0.545098039215686, 0.0, 0.0],
darkSalmon: [0.913725490196078, 0.588235294117647, 0.47843137254902],
darkSeaGreen: [0.56078431372549, 0.737254901960784, 0.56078431372549],
darkSlateBlue: [0.282352941176471, 0.23921568627451, 0.545098039215686],
darkSlateGray: [0.184313725490196, 0.309803921568627, 0.309803921568627],
darkSlateGrey: [0.184313725490196, 0.309803921568627, 0.309803921568627],
darkTurquoise: [0.0, 0.807843137254902, 0.819607843137255],
darkViolet: [0.580392156862745, 0.0, 0.827450980392157],
darkorange: [1.0, 0.549019607843137, 0.0],
deepPink: [1.0, 0.0784313725490196, 0.576470588235294],
deepSkyBlue: [0.0, 0.749019607843137, 1.0],
dimGray: [0.411764705882353, 0.411764705882353, 0.411764705882353],
dimGrey: [0.411764705882353, 0.411764705882353, 0.411764705882353],
dodgerBlue: [0.117647058823529, 0.564705882352941, 1.0],
direBrick: [0.698039215686274, 0.133333333333333, 0.133333333333333],
dloralWhite: [1.0, 0.980392156862745, 0.941176470588235],
dorestGreen: [0.133333333333333, 0.545098039215686, 0.133333333333333],
duchsia: [1.0, 0.0, 1.0],
gainsboro: [0.862745098039216, 0.862745098039216, 0.862745098039216],
ghostWhite: [0.972549019607843, 0.972549019607843, 1.0],
gold: [1.0, 0.843137254901961, 0.0],
goldenRod: [0.854901960784314, 0.647058823529412, 0.125490196078431],
gray: [0.501960784313725, 0.501960784313725, 0.501960784313725],
green: [0.0, 0.501960784313725, 0.0],
greenYellow: [0.67843137254902, 1.0, 0.184313725490196],
grey: [0.501960784313725, 0.501960784313725, 0.501960784313725],
honeyDew: [0.941176470588235, 1.0, 0.941176470588235],
hotPink: [1.0, 0.411764705882353, 0.705882352941177],
indianRed: [0.803921568627451, 0.36078431372549, 0.36078431372549],
indigo: [0.294117647058824, 0.0, 0.509803921568627],
ivory: [1.0, 1.0, 0.941176470588235],
khaki: [0.941176470588235, 0.901960784313726, 0.549019607843137],
lavenderBlush: [1.0, 0.941176470588235, 0.96078431372549],
lavender: [0.901960784313726, 0.901960784313726, 0.980392156862745],
lawnGreen: [0.486274509803922, 0.988235294117647, 0.0],
lemonChiffon: [1.0, 0.980392156862745, 0.803921568627451],
lightBlue: [0.67843137254902, 0.847058823529412, 0.901960784313726],
lightCoral: [0.941176470588235, 0.501960784313725, 0.501960784313725],
lightCyan: [0.87843137254902, 1.0, 1.0],
lightGoldenRodYellow: [0.980392156862745, 0.980392156862745, 0.823529411764706],
lightGray: [0.827450980392157, 0.827450980392157, 0.827450980392157],
lightGreen: [0.564705882352941, 0.933333333333333, 0.564705882352941],
lightGrey: [0.827450980392157, 0.827450980392157, 0.827450980392157],
lightPink: [1.0, 0.713725490196078, 0.756862745098039],
lightSalmon: [1.0, 0.627450980392157, 0.47843137254902],
lightSeaGreen: [0.125490196078431, 0.698039215686274, 0.666666666666667],
lightSkyBlue: [0.529411764705882, 0.807843137254902, 0.980392156862745],
lightSlateGray: [0.466666666666667, 0.533333333333333, 0.6],
lightSlateGrey: [0.466666666666667, 0.533333333333333, 0.6],
lightSteelBlue: [0.690196078431373, 0.768627450980392, 0.870588235294118],
lightYellow: [1.0, 1.0, 0.87843137254902],
lime: [0.0, 1.0, 0.0],
limeGreen: [0.196078431372549, 0.803921568627451, 0.196078431372549],
linen: [0.980392156862745, 0.941176470588235, 0.901960784313726],
magenta: [1.0, 0.0, 1.0],
maroon: [0.501960784313725, 0.0, 0.0],
mediumAquaMarine: [0.4, 0.803921568627451, 0.666666666666667],
mediumBlue: [0.0, 0.0, 0.803921568627451],
mediumOrchid: [0.729411764705882, 0.333333333333333, 0.827450980392157],
mediumPurple: [0.576470588235294, 0.43921568627451, 0.847058823529412],
mediumSeaGreen: [0.235294117647059, 0.701960784313725, 0.443137254901961],
mediumSlateBlue: [0.482352941176471, 0.407843137254902, 0.933333333333333],
mediumSpringGreen: [0.0, 0.980392156862745, 0.603921568627451],
mediumTurquoise: [0.282352941176471, 0.819607843137255, 0.8],
mediumVioletRed: [0.780392156862745, 0.0823529411764706, 0.52156862745098],
midnightBlue: [0.0980392156862745, 0.0980392156862745, 0.43921568627451],
mintCream: [0.96078431372549, 1.0, 0.980392156862745],
mistyRose: [1.0, 0.894117647058824, 0.882352941176471],
moccasin: [1.0, 0.894117647058824, 0.709803921568627],
navajoWhite: [1.0, 0.870588235294118, 0.67843137254902],
navy: [0.0, 0.0, 0.501960784313725],
oldLace: [0.992156862745098, 0.96078431372549, 0.901960784313726],
olive: [0.501960784313725, 0.501960784313725, 0.0],
oliveDrab: [0.419607843137255, 0.556862745098039, 0.137254901960784],
orange: [1.0, 0.647058823529412, 0.0],
orangeRed: [1.0, 0.270588235294118, 0.0],
orchid: [0.854901960784314, 0.43921568627451, 0.83921568627451],
paleGoldenRod: [0.933333333333333, 0.909803921568627, 0.666666666666667],
paleGreen: [0.596078431372549, 0.984313725490196, 0.596078431372549],
paleTurquoise: [0.686274509803922, 0.933333333333333, 0.933333333333333],
paleVioletRed: [0.847058823529412, 0.43921568627451, 0.576470588235294],
papayaWhip: [1.0, 0.937254901960784, 0.835294117647059],
peachPuff: [1.0, 0.854901960784314, 0.725490196078431],
peru: [0.803921568627451, 0.52156862745098, 0.247058823529412],
pink: [1.0, 0.752941176470588, 0.796078431372549],
plum: [0.866666666666667, 0.627450980392157, 0.866666666666667],
powderBlue: [0.690196078431373, 0.87843137254902, 0.901960784313726],
purple: [0.501960784313725, 0.0, 0.501960784313725],
red: [1.0, 0.0, 0.0],
rosyBrown: [0.737254901960784, 0.56078431372549, 0.56078431372549],
royalBlue: [0.254901960784314, 0.411764705882353, 0.882352941176471],
saddleBrown: [0.545098039215686, 0.270588235294118, 0.0745098039215686],
salmon: [0.980392156862745, 0.501960784313725, 0.447058823529412],
sandyBrown: [0.956862745098039, 0.643137254901961, 0.376470588235294],
seaGreen: [0.180392156862745, 0.545098039215686, 0.341176470588235],
seaShell: [1.0, 0.96078431372549, 0.933333333333333],
sienna: [0.627450980392157, 0.32156862745098, 0.176470588235294],
silver: [0.752941176470588, 0.752941176470588, 0.752941176470588],
skyBlue: [0.529411764705882, 0.807843137254902, 0.92156862745098],
slateBlue: [0.415686274509804, 0.352941176470588, 0.803921568627451],
slateGray: [0.43921568627451, 0.501960784313725, 0.564705882352941],
slateGrey: [0.43921568627451, 0.501960784313725, 0.564705882352941],
snow: [1.0, 0.980392156862745, 0.980392156862745],
springGreen: [0.0, 1.0, 0.498039215686275],
steelBlue: [0.274509803921569, 0.509803921568627, 0.705882352941177],
tan: [0.823529411764706, 0.705882352941177, 0.549019607843137],
teal: [0.0, 0.501960784313725, 0.501960784313725],
thistle: [0.847058823529412, 0.749019607843137, 0.847058823529412],
tomato: [1.0, 0.388235294117647, 0.27843137254902],
turquoise: [0.250980392156863, 0.87843137254902, 0.815686274509804],
violet: [0.933333333333333, 0.509803921568627, 0.933333333333333],
wheat: [0.96078431372549, 0.870588235294118, 0.701960784313725],
white: [1.0, 1.0, 1.0],
whiteSmoke: [0.96078431372549, 0.96078431372549, 0.96078431372549],
yellow: [1.0, 1.0, 0.0],
yellowGreen: [0.603921568627451, 0.803921568627451, 0.196078431372549]
]
CMYK = RGhost::Constants::HashKeyMethodClass[
AliceBlue: [0.0588235294117647, 0.0274509803921569, 0.0, 0.0],
AntiqueWhite: [0.0, 0.06, 0.14, 0.0196078431372549],
Aqua: [1.0, 0.0, 0.0, 0.0],
Aquamarine: [0.501960784313725, 0.0, 0.168627450980392, 0.0],
Azure: [0.0588235294117647, 0.0, 0.0, 0.0],
Beige: [0.0, 0.0, 0.102040816326531, 0.0392156862745098],
Bisque: [0.0, 0.105882352941176, 0.231372549019608, 0.0],
Black: [0.0, 0.0, 0.0, 1.0],
BlanchedAlmond: [0.0, 0.0784313725490197, 0.196078431372549, 0.0],
Blue: [1.0, 1.0, 0.0, 0.0],
BlueViolet: [0.389380530973451, 0.809734513274336, 0.0, 0.113725490196078],
Brown: [0.0, 0.745454545454545, 0.745454545454545, 0.352941176470588],
BurlyWood: [0.0, 0.171171171171171, 0.391891891891892, 0.129411764705882],
CadetBlue: [0.40625, 0.0125, 0.0, 0.372549019607843],
Chartreuse: [0.501960784313725, 0.0, 1.0, 0.0],
Chocolate: [0.0, 0.5, 0.857142857142857, 0.176470588235294],
Coral: [0.0, 0.501960784313725, 0.686274509803922, 0.0],
CornflowerBlue: [0.578059071729958, 0.371308016877637, 0.0, 0.0705882352941176],
Cornsilk: [0.0, 0.0274509803921569, 0.137254901960784, 0.0],
Crimson: [0.0, 0.909090909090909, 0.727272727272727, 0.137254901960784],
Cyan: [1.0, 0.0, 0.0, 0.0],
DarkBlue: [1.0, 1.0, 0.0, 0.454901960784314],
DarkCyan: [1.0, 0.0, 0.0, 0.454901960784314],
DarkGoldenRod: [0.0, 0.271739130434783, 0.940217391304348, 0.27843137254902],
DarkGray: [0.0, 0.0, 0.0, 0.337254901960784],
DarkGreen: [1.0, 0.0, 1.0, 0.607843137254902],
DarkGrey: [0.0, 0.0, 0.0, 0.337254901960784],
DarkKhaki: [0.0, 0.0317460317460318, 0.433862433862434, 0.258823529411765],
DarkMagenta: [0.0, 1.0, 0.0, 0.454901960784314],
DarkOliveGreen: [0.205607476635514, 0.0, 0.560747663551402, 0.580392156862745],
DarkOrchid: [0.25, 0.754901960784314, 0.0, 0.2],
DarkRed: [0.0, 1.0, 1.0, 0.454901960784314],
DarkSalmon: [0.0, 0.356223175965665, 0.476394849785408, 0.0862745098039216],
DarkSeaGreen: [0.23936170212766, 0.0, 0.23936170212766, 0.262745098039216],
DarkSlateBlue: [0.482014388489209, 0.56115107913669, 0.0, 0.454901960784314],
DarkSlateGray: [0.405063291139241, 0.0, 0.0, 0.690196078431373],
DarkSlateGrey: [0.405063291139241, 0.0, 0.0, 0.690196078431373],
DarkTurquoise: [1.0, 0.0143540669856459, 0.0, 0.180392156862745],
DarkViolet: [0.298578199052133, 1.0, 0.0, 0.172549019607843],
Darkorange: [0.0, 0.450980392156863, 1.0, 0.0],
DeepPink: [0.0, 0.92156862745098, 0.423529411764706, 0.0],
DeepSkyBlue: [1.0, 0.250980392156863, 0.0, 0.0],
DimGray: [0.0, 0.0, 0.0, 0.588235294117647],
DimGrey: [0.0, 0.0, 0.0, 0.588235294117647],
DodgerBlue: [0.882352941176471, 0.435294117647059, 0.0, 0.0],
FireBrick: [0.0, 0.808988764044944, 0.808988764044944, 0.301960784313726],
FloralWhite: [0.0, 0.0196078431372549, 0.0588235294117647, 0.0],
ForestGreen: [0.755395683453237, 0.0, 0.755395683453237, 0.454901960784314],
Fuchsia: [0.0, 1.0, 0.0, 0.0],
Gainsboro: [0.0, 0.0, 0.0, 0.137254901960784],
GhostWhite: [0.0274509803921569, 0.0274509803921569, 0.0, 0.0],
Gold: [0.0, 0.156862745098039, 1.0, 0.0],
GoldenRod: [0.0, 0.243119266055046, 0.853211009174312, 0.145098039215686],
Gray: [0.0, 0.0, 0.0, 0.498039215686275],
Green: [1.0, 0.0, 1.0, 0.498039215686275],
GreenYellow: [0.32156862745098, 0.0, 0.815686274509804, 0.0],
Grey: [0.0, 0.0, 0.0, 0.498039215686275],
HoneyDew: [0.0588235294117647, 0.0, 0.0588235294117647, 0.0],
HotPink: [0.0, 0.588235294117647, 0.294117647058823, 0.0],
IndianRed: [0.0, 0.551219512195122, 0.551219512195122, 0.196078431372549],
Indigo: [0.423076923076923, 1.0, 0.0, 0.490196078431373],
Ivory: [0.0, 0.0, 0.0588235294117647, 0.0],
Khaki: [0.0, 0.0416666666666666, 0.416666666666667, 0.0588235294117647],
LavenderBlush: [0.0, 0.0588235294117647, 0.0392156862745098, 0.0],
Lavender: [0.0799999999999999, 0.0799999999999999, 0.0, 0.0196078431372549],
LawnGreen: [0.507936507936508, 0.0, 1.0, 0.0117647058823529],
LemonChiffon: [0.0, 0.0196078431372549, 0.196078431372549, 0.0],
LightBlue: [0.247826086956522, 0.0608695652173913, 0.0, 0.0980392156862745],
LightCoral: [0.0, 0.466666666666667, 0.466666666666667, 0.0588235294117647],
LightCyan: [0.12156862745098, 0.0, 0.0, 0.0],
LightGoldenRodYellow: [0.0, 0.0, 0.16, 0.0196078431372549],
LightGray: [0.0, 0.0, 0.0, 0.172549019607843],
LightGreen: [0.394957983193277, 0.0, 0.394957983193277, 0.0666666666666667],
LightGrey: [0.0, 0.0, 0.0, 0.172549019607843],
LightPink: [0.0, 0.286274509803922, 0.243137254901961, 0.0],
LightSalmon: [0.0, 0.372549019607843, 0.52156862745098, 0.0],
LightSeaGreen: [0.820224719101124, 0.0, 0.0449438202247191, 0.301960784313726],
LightSkyBlue: [0.46, 0.176, 0.0, 0.0196078431372549],
LightSlateGray: [0.222222222222222, 0.111111111111111, 0.0, 0.4],
LightSlateGrey: [0.222222222222222, 0.111111111111111, 0.0, 0.4],
LightSteelBlue: [0.207207207207207, 0.117117117117117, 0.0, 0.129411764705882],
LightYellow: [0.0, 0.0, 0.12156862745098, 0.0],
Lime: [1.0, 0.0, 1.0, 0.0],
LimeGreen: [0.75609756097561, 0.0, 0.75609756097561, 0.196078431372549],
Linen: [0.0, 0.04, 0.0799999999999999, 0.0196078431372549],
Magenta: [0.0, 1.0, 0.0, 0.0],
Maroon: [0.0, 1.0, 1.0, 0.498039215686275],
MediumAquaMarine: [0.502439024390244, 0.0, 0.170731707317073, 0.196078431372549],
MediumBlue: [1.0, 1.0, 0.0, 0.196078431372549],
MediumOrchid: [0.118483412322275, 0.597156398104265, 0.0, 0.172549019607843],
MediumPurple: [0.319444444444444, 0.481481481481481, 0.0, 0.152941176470588],
MediumSeaGreen: [0.664804469273743, 0.0, 0.368715083798883, 0.298039215686275],
MediumSlateBlue: [0.483193277310924, 0.563025210084034, 0.0, 0.0666666666666667],
MediumSpringGreen: [1.0, 0.0, 0.384, 0.0196078431372549],
MediumTurquoise: [0.655502392344498, 0.0, 0.0239234449760765, 0.180392156862745],
MediumVioletRed: [0.0, 0.894472361809045, 0.331658291457286, 0.219607843137255],
MidnightBlue: [0.776785714285714, 0.776785714285714, 0.0, 0.56078431372549],
MintCream: [0.0392156862745098, 0.0, 0.0196078431372549, 0.0],
MistyRose: [0.0, 0.105882352941176, 0.117647058823529, 0.0],
Moccasin: [0.0, 0.105882352941176, 0.290196078431373, 0.0],
NavajoWhite: [0.0, 0.129411764705882, 0.32156862745098, 0.0],
Navy: [1.0, 1.0, 0.0, 0.498039215686275],
OldLace: [0.0, 0.0316205533596838, 0.0909090909090909, 0.00784313725490193],
Olive: [0.0, 0.0, 1.0, 0.498039215686275],
OliveDrab: [0.246478873239437, 0.0, 0.753521126760563, 0.443137254901961],
Orange: [0.0, 0.352941176470588, 1.0, 0.0],
OrangeRed: [0.0, 0.729411764705882, 1.0, 0.0],
Orchid: [0.0, 0.486238532110092, 0.0183486238532109, 0.145098039215686],
PaleGoldenRod: [0.0, 0.0252100840336135, 0.285714285714286, 0.0666666666666667],
PaleGreen: [0.394422310756972, 0.0, 0.394422310756972, 0.015686274509804],
PaleTurquoise: [0.264705882352941, 0.0, 0.0, 0.0666666666666667],
PaleVioletRed: [0.0, 0.481481481481481, 0.319444444444444, 0.152941176470588],
PapayaWhip: [0.0, 0.0627450980392157, 0.164705882352941, 0.0],
PeachPuff: [0.0, 0.145098039215686, 0.274509803921569, 0.0],
Peru: [0.0, 0.351219512195122, 0.692682926829268, 0.196078431372549],
Pink: [0.0, 0.247058823529412, 0.203921568627451, 0.0],
Plum: [0.0, 0.276018099547511, 0.0, 0.133333333333333],
PowderBlue: [0.234782608695652, 0.0260869565217392, 0.0, 0.0980392156862745],
Purple: [0.0, 1.0, 0.0, 0.498039215686275],
Red: [0.0, 1.0, 1.0, 0.0],
RosyBrown: [0.0, 0.23936170212766, 0.23936170212766, 0.262745098039216],
RoyalBlue: [0.711111111111111, 0.533333333333333, 0.0, 0.117647058823529],
SaddleBrown: [0.0, 0.503597122302158, 0.863309352517986, 0.454901960784314],
Salmon: [0.0, 0.488, 0.544, 0.0196078431372549],
SandyBrown: [0.0, 0.327868852459016, 0.60655737704918, 0.0431372549019607],
SeaGreen: [0.669064748201439, 0.0, 0.37410071942446, 0.454901960784314],
SeaShell: [0.0, 0.0392156862745098, 0.0666666666666667, 0.0],
Sienna: [0.0, 0.4875, 0.71875, 0.372549019607843],
Silver: [0.0, 0.0, 0.0, 0.247058823529412],
SkyBlue: [0.425531914893617, 0.123404255319149, 0.0, 0.0784313725490197],
SlateBlue: [0.482926829268293, 0.560975609756098, 0.0, 0.196078431372549],
SlateGray: [0.222222222222222, 0.111111111111111, 0.0, 0.435294117647059],
SlateGrey: [0.222222222222222, 0.111111111111111, 0.0, 0.435294117647059],
Snow: [0.0, 0.0196078431372549, 0.0196078431372549, 0.0],
SpringGreen: [1.0, 0.0, 0.501960784313725, 0.0],
SteelBlue: [0.611111111111111, 0.277777777777778, 0.0, 0.294117647058823],
Tan: [0.0, 0.142857142857143, 0.333333333333333, 0.176470588235294],
Teal: [1.0, 0.0, 0.0, 0.498039215686275],
Thistle: [0.0, 0.115740740740741, 0.0, 0.152941176470588],
Tomato: [0.0, 0.611764705882353, 0.72156862745098, 0.0],
Turquoise: [0.714285714285714, 0.0, 0.0714285714285714, 0.12156862745098],
Violet: [0.0, 0.453781512605042, 0.0, 0.0666666666666667],
Wheat: [0.0, 0.0938775510204082, 0.269387755102041, 0.0392156862745098],
White: [0.0, 0.0, 0.0, 0.0],
WhiteSmoke: [0.0, 0.0, 0.0, 0.0392156862745098],
Yellow: [0.0, 0.0, 1.0, 0.0],
YellowGreen: [0.248780487804878, 0.0, 0.75609756097561, 0.196078431372549]
]
end
# Standard papers
module Papers
STANDARD = {
"11x17" => [792, 1224],
:ledger => [1224, 792],
:legal => [612, 1008],
:letter => [612, 792],
:lettersmall => [612, 792],
:archE => [2592, 3456],
:archD => [1728, 2592],
:archC => [1296, 1728],
:archB => [864, 1296],
:archA => [648, 864],
# ISO standard]
:a0 => [2384, 3370],
:a1 => [1684, 2384],
:a2 => [1191, 1684],
:a3 => [842, 1191],
:a4 => [595, 842],
:a4small => [595, 842],
:a5 => [420, 595],
:a6 => [297, 420],
:a7 => [210, 297],
:a8 => [148, 210],
:a9 => [105, 148],
:a10 => [73, 105],
:isob0 => [2835, 4008],
:isob1 => [2004, 2835],
:isob2 => [1417, 2004],
:isob3 => [1001, 1417],
:isob4 => [709, 1001],
:isob5 => [499, 709],
:isob6 => [354, 499],
:c0 => [2599, 3677],
:c1 => [1837, 2599],
:c2 => [1298, 1837],
:c3 => [918, 1298],
:c4 => [649, 918],
:c5 => [459, 649],
:c6 => [323, 459],
# JIS standard
:jisb0 => [1030, 1456],
:jisb1 => [728, 1030],
:jisb2 => [515, 728],
:jisb3 => [364, 515],
:jisb4 => [257, 364],
:jisb5 => [182, 257],
:jisb6 => [128, 182],
# Other
:flsa => [612, 936],
:flse => [612, 936],
:halfletter => [396, 612]
}
end
end
ruby-rghost-0.9.9/lib/rghost/convert.rb 0000664 0000000 0000000 00000002310 14573150434 0020101 0 ustar 00root root 0000000 0000000 # Convert PDF file to another format using commom render parameters of the Engine
# A additional parameter for this method is :range. Below someone examples:
#
# ====Only cover page
# Convert.new("/dir/myfile.pdf").to :jpeg, :filename => "/tmp/test.jpg"
#
# ====One page per file
# It's generate file with pattern test_0001.png, test_0002.png, etc
# Convert.new("/dir/myfile.pdf").to :png, :multipage => true, :filename => "/tmp/test.png"
#
# ====One page per file with page range
# Convert.new("/dir/myfile.pdf").to :eps, :multipage => true, :filename => "/tmp/test.eps", :range => 1..5
#
# ====Getting files after convertion
# files=Convert.new("/dir/myfile.pdf").to :eps, :multipage => true, :filename => "/tmp/test.eps", :range => 1..5
# files.class # => Array because parameter multipage is true
#
# file=Convert.new("/dir/myfile.pdf").to :eps, :filename => "/tmp/test.eps"
# file.class # => File
#
class RGhost::Convert
attr_reader :error, :errors
def initialize(filename)
@filename = filename
end
def to(device, options = {})
rge = RGhost::Engine.new(@filename, {convert: true}.merge(options))
out = rge.render(device)
@error = rge.error
@errors = rge.errors
out
end
end
ruby-rghost-0.9.9/lib/rghost/cursor.rb 0000664 0000000 0000000 00000007267 14573150434 0017756 0 ustar 00root root 0000000 0000000 require "rghost/point"
require "rghost/ps_object"
require "rghost/point_with_command"
# It resposible to cursor manipulate. Use it to position objects on the page.
class RGhost::Cursor < RGhost::PsObject
# The class method goto positioned the cursor based on page row number. Example:
# d=Document.new
# d.goto_row 15
# d.show " You're on row 15"
# d.goto_row 3
# d.show "Now you're on row 3"
#
# #or without facade(**it's valid for all methods on this class**)
#
# d=Document.new
# d.set Cursor.goto_row(15)
# d.set Show.new(" You're on row 15")
# d.set Cursor.goto_row(3)
# d.set Show.new("Now you're on row 3")
def self.goto_row(row)
g = RGhost::PsObject.new(row.to_i)
g.call :goto_row
g.call :default_point
g
end
# Jump n rows relative to the current row
# d=Document.new
# d.jump_row 4 # jump four rows below
# d.jump_row -5 # backing five rows to up
def self.jump_rows(row)
j = RGhost::PsObject.new(row.to_i)
j.call :jump_rows
j.call :default_point
j
end
# Rotate all objects after execution it, passing the angle as argument.
# d=Document.new
# d.rotate 90
# #do something
# d.rotate -90 # backing to source angle
def self.rotate(angle)
r = RGhost::PsObject.new(angle.to_i)
r.call :rotate
r
end
# Move cursor to absolute point relative from default source point x=0 and y=0 of the page. It no interferes to the rows positions.
# doc=Document.new
# doc.moveto :x=> 10, :y=> 5
# doc.show "Hello Girls!!!"
def self.moveto(point = {})
RGhost::PointWithCommand.to(:moveto, point)
end
# It works the same way that moveto, the unique difference it's relative from current point.
# doc=Document.new
# doc.moveto :x=> 10, :y=> 5
# doc.show "Hello Girls!!!"
# doc.rmoveto :x => 5 # move to x=> 15 (10 plus 5) maintaining y => 5
def self.rmoveto(point = {})
RGhost::PointWithCommand.to(:rmoveto, point)
end
# It changes the default pont to a new point(dislocate)
# doc=Document.new
# doc.translate :x=> 2, :y=> 1
# doc.moveto :x => 0,:y => 0 # if it was default point(0,0) would be :x=> 2, :y=> 1
# doc.translate :x=> -2, :y=> -1 # return to default source point
def self.translate(point = {x: 0, y: 0})
p = {x: 0, y: 0}.merge(point)
RGhost::PointWithCommand.to(:translate, p)
end
# Jump one next row. It's same that jump_row(1).
# doc=Document.new
# doc.show "Row 1"
# doc.next_row
# doc.show "Row 2"
# doc.next_row
# doc.show "Row 3"
def self.next_row
RGhost::PsObject.new(:nrdp)
end
# It go to next page resetting the cursors.
# doc=Document.new
# doc.show "Page 1 row 1"
# doc.next_page
# doc.show "Page 2 row 1"
# doc.next_page
# doc.show "Page 3 row 1"
def next_page
RGhost::PsObject.new :next_page
end
# It go to next page without resetting the cursors. Often used for single page document.
# doc=Document.new
# doc.show "Page 1 row 1"
# doc.showpage # page 2, but internally
# doc.show "Page 1 row 1"
# doc.showpage # page 3
# doc.show "Page 1 row 1"
def showpage
RGhost::PsObject.new :showpage
end
# (Class method) It go to next page resetting the cursors.
# doc=Document.new
# doc.show "Page 1 row 1"
# doc.next_page
# doc.show "Page 2 row 1"
# doc.next_page
# doc.show "Page 3 row 1"
def self.next_page
RGhost::PsObject.new :next_page
end
# (Class method) It go to next page without resetting the cursors. Often used for single page document.
# doc=Document.new
# doc.show "Page 1 row 1"
# doc.showpage # page 2, but internally
# doc.show "Page 1 row 1"
# doc.showpage # page 3
# doc.show "Page 1 row 1"
def self.showpage
RGhost::PsObject.new :showpage
end
end
ruby-rghost-0.9.9/lib/rghost/dash.rb 0000664 0000000 0000000 00000002767 14573150434 0017360 0 ustar 00root root 0000000 0000000 # Sets the dash pattern on border lines. It accepts an array of
# non-negative numbers with atleast one non-zero. Samples:
# [2,1] #=> 2 turn on and 1 off, 2 turn on and 1 off ...
# [3,1,2,5] #=> 3 on, 1 off, 2 on, 5 off ... repeating until end
#
#
#===Examples using dash as border parameter
# d=Document.new
# d.horizontal_line(:bottom, :border=>{:dash => 1, :width => 2 })
# link:images/dash01.png
#
# d=Document.new
# d.horizontal_line(:bottom, :border=>{:dash => [1,1], :width => 2 })
# link:images/dash01.png
#
# d=Document.new
# d.horizontal_line(:bottom, :border=>{:dash => [1,2,1], :width => 2 })
# link:images/dash03.png
#
# d=Document.new
# d.horizontal_line(:bottom, :border=>{:dash => [2,10,5], :width => 2 })
# link:images/dash04.png
#
# d=Document.new
# d.horizontal_line(:bottom, :border=>{:dash => [1,1,3,1,5,1,7,1,9,1,10], :width => 4 })
# link:images/dash05.png
#
#===Examples using Dash class
# d=Document.new
# d.scale(1,8)
# d.set Dash.new([1,1,2,1,2,1,3])
# d.line_width 3
# d.lineto :x => :limit_right, :y => :Y
# link:images/dash06.png
class RGhost::Dash < RGhost::PsObject
include RGhost::RubyToPs
DEFAULT_OPTIONS = {
style: [1, 2, 3],
offset: 0
}
def initialize(options = {})
super("") {}
@options = if options.is_a?(Numeric) || options.is_a?(Array)
DEFAULT_OPTIONS.dup.merge(style: options)
else
DEFAULT_OPTIONS.dup.merge(options)
end
end
def ps
ary = to_array([@options[:style]].flatten)
"#{ary}#{@options[:offset]} setdash"
end
end
ruby-rghost-0.9.9/lib/rghost/document.rb 0000664 0000000 0000000 00000046317 14573150434 0020256 0 ustar 00root root 0000000 0000000 # Ruby Ghost Engine - Document Builder.
# http://rghost.rubyforge.org
# Author Shairon Toledo http://www.hashcode.eti.br
# Brazil Jun/2007
require "rghost/ps_object"
require "rghost/ps_facade"
require "rghost/document_callback_facade"
require "rghost/virtual_pages"
require "rghost/variable"
require "rghost/pdf_security"
# The Document class child of PsFacade is used to join postscript objects to generate output file.
class RGhost::Document < RGhost::PsFacade
include RGhost::DocumentCallbackFacade
include RGhost::RubyToPs
DISABLE_VIRTUAL_PAGE = RGhost::Variable.new(:has_vp?, false)
ENABLE_VIRTUAL_PAGE = RGhost::Variable.new(:has_vp?, true)
DEFAULT_OPTIONS = {
rows_per_page: 80,
count_pages: 10,
row_height: 0.4,
row_padding: 0.1,
font_encoding: RGhost::Config::GS[:font_encoding],
paper: RGhost::Paper::DEFAULT_OPTIONS
}
attr_reader :head, :callbacks, :variables, :paper, :defines, :additional_params, :body
#===Examples
# Creating document with 80 rows per page and custom paper
# doc = Document.new rows_per_page: 80, paper: [30,5]
# Document A4 with row height 0.5 and font encoding CodePage1252
# doc = Document.new row_height: 0.5, font_encoding: "CodePage1252"
# Defining all margins
# doc = Document.new margin: 0.5
#
#
#==Parameters
# * :paper - Facade to +paper+ defined on the construction of Paper class
# * :margin, :duplex and :tuble - Facade to +options+ defined on the construction of Paper class
# * :rows_per_page - Specifies count of rows per pages.
# * :landscape - Whether true invert de size(width per height)
# * :count_pages - Defines postscript internal variable to display with class TextIn. Example:
#
# doc=Document.new :count_pages => 10
# doc.before_page_create :except => 1 do |b|
# b.text_in :x => 15, :y => 5, :write => "Page %current_page% of %count_pages%"
# end
#
# The value above %count_pages% will be evaluated inside of document for all pages except page one.
# * :fontsize - Defines the size of tag :default_font.
# * :row_height and row_padding - Its names say by itself :)
# * :font_encoding - Specifies encoding of data input. You can look for supported encoding using the method RGhost::Config.encode_test
def initialize(options = {}, &block)
@head, @callbacks = RGhost::PsObject.new, RGhost::PsObject.new
@head.set RGhost::Load.library(:type)
@head.set RGhost::Load.library(:unit)
# super()
@variables = DEFAULT_OPTIONS.dup.merge(options)
default_encoding
@paper = RGhost::Paper.new(options[:paper] || :A4, options)
@head.set @paper
@done = false
@docinfo = {Producer: "Ruby Ghostscript - RGhost v#{RGhost::VERSION::STRING}"}
@defines = []
@additional_params = []
default_variables
super()
# block.call(self) if block
# yield self if block
end
def gs_paper # :nodoc:
@paper.gs_paper
end
# Creates map of tags if will be use in 'writable' classes(Show, Text, TextIn and TextArea).
# The font names file catalog can be generated by code below
# RGhost::Config.enviroment_fonts.render :pdf, :filename => "mycatalog.pdf"
# this can take while. If waiting for much time you has any font with problem, remove some fonts mostly international fonts not used often.
# Below little piece of catalog
# link:images/font_catalog.png
#
# After genereted catalog you can map your tags.
#
#
# Tags has +name+ of tag(as Symbol) and its options. The options are
#
# * :name - Font name from catalog.
# * :size - Font size.
# * :color - Color.create facade
# * :encoding - If true the font will be encoding using de pattern :font_encoding of the document.
# * :from - Load True Type or Type1 font from file.
#===Examples
# d=Document.new :encoding => 'IsoLatin'
# d.define_tags do
# tag :my_italic, :name => 'Hershey-Gothic-Italian-Oblique', :size => 10
# tag :myfont, :name => 'Hershey-Plain'
# tag :font_encoded, :name => 'NimbusMonL-Regu', :size => 8, :color => 0.5, :encoding => true
# tag :other_font, :name => 'NimbusMonL-Regu', :size => 10
# tag :arial, :name => 'Arial-ItalicMT', :color => '#ADAD66'
# tag :arial_bold, :name => 'NimbusSanL-BoldItal',:size => 12, :color => '#ADAD66'
# tag :monaco, :name => 'Monaco', :from => "/path/to/myfont.ttf", :size => 12
# end
# You can use :default_font tag for custom the default font.
#===Using tags
#====With Show class
# doc.show 'My Text on this row', :with => :my_italic, :align => :page_center
#====With Show class overrinding tag's color.
# doc.show 'My Text on this row', :with => :my_italic, :align => :page_center, :color => :red
#====With TextIn class.
# doc.text_in :x=> 3, :y=> 10, :tag => :arial_bold , :write => "Here's point(3,10)"
#====With Text
# doc.text 'My Texton this row.Other textItalic font'
#====With TextArea
# txt='My Texton this row.Other textItalic font'
# doc.text_area txt, :text_align => :center, :width => 5, :x => 3, :y => 10
#====Using tag
# doc.use_tag :myfont
# doc.show "Simple Text", :tag => nil # it will use :myfont
# doc.show "Simple Text2", :tag => nil # it will use :myfont too
def define_tags(&)
RGhost::Config::FONTMAP.instance_eval(&)
end
def ps # :nodoc:
done
out = RGhost::PsObject.new
out.set @head
out.raw formated_docinfo
out.set @default_variables
out.set RGhost::Load.rg_enviroment
out.raw @defines.join
out.set RGhost::Cursor.moveto
out.set RGhost::Config::FONTMAP
out.set @callbacks
out.set RGhost::Load.library(:begin_document)
RGhost::Config::GS[:preload].uniq.each { |v| out.set RGhost::Load.library(v) }
out.set RGhost::Cursor.moveto
out.raw super
out.raw "\n\n"
"#{out} "
# "#{@head} \n%%endhead\n#{@default_variables}\n\n #{Load.rg_enviroment} #{@defines.join} #{@callbacks} #{Load.library(:begin_document)}\n #{Cursor.moveto}#{super}"
end
# def link(label,options={:to => 'http://rghost.rubyforge.net'})
# raw "/:link_str #{to_string(label)} def /:link_uri #{to_string(options[:to])} def :link_make"
#
# end
# Facade to RubyGhostEngine.render
# Converts a document to an output format, such as :pdf, :png, :ps, :jpeg, :tiff etc
# The paramter device can be found at RGhost::Constants::Devices or at http://pages.cs.wisc.edu/~ghost/doc/cvs/Devices.htm
#===Options
# Method render have the following options available.
# * :filename - File path.
# * :logfile - Writes the converter's process into a file.
# * :multipage - Whether true the output will be one page per file posfixed by _0001.ext, for example, for one file name 'test.png' with two pages will create test_001.png and test_002.png
# * :resolution - Integer value to output resolution.
# * :quality - Presets the "distiller parameters" to one of four predefined settings:
# :screen - selects low-resolution output similar to the Acrobat Distiller "Screen Optimized" setting.
# :ebook - selects medium-resolution output similar to the Acrobat Distiller "eBook" setting.
# :printer - selects output similar to the Acrobat Distiller "Print Optimized" setting.
# :prepress - selects output similar to Acrobat Distiller "Prepress Optimized" setting.
# :default - selects output intended to be useful across a wide variety of uses, possibly at the expense of a larger output file.
# * :size - Crops a single page using a string of dimension, example, '200x180', '140x90'.
# * :range - Specifies range of pages(PDF only)
#====Ghostscript interpreter options
#
# Array of Hashes for Ghostscript interpreter look at http://pages.cs.wisc.edu/~ghost/doc/cvs/Use.htm#Parameter_switches for more details.
# You can use two parameter :s and :d, examples
# :s => [{:GenericResourceDir => /dir, :DEFAULTPAPERSIZE=> "a3"}]
# :d => [ {:TextAlphaBits => 2} ]
# Or one string using the parameter :raw, as below
# :raw => "-sGenericResourceDir=/test -dTextAlphaBits=2"
#
#===Examples
# doc=Document.new
# #do something
#
# doc.render :pdf, :filename => 'foo.pdf # PDF output
# doc.render :pdf, :filename => 'foo.pdf, :quality => :ebook # PDF output
# doc.render :jpeg, :filename => 'foo.jpg' # JPEG output
# doc.render :png, :filename => 'foo.png', :multipage => true # PNG output one page per file
# doc.render :tiff, :filename => 'foo.tiff', :resolution => 300 # TIFF with 300dpi
# doc.render :ps, :raw => '-sFONTMAP=/var/myoptional/font/map', :filename => 'test.ps'
#
#===Testing if has errors
# doc=Document.new
# doc.raw "hahahah!" #it produce error in ps stack
# doc.render :jpeg, :filename => 'with_error.jpg'
# puts r.errors if r.error? #=> GPL Ghostscript 8.61: Unrecoverable error, exit code 1.\ Error: /undefined in hahahah!
#
#===Printing
#====Using printing system
# doc=Document.new
# #do something
# f="myjob.prn"
# doc.render :laserjet, :filename => f
# `lpr #{f}`
#====Windows shared printer
# doc.render :eps9mid, :filename => "//machine/printer"
def render(device, options = {})
rg = RGhost::Engine.new(self, options)
rg.render(device)
rg
end
# Behavior as render but returns content file after convertion.
#===Example with Rails
# def my_action
# doc=RGhost::Document.new
# #do something
# send_data doc.render_stream(:pdf), :filename => "/tmp/myReport.pdf"
# end
#
#===TCP/IP direct printer
# require 'socket'
#
# doc=Document.new
# #do something
# printer = TCPSocket.open('192.168.1.70', 9100)
# printer.write doc.render_stream(:ps)
# printer.close
def render_stream(device, options = {})
rg = render(device, options)
out = rg.output.readlines.join
rg.clear_output
out
end
# Facade to Function.new
# Defines low level function to optimize repetitive piece of code.
#===Example
# doc=Document.new
# doc.define :piece do
# set Show.new("Hello")
# set Cursor.next_row
# set HorizontalLine.new(:middle)
# set Cursor.next_row
# end
# #Repeting ten times the same code
# 10.times{ doc.call :piece }
def define(name, &)
@defines << RGhost::Function.new("_#{name}", &)
end
def define_variable(name, value)
set RGhost::Variable.new(name, value)
end
# Defines a function using the method define after that call de function one time.
def define_and_call(name, &)
define(name, &)
call(name)
end
# Prints the text file using the predefined tag +:pre+
#===Example
# doc=Document.new :paper => :A4, :landscape => true
# doc.print_file "/etc/passwd"
# doc.render :pdf, :filename => "/tmp/passwd.pdf
def print_file(file)
s = File.open(file).readlines.join.gsub("<", "<").gsub(">", ">").gsub("\n", "
")
use_tag :pre
set RGhost::Text.new(s, true)
end
# With method virtual_pages you can define any virtual pages per physical page.
# The cursor into virtual page jumps in column for each virtual page and run primitives next_page when ends columns. Look the example below.
# Example for a document without virtual pages we will has
# doc=Document.new
# doc.text File.readlines("/tmp/mytext.txt")
# will generate
#
# link:images/virtual_page1.png
#
# Now for a document with 3 virtual pages
# doc=Document.new
# doc.virtual_pages do
# new_page :width => 4
# new_page :width => 7, :margin_left => 1
# new_page :width => 4, :margin_left => 1
# end
# doc.text File.readlines("/tmp/mytext.txt")
# will generate
#
# link:images/virtual_page2.png
#
# PS: The parameter margin left of first virtual page won't be used because it's will use page's margin left.
def virtual_pages(&)
set RGhost::VirtualPages.new(&)
end
# Security disable the permissions and define passwords to PDF documents.
# The password just support set of \w .
# Always that use the block security should set owner and user password. By default the encryption is 3.
# Document Security can be set with the permissions flags
#===Disable options
# * :base or :print Print document (possibly not at the highest quality level).
# * :modifyModify contents of document, except as controlled by :annotate, :interective and :assemble.
# * :copyCopy text and graphics from document other than that controlled by :copy_access
# * :annotateAdd or modify text annotations, fill in interactive form fields, and if :interective is set, create or modify interactive form fields
# * :interactiveFill in existing interacive form fields, even if :annotate is clear
# * :copy_accessExtract text and graphics (in support of accessibility to disabled users or for other purposes).
# * :assembleAssemble the document (insert, rotate, or delete pages and create bookmarks or thumbnail images), even when :base is clear
# * :high_quality_printAdd or modify text annotations
# * :allDisable all permissions.
#===Example 1
# doc.security do |sec|
# sec.owner_password ="owner" #password without space!
# sec.user_password ="user" #password without space!
# sec.key_length = 128
# sec.disable :print, :copy, :high_quality
# end
#===Example 2
# Disable all
# doc.security do |sec|
# sec.owner_password ="owner" #password without space!
# sec.user_password ="user" #password without space!
# sec.disable :all
# end
#
def security
sec = RGhost::PdfSecurity.new
yield sec
@additional_params << sec.gs_params
end
# Starts and Ends internal benckmark will write in bottom of page.
#===Example
# doc=Document.new
# doc.benchmark :start
# doc.... #do something
# doc.benchmarck :stop
# doc.render ...
def benchmark(state = :start)
case state
when :stop
moveto(x: "20", y: "20")
raw %{
default_font (RGhost::Ghostscript benchmark: ) show
realtime benchmark sub 1000 div 20 string cvs show ( seconds ) show
}
when :start
set RGhost::Variable.new(:benchmark, "realtime")
end
end
# Rghost can make use of Encapsulated Postscript files to act as templates(EPS).
# This way you can create the visual layout of the page using a graphics tool and just paint the dynamic pieces over using Rghost.
#
# link:images/templates_demo.jpg
#
# Above we have mytemplate.eps that was generated by a graphic app, my_ruby_program.rb that takes care of the positioning and at last the generated output.
#
#
# A Template use example
# Let's say that the files first.eps and content.eps already exist. Now we shall see how to create a document that uses the template first.eps for the cover and the rest of the document uses content.eps.
#
# d = Document.new :margin_top => 5, :margin_bottom => 2
#
# Just for the first page
#
# d.first_page do
# image "/my/dir/first.eps" #loads the template
# text_in :x=> 5, :y=> 17, :text => "My Report", :with => :big
# next_page #go to the next page using cursors
# end
# Callback for all other pages.
#
# d.before_page_create :except => 1 do
# image "/my/dir/content.eps"
# text_in :text => "Page %current_page% of %count_pages%", :x => 18, :y => 27, :with => :normal
# end
#
# 1500 rows
#
# 1500.times do |n|
# d.show "Value #{n}"
# d.next_row
# end
# We have a cover page and 1500 rows, judging by the margins each page supports 46 rows, so we have 1500/46 = 32.60 pages plus the cover. Rounding it up totals 34 pages for the :count_pages
#
# d.define_variable(:count_pages, 34)
# d.showpage
# d.render :pdf, :filename => "/tmp/test.pdf"
#
# If we knew the amount of pages beforehand we could state it on the creation of the document, i.e.
#
# :current_pages => 34
#
# The example uses one template per page, but this is not a limit in RGhost. You can have multiple images and templates on per page. Just have to define the template:
#
# d=Document.new :margin_top => 5, :margin_bottom => 2
# d.define_template(:myform, '/local/template/form1.eps', :x=> 3, :y => 5)
#
# and call it on the document.
# d.use_template :myform
#
#===Arguments
# * :name - Template's name.
# * :file_path - Path to file.
# * :options - Options facade to Image.for(or image)
def define_template(name, file_path, options = {})
@defines << RGhost::Function.new("_#{name}", RGhost::Image.for(file_path, options))
end
# Informs is ready to converts/prints
def done
unless @done
@done = true
raw "\n\n"
call :after_page_create
call :callback
call :after_document_create
showpage
raw "\n%%EOF"
end
self
end
def enable_virtual_pages
set RGhost::Variable.new(:has_vp?, true)
end
def disable_virtual_pages
set RGhost::Variable.new(:has_vp?, false)
set RGhost::Variable.new(:limit_left, "source_limit_left")
set RGhost::Variable.new(:limit_right, "source_limit_right")
end
# Configures properties about your document.
# The keys are supported :Creator, :Title, :Author, :Subject and :Keywords, or downcase as :title etc.
# Example:
# doc.properties :Autor => "Shairon Toledo", :Title => "Learning RGhost"
def info(docinfo = {})
# puts docinfo.inspect
@docinfo.merge!(docinfo)
# puts @docinfo.inspect
end
# Creates Grid::Rails inside of the document. Facade to RGhost::Grid::Rails
def rails_grid(default_columns_options = {})
grid = RGhost::Grid::Rails.new(default_columns_options)
yield grid
grid.style(default_columns_options[:style]) if default_columns_options[:style]
grid.data(default_columns_options[:data]) if default_columns_options[:data]
set grid
end
# Creates Grid::CSV inside of the document. Facade to RGhost::Grid::CSV
def csv_grid(default_columns_options = {})
grid = RGhost::Grid::CSV.new(default_columns_options)
yield grid
grid.style(default_columns_options[:style]) if default_columns_options[:style]
grid.data(default_columns_options[:data]) if default_columns_options[:data]
set grid
end
# Creates Grid::Matrix inside of the document. Facade to RGhost::Grid::Matrix
def matrix_grid(default_columns_options = {})
grid = RGhost::Grid::Matrix.new(default_columns_options)
yield grid
grid.style(default_columns_options[:style]) if default_columns_options[:style]
set grid
end
private
def default_variables
ps = RGhost::PsObject.new
ps.set RGhost::Variable.new(:rows_per_page, @variables[:rows_per_page])
ps.set RGhost::Variable.new(:count_pages, @variables[:count_pages])
ps.set RGhost::Variable.new(:row_height, RGhost::Units.parse(@variables[:row_height]))
ps.set RGhost::Variable.new(:row_padding, RGhost::Units.parse(@variables[:row_padding]))
@default_variables = ps
end
def default_encoding
@head.set RGhost::Load.library(@variables[:font_encoding], :enc)
@head.set RGhost::Variable.new(:default_encoding, @variables[:font_encoding])
end
def formated_docinfo
d = ["["]
@docinfo.each do |k, v|
d << "/#{k.to_s.capitalize}"
d << to_string(v)
end
d << "/DOCINFO"
d << "pdfmark "
d.join(" ")
end
end
ruby-rghost-0.9.9/lib/rghost/document_callback_facade.rb 0000664 0000000 0000000 00000003746 14573150434 0023354 0 ustar 00root root 0000000 0000000 # This module is included inside of Document class. It will creates methods to easy the use.
#===Callback execution order
# Example for a document with 4 pages, looking at the picture you can see the order in which the callbacks are executed
#
# link:images/pages_rghost.png
module RGhost::DocumentCallbackFacade
# Executes before page create. Respond to :only and :except options
def before_page_create(options = {}, &)
new_dynamic_callback(:before_page_create, options, &)
end
# Executes after page create. Respond to :only and :except options
def after_page_create(options = {}, &)
new_dynamic_callback(:after_page_create, options, &)
end
# Executes on odd pages create. Respond to :only and :except options
def odd_pages(options = {}, &)
new_dynamic_callback(:odd_pages, options, &)
end
# Executes on even pages create. Respond to :only and :except options
def even_pages(options = {}, &)
new_dynamic_callback(:even_pages, options, &)
end
# Executes one time before document create.
def before_document_create(&)
new_static_callback(:before_document_create, &)
end
# Executes one time on first page.
def first_page(&)
new_static_callback(:first_page, &)
end
# Executes one time on last page(end of document).
def last_page(&)
new_static_callback(:last_page, &)
end
# Executes before virtual page create. Respond to :only and :except options
def before_virtual_page_create(options = {}, &)
new_dynamic_callback(:before_virtual_page_create, options, &)
end
# Executes after virtual page create. Respond to :only and :except options
def after_virtual_page_create(options = {}, &)
new_dynamic_callback(:after_virtual_page_create, options, &)
end
private
def new_dynamic_callback(name, options = {}, &)
@callbacks.set RGhost::Callback.new(name, options, &)
end
def new_static_callback(name, &)
callback_body = RGhost::PsFacade.new(&)
@callbacks.set RGhost::Function.new(name, callback_body)
end
end
ruby-rghost-0.9.9/lib/rghost/dsc_entry.rb 0000664 0000000 0000000 00000000605 14573150434 0020420 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
# Specifiesnew DSC (Document Structuring Conventions)
class RGhost::DSCEntry < RGhost::PsObject
#===Example
# DSCEntry.new do |entry|
# entry << "BoundingBox: 0 0 612 792"
# entry << "Pages: 45"
# entry << "BeginSetup"
# end
def initialize
yield @entries = []
end
def ps
@entries.map { |e| "%%#{e}\n" }.to_s
end
end
ruby-rghost-0.9.9/lib/rghost/dynamic_document_callback.rb 0000664 0000000 0000000 00000000553 14573150434 0023566 0 ustar 00root root 0000000 0000000 require "rghost/callback"
class RGhost::DynamicDocumentCallback < RGhost::Callback # :nodoc:
ACCEPT = [:before_page_create,
:after_page_create,
:odd_pages,
:even_pages]
def initialize(name, options = {}, &block)
raise NameError.new("#{name} no accept in #{self.class}") unless ACCEPT.include? name
super(name, options, &block)
end
end
ruby-rghost-0.9.9/lib/rghost/eps.rb 0000664 0000000 0000000 00000001361 14573150434 0017215 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
# Load new EPS file.
class RGhost::Eps < RGhost::PsObject
#===Examples
# doc=Document.new
# doc.set Eps.new "/local/templates/myform.eps", :x => 10, :y => 3
# Using Image.for facade
# doc.set Image.for "/local/templates/myform.eps", :x => 10, :y => 3
# Using PsFacade or Document
# doc.image "/local/templates/myform.eps", :x => 10, :y => 3
#===Options
#
# * :x and :y - Coordinates to position.
# * :rotate - Angle to image rotation if there is one.
def initialize(eps_path, options = {x: 0, y: 0, rotate: 0})
super("")
@options = options
@path = eps_path
end
def ps
"BeginEPSF \n #{RGhost::Cursor.translate(@options)} \n\t(#{@path}) run \nEndEPSF\n "
end
end
ruby-rghost-0.9.9/lib/rghost/font.rb 0000664 0000000 0000000 00000002222 14573150434 0017371 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/constants"
require "rghost/helpers"
class RGhost::Font < RGhost::PsObject # :nodoc:
DEFAULT_OPTONS = {size: 8, name: "Helvetica", encoding: true}
include RGhost::Constants::Fonts
attr_reader :name
def initialize(options)
@options = DEFAULT_OPTONS.dup.merge(options)
@options.default ""
@options[:name] = @options[:font] if @options[:font]
@name = @options[:name].to_s
@name += "-encoding" if @options[:encoding]
end
def ps
o = @options
str_ret = ""
# if o[:barcode]
# bc=RGhost::Barcode.new(o[:barcode])
# @name=bc.font_name
# o[:encoding]=false
# end
if o[:encoding] # define enconding
str_ret = "/#{o[:name]} encoding_font\n" +
"/#{o[:name]}-encoding exch definefont pop\n"
end
size = o[:size]
str_ret += case size
when Hash then "/#{@name} findfont [ #{size[:width]} 0 0 #{size[:height]} 0 0] makefont setfont "
when Array then "/#{@name} findfont [ #{size[0]} 0 0 #{size[1]} 0 0] makefont setfont "
when Numeric then "/#{@name} findfont #{size} scalefont setfont "
end
str_ret
end
end
ruby-rghost-0.9.9/lib/rghost/font_map.rb 0000664 0000000 0000000 00000002234 14573150434 0020231 0 ustar 00root root 0000000 0000000 # NetDeseigners
# Shairon Toledo
require "rghost/ps_object"
require "rghost/font"
require "rghost/function"
class RGhost::FontMap < RGhost::PsObject # :nodoc:
include RGhost::RubyToPs
def initialize(options = {font: "Helvetica", size: 8}, &block)
# options[:name]=options[:font]
@options = options
@fonts = {}
instance_eval(&block) if block
end
def new(name, options = {})
# options[:name]=options[:font]
@fonts[name] = options
end
def tag(name, options = {})
new(name, options)
end
def ps
functions = []
fonts = ""
@fonts.each do |name, params|
options = @options
if params[:from]
[params[:from]].flatten.each do |font|
functions << format_custom_font(font)
end
end
functions << RGhost::Function.new("_#{name}") do
raw RGhost::Font.new(options.dup.merge(params)).ps
raw(RGhost::Color.create(params[:color] || 0))
end
end
functions.join
end
private
def format_custom_font(font_path)
ps = RGhost::PsObject.new
ps.raw "#{to_string(font_path)} findfont pop"
ps
end
end
ruby-rghost-0.9.9/lib/rghost/frame.rb 0000664 0000000 0000000 00000006506 14573150434 0017526 0 ustar 00root root 0000000 0000000 # Creates one rectangle or one shape with rounded corners.
#===Options
#
# * :x and :y - Coordinates to position.
# * :corners - Value for rounded corners. Use 0 to straight angle.
# * :width and :height - Size of frame
# * :content - facade to ShapeContent with same parameters.
# * :border - facade to Border with same parameters.
#===Examples using facade frame method inside of Document
# d=Document.new
# d.frame :x => 3, :width => 7, :height => 5, :content => {:fill => false}
#
# link:images/frame01.png
# d=Document.new
# d.frame :x => 3, :width => 7, :height => 5, :content => {:color => '#35F6A3' }
#
# link:images/frame02.png
#
# d=Document.new
# d.frame :x => 3, :width => 7, :height => 5, :content => {:color => '#35F6A3' }, :border =>{:width => 5, :dash => [1,3,10]}
#
# link:images/frame03.png
#
# d=Document.new
# d.frame :x => 3, :width => 7, :height => 5, :content => {:color => '#35F6A3' }, :corners => 20
#
# link:images/frame04.png
#
# d=Document.new
# d.frame :x => 3, :width => 7, :height => 5, :content => {:color => :yellow }, :border => {:color => :red, :width => 4}, :corners => 20
#
# link:images/frame05.png
class RGhost::Frame < RGhost::PsObject
DEFAULT_OPTIONS = {
x: :limit_left,
y: :current_row,
width: 5,
height: 3.5,
corners: 1,
content: RGhost::ShapeContent::DEFAULT_OPTIONS,
border: RGhost::Border::DEFAULT_OPTIONS,
stroke: true
}
BACKGROUND_ROW_DEFAULT_OPTIONS = {start_in: :limit_left, size: :area_x, color: RGhost::ShapeContent::DEFAULT_OPTIONS[:color]}
def initialize(options = {})
@options = DEFAULT_OPTIONS.dup.merge(options)
end
def ps
x = RGhost::Units.parse(@options[:x])
y = RGhost::Units.parse(@options[:y])
h = RGhost::Units.parse(@options[:height])
w = RGhost::Units.parse(@options[:width])
inside = RGhost::ShapeContent.new(@options[:content]) if @options[:content]
border = RGhost::Border.new(@options[:border]) if @options[:border]
params = %(
/rcorners_params{
/:x #{x} def /:y #{y} def
/:w #{w} def /:h #{h} def
/:r #{@options[:corners]} def
/:s 1 def
/:stk {#{"stroke" if @options[:stroke]} }def
/:inside{
#{inside.ps if inside}
} def
/:outside{
#{border.ps if border}
}def
} def
)
"#{params} rcorners_params rcorners"
end
# Creates background of the row for current row. Example
# Here's fill the current row using width :area_x, height :row_height, and starting in :limit_left.
# doc.background_row :color => '#35F6A3'
#
# link:images/background_row01.png
#
# Specifies size and where will start of background
# doc.background_row :start_in => 2, :size => 5.5, :color => 0.8
#
# link:images/background_row02.png
def self.background_row(options = BACKGROUND_ROW_DEFAULT_OPTIONS)
# opts=BACKGROUND_ROW_DEFAULT_OPTIONS.merge(options)
# start_in,size=Units::parse(opts[:start_in]),Units::parse(opts[:size])
# return RGhost::PsObject.new("#{start_in} #{size} {#{opts[:color]}} background_row ")
options = RGhost::Frame::BACKGROUND_ROW_DEFAULT_OPTIONS.merge(options)
g = RGhost::Graphic.new
g.set RGhost::Units.parse(options[:start_in])
g.set RGhost::Units.parse(options[:size])
g.set RGhost::Color.create(options[:color]) if options[:color]
g.raw :background_row
g
end
end
ruby-rghost-0.9.9/lib/rghost/function.rb 0000664 0000000 0000000 00000001130 14573150434 0020245 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
# Creates postscript internal function. Example
# f=RGhost::Function.new :foo do
# set Show.new("A Test")
# end
# In ps stack will be
# /foo (A Test) show def
class RGhost::Function < RGhost::PsObject
attr_reader :name
def initialize(name, body_function = nil, &block)
if block
super(&block)
else
super("")
end
@name = name
@body_function = body_function
end
def use_template(function_name)
call "_#{function_name}"
end
def ps
@body_function ||= super
"\n/#{@name}{\n#{@body_function}\n} bind def \n"
end
end
ruby-rghost-0.9.9/lib/rghost/gif.rb 0000664 0000000 0000000 00000002141 14573150434 0017170 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/graphic"
require "rghost/cursor"
require "rghost/variable"
require "rghost/image"
require "rghost/function"
require "rghost/scale"
# Loads GIF image from file
#===Examples
# doc=Document.new
# doc.set Gif.new "../public/images/button.gif", :x => 10, :y => 3
# Using Image.for facade
# doc.set Image.for "../public/images/button.gif", :x => 10, :y => 3
# Using PsFacade or Document
# doc.image "images/button.gif", :x => 10, :y => 3
# Using zoom of the 200 percent
# doc.image "images/button.gif", :zoom => 200
#===Options
#
# * :x and :y - Coordinates to position.
# * :rotate - Angle to image rotation if there is one.
# * :zoom - Resize proportionally the image
class RGhost::Gif < RGhost::Image
def ps
s = @options[:zoom] / 100.0
g = RGhost::Graphic.new
params = RGhost::Function.new(:gif_params)
params.set RGhost::Cursor.translate(@options)
params.set RGhost::Cursor.rotate(@options[:rotate])
params.set RGhost::Scale.new(s, s)
g.set params
g.set RGhost::PsObject.new("(#{@file}) viewGIF")
g.ps
end
end
ruby-rghost-0.9.9/lib/rghost/graphic.rb 0000664 0000000 0000000 00000000576 14573150434 0020052 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/cursor"
require "rghost/point"
require "rghost/line_width"
# Creates a new graphic state between gsave and grestore postscript primitives. Example
# doc=Document.new
# doc.graphic do
# set LineWidth.new(0)
# set Line.lineto(5,7)
# end
class RGhost::Graphic < RGhost::PsObject
def ps
"gsave #{super} grestore"
end
end
ruby-rghost-0.9.9/lib/rghost/grid/ 0000775 0000000 0000000 00000000000 14573150434 0017025 5 ustar 00root root 0000000 0000000 ruby-rghost-0.9.9/lib/rghost/grid/base_grid.rb 0000664 0000000 0000000 00000014464 14573150434 0021302 0 ustar 00root root 0000000 0000000 # RGhost::Grid::Base is a helper object to create a tabular
# representations, composed of rows, columns and a title. This
# prototype used to join the common attributes for data grids. To use
# a Grid you must first setup the columns, then load the data.
#
# Example:
# grid=Grid::Matrix.new
# grid.column :title => "Code", :width => 1
# grid.column :title => "Name", :width => 3, :align => :center
# grid.column :title => "Date", :width => 3, :align => :center
#
# Note that both the width and align of the last two columns are
# identical. To avoid repetition, you can specify a default width upon
# creating the DataGrid::Grid object. Any columns that do not specify
# an explicit width and align property will inherit the defaults.
#
# Example:
#
# grid=Grid::Matrix.new :width => 3, :align => :center
# grid.column :title => "Code", :width => 1 #:width => 1, :align => :center
# grid.column :title => "Name" #:width => 3, :align => :center
# grid.column :title => "Date" #:width => 3, :align => :center
#
# The actual content needs to be passed in as an array of arrays
#
# values=[
# [1,"Name 1", Time.now],
# [2,"Name 2", Time.now],
# [3,"Name 3", Time.now],
# [4,"Name 4", Time.now],
# [5,"Name 5", Time.now]
# ]
#
# Bind the content to the grid:
# grid.data(values)
# Add the Grid to a document
# d=Document.new
# d.set grid
#
class RGhost::Grid::Base < RGhost::PsObject
attr_reader :header
attr_accessor :column_padding
include RGhost::RubyToPs
include RGhost::Grid::CallbackFacade
#===Options
# * :headings - To disable headers set this attribute to false.
# * :column_padding - Padding between column content and its edge.
# * :width - Width for all columns.
# * :align - Align for all data(:left, :center and :right).
# * :title_align - Align for all the header's name(:left, :center and :right).
def initialize(options = {})
@header = RGhost::Grid::Header.new((options[:headings] == false) ? false : true)
@header.default_options(options)
@callbacks = RGhost::PsObject.new
@column_padding = options[:column_padding] || 0.1
@record_count = 1
@data = []
@data[0] = []
@data_index = 0
@max_stack = RGhost::Config::GS[:stack_elements]
end
# Defines properties of a column. Parameters are the same as for new,
# plus some additional ones like :format.
# * :format - Format of the data. You can format data in four
# different ways with Rghost, passing in a Symbol
# a String a Class or Proc.
#
# ==== :format Parameters type
# * Symbol - Searches for a method defined as Grid::FieldFormat::method_name
# :format => :eurodate
# * Class - A class that inherits Grid::FieldFormat::Custom with a overridden format method.
# :format => MyFormat
# * String - Formats using the same parameters used in sprintf
# :format => "%0.2f"
# * Proc - A block. In the example a text limited to 9 characters.
# :format => lambda {|s| s.gsub(/^(.{9}).*$/,'\1...')}
# ====Customizing formats
# Replace spaces with a double dash.
# class MyFormat < DataGrid::FieldFormat::Custom
# def format
# @value.to_s.gsub(/ /,'--')
# end
# end
#
# Using
#
# grid.column :title => "Name", :format => MyFormat
#
# Below, the columns with their proper formats.
#
# grid.column :title => "Code",:format => "(%d)", :width => 1
# grid.column :title => "Name", :format => MyFormat
# grid.column :title => "Date", :format => lambda {|date| date.strftime("%d/%m/%Y") }
# values=[
# [1,"Name 1", Time.now],
# [2,"Name 2", Time.now],
# [3,"Name 3", Time.now],
# [4,"Name 4", Time.now],
# [5,"Name 5", Time.now]
# ]
# grid.data(values)
# Add the Grid to a document
#
# d=Document.new
# d.set grid
# link:images/format01.png
def col(title = "", options = {})
if title.is_a? Hash
@header.col(title[:title], title)
else
@header.col(title, options)
end
end
# Alias for col
def column(title = "", options = {})
col(title, options)
end
def format_field(value, type) # :nodoc:
case type
when Symbol
RGhost::Grid::FieldFormat.send(type, value)
when String
RGhost::Grid::FieldFormat.string(type % value)
when NilClass
RGhost::Grid::FieldFormat.string(value)
when Class
type.new(value).gs_format
when Proc
RGhost::Grid::FieldFormat.string(type.call(value))
else raise TypeError.new("type=#{type}, value type=#{value.class}")
end
end
def width
@header.size
end
def proc_line(line) # :nodoc:
h = @header.data_types
rec = []
line.each_with_index do |v, i|
# puts "#{i} == #{h[i]} = #{v}, #{format_field(v,h[i])}"
rec << format_field(v, h[i])
end
@data[@data_index] << "[#{rec.join(" ")}]\n"
if @record_count == @max_stack
@record_count = 0
@data_index += 1
@data[@data_index] = []
end
@record_count += 1
end
# Defines data to grid processor.
def data(data)
end
public
def ps
grid_names = []
p = RGhost::PsObject.new
p.set RGhost::Variable.new(:col_padding, RGhost::Units.parse(@column_padding))
@data.each do |ary|
r = (rand * 99999).to_i
p.raw "/data#{r}[\n#{ary.join("")}\n] def"
grid_names << r
end
p.raw "#{@header.ps} #{@callbacks}"
g = RGhost::Graphic.new do
raw :before_table_create
raw grid_names.map { |m| " data#{m} table_proc \n" }.join("")
raw :after_table_create
end
p.set g
p.raw :nrdp
p
end
# Grid has 3 preset styles :bottom_lines, :border_lines and
# old_forms. To set any of them, use:
#
# grid.style(:border_lines)
#
# :border_lines - instance of Grid::Style::BorderLines
#
# link:images/setstyle01.png
#
# :bottom_lines - instance of Grid::Style::BottomLines
#
# link:images/setstyle02.png
#
# :old_forms - instance of Grid::Style::OldForms
#
# link:images/setstyle03.png
def style(type = :border_lines)
st = case type
when :border_lines
RGhost::Grid::Style::BorderLines.new
when :old_forms
RGhost::Grid::Style::OldForms.new
when :bottom_lines
RGhost::Grid::Style::BottomLines.new
else raise NameError.new("Why? #{type} ?")
end
st.set_style(self)
end
end
ruby-rghost-0.9.9/lib/rghost/grid/callback_facade.rb 0000664 0000000 0000000 00000006755 14573150434 0022406 0 ustar 00root root 0000000 0000000 module RGhost::Grid
# The callbacks for the grid are defined here. Let's see them in action.
# ===Grid::CallbackFacade examples
# grid=Grid::Matrix.new :column_padding => 1
# grid.column :title => "Id", :width => 1
# grid.column :title => "Name", :width => 3, :align => :center
# grid.column :title => "Date", :width => 3, :align => :right, :title_align => :center, :format => lambda{|v| v.strftime("%d/%m/%Y")}
# values=('A'..'E').to_a.map{|v| [v,"Name #{v}", Time.now]}
#
# even_row:
# grid.even_row do |e|
# e.background_row(:size => grid.width)
# end
# link:images/grid01.png
#
# Now before_row to create a top and bottom line:
# grid.before_row do |b|
# b.horizontal_line(:top, :size => grid.width )
# b.horizontal_line(:bottom, :size => grid.width)
# end
#
# link:images/grid02.png
#
# before_column:
# grid.before_column do |v|
# v.vertical_line_row
# end
#
# link:images/grid03.png
#
# after_column:
# grid.after_column {|c| c.vertical_line_row }
#
#
# link:images/grid04.png
#
# Moving to the header
# grid.header.before_create do |b|
# b.horizontal_line(:top, :size => grid.width)
# end
#
# link:images/grid05.png
#
# Finishing the grid lines:
# grid.header.before_column do |b|
# b.vertical_line_row
# end
#
#
# grid.header.after_column do |b|
# b.vertical_line_row
# end
#
# link:images/grid06.png
#
# Now a adding a bold font to the header
# grid.header.before_create do |b|
# b.horizontal_line(:top, :size => grid.width)
# b.use_tag :bold
# end
#
# link:images/grid07.png
#
# Oops. Not quite what we expected, the entire grid used bold
# face. We need to use a header callback to reset the font.
#
# grid.header.after_create do
# b.use_tag :normal
# end
#
# link:images/grid08.png
#
# Don't forget
#
# doc=Document.new
# doc.set grid
module CallbackFacade
# Executes before processing row. Responds to :only and :except
# options.
def before_row(options = {}, &)
new_dynamic_callback(:before_row, options, &)
end
# Executes on creating an odd rows. Responds to :only and :except
# options.
def odd_row(options = {}, &)
new_dynamic_callback(:odd_row, options, &)
end
# Executes upon creating even rows. Responds to :only and :except
# options.
def even_row(options = {}, &)
new_dynamic_callback(:even_row, options, &)
end
# Executes before creating a column. Responds to :only and :except
# options.
def before_column(options = {}, &)
new_dynamic_callback(:before_column, options, &)
end
# Executes after a column was created. Responds to :only and
# :except options.
def after_column(options = {}, &)
new_dynamic_callback(:after_column, options, &)
end
# Executes when creating an odd column. Responds to :only and
# :except options.
def odd_column(options = {}, &)
new_dynamic_callback(:odd_column, options, &)
end
# Executes upon creating an even column. Responds to :only and
# :except options.
def even_column(options = {}, &)
new_dynamic_callback(:even_column, options, &)
end
private
def new_dynamic_callback(name, options = {}, &)
@callbacks.set RGhost::Callback.new(name, options, &)
end
def new_static_callback(name, &)
callback_body = RGhost::PsFacade.new(&)
@callbacks.set RGhost::Function.new(name, callback_body)
end
end
end
ruby-rghost-0.9.9/lib/rghost/grid/csv_grid.rb 0000664 0000000 0000000 00000002557 14573150434 0021163 0 ustar 00root root 0000000 0000000 # Grid::CSV allows you to import data from a csv file.
# ===Example
#
# grid=Grid::CSV.new :width => 2
# grid.column :title => "User", :align => :right
# grid.column :title => "Password", :format => lambda{|v| (v.to_s == "x") ? "Yes" : "No"}
# grid.column :title => "UID", :width => 1
# grid.column :title => "GID"
# grid.column :title => "Gecos", :width => 2.5
# grid.column :title => "Home Dir", :width => 4
# grid.column :title => "Shell"
# grid.style :bottom_lines
# grid.data("/etc/passwd",/:/)
#
# link:images/csvgrid01.png
#
class RGhost::Grid::CSV < RGhost::Grid::Base
# Pass in path to file and the record separator:
# grid.data("/mydir/myfile.csv", ';')
# You can use a regular expression for record separator:
# grid.data("/mydir/myfile.csv", /[^\w]/)
def data(filepath, col_sep = ";")
_data = filepath
first = true
_data = File.open(_data) if _data.is_a? String
_data.each do |line|
l = line.split(Regexp.new(col_sep)) if col_sep.is_a?(String)
l = line.split(col_sep) if col_sep.is_a?(Regexp)
if first
v = l.size - @header.titles.size
# v.times{@header.titles << "tt"}
# l.each {|h| col(h)} if @header.titles.size == 0
l.each { |h| col("") } if @header.titles.size == 0
proc_line(l)
first = false
next
else
proc_line(l)
end
end
end
end
ruby-rghost-0.9.9/lib/rghost/grid/dynamic_callback.rb 0000664 0000000 0000000 00000000620 14573150434 0022610 0 ustar 00root root 0000000 0000000 require "rghost/callback"
# Dynamic Callbacks
class RGhost::Grid::DynamicCallback < RGhost::Callback
ACCEPT = [:before_row, :after_row, :even_row,
:odd_row, :before_column, :after_column, :even_column, :odd_column]
def initialize(name, options = {}, &block)
raise NameError.new("#{name} no accept in #{self.class}") unless ACCEPT.include? name
super(name, options, &block)
end
end
ruby-rghost-0.9.9/lib/rghost/grid/field_format.rb 0000664 0000000 0000000 00000001317 14573150434 0022007 0 ustar 00root root 0000000 0000000 $LOAD_PATH << File.dirname(__FILE__) + File::SEPARATOR + "../"
require "rghost/ps_object"
require "rghost/ruby_to_ps"
module RGhost::Grid
module FieldFormat
extend RGhost::RubyToPs
# Format Time/Date to %d/%m/%Y
def self.eurodate(value)
string(value.strftime("%d/%m/%Y"))
end
# Cut all blank spaces
def self.no_space(value)
string(value.to_s.gsub(/\s/, ""))
end
def self.string(value)
to_string(value)
end
end
end
# Prototype to override format method.
class RGhost::Grid::FieldFormat::Custom
def initialize(value)
@value = value
end
def gs_format
RGhost::Grid::FieldFormat.string(self.format)
end
def format
@value.to_s
end
end
ruby-rghost-0.9.9/lib/rghost/grid/grid.rb 0000664 0000000 0000000 00000000576 14573150434 0020307 0 ustar 00root root 0000000 0000000 module RGhost::Grid
require "rghost/grid/header"
require "rghost/grid/callback_facade"
require "rghost/grid/style/style"
require "rghost/grid/base_grid"
require "rghost/grid/rails_grid"
require "rghost/grid/matrix"
require "rghost/grid/csv_grid"
require "rghost/grid/dynamic_callback"
require "rghost/grid/static_callback"
require "rghost/grid/field_format"
end
ruby-rghost-0.9.9/lib/rghost/grid/header.rb 0000664 0000000 0000000 00000005326 14573150434 0020610 0 ustar 00root root 0000000 0000000 $LOAD_PATH << File.dirname(__FILE__) + File::SEPARATOR + "../"
require "rghost/ps_object"
require "rghost/ruby_to_ps"
require "rghost/variable"
require "rghost/units"
require "rghost/function"
require "rghost/callback"
# Grid's Header.
# You can get a header instance using:
# grid=Grid::Rails.new
# grid.header
#
# You can also define callbacks:
#
# grid.header.before_column :only => [1,2] do
# use_tag :span
# end
#
class RGhost::Grid::Header < RGhost::PsObject
include RGhost::RubyToPs
DEFAULT_OPTIONS = {width: 4, align: :center, title_align: nil, header_width: nil, format: :string}
attr_reader :data_types, :titles, :size
def initialize(headings = true, options = {}, &block) # :nodoc:
@header = RGhost::PsObject.new
@data_types = []
@options = []
@titles = []
@header.set RGhost::Variable.new(:new_page?, true)
@default_options = DEFAULT_OPTIONS.merge(options)
@header.set RGhost::Variable.new(:headings?, headings)
@size = 0
instance_eval(&block) if block
end
def ps
p, h = format_header
@header.set RGhost::Variable.new(:header_titles, to_array(@titles))
@header.set RGhost::Variable.new(:table_params, " [\n #{p}] \n")
@header.set RGhost::Variable.new(:table_header, " [\n #{h}] \n")
@header
end
def col(name = "", options = {}) # :nodoc:
opts = @default_options.merge(options)
@size += opts[:width]
@data_types << opts[:format]
@options << opts
@titles << ps_escape(name.to_s)
end
def default_options(opts) # :nodoc:
@default_options.merge!(opts)
end
def column(name, options = {}) # :nodoc:
col(name, options)
end
def next_column(name, options = {}) # :nodoc:
col(name, options)
end
def before_create(&)
# @header.set RGhost::Function.new(:before_header_create, &block )
new_static_callback(:before_header_create, &)
end
def after_create(&)
# @header.set RGhost::Function.new(:after_header_create, &block )
new_static_callback(:after_header_create, &)
end
def before_column(options = {}, &)
@header.set RGhost::Callback.new(:before_column_header, options, &)
end
def after_column(options = {}, &)
@header.set RGhost::Callback.new(:after_column_header, options, &)
end
private
def new_static_callback(name, &)
callback_body = RGhost::PsFacade.new(&)
@header.set RGhost::Function.new(name, callback_body)
end
def format_header
p = "" # params
h = "" # params_head
o = @options.dup
o.each do |v|
v[:title_align] ||= v[:align]
v[:header_width] ||= v[:width]
p << "[ #{RGhost::Units.parse(v[:width])} /st_#{v[:align]}]\n "
h << "[ #{RGhost::Units.parse(v[:header_width])} /st_#{v[:title_align]}]\n "
end
[p, h]
end
end
ruby-rghost-0.9.9/lib/rghost/grid/matrix.rb 0000664 0000000 0000000 00000000305 14573150434 0020654 0 ustar 00root root 0000000 0000000 # Implements data method for Grid::Base. You can consult the examples at Grid::Base.
class RGhost::Grid::Matrix < RGhost::Grid::Base
def data(_data)
_data.each { |d| proc_line(d) }
end
end
ruby-rghost-0.9.9/lib/rghost/grid/rails_grid.rb 0000664 0000000 0000000 00000004545 14573150434 0021501 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
#
# Grid::Rails mapps grid columns to ActiveRecord attributes. For
# example, let's take a Calls class to represent telephone calls.
#
# ===Example
# rails_grid=Grid::Rails.new(:align => :center, :width => 3)
#
# Mapping, first the attribute name then the already known optionsName
# rails_grid.column :mobile, :title => "Mobile", :align => :right
# rails_grid.column :duration, :title => "Duration",:width => 3
# rails_grid.column :start, :title => "Start", :format => :eurodate
# rails_grid.column :called, :title => "Number", :align => :right, :title_align => :center
# Load data
# calls = Call.find(:all, :limit => 5000)
# rails_grid.data(calls)
# ====Relationships
# You can also use attributes of associated objects, via a block or
# string. For example consider Accounts and Customers
# relationship. Let's produce a grid od all Customers plus some data
# reffering to the first account the customer had created.
#
# class Accounts < ActiveRecord::Base
# belongs_to :customer
# end
# class Customers < ActiveRecord::Base
# has_many :accounts
# end
#
# c = Customers.find(:all, :include => :accounts )
#
# Using a block
# g=Grid::Rails.new :width => 4
# g.column :id, :title => "Customer id"
# g.column :name, :title => "Name", :width => 6
# g.column :created_on, :title => "Date ", :format => lambda{|d| d.strftime("%m/%d/%Y") }
# g.column lambda { accounts.first.login }, :title => "Login"
# g.column lambda { accounts.first.type }, :title => "Account Type"
# g.data(c)
# Or a String
# g.column 'accounts.first.login', :title => Login"
class RGhost::Grid::Rails < RGhost::Grid::Base
# The parameter +_data+ is an Array of ActiveRecord::Base objects.
def data(_data)
_data.collect do |d|
line = @rails_cols.collect do |c|
case c[:field_name]
when Symbol
d[c[:field_name]]
when String
d.instance_eval c[:field_name]
when Proc
d.instance_eval(&c[:field_name])
end
end
proc_line(line)
end
end
def col(field_name, options = {}) # :nodoc:
super(options[:title], options)
@rails_cols ||= []
owf = options.dup # from options with field
owf[:field_name] ||= field_name
@rails_cols << owf
end
def column(field_name, options = {}) # :nodoc:
col(field_name, options)
end
end
ruby-rghost-0.9.9/lib/rghost/grid/static_callback.rb 0000664 0000000 0000000 00000000477 14573150434 0022465 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/function"
class RGhost::Grid::StaticCallback < RGhost::Function
ACCEPT = [:before_table_create, :after_table_create]
def initialize(name, &block)
raise NameError.new("#{name} no accept in #{self.class}") unless ACCEPT.include? name
super(name, &block)
end
end
ruby-rghost-0.9.9/lib/rghost/grid/style/ 0000775 0000000 0000000 00000000000 14573150434 0020165 5 ustar 00root root 0000000 0000000 ruby-rghost-0.9.9/lib/rghost/grid/style/border_lines.rb 0000664 0000000 0000000 00000001342 14573150434 0023161 0 ustar 00root root 0000000 0000000 class RGhost::Grid::Style::BorderLines
def set_style(grid)
grid.before_row do |b|
b.horizontal_line(:top, size: grid.width)
b.horizontal_line(:bottom, size: grid.width)
end
grid.before_column only: 0 do |b|
b.vertical_line_row
end
grid.after_column do |c|
c.vertical_line_row
end
grid.header.before_create do |c|
c.line_width(0)
c.use_tag :bold
c.horizontal_line(:top, size: grid.width)
c.horizontal_line(:bottom, size: grid.width)
end
grid.header.after_create { |a| a.use_tag :normal }
grid.header.before_column only: 0 do |h|
h.vertical_line_row
end
grid.header.after_column do |h|
h.vertical_line_row
end
end
end
ruby-rghost-0.9.9/lib/rghost/grid/style/bottom_lines.rb 0000664 0000000 0000000 00000000576 14573150434 0023220 0 ustar 00root root 0000000 0000000 class RGhost::Grid::Style::BottomLines
def set_style(grid)
size = grid.header.size
grid.before_row do |b|
b.horizontal_line(:bottom, size: grid.width)
end
grid.header.before_create do |h|
h.line_width(0)
h.horizontal_line(:bottom, size: grid.width)
h.use_tag :bold
end
grid.header.after_create { |h| h.use_tag :normal }
end
end
ruby-rghost-0.9.9/lib/rghost/grid/style/old_forms.rb 0000664 0000000 0000000 00000000616 14573150434 0022501 0 ustar 00root root 0000000 0000000 class RGhost::Grid::Style::OldForms
def set_style(grid)
size = grid.header.size
grid.odd_row do |o|
o.background_row(size: size)
end
grid.header.before_create do |h|
h.line_width(0)
h.background_row(size: size, color: RGhost::ShapeContent::DEFAULT_OPTIONS[:color])
h.use_tag :bold
end
grid.header.after_create { |h| h.use_tag :normal }
end
end
ruby-rghost-0.9.9/lib/rghost/grid/style/style.rb 0000664 0000000 0000000 00000000261 14573150434 0021651 0 ustar 00root root 0000000 0000000 module RGhost::Grid
module Style
require "rghost/grid/style/border_lines"
require "rghost/grid/style/old_forms"
require "rghost/grid/style/bottom_lines"
end
end
ruby-rghost-0.9.9/lib/rghost/gs_alone.rb 0000664 0000000 0000000 00000000724 14573150434 0020217 0 ustar 00root root 0000000 0000000 class RGhost::GSAlone # :nodoc:
def initialize(params, debug = false)
@params = params.dup
@params[0] = " " # Get rid of the "gs" command from RGhost::Config::GS[:default_params]
@debug = debug
end
def run
cmd = @params.join(" ")
unless File.exist?(RGhost::Config::GS[:path].to_s)
RGhost::Config.config_platform
end
r = system(RGhost::Config::GS[:path] + cmd)
puts RGhost::Config::GS[:path] + cmd if @debug
r
end
end
ruby-rghost-0.9.9/lib/rghost/helpers.rb 0000664 0000000 0000000 00000000347 14573150434 0020073 0 ustar 00root root 0000000 0000000 module RGhost::UnlessHelpers # :nodoc:
module HashKeyMethod # :nodoc:
def method_missing(method, *args)
self[method.to_sym]
end
end
class HashKeyMethodClass < Hash # :nodoc:
include HashKeyMethod
end
end
ruby-rghost-0.9.9/lib/rghost/horizontal_line.rb 0000664 0000000 0000000 00000002363 14573150434 0021631 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/units"
# Creates horizontal line on the current row.
class RGhost::HorizontalLine < RGhost::PsObject
DEFAULT_OPTIONS = {start_in: :limit_left, size: :area_x,
border: RGhost::Border::DEFAULT_OPTIONS}
# Examples
#
# Drawing line on middle
#
# doc.show "Foo Bar"
# doc.horizontal_line :middle
#
# link:images/horizontal_line01.png
#
# Drawing line on bottom and customizing border attributes
#
# doc.show "Foo Bar"
# doc.horizontal_line :bottom, :border => {:dash => [1,2,2,2], :color => :red}
#
# link:images/horizontal_line02.png
#
# Specifies size and where will start of line
#
# doc.show "Foo Bar"
# doc.horizontal_line :top, :start_in => 2, :size => 5, :border => {:dash => [1,2,2,2], :color => :red}
#
# link:images/horizontal_line03.png
def initialize(valign = :middle, options = {})
@options = DEFAULT_OPTIONS.dup.merge(options)
start_in = RGhost::Units.parse(@options[:start_in])
size = RGhost::Units.parse(@options[:size])
border = RGhost::Border.new(@options[:border])
super("gsave #{border.ps} #{start_in} #{size} horizontal_line_#{valign} grestore")
# super("#{start_in} #{size} horizontal_line_#{valign}")
end
end
ruby-rghost-0.9.9/lib/rghost/how_to.rb 0000664 0000000 0000000 00000007373 14573150434 0017736 0 ustar 00root root 0000000 0000000 #=Ruby Ghostscript engine - Document Builder
#==About
# RubyGhost (RGhost) is a library for document developers wanting a quick and easy
# way to generate pdf files. Notable features include: inserting images,
# vector drawing , font suppoort , EPS template support and multiple output formats.
# RGhost acts as Ruby a wrapper over the Ghostscript engine enriched by predefined
# set Postscript(ps) functions. For example:
#
# Ruby code you'll write:
#
# h=HorizontalLine.new :middle, :start_in => 3, :size => 2
#
# gets translated to the following Postscript function. Note how this is not actually
# raw Postscript, instead it makes use of a set of predefined functions shipped with Rghost.
#
# 3 unit 2 unit exch gsave current_row row_height sqrt add moveto 0 rlineto stroke grestore
#
# Unless embarking into deep Postscript wizardry you don't need to be aware of this fact.
# Basically RGhost is a helper for creating of Postscript documents.
# The resulting Postscript document is rendered to the target format (usually pdf but not just)
# by invoking Ghostscript the free Postscript interpreter. Ghostscript settings very
# a lot depending on your platform. Initially RGhost was developed for *nix environments
# where Ghostscript is (almost always) native and used as a printing filter (CUPS, LPRng etc)
# and also as a document format converter. So it became necessary to make an interface
# between Ruby and Ghostscript in two ways:
#
# * gsapi - based on the exchange of data between Ruby and Ghostscript via rgengine.so using gslib.so.8 or gslib-esp.so.8
# * gsparams - In this mode RGhost just pass parameters to the Ghostscript framework.1.1 Files
#
# During the conversion of the postscript code to the desired format 4 files are created, 3 of them being temporary.
#
#====Input
# The input file is a pure postscript file with a .rgin extension that will be automatically removed after the conversion process, even if errors show up.
#
#====Errors
# Using a .rgerr extension, its content are the errors generated by ghostscript. It'll be deleted after the conversion. The content of the file is available on the errors variable of the RubyGhostEngine class.
#
#====Log
# The log file is set using the option :logfile of the RubyGhostEngine class, appending all logs to it. Disabled by default.
#
#====Output
# The output files will have the extension passed to the RGhost::Document#render method. For multi page formats it will return an array of files. These files aren't deleted automatically, meaning that the developer will have to deal with them.
#====Author
# Shairon Toledo shairon.toledo(at)gmail.com http://www.hashcode.eti.br Brazil Jun/2008
#====Thanks
# Dee Zsombor[http://deezsombor.com] and Mereghost
#
#==Installation and Setup
#====Ghostscript
# You need to have ESP Ghostscript 8.xx or GNU Ghostscript 8.xx installed
#
#=====Non-coupled installation: *gsparams* (recommended)
# This is the simplest setup, you'll have to dowload and install the Ghostscript framework(http://www.cs.wisc.edu/~ghost/).
# Rhgost will invoke the ghostscript interpreter in the background to generate the desired output.
#
#===== Coupled installation: *gslib* (Linux only)
# You can use the native ghostrcipt interface via the gs-esp and libgs-esp8 (libgs-esp.so) packages. This may be already set up for you on Linux or you'll have to compile ghostscript
#=====Installation via remote gem
# gem install rghost
#
#=====Rails plugin installation
# Gets last version in RubyForge[http://rubyforge.org/frs/?group_id=3796&release_id=18301] unpack on RAILS_ROOT/lib
#====Setup
# Look at RGhost::Config
#==Namespace
# You can work either full namespace of including RGhost module.
#=====Full namespace
# doc=RGhost::Document.new
#=====Including module RGhost
# include RGhost
# doc=Document.new
class RGhost::HowTo
end
ruby-rghost-0.9.9/lib/rghost/image.rb 0000664 0000000 0000000 00000001260 14573150434 0017506 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
# Super class of GIF and JPEG.
class RGhost::Image < RGhost::PsObject
DEFAULT_OPTIONS = {x: :limit_left, y: 1, zoom: 100, rotate: 0}
def initialize(image_path, options = {})
super("")
@options = DEFAULT_OPTIONS.dup.merge(options)
@file = image_path
end
# Facade method for load image by file extension. Uses Eps, Gif and Jpeg class. Accepts gif, jpeg, jpg and eps
def self.for(path, options = {})
clazz = case path
when /gif$/i
RGhost::Gif
when /jpe?g$/i
RGhost::Jpeg
when /(eps|template)$/i
RGhost::Eps
else raise NameError.new("Unsupported format")
end
clazz.new(path, options)
end
end
ruby-rghost-0.9.9/lib/rghost/jpeg.rb 0000664 0000000 0000000 00000002107 14573150434 0017352 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/graphic"
require "rghost/cursor"
require "rghost/variable"
require "rghost/image"
# Loads JPEG image from file
#===Examples
# doc=Document.new
# doc.set Jpeg.new "../public/images/button.jpg", :x => 10, :y => 3
# Using Image.for facade
# doc.set Image.for "../public/images/button.jpg", :x => 10, :y => 3
# Using PsFacade or Document
# doc.image "images/button.jpg", :x => 10, :y => 3
# Using Zoom of the 200 percent
# doc.image "images/button.jpg", :zoom => 200
#===Options
#
# * :x and :y - Coordinates to position.
# * :rotate - Angle to image rotation if there is one.
# * :zoom - Resize proportionally the image
class RGhost::Jpeg < RGhost::Image
def ps
# x=Units::parse( @options[:x] )
# y=Units::parse( @options[:y] )
g = RGhost::Graphic.new
g.set RGhost::Cursor.translate(@options)
# set Cursor.translate()
g.set RGhost::Cursor.rotate(@options[:rotate])
g.set RGhost::Variable.new(:zoom, @options[:zoom] / 100.0)
g.set RGhost::PsObject.new("(#{@file}) viewJPEG")
g.ps
end
end
ruby-rghost-0.9.9/lib/rghost/line.rb 0000664 0000000 0000000 00000004210 14573150434 0017351 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/point"
# Creates straight lines
class RGhost::Line < RGhost::PsObject
DEFAULT_POINT = {x: :limit_left, y: :current_row}
# Draw line the one pont until another, the first point is creates by moveto and de last point using the method lineto.
#===Examples
# doc=Document.new
# doc.moveto :x => 2, :y => 3
# doc.lineto :x => 5, :y => 2
#
# link:images/line01.png
#
# doc=Document.new
# doc.moveto :x => 2, :y => 3
# doc.lineto :x => 4, :y => 4
#
# link:images/line02.png
#
# doc=Document.new
# doc.border :color => '#AAFA49', :width => 4
# doc.moveto :x => 2, :y => 3
# doc.lineto :x => 4, :y => 1
#
# link:images/line03.png
#
# doc=Document.new
# doc.border :color => '#49AAFA', :width => 1
# doc.moveto :x => 2, :y => 3
# doc.lineto :x => 4, :y => 1
# doc.moveto :x => 2, :y => 3
# doc.lineto :x => 2, :y => 1
#
# link:images/line04.png
#
# Using graphic state to close path shape
#
# doc=Document.new
# doc.graphic do
# doc.border :color => '#49AAFA', :width => 1
# doc.moveto :x => 2, :y => 3
# doc.lineto :x => 4, :y => 1
# doc.lineto :x => 2, :y => 1
# doc.shape_content :color => "#F0FFFF"
# doc.closepath
# end
#
# link:images/line05.png
def self.lineto(point = {})
RGhost::Line.make_command(:lineto, point)
end
# (Relative lineto) Draw straingh line in the same manner as lineto, but from current point to distance for next :x and :y. That is, rlineto constructs a line from (x, y) to (x + dx, y + dy) and makes (x + dx, y + dy) the new current point.
#
#===Examples
# doc=Document.new
# doc.moveto :x => 2, :y => 1
# doc.rlineto :x => 3, :y => 2
#
# link:images/line06.png
#
# doc=Document.new
# doc.moveto :x => 2, :y => 1
# doc.rlineto :x => 3, :y => 2
# doc.rlineto :x => 0, :y => -2
# link:images/line07.png
def self.rlineto(point = {})
line = RGhost::Line.make_command(:rlineto, point)
end
private
def self.make_command(command, point = {})
p = DEFAULT_POINT.dup.merge(point)
p = RGhost::Point.new(p[:x], p[:y])
RGhost::PsObject.new "#{p.ps}#{command}"
end
end
ruby-rghost-0.9.9/lib/rghost/line_width.rb 0000664 0000000 0000000 00000000731 14573150434 0020554 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
# Sets the line width parameter in the graphics state.
class RGhost::LineWidth < RGhost::PsObject
# Examples
# The more tiny line
# doc=Document.new
# doc.line_width 0
#
# link:images/line_width01.png
#
# doc.line_width 1
#
# link:images/line_width02.png
#
# doc.line_width 2
#
# link:images/line_width03.png
#
def initialize(value = 0.3)
@value = value
end
def ps
"#{@value} setlinewidth "
end
end
ruby-rghost-0.9.9/lib/rghost/load.rb 0000664 0000000 0000000 00000002270 14573150434 0017345 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
module RGhost::Load
# Loads library
def self.library(name, type = :ps)
# PsObject.new File.open(File.dirname(__FILE__)+File::SEPARATOR+type.to_s+File::SEPARATOR+name.to_s+"."+type.to_s).readlines.join("")
RGhost::PsObject.new("(#{name}.#{type}) runlibfile\n")
end
def self.rg_enviroment
RGhost::PsObject.new do
raw RGhost::Load.library(:basic)
raw RGhost::Load.library(:cursor)
raw RGhost::Load.library(:rectangle)
raw RGhost::Load.library(:font)
raw RGhost::Load.library(:textarea)
raw RGhost::Load.library(:horizontal_line)
raw RGhost::Load.library(:vertical_line)
raw RGhost::Load.library(:callbacks)
raw RGhost::Load.library(:show)
raw RGhost::Load.library(:eps)
raw RGhost::Load.library(:jpeg)
raw RGhost::Load.library(:gif)
raw RGhost::Load.library(:begin_document)
raw RGhost::Load.library(:datagrid)
raw RGhost::Load.library(:text)
raw RGhost::Load.library(:frame)
raw RGhost::Load.library(:link)
raw RGhost::Load.library(:rect_link)
end
end
# Loads binary library
def self.binary(path)
File.open(path).readlines.join
end
end
ruby-rghost-0.9.9/lib/rghost/newpath.rb 0000664 0000000 0000000 00000000536 14573150434 0020077 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/cursor"
require "rghost/point"
require "rghost/line_width"
# Initializes the current path to be empty, causing the current point to become undefined.
class RGhost::NewPath < RGhost::PsObject
def initialize(&)
@body = RGhost::PsFacade.new(&)
end
def ps
"newpath #{@body} closepath"
end
end
ruby-rghost-0.9.9/lib/rghost/paper.rb 0000664 0000000 0000000 00000012065 14573150434 0017540 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/units"
require "rghost/load"
require "rghost/constants"
require "rghost/ruby_to_ps"
# Paper is the area where the Postscript elements/objects are drawn.
# The margin is the document's non-printable area (both by the cursors and by the page's internal controllers).
# The :area_x and :area_y are the printable section of the paper.
# It's used to configure definitions of paper. It automatically defined into Document by :paper parameter.
#
# link:images/paper01.png
#
class RGhost::Paper < RGhost::PsObject
DEFAULT_OPTIONS = {landscape: false,
margin_top: 1,
margin_right: 1,
margin_bottom: 1,
margin_left: 1,
duplex: false,
tumble: false}
attr_reader :paper, :landscape
include RGhost::RubyToPs
#===Examples
#
#====Create paper by name
# doc=Document.new :paper => :A4
#====Create paper by name in landscape
# doc=Document.new :paper => :A4 , :landscape => true
#====Create custom paper
# doc=Document.new :paper => [10,15]
#====Defining all margins
# doc=Document.new :paper => :A5, :margin => 0.5
#====Defining custom margins
# doc=Document.new :paper => :A5, :margin => [0.5, 1, 0.5, 2] #=>[top,right,bottom,left] clockwise
#====Defining particular margin
# doc=Document.new :paper => :A5, :margin_top => 1, :margin_left => 0.3
#====Defining two faces document to printer
# doc=Document.new :paper => :A5, :duplex => true
#===Parameters
# * paper - The paper parameter can be either a Symbol or a Array. If paper parameter is a Symbol its value will search in RGhost::Constants::Papers . If paper parameter is a Array(with two numeric elements) will be position [0] width and [1] height of page. Example:
# doc=Document.new :paper => :A3 #=> Build new A3 paper
# doc=Document.new :paper => [5,5] #=> Build new custom paper 5x5, using default unit defined in RGhost::Config::GS[:unit].
#
#====Configuration options:
# * :landscape - If set to true will invert width to height and height to width.
# * :margin - Specifies margins non-printable area. It can be one Numeric for all margins or Array [top,right,bottom,left] margins.
# * :duplex - Specifies two faces(for print)
# * :tumble - Specifies kind of duplex
#
#
def initialize(paper = :A4, options = {})
@options = DEFAULT_OPTIONS.merge(options)
@landscape = @options[:landscape] || false
@paper = paper
end
def ps
d = format_duplex
p = format_paper[:rg]
m = format_margin
lib = RGhost::Load.library :paper
d << p << m << lib.ps
end
def gs_paper # :nodoc:
fp = format_paper
p = fp[:gs]
# ["-dDEVICEWIDTHPOINTS=#{p[0]}", "-dDEVICEHEIGHTPOINTS=#{p[1]}"]
if fp[:done]
["-dDEVICEWIDTHPOINTS=#{p[0]}", "-dDEVICEHEIGHTPOINTS=#{p[1]}"]
else
["-dDEVICEWIDTHPOINTS=#{to_pt(p[0])}", "-dDEVICEHEIGHTPOINTS=#{to_pt(p[1])}"]
end
end
private
def to_pt(value)
case RGhost::Config::GS[:unit].new
when RGhost::Units::Cm then (value.to_f * 72 / 2.545).to_i
when RGhost::Units::Inch then (value.to_f * 72).to_i
else
value
end
end
def format_margin
# if @options[:margin]
# mt=mr=mb=ml=RGhost::Units::parse(@options[:margin])
# else
# mt=RGhost::Units::parse(@options[:margin_top])
# mr=RGhost::Units::parse(@options[:margin_right])
# mb=RGhost::Units::parse(@options[:margin_bottom])
# ml=RGhost::Units::parse(@options[:margin_left])
# end
case @options[:margin]
when Numeric then mt = mr = mb = ml = RGhost::Units.parse(@options[:margin])
when Array
mt = RGhost::Units.parse(@options[:margin][0] || DEFAULT_OPTIONS[:margin_top])
mr = RGhost::Units.parse(@options[:margin][1] || DEFAULT_OPTIONS[:margin_right])
mb = RGhost::Units.parse(@options[:margin][2] || DEFAULT_OPTIONS[:margin_bottom])
ml = RGhost::Units.parse(@options[:margin][3] || DEFAULT_OPTIONS[:margin_left])
when Hash, NilClass
mt = RGhost::Units.parse(@options[:margin_top] || DEFAULT_OPTIONS[:margin_top])
mr = RGhost::Units.parse(@options[:margin_right] || DEFAULT_OPTIONS[:margin_right])
mb = RGhost::Units.parse(@options[:margin_bottom] || DEFAULT_OPTIONS[:margin_bottom])
ml = RGhost::Units.parse(@options[:margin_left] || DEFAULT_OPTIONS[:margin_left])
end
"/margin 3 dict def margin begin /top #{mt} def /right #{mr} def /bottom #{mb} def /left #{ml} def end\n"
end
def format_paper
case @paper
when Symbol
p = RGhost::Constants::Papers::STANDARD[@paper.to_s.downcase.to_sym]
p.reverse! if @landscape
{rg: "/pagesize #{to_array(p)} def\n", gs: p, done: true}
when Array
@paper.reverse! if @landscape
{rg: "/pagesize #{to_array(@paper.map { |v| to_pt(v) })} def\n", gs: @paper, done: false}
end
end
def format_duplex
"\n<< /Duplex #{@options[:duplex]} /Tumble #{@options[:tumble]} >> setpagedevice\n"
end
end
# puts Paper.new(:A4, :landscape => true, :duplex => true, :margin=> [2,3,4,5])
ruby-rghost-0.9.9/lib/rghost/parse_text.rb 0000664 0000000 0000000 00000002557 14573150434 0020614 0 ustar 00root root 0000000 0000000 module RGhost::ParseText # :nodoc:
def text_to_ps
unless @tag_parse
case @options[:text_align]
when :center, :right
@text.split("\n").map { |l| "#{to_string(l)} :text_proc_cr :nbw " }.to_s
jump_with = ":nbw"
when :left, nil
if instance_of?(RGhost::Text)
return @text.split("\n").map { |l| " :text #{to_string(l)} :text_proc nrdp " }.to_s
else
@text.split("\n").map { |l| " :text_area #{to_string(l)} :text_proc_cr :nbw " }.to_s
jump_with = "nrdp"
end
end
end
jump_with = ":nbw" if instance_of?(RGhost::TextArea)
ret = @text.split(/
|\n/).map do |piece|
text_ok = ""
piece.scan(/<([^>]+)>([^<]*.)<\/\1>|([^<>]+)/).each do |t|
t.compact!
text_ok << if t && t.size == 1
ta_entry(t.first.to_s)
else
ta_entry(t[1], t.first)
end
end
text_ok
end
ret.join(" #{jump_with || "nrdp"} ").gsub("<", "<").gsub(">", ">")
end
def ta_entry(e, tag = "default_font")
if instance_of?(RGhost::Text) and @options[:text_align] == :left
" :text _#{tag} #{to_string(e)} :text_proc "
elsif instance_of?(RGhost::TextArea) and @options[:text_align] == :left
" :text_area _#{tag} #{to_string(e)} :text_proc "
else
" _#{tag} #{to_string(e)} :text_proc_cr "
end
end
end
ruby-rghost-0.9.9/lib/rghost/pdf_security.rb 0000664 0000000 0000000 00000001555 14573150434 0021133 0 ustar 00root root 0000000 0000000 class RGhost::PdfSecurity
PERMISSION_VALUES = {
base: -4,
print: -4,
modify: -8,
copy: -16,
annotate: -32,
interactive: -256,
copy_access: -512,
assemble: -1024,
high_quality_print: -2048,
all: -3904
}
attr_accessor :owner_password, :user_password, :key_length
def initialize
@permission_value = PERMISSION_VALUES[:all]
@key_lenght = 128
@owner_password = "unknow"
@user_password = "unknow"
end
def disable(*permissions)
@permission_value = permissions.map { |p| PERMISSION_VALUES[p] }.inject(0) { |n, i| i += n }
end
def gs_params
"-sOwnerPassword##{clear_space(@owner_password)} -sUserPassword##{clear_space(@user_password)} -dEncryptionR#3 -dKeyLength##{@key_lenght} -dPermissions##{@permission_value}"
end
private
def clear_space(value)
value.to_s.gsub(/([^\w])/, "")
end
end
ruby-rghost-0.9.9/lib/rghost/point.rb 0000664 0000000 0000000 00000000631 14573150434 0017556 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/units"
# Creates one point using default unit defined in RGhost::Config::GS[:unit]
class RGhost::Point < RGhost::PsObject
attr_accessor :x, :y
def initialize(x, y)
if x.is_a? Hash
point = x
@x, @y = point[:x], point[:y]
else
@x, @y = x, y
end
end
def ps
"#{RGhost::Units.parse(@x)} #{RGhost::Units.parse(@y)} "
end
end
ruby-rghost-0.9.9/lib/rghost/point_with_command.rb 0000664 0000000 0000000 00000000473 14573150434 0022313 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/units"
class RGhost::PointWithCommand # :nodoc:
DEFAULT_POINT = {x: :limit_left, y: :current_row}
def self.to(command, point = {})
p = DEFAULT_POINT.dup.merge(point)
p = RGhost::Point.new(p[:x], p[:y])
RGhost::PsObject.new "#{p.ps}#{command}"
end
end
ruby-rghost-0.9.9/lib/rghost/polygon.rb 0000664 0000000 0000000 00000003365 14573150434 0020123 0 ustar 00root root 0000000 0000000 # Draw one shape based in relative node points.
#===Options
#
# * :x and :y - Initial position.
# * :content - Facade to ShapeContent with same parameters.
# * :border - Facade to Border with same parameters.
#===Examples
#
# doc.polygon :x => 3.5, :y => 5.5 do
# node :x => 4, :y => 0
# node :x => 0, :y => -4
# node :x => -4, :y => 0
# node :x => 0, :y => 4
# end
#
# link:images/polygon01.png
#
# doc.polygon :x => 3.5, :y => 4.5 do
# node :x => 2, :y => 2
# node :x => 2, :y => -2
# node :x => -2, :y => -2
# end
#
# link:images/polygon02.png
#
# doc.polygon :x => 1, :y => 5, :border => {:width => 2, :linejoin => 1} do
# node :x => 2, :y => 2/2
# node :x => 2*2,:y => -2
# node :x => -1, :y => -3
# node :x => 2, :y => 1
# node :x => 3, :y => 2
# end
#
# link:images/polygon03.png
class RGhost::Polygon < RGhost::PsObject
attr_reader :points
DEFAULT_OPTIONS = {
x: :limit_left,
y: :current_row,
content: RGhost::ShapeContent::DEFAULT_OPTIONS,
border: RGhost::Border::DEFAULT_OPTIONS
}
def initialize(options = {}, &block)
super("") {}
@options = DEFAULT_OPTIONS.dup.merge(options)
@points = []
instance_eval(&block) if block
end
# Creates new relative point by :x => 2 and :y => 4. Used as instance_eval
def node(point)
@points << point
end
def ps
graph = RGhost::Graphic.new
graph.set RGhost::Cursor.moveto(@options)
graph.set RGhost::Border.new(@options[:border]) if @options[:border]
@points.each { |p| graph.set RGhost::Line.rlineto(p) }
graph.raw :closepath
# graph.raw :gsave
graph.set RGhost::ShapeContent.new(@options[:content]) if @options[:content]
# graph.raw :grestore
graph.raw :stroke
graph
end
end
ruby-rghost-0.9.9/lib/rghost/ps/ 0000775 0000000 0000000 00000000000 14573150434 0016522 5 ustar 00root root 0000000 0000000 ruby-rghost-0.9.9/lib/rghost/ps/AdobeExpert.enc 0000775 0000000 0000000 00000005522 14573150434 0021422 0 ustar 00root root 0000000 0000000 /AdobeExpert [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam.sc
/hungarumlaut.sc
/.notdef
/dollar.oldstyle
/dollar.superior
/ampersand.sc
/acute.sc
/parenleftsuperior
/parenrightsuperior
/twodotenleader
/onedotenleader
/comma
/hyphen
/period
/fraction
/zero.oldstyle % 0x30
/one.oldstyle
/two.oldstyle
/three.oldstyle
/four.oldstyle
/five.oldstyle
/six.oldstyle
/seven.oldstyle
/eight.oldstyle
/nine.oldstyle
/colon
/semicolon
/comma.superior
/threequartersemdash
/period.superior
/question.sc
/.notdef % 0x40
/a.superior
/b.superior
/cent.superior
/d.superior
/e.superior
/.notdef
/.notdef
/.notdef
/i.superior
/.notdef
/.notdef
/l.superior
/m.superior
/nsuperior
/o.superior
/.notdef % 0x50
/.notdef
/r.superior
/s.superior
/t.superior
/.notdef
/ff
/fi
/fl
/ffi
/ffl
/parenleftinferior
/.notdef
/parenrightinferior
/circumflex.sc
/hyphen.superior
/grave.sc % 0x60
/a.sc
/b.sc
/c.sc
/d.sc
/e.sc
/f.sc
/g.sc
/h.sc
/i.sc
/j.sc
/k.sc
/l.sc
/m.sc
/n.sc
/o.sc
/p.sc % 0x70
/q.sc
/r.sc
/s.sc
/t.sc
/u.sc
/v.sc
/w.sc
/x.sc
/y.sc
/z.sc
/colonmonetary
/onefitted
/rupiah
/tilde.sc
/.notdef
/.notdef % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xa0
/exclamdown.sc
/cent.oldstyle
/lslash.sc
/.notdef
/.notdef
/scaron.sc
/zcaron.sc
/dieresis.sc
/breve.sc
/caron.sc
/.notdef
/dotaccent.sc
/.notdef
/.notdef
/macron.sc
/.notdef % 0xb0
/.notdef
/figuredash
/hyphen.inferior
/.notdef
/.notdef
/ogonek.sc
/ring.sc
/cedilla.sc
/.notdef
/.notdef
/.notdef
/onequarter
/onehalf
/threequarters
/questiondown.sc
/oneeighth % 0xc0
/threeeighths
/fiveeighths
/seveneighths
/onethird
/twothirds
/.notdef
/.notdef
/zerosuperior
/onesuperior
/twosuperior
/threesuperior
/foursuperior
/fivesuperior
/sixsuperior
/sevensuperior
/eightsuperior % 0xd0
/ninesuperior
/zeroinferior
/oneinferior
/twoinferior
/threeinferior
/fourinferior
/fiveinferior
/sixinferior
/seveninferior
/eightinferior
/nineinferior
/cent.inferior
/dollar.inferior
/period.inferior
/comma.inferior
/agrave.sc % 0xe0
/aacute.sc
/acircumflex.sc
/atilde.sc
/adieresis.sc
/aring.sc
/ae.sc
/ccedilla.sc
/egrave.sc
/eacute.sc
/ecircumflex.sc
/edieresis.sc
/igrave.sc
/iacute.sc
/icircumflex.sc
/idieresis.sc
/eth.sc % 0xf0
/ntilde.sc
/ograve.sc
/oacute.sc
/ocircumflex.sc
/otilde.sc
/odieresis.sc
/oe.sc
/oslash.sc
/ugrave.sc
/uacute.sc
/ucircumflex.sc
/udieresis.sc
/yacute.sc
/thorn.sc
/ydieresis.sc
] def
ruby-rghost-0.9.9/lib/rghost/ps/AdobeLatinEncoding.enc 0000775 0000000 0000000 00000004230 14573150434 0022664 0 ustar 00root root 0000000 0000000 /AdobeLatinEncoding [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quoteright
/parenleft
/parenright
/asterisk
/plus
/comma
/minus
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/quoteleft % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/.notdef % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/dotlessi % 0x90
/grave
/acute
/circumflex
/tilde
/macron
/breve
/dotaccent
/dieresis
/.notdef
/ring
/cedilla
/.notdef
/hungarumlaut
/ogonek
/caron
/space % 0xa0
/exclamdown
/cent
/sterling
/currency
/yen
/brokenbar
/section
/dieresis
/copyright
/ordfeminine
/guillemotleft
/logicalnot
/hyphen
/registered
/macron
/degree % 0xb0
/plusminus
/twosuperior
/threesuperior
/acute
/mu
/paragraph
/periodcentered
/cedilla
/onesuperior
/ordmasculine
/guillemotright
/onequarter
/onehalf
/threequarters
/questiondown
/Agrave % 0xc0
/Aacute
/Acircumflex
/Atilde
/Adieresis
/Aring
/AE
/Ccedilla
/Egrave
/Eacute
/Ecircumflex
/Edieresis
/Igrave
/Iacute
/Icircumflex
/Idieresis
/Eth % 0xd0
/Ntilde
/Ograve
/Oacute
/Ocircumflex
/Otilde
/Odieresis
/multiply
/Oslash
/Ugrave
/Uacute
/Ucircumflex
/Udieresis
/Yacute
/Thorn
/germandbls
/agrave % 0xe0
/aacute
/acircumflex
/atilde
/adieresis
/aring
/ae
/ccedilla
/egrave
/eacute
/ecircumflex
/edieresis
/igrave
/iacute
/icircumflex
/idieresis
/eth % 0xf0
/ntilde
/ograve
/oacute
/ocircumflex
/otilde
/odieresis
/divide
/oslash
/ugrave
/uacute
/ucircumflex
/udieresis
/yacute
/thorn
/ydieresis
] def
ruby-rghost-0.9.9/lib/rghost/ps/Bengali.enc 0000775 0000000 0000000 00000006421 14573150434 0020560 0 ustar 00root root 0000000 0000000 /Bengali [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/.notdef % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xa0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xb0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xc0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xd0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xe0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xf0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/uni0980 % 0x100
/uni0981
/uni0982
/uni0983
/uni0984
/uni0985
/uni0986
/uni0987
/uni0988
/uni0989
/uni098A
/uni098B
/uni098C
/uni098D
/uni098E
/uni098F
/uni0990 % 0x110
/uni0991
/uni0992
/uni0993
/uni0994
/uni0995
/uni0996
/uni0997
/uni0998
/uni0999
/uni099A
/uni099B
/uni099C
/uni099D
/uni099E
/uni099F
/uni09A0 % 0x120
/uni09A1
/uni09A2
/uni09A3
/uni09A4
/uni09A5
/uni09A6
/uni09A7
/uni09A8
/uni09A9
/uni09AA
/uni09AB
/uni09AC
/uni09AD
/uni09AE
/uni09AF
/uni09B0 % 0x130
/uni09B1
/uni09B2
/uni09B3
/uni09B4
/uni09B5
/uni09B6
/uni09B7
/uni09B8
/uni09B9
/uni09BA
/uni09BB
/uni09BC
/uni09BD
/uni09BE
/uni09BF
/uni09C0 % 0x140
/uni09C1
/uni09C2
/uni09C3
/uni09C4
/uni09C5
/uni09C6
/uni09C7
/uni09C8
/uni09C9
/uni09CA
/uni09CB
/uni09CC
/uni09CD
/uni09CE
/uni09CF
/uni09D0 % 0x150
/uni09D1
/uni09D2
/uni09D3
/uni09D4
/uni09D5
/uni09D6
/uni09D7
/uni09D8
/uni09D9
/uni09DA
/uni09DB
/uni09DC
/uni09DD
/uni09DE
/uni09DF
/uni09E0 % 0x160
/uni09E1
/uni09E2
/uni09E3
/uni09E4
/uni09E5
/uni09E6
/uni09E7
/uni09E8
/uni09E9
/uni09EA
/uni09EB
/uni09EC
/uni09ED
/uni09EE
/uni09EF
/uni09F0 % 0x170
/uni09F1
/uni09F2
/uni09F3
/uni09F4
/uni09F5
/uni09F6
/uni09F7
/uni09F8
/uni09F9
/uni09FA
/uni09FB
/uni09FC
/uni09FD
/uni09FE
/uni09FF
] def
ruby-rghost-0.9.9/lib/rghost/ps/CodePage1250.enc 0000775 0000000 0000000 00000004262 14573150434 0021177 0 ustar 00root root 0000000 0000000 /CodePage1250 [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/Euro % 0x80
/.notdef
/quotesinglbase
/.notdef
/quotedblbase
/ellipsis
/dagger
/daggerdbl
/.notdef
/perthousand
/Scaron
/guilsinglleft
/Sacute
/Tcaron
/Zcaron
/Zacute
/.notdef % 0x90
/quoteleft
/quoteright
/quotedblleft
/quotedblright
/bullet
/endash
/emdash
/.notdef
/trademark
/scaron
/guilsinglright
/sacute
/tcaron
/zcaron
/zacute
/uni00A0 % 0xa0
/caron
/breve
/Lslash
/currency
/Aogonek
/brokenbar
/section
/dieresis
/copyright
/Scedilla
/guillemotleft
/logicalnot
/uni00AD
/registered
/Zdotaccent
/degree % 0xb0
/plusminus
/ogonek
/lslash
/acute
/mu
/paragraph
/periodcentered
/cedilla
/aogonek
/scedilla
/guillemotright
/Lcaron
/hungarumlaut
/lcaron
/zdotaccent
/Racute % 0xc0
/Aacute
/Acircumflex
/Abreve
/Adieresis
/Lacute
/Cacute
/Ccedilla
/Ccaron
/Eacute
/Eogonek
/Edieresis
/Ecaron
/Iacute
/Icircumflex
/Dcaron
/Dcroat % 0xd0
/Nacute
/Ncaron
/Oacute
/Ocircumflex
/Ohungarumlaut
/Odieresis
/multiply
/Rcaron
/Uring
/Uacute
/Uhungarumlaut
/Udieresis
/Yacute
/Tcedilla
/germandbls
/racute % 0xe0
/aacute
/acircumflex
/abreve
/adieresis
/lacute
/cacute
/ccedilla
/ccaron
/eacute
/eogonek
/edieresis
/ecaron
/iacute
/icircumflex
/dcaron
/dcroat % 0xf0
/nacute
/ncaron
/oacute
/ocircumflex
/ohungarumlaut
/odieresis
/divide
/rcaron
/uring
/uacute
/uhungarumlaut
/udieresis
/yacute
/tcedilla
/dotaccent
] def
ruby-rghost-0.9.9/lib/rghost/ps/CodePage1251.enc 0000775 0000000 0000000 00000004524 14573150434 0021201 0 ustar 00root root 0000000 0000000 /CodePage1251 [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/afii10051 % 0x80
/afii10052
/quotesinglbase
/afii10100
/quotedblbase
/ellipsis
/dagger
/daggerdbl
/Euro
/perthousand
/afii10058
/guilsinglleft
/afii10059
/afii10061
/afii10060
/afii10145
/afii10099 % 0x90
/quoteleft
/quoteright
/quotedblleft
/quotedblright
/bullet
/endash
/emdash
/.notdef
/trademark
/afii10106
/guilsinglright
/afii10107
/afii10109
/afii10108
/afii10193
/uni00A0 % 0xa0
/afii10062
/afii10110
/afii10057
/currency
/afii10050
/brokenbar
/section
/afii10023
/copyright
/afii10053
/guillemotleft
/logicalnot
/uni00AD
/registered
/afii10056
/degree % 0xb0
/plusminus
/afii10055
/afii10103
/afii10098
/mu
/paragraph
/periodcentered
/afii10071
/afii61352
/afii10101
/guillemotright
/afii10105
/afii10054
/afii10102
/afii10104
/afii10017 % 0xc0
/afii10018
/afii10019
/afii10020
/afii10021
/afii10022
/afii10024
/afii10025
/afii10026
/afii10027
/afii10028
/afii10029
/afii10030
/afii10031
/afii10032
/afii10033
/afii10034 % 0xd0
/afii10035
/afii10036
/afii10037
/afii10038
/afii10039
/afii10040
/afii10041
/afii10042
/afii10043
/afii10044
/afii10045
/afii10046
/afii10047
/afii10048
/afii10049
/afii10065 % 0xe0
/afii10066
/afii10067
/afii10068
/afii10069
/afii10070
/afii10072
/afii10073
/afii10074
/afii10075
/afii10076
/afii10077
/afii10078
/afii10079
/afii10080
/afii10081
/afii10082 % 0xf0
/afii10083
/afii10084
/afii10085
/afii10086
/afii10087
/afii10088
/afii10089
/afii10090
/afii10091
/afii10092
/afii10093
/afii10094
/afii10095
/afii10096
/afii10097
] def
ruby-rghost-0.9.9/lib/rghost/ps/CodePage1252.enc 0000775 0000000 0000000 00000004267 14573150434 0021206 0 ustar 00root root 0000000 0000000 /CodePage1252 [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/Euro % 0x80
/.notdef
/quotesinglbase
/florin
/quotedblbase
/ellipsis
/dagger
/daggerdbl
/circumflex
/perthousand
/Scaron
/guilsinglleft
/OE
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/quoteleft
/quoteright
/quotedblleft
/quotedblright
/bullet
/endash
/emdash
/tilde
/trademark
/scaron
/guilsinglright
/oe
/.notdef
/.notdef
/Ydieresis
/uni00A0 % 0xa0
/exclamdown
/cent
/sterling
/currency
/yen
/brokenbar
/section
/dieresis
/copyright
/ordfeminine
/guillemotleft
/logicalnot
/uni00AD
/registered
/macron
/degree % 0xb0
/plusminus
/twosuperior
/threesuperior
/acute
/mu
/paragraph
/periodcentered
/cedilla
/onesuperior
/ordmasculine
/guillemotright
/onequarter
/onehalf
/threequarters
/questiondown
/Agrave % 0xc0
/Aacute
/Acircumflex
/Atilde
/Adieresis
/Aring
/AE
/Ccedilla
/Egrave
/Eacute
/Ecircumflex
/Edieresis
/Igrave
/Iacute
/Icircumflex
/Idieresis
/Eth % 0xd0
/Ntilde
/Ograve
/Oacute
/Ocircumflex
/Otilde
/Odieresis
/multiply
/Oslash
/Ugrave
/Uacute
/Ucircumflex
/Udieresis
/Yacute
/Thorn
/germandbls
/agrave % 0xe0
/aacute
/acircumflex
/atilde
/adieresis
/aring
/ae
/ccedilla
/egrave
/eacute
/ecircumflex
/edieresis
/igrave
/iacute
/icircumflex
/idieresis
/eth % 0xf0
/ntilde
/ograve
/oacute
/ocircumflex
/otilde
/odieresis
/divide
/oslash
/ugrave
/uacute
/ucircumflex
/udieresis
/yacute
/thorn
/ydieresis
] def
ruby-rghost-0.9.9/lib/rghost/ps/CodePage1253.enc 0000775 0000000 0000000 00000004204 14573150434 0021176 0 ustar 00root root 0000000 0000000 /CodePage1253 [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/Euro % 0x80
/.notdef
/quotesinglbase
/florin
/quotedblbase
/ellipsis
/dagger
/daggerdbl
/.notdef
/perthousand
/.notdef
/guilsinglleft
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/quoteleft
/quoteright
/quotedblleft
/quotedblright
/bullet
/endash
/emdash
/.notdef
/trademark
/.notdef
/guilsinglright
/.notdef
/.notdef
/.notdef
/.notdef
/uni00A0 % 0xa0
/dieresistonos
/Alphatonos
/sterling
/currency
/yen
/brokenbar
/section
/dieresis
/copyright
/.notdef
/guillemotleft
/logicalnot
/uni00AD
/registered
/afii00208
/degree % 0xb0
/plusminus
/twosuperior
/threesuperior
/tonos
/mu
/paragraph
/periodcentered
/Epsilontonos
/Etatonos
/Iotatonos
/guillemotright
/Omicrontonos
/onehalf
/Upsilontonos
/Omegatonos
/iotadieresistonos % 0xc0
/Alpha
/Beta
/Gamma
/uni2206
/Epsilon
/Zeta
/Eta
/Theta
/Iota
/Kappa
/Lambda
/Mu
/Nu
/Xi
/Omicron
/Pi % 0xd0
/Rho
/.notdef
/Sigma
/Tau
/Upsilon
/Phi
/Chi
/Psi
/uni2126
/Iotadieresis
/Upsilondieresis
/alphatonos
/epsilontonos
/etatonos
/iotatonos
/upsilondieresistonos % 0xe0
/alpha
/beta
/gamma
/delta
/epsilon
/zeta
/eta
/theta
/iota
/kappa
/lambda
/uni03BC
/nu
/xi
/omicron
/pi % 0xf0
/rho
/sigma1
/sigma
/tau
/upsilon
/phi
/chi
/psi
/omega
/iotadieresis
/upsilondieresis
/omicrontonos
/upsilontonos
/omegatonos
/.notdef
] def
ruby-rghost-0.9.9/lib/rghost/ps/CodePage1254.enc 0000775 0000000 0000000 00000004311 14573150434 0021176 0 ustar 00root root 0000000 0000000 /CodePage1254 [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/Euro % 0x80
/.notdef
/quotesinglbase
/florin
/quotedblbase
/ellipsis
/dagger
/daggerdbl
/circumflex
/perthousand
/Scaron
/guilsinglleft
/OE
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/quoteleft
/quoteright
/quotedblleft
/quotedblright
/bullet
/endash
/emdash
/tilde
/trademark
/scaron
/guilsinglright
/oe
/.notdef
/.notdef
/Ydieresis
/uni00A0 % 0xa0
/exclamdown
/cent
/sterling
/currency
/yen
/brokenbar
/section
/dieresis
/copyright
/ordfeminine
/guillemotleft
/logicalnot
/uni00AD
/registered
/macron
/degree % 0xb0
/plusminus
/twosuperior
/threesuperior
/acute
/mu
/paragraph
/periodcentered
/cedilla
/onesuperior
/ordmasculine
/guillemotright
/onequarter
/onehalf
/threequarters
/questiondown
/Agrave % 0xc0
/Aacute
/Acircumflex
/Atilde
/Adieresis
/Aring
/AE
/Ccedilla
/Egrave
/Eacute
/Ecircumflex
/Edieresis
/Igrave
/Iacute
/Icircumflex
/Idieresis
/Gbreve % 0xd0
/Ntilde
/Ograve
/Oacute
/Ocircumflex
/Otilde
/Odieresis
/multiply
/Oslash
/Ugrave
/Uacute
/Ucircumflex
/Udieresis
/Idotaccent
/Scedilla
/germandbls
/agrave % 0xe0
/aacute
/acircumflex
/atilde
/adieresis
/aring
/ae
/ccedilla
/egrave
/eacute
/ecircumflex
/edieresis
/igrave
/iacute
/icircumflex
/idieresis
/gbreve % 0xf0
/ntilde
/ograve
/oacute
/ocircumflex
/otilde
/odieresis
/divide
/oslash
/ugrave
/uacute
/ucircumflex
/udieresis
/dotlessi
/scedilla
/ydieresis
] def
ruby-rghost-0.9.9/lib/rghost/ps/CodePage1256.enc 0000775 0000000 0000000 00000004450 14573150434 0021204 0 ustar 00root root 0000000 0000000 /CodePage1256 [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/Euro % 0x80
/afii57506
/quotesinglbase
/florin
/quotedblbase
/ellipsis
/dagger
/daggerdbl
/circumflex
/perthousand
/afii57511
/guilsinglleft
/OE
/afii57507
/afii57508
/afii57512
/afii57509 % 0x90
/quoteleft
/quoteright
/quotedblleft
/quotedblright
/bullet
/endash
/emdash
/uni06A9
/trademark
/afii57513
/guilsinglright
/oe
/afii61664
/afii301
/afii57514
/uni00A0 % 0xa0
/afii57388
/cent
/sterling
/currency
/yen
/brokenbar
/section
/dieresis
/copyright
/uni06BE
/guillemotleft
/logicalnot
/uni00AD
/registered
/macron
/degree % 0xb0
/plusminus
/twosuperior
/threesuperior
/acute
/mu
/paragraph
/periodcentered
/cedilla
/onesuperior
/afii57403
/guillemotright
/onequarter
/onehalf
/threequarters
/afii57407
/uni06C1 % 0xc0
/afii57409
/afii57410
/afii57411
/afii57412
/afii57413
/afii57414
/afii57415
/afii57416
/afii57417
/afii57418
/afii57419
/afii57420
/afii57421
/afii57422
/afii57423
/afii57424 % 0xd0
/afii57425
/afii57426
/afii57427
/afii57428
/afii57429
/afii57430
/multiply
/afii57431
/afii57432
/afii57433
/afii57434
/afii57440
/afii57441
/afii57442
/afii57443
/agrave % 0xe0
/afii57444
/acircumflex
/afii57445
/afii57446
/afii57470
/afii57448
/ccedilla
/egrave
/eacute
/ecircumflex
/edieresis
/afii57449
/afii57450
/icircumflex
/idieresis
/afii57451 % 0xf0
/afii57452
/afii57453
/afii57454
/ocircumflex
/afii57455
/afii57456
/divide
/afii57457
/ugrave
/afii57458
/ucircumflex
/udieresis
/afii299
/afii300
/afii57519
] def
ruby-rghost-0.9.9/lib/rghost/ps/CodePage1257.enc 0000775 0000000 0000000 00000004317 14573150434 0021207 0 ustar 00root root 0000000 0000000 /CodePage1257 [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/Euro % 0x80
/.notdef
/quotesinglbase
/.notdef
/quotedblbase
/ellipsis
/dagger
/daggerdbl
/.notdef
/perthousand
/.notdef
/guilsinglleft
/.notdef
/dieresis
/caron
/cedilla
/.notdef % 0x90
/quoteleft
/quoteright
/quotedblleft
/quotedblright
/bullet
/endash
/emdash
/.notdef
/trademark
/.notdef
/guilsinglright
/.notdef
/macron
/ogonek
/.notdef
/uni00A0 % 0xa0
/.notdef
/cent
/sterling
/currency
/.notdef
/brokenbar
/section
/Oslash
/copyright
/Rcommaaccent
/guillemotleft
/logicalnot
/uni00AD
/registered
/AE
/degree % 0xb0
/plusminus
/twosuperior
/threesuperior
/acute
/mu
/paragraph
/periodcentered
/oslash
/onesuperior
/rcommaaccent
/guillemotright
/onequarter
/onehalf
/threequarters
/ae
/Aogonek % 0xc0
/Iogonek
/Amacron
/Cacute
/Adieresis
/Aring
/Eogonek
/Emacron
/Ccaron
/Eacute
/Zacute
/Edotaccent
/Gcommaaccent
/Kcommaaccent
/Imacron
/Lcommaaccent
/Scaron % 0xd0
/Nacute
/Ncommaaccent
/Oacute
/Omacron
/Otilde
/Odieresis
/multiply
/Uogonek
/Lslash
/Sacute
/Umacron
/Udieresis
/Zdotaccent
/Zcaron
/germandbls
/aogonek % 0xe0
/iogonek
/amacron
/cacute
/adieresis
/aring
/eogonek
/emacron
/ccaron
/eacute
/zacute
/edotaccent
/gcommaaccent
/kcommaaccent
/imacron
/lcommaaccent
/scaron % 0xf0
/nacute
/ncommaaccent
/oacute
/omacron
/otilde
/odieresis
/divide
/uogonek
/lslash
/sacute
/umacron
/udieresis
/zdotaccent
/zcaron
/dotaccent
] def
ruby-rghost-0.9.9/lib/rghost/ps/CodePage1258.enc 0000775 0000000 0000000 00000004321 14573150434 0021203 0 ustar 00root root 0000000 0000000 /CodePage1258 [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/Euro % 0x80
/.notdef
/quotesinglbase
/florin
/quotedblbase
/ellipsis
/dagger
/daggerdbl
/circumflex
/perthousand
/.notdef
/guilsinglleft
/OE
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/quoteleft
/quoteright
/quotedblleft
/quotedblright
/bullet
/endash
/emdash
/tilde
/trademark
/.notdef
/guilsinglright
/oe
/.notdef
/.notdef
/Ydieresis
/uni00A0 % 0xa0
/exclamdown
/cent
/sterling
/currency
/yen
/brokenbar
/section
/dieresis
/copyright
/ordfeminine
/guillemotleft
/logicalnot
/uni00AD
/registered
/macron
/degree % 0xb0
/plusminus
/twosuperior
/threesuperior
/acute
/mu
/paragraph
/periodcentered
/cedilla
/onesuperior
/ordmasculine
/guillemotright
/onequarter
/onehalf
/threequarters
/questiondown
/Agrave % 0xc0
/Aacute
/Acircumflex
/Abreve
/Adieresis
/Aring
/AE
/Ccedilla
/Egrave
/Eacute
/Ecircumflex
/Edieresis
/gravecomb
/Iacute
/Icircumflex
/Idieresis
/Dcroat % 0xd0
/Ntilde
/hookabovecomb
/Oacute
/Ocircumflex
/Ohorn
/Odieresis
/multiply
/Oslash
/Ugrave
/Uacute
/Ucircumflex
/Udieresis
/Uhorn
/tildecomb
/germandbls
/agrave % 0xe0
/aacute
/acircumflex
/abreve
/adieresis
/aring
/ae
/ccedilla
/egrave
/eacute
/ecircumflex
/edieresis
/acutecomb
/iacute
/icircumflex
/idieresis
/dcroat % 0xf0
/ntilde
/dotbelowcomb
/oacute
/ocircumflex
/ohorn
/odieresis
/divide
/oslash
/ugrave
/uacute
/ucircumflex
/udieresis
/uhorn
/dong
/ydieresis
] def
ruby-rghost-0.9.9/lib/rghost/ps/CodePage874.enc 0000775 0000000 0000000 00000004130 14573150434 0021124 0 ustar 00root root 0000000 0000000 /CodePage874 [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/Euro % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/ellipsis
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/quoteleft
/quoteright
/quotedblleft
/quotedblright
/bullet
/endash
/emdash
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/uni00A0 % 0xa0
/uni0E01
/uni0E02
/uni0E03
/uni0E04
/uni0E05
/uni0E06
/uni0E07
/uni0E08
/uni0E09
/uni0E0A
/uni0E0B
/uni0E0C
/uni0E0D
/uni0E0E
/uni0E0F
/uni0E10 % 0xb0
/uni0E11
/uni0E12
/uni0E13
/uni0E14
/uni0E15
/uni0E16
/uni0E17
/uni0E18
/uni0E19
/uni0E1A
/uni0E1B
/uni0E1C
/uni0E1D
/uni0E1E
/uni0E1F
/uni0E20 % 0xc0
/uni0E21
/uni0E22
/uni0E23
/uni0E24
/uni0E25
/uni0E26
/uni0E27
/uni0E28
/uni0E29
/uni0E2A
/uni0E2B
/uni0E2C
/uni0E2D
/uni0E2E
/uni0E2F
/uni0E30 % 0xd0
/uni0E31
/uni0E32
/uni0E33
/uni0E34
/uni0E35
/uni0E36
/uni0E37
/uni0E38
/uni0E39
/uni0E3A
/.notdef
/.notdef
/.notdef
/.notdef
/uni0E3F
/uni0E40 % 0xe0
/uni0E41
/uni0E42
/uni0E43
/uni0E44
/uni0E45
/uni0E46
/uni0E47
/uni0E48
/uni0E49
/uni0E4A
/uni0E4B
/uni0E4C
/uni0E4D
/uni0E4E
/uni0E4F
/uni0E50 % 0xf0
/uni0E51
/uni0E52
/uni0E53
/uni0E54
/uni0E55
/uni0E56
/uni0E57
/uni0E58
/uni0E59
/uni0E5A
/uni0E5B
/.notdef
/.notdef
/.notdef
/.notdef
] def
ruby-rghost-0.9.9/lib/rghost/ps/Fontmap 0000775 0000000 0000000 00000000211 14573150434 0020046 0 ustar 00root root 0000000 0000000 /CodabarJK (CodabarJK.pfa) ;
/Code128JK (Code128JK.pfa) ;
/Code39JK (Code39JK.pfa) ;
/Codei25JK (Codei25JK.pfa) ;
/EANJK (EANJK.pfa) ;
ruby-rghost-0.9.9/lib/rghost/ps/IsoLatin.enc 0000775 0000000 0000000 00000006120 14573150434 0020735 0 ustar 00root root 0000000 0000000 /IsoLatin [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/.notdef % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/uni00A0 % 0xa0
/exclamdown
/cent
/sterling
/Euro
/yen
/Scaron
/section
/scaron
/copyright
/ordfeminine
/guillemotleft
/logicalnot
/uni00AD
/registered
/macron
/degree % 0xb0
/plusminus
/twosuperior
/threesuperior
/Zcaron
/mu
/paragraph
/periodcentered
/zcaron
/onesuperior
/ordmasculine
/guillemotright
/OE
/oe
/Ydieresis
/questiondown
/Agrave % 0xc0
/Aacute
/Acircumflex
/Atilde
/Adieresis
/Aring
/AE
/Ccedilla
/Egrave
/Eacute
/Ecircumflex
/Edieresis
/Igrave
/Iacute
/Icircumflex
/Idieresis
/Eth % 0xd0
/Ntilde
/Ograve
/Oacute
/Ocircumflex
/Otilde
/Odieresis
/multiply
/Oslash
/Ugrave
/Uacute
/Ucircumflex
/Udieresis
/Yacute
/Thorn
/germandbls
/agrave % 0xe0
/aacute
/acircumflex
/atilde
/adieresis
/aring
/ae
/ccedilla
/egrave
/eacute
/ecircumflex
/edieresis
/igrave
/iacute
/icircumflex
/idieresis
/eth % 0xf0
/ntilde
/ograve
/oacute
/ocircumflex
/otilde
/odieresis
/divide
/oslash
/ugrave
/uacute
/ucircumflex
/udieresis
/yacute
/thorn
/ydieresis
/uni1E02 % 0x100
/uni1E03
/Cdotaccent
/cdotaccent
/uni1E0A
/Wgrave
/Wacute
/uni1E0B
/Ygrave
/uni1E1E
/uni1E1F
/Gdotaccent
/gdotaccent
/uni1E40
/uni1E41
/uni1E56
/wgrave % 0x110
/uni1E57
/wacute
/uni1E60
/ygrave
/Wdieresis
/wdieresis
/uni1E61
/Wcircumflex
/uni1E6A
/Ycircumflex
/wcircumflex
/uni1E6B
/ycircumflex
/quotedblright
/currency
/quotedblbase % 0x120
/brokenbar
/rcommaaccent
/quotedblleft
/onequarter
/onehalf
/threequarters
/Aogonek
/Iogonek
/Amacron
/Cacute
/Eogonek
/Emacron
/Ccaron
/Zacute
/Edotaccent
/Gcommaaccent % 0x130
/Kcommaaccent
/Imacron
/Lcommaaccent
/Nacute
/Ncommaaccent
/Omacron
/Uogonek
/Lslash
/Zdotaccent
/aogonek
/Iogonek
/amacron
/cacute
/eogonek
/emacron
/ccaron % 0x140
/zacute
/edotaccent
/gcommaaccent
/kcommaaccent
/imacron
/lcommaaccent
/nacute
/ncommaaccent
/omacron
/uogonek
/lslash
/zdotaccent
/quoteright
/Itilde
/Dcroat
/Tbar % 0x150
/Umacron
/Eng
/itilde
/dcroat
/tbar
/umacron
/eng
/Utilde
/iogonek
/utilde
/kgreenlandic
/dieresis
/a
] def
ruby-rghost-0.9.9/lib/rghost/ps/MacCentralEuropean.enc 0000775 0000000 0000000 00000004332 14573150434 0022726 0 ustar 00root root 0000000 0000000 /MacCentralEuropean [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/Adieresis % 0x80
/Amacron
/amacron
/Eacute
/Aogonek
/Odieresis
/Udieresis
/aacute
/aogonek
/Ccaron
/adieresis
/ccaron
/Cacute
/cacute
/eacute
/Zacute
/zacute % 0x90
/Dcaron
/iacute
/dcaron
/Emacron
/emacron
/Edotaccent
/oacute
/edotaccent
/ocircumflex
/odieresis
/otilde
/uacute
/Ecaron
/ecaron
/udieresis
/dagger % 0xa0
/degree
/Eogonek
/sterling
/section
/bullet
/paragraph
/germandbls
/registered
/copyright
/trademark
/eogonek
/dieresis
/notequal
/gcommaaccent
/Iogonek
/iogonek % 0xb0
/Imacron
/lessequal
/greaterequal
/imacron
/Kcommaaccent
/partialdiff
/summation
/lslash
/Lcommaaccent
/lcommaaccent
/Lcaron
/lcaron
/Lacute
/lacute
/Ncommaaccent
/ncommaaccent % 0xc0
/Nacute
/logicalnot
/radical
/nacute
/Ncaron
/uni2206
/guillemotleft
/guillemotright
/ellipsis
/uni00A0
/ncaron
/Ohungarumlaut
/Otilde
/ohungarumlaut
/Omacron
/endash % 0xd0
/emdash
/quotedblleft
/quotedblright
/quoteleft
/quoteright
/divide
/lozenge
/omacron
/Racute
/racute
/Rcaron
/guilsinglleft
/guilsinglright
/rcaron
/Rcommaaccent
/rcommaaccent % 0xe0
/Scaron
/quotesinglbase
/quotedblbase
/scaron
/Sacute
/sacute
/Aacute
/Tcaron
/tcaron
/Iacute
/Zcaron
/zcaron
/Umacron
/Oacute
/Ocircumflex
/umacron % 0xf0
/Uring
/Uacute
/uring
/Uhungarumlaut
/uhungarumlaut
/Uogonek
/uogonek
/Yacute
/yacute
/kcommaaccent
/Zdotaccent
/Lslash
/zdotaccent
/Gcommaaccent
/caron
] def
ruby-rghost-0.9.9/lib/rghost/ps/MacCyrillice.desnc 0000775 0000000 0000000 00000004515 14573150434 0022110 0 ustar 00root root 0000000 0000000 /MacCyrillic [
/.notdef % 0x00
/Eth
/eth
/.notdef
/.notdef
/.notdef
/.notdef
/Yacute
/yacute
/.notdef
/.notdef
/ldcornsqlr
/ldcornsqur
/ldcornsqul
/ldcornsqll
/ldcross
/.notdef % 0x10
/.notdef
/ldhorizontal
/.notdef
/.notdef
/ldteelft
/ldteert
/ldteebt
/ldteetp
/ldvertical
/twosuperior
/brokenbar
/uni00AD
/multiply
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/afii10017 % 0x80
/afii10018
/afii10019
/afii10020
/afii10021
/afii10022
/afii10024
/afii10025
/afii10026
/afii10027
/afii10028
/afii10029
/afii10030
/afii10031
/afii10032
/afii10033
/afii10034 % 0x90
/afii10035
/afii10036
/afii10037
/afii10038
/afii10039
/afii10040
/afii10041
/afii10042
/afii10043
/afii10044
/afii10045
/afii10046
/afii10047
/afii10048
/afii10049
/dagger % 0xa0
/degree
/afii10050
/sterling
/section
/bullet
/paragraph
/afii10055
/registered
/copyright
/trademark
/afii10051
/afii10099
/notequal
/afii10052
/afii10100
/infinity % 0xb0
/plusminus
/lessequal
/greaterequal
/afii10103
/mu
/afii10098
/afii10057
/afii10053
/afii10101
/afii10056
/afii10104
/afii10058
/afii10106
/afii10059
/afii10107
/afii10105 % 0xc0
/afii10054
/logicalnot
/radical
/florin
/approxequal
/uni2206
/guillemotleft
/guillemotright
/ellipsis
/uni00A0
/afii10060
/afii10108
/afii10061
/afii10109
/afii10102
/endash % 0xd0
/emdash
/quotedblleft
/quotedblright
/quoteleft
/quoteright
/divide
/quotedblbase
/afii10062
/afii10110
/afii10145
/afii10193
/afii61352
/afii10023
/afii10071
/afii10097
/afii10065 % 0xe0
/afii10066
/afii10067
/afii10068
/afii10069
/afii10070
/afii10072
/afii10073
/afii10074
/afii10075
/afii10076
/afii10077
/afii10078
/afii10079
/afii10080
/afii10081
/afii10082 % 0xf0
/afii10083
/afii10084
/afii10085
/afii10086
/afii10087
/afii10088
/afii10089
/afii10090
/afii10091
/afii10092
/afii10093
/afii10094
/afii10095
/afii10096
/Euro
] def
ruby-rghost-0.9.9/lib/rghost/ps/MacGreek.enc 0000775 0000000 0000000 00000004231 14573150434 0020672 0 ustar 00root root 0000000 0000000 /MacGreek [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/Adieresis % 0x80
/onesuperior
/twosuperior
/Eacute
/threesuperior
/Odieresis
/Udieresis
/dieresistonos
/agrave
/acircumflex
/adieresis
/tonos
/dieresis
/ccedilla
/eacute
/egrave
/ecircumflex % 0x90
/edieresis
/sterling
/trademark
/icircumflex
/idieresis
/bullet
/onehalf
/perthousand
/ocircumflex
/odieresis
/brokenbar
/uni00AD
/ugrave
/ucircumflex
/udieresis
/dagger % 0xa0
/Gamma
/uni2206
/Theta
/Lambda
/Xi
/Pi
/germandbls
/registered
/copyright
/Sigma
/Iotadieresis
/section
/notequal
/degree
/periodcentered
/Alpha % 0xb0
/plusminus
/lessequal
/greaterequal
/yen
/Beta
/Epsilon
/Zeta
/Eta
/Iota
/Kappa
/Mu
/Phi
/Upsilondieresis
/Psi
/uni2126
/alphatonos % 0xc0
/Nu
/logicalnot
/Omicron
/Rho
/approxequal
/Tau
/guillemotleft
/guillemotright
/ellipsis
/uni00A0
/Upsilon
/Chi
/Alphatonos
/Epsilontonos
/oe
/endash % 0xd0
/afii00208
/quotedblleft
/quotedblright
/quoteleft
/quoteright
/divide
/Etatonos
/Iotatonos
/Omicrontonos
/Upsilontonos
/epsilontonos
/etatonos
/iotatonos
/omicrontonos
/Omegatonos
/upsilontonos % 0xe0
/alpha
/beta
/psi
/delta
/epsilon
/phi
/gamma
/eta
/iota
/xi
/kappa
/lambda
/uni03BC
/nu
/omicron
/pi % 0xf0
/omegatonos
/rho
/sigma
/tau
/theta
/omega
/sigma1
/chi
/upsilon
/zeta
/iotadieresis
/upsilondieresis
/iotadieresistonos
/upsilondieresistonos
/uniF8A0
] def
ruby-rghost-0.9.9/lib/rghost/ps/MacHebrew.enc 0000775 0000000 0000000 00000004325 14573150434 0021055 0 ustar 00root root 0000000 0000000 /MacHebrew [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x20
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/ampersand
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x30
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/.notdef
/backslash
/.notdef
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/.notdef
/.notdef
/.notdef
/asciitilde
/.notdef
/Adieresis % 0x80
/afii57705
/Ccedilla
/Eacute
/Ntilde
/Odieresis
/Udieresis
/aacute
/agrave
/acircumflex
/adieresis
/atilde
/aring
/ccedilla
/eacute
/egrave
/ecircumflex % 0x90
/edieresis
/iacute
/igrave
/icircumflex
/idieresis
/ntilde
/oacute
/ograve
/ocircumflex
/odieresis
/otilde
/uacute
/ugrave
/ucircumflex
/udieresis
/.notdef % 0xa0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii57636
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xb0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/uniF86A % 0xc0
/.notdef
/uniF89B
/uniF89C
/uniF89D
/uniF89E
/afii57807
/afii57700
/afii57723
/.notdef
/.notdef
/afii57797
/afii57798
/afii57794
/afii57795
/afii57793
/.notdef % 0xd0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii57694
/afii57695
/afii57841
/afii57799
/afii57800
/afii57801
/afii57796
/afii57806
/afii57797
/afii57802
/afii57664 % 0xe0
/afii57665
/afii57666
/afii57667
/afii57668
/afii57669
/afii57670
/afii57671
/afii57672
/afii57673
/afii57674
/afii57675
/afii57676
/afii57677
/afii57678
/afii57679
/afii57680 % 0xf0
/afii57681
/afii57682
/afii57683
/afii57684
/afii57685
/afii57686
/afii57687
/afii57688
/afii57689
/afii57690
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
] def
ruby-rghost-0.9.9/lib/rghost/ps/TeX-CorkEncoding.enc 0000775 0000000 0000000 00000004171 14573150434 0022262 0 ustar 00root root 0000000 0000000 /TeX-CorkEncoding [
/grave % 0x00
/acute
/circumflex
/tilde
/dieresis
/hungarumlaut
/ring
/caron
/breve
/macron
/dotaccent
/cedilla
/ogonek
/quotesinglbase
/guilsinglleft
/guilsinglright
/quotedblleft % 0x10
/quotedblright
/quotedblbase
/guillemotleft
/guillemotright
/endash
/emdash
/compwordmark
/perthousandzero
/dotlessi
/dotlessj
/ff
/fi
/fl
/ffi
/ffl
/visualspace % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quoteright
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/quoteleft % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/hyphen
/Abreve % 0x80
/Aogonek
/Cacute
/Ccaron
/Dcaron
/Ecaron
/Eogonek
/Gbreve
/Lacute
/Lcaron
/Lslash
/Nacute
/Ncaron
/Ng
/Ohungarumlaut
/Racute
/Rcaron % 0x90
/Sacute
/Scaron
/Scedilla
/Tcaron
/Tcedilla
/Uhungarumlaut
/Uring
/Ydieresis
/Zacute
/Zcaron
/Zdotaccent
/IJ
/Idotaccent
/dcroat
/section
/abreve % 0xa0
/aogonek
/cacute
/ccaron
/dcaron
/ecaron
/eogonek
/gbreve
/lacute
/lcaron
/lslash
/nacute
/ncaron
/ng
/ohungarumlaut
/racute
/rcaron % 0xb0
/sacute
/scaron
/scedilla
/tquoteright
/tcedilla
/uhungarumlaut
/uring
/ydieresis
/zacute
/zcaron
/zdotaccent
/ij
/exclamdown
/questiondown
/sterling
/Agrave % 0xc0
/Aacute
/Acircumflex
/Atilde
/Adieresis
/Aring
/AE
/Ccedilla
/Egrave
/Eacute
/Ecircumflex
/Edieresis
/Igrave
/Iacute
/Icircumflex
/Idieresis
/Eth % 0xd0
/Ntilde
/Ograve
/Oacute
/Ocircumflex
/Otilde
/Odieresis
/OE
/Oslash
/Ugrave
/Uacute
/Ucircumflex
/Udieresis
/Yacute
/Thorn
/Germandbls
/agrave % 0xe0
/aacute
/acircumflex
/atilde
/adieresis
/aring
/ae
/ccedilla
/egrave
/eacute
/ecircumflex
/edieresis
/igrave
/iacute
/icircumflex
/idieresis
/eth % 0xf0
/ntilde
/ograve
/oacute
/ocircumflex
/otilde
/odieresis
/oe
/oslash
/ugrave
/uacute
/ucircumflex
/udieresis
/yacute
/thorn
/germandbls
] def
ruby-rghost-0.9.9/lib/rghost/ps/TeX-LGR-Greek.enc 0000775 0000000 0000000 00000004630 14573150434 0021374 0 ustar 00root root 0000000 0000000 /TeX-LGR-Greek [
/endash % 0x00
/uni032F
/Athenian50
/Athenian500
/Athenian5000
/Athenian50000
/uni03DB
/uni03DB.variant
/uni1FBE
/uni1FBC
/uni1FCC
/uni1FFC
/Alpha.shift
/Upsilondieresis.shift
/alpha.shift
/upsilondieresis.shift
/widecircumflex.left % 0x10
/widecircumflex.right
/uni03DF
/qoppa.variant
/uni032E
/Qoppa.variant
/uni03DA
/uni03E0
/uni20A0
/perthousand
/uni0259
/uni03E1
/quoteleft
/quoteright
/uni0306
/uni0304
/uni1FC1 % 0x20
/exclam
/dieresis
/uni1FEE
/uni1FED
/percent
/periodcentered
/uni1FFD
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/anoteleia
/uni1FFE
/equal
/uni1FBF
/uni037E
/uni1FDF % 0x40
/Alpha
/Beta
/uni1FDD
/uni2206
/Epsilon
/Phi
/Gamma
/Eta
/Iota
/Theta
/Kappa
/Lambda
/Mu
/Nu
/Omicron
/Pi % 0x50
/Chi
/Rho
/Sigma
/Tau
/Upsilon
/uni1FDE
/uni2126
/Xi
/Psi
/Zeta
/bracketleft
/uni1FCF
/bracketright
/uni1FCE
/uni1FCD
/uni1FEF % 0x60
/alpha
/beta
/sigma1
/delta
/epsilon
/phi
/gamma
/eta
/iota
/theta
/kappa
/lambda
/uni03BC
/nu
/omicron
/pi % 0x70
/chi
/rho
/sigma
/tau
/upsilon
/.notdef
/omega
/xi
/psi
/zeta
/guillemotleft
/uni037A
/guillemotright
/uni1FC0
/emdash
/uni1F70 % 0x80
/uni1F01
/uni1F00
/uni1F03
/uni1FB2
/uni1F81
/uni1F80
/uni1F83
/uni1F71
/uni1F05
/uni1F04
/uni1F02
/uni1FB4
/uni1F85
/uni1F84
/uni1F82
/uni1FB6 % 0x90
/uni1F07
/uni1F06
/uni03DD
/uni1FB7
/uni1F87
/uni1F86
/breve.wide
/uni1F74
/uni1F21
/uni1F20
/.notdef
/uni1FC2
/uni1F91
/uni1F90
/uniFEFF
/uni1F75 % 0xa0
/uni1F25
/uni1F24
/uni1F23
/uni1FC4
/uni1F95
/uni1F94
/uni1F93
/uni1FC6
/uni1F27
/uni1F26
/uni1F22
/uni1FC7
/uni1F97
/uni1F96
/uni1F92
/uni1F7C % 0xb0
/uni1F61
/uni1F60
/uni1F63
/uni1FF2
/uni1FA1
/uni1FA0
/uni1FA3
/uni1F7D
/uni1F65
/uni1F64
/uni1F62
/uni1FF4
/uni1FA5
/uni1FA4
/uni1FA2
/uni1FF6 % 0xc0
/uni1F67
/uni1F66
/uni03DC
/uni1FF7
/uni1FA7
/uni1FA6
/.notdef
/uni1F76
/uni1F31
/uni1F30
/uni1F33
/uni1F7A
/uni1F51
/uni1F50
/uni1F53
/uni1F77 % 0xd0
/uni1F35
/uni1F34
/uni1F32
/uni1F7B
/uni1F55
/uni1F54
/uni1F52
/uni1FD6
/uni1F37
/uni1F36
/Iotadieresis
/uni1FE6
/uni1F57
/uni1F56
/Upsilondieresis
/uni1F72 % 0xe0
/uni1F11
/uni1F10
/uni1F13
/uni1F78
/uni1F41
/uni1F40
/uni1F43
/uni1F73
/uni1F15
/uni1F14
/uni1F12
/uni1F79
/uni1F45
/uni1F44
/uni1F42
/iotadieresis % 0xf0
/uni1FD2
/uni1FD3
/uni1FD7
/upsilondieresis
/uni1FE2
/uni1FE3
/uni1FE7
/uni1FB3
/uni1FC3
/uni1FF3
/uni1FE5
/uni1FE4
/.notdef
/uni0374
/uni0375
] def
ruby-rghost-0.9.9/lib/rghost/ps/TeX-T2AModified2Encoding.enc 0000775 0000000 0000000 00000004171 14573150434 0023475 0 ustar 00root root 0000000 0000000 /TeX-T2AModified2Encoding [
/grave % 0x00
/acute
/circumflex
/tilde
/dieresis
/hungarumlaut
/ring
/caron
/breve
/macron
/dotaccent
/cedilla
/ogonek
/.notdef
/angleleft
/angleright
/quotedblleft % 0x10
/quotedblright
/cyrflex
/dblgrave
/cyrbreve
/endash
/emdash
/.notdef
/.notdef
/dotlessi
/.notdef
/ff
/fi
/fl
/ffi
/ffl
/.notdef % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quoteright
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/quoteleft % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/hyphen
/.notdef % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/threesuperior
/.notdef
/currency
/section
/.notdef % 0xa0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xb0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/sterling
/quotedblbase
/guillemotleft
/guillemotright
/aacute % 0xc0
/acircumflex
/divide
/ccedilla
/adieresis
/aring
/odieresis
/uacute
/eacute
/ecircumflex
/edieresis
/igrave
/iacute
/icircumflex
/idieresis
/eth
/ograve % 0xd0
/oacute
/ocircumflex
/otilde
/ae
/egrave
/atilde
/thorn
/ucircumflex
/yacute
/ydieresis
/ugrave
/oslash
/udieresis
/agrave
/ntilde
/Aacute % 0xe0
/Acircumflex
/multiply
/Ccedilla
/Adieresis
/Aring
/Odieresis
/Uacute
/Eacute
/Ecircumflex
/Edieresis
/Igrave
/Iacute
/Icircumflex
/Idieresis
/Eth
/Ograve % 0xf0
/Oacute
/Ocircumflex
/Otilde
/AE
/Egrave
/Atilde
/Thorn
/Ucircumflex
/Yacute
/germandbls
/Ugrave
/Oslash
/Udieresis
/Agrave
/Ntilde
] def
ruby-rghost-0.9.9/lib/rghost/ps/TeX-T2BAdobeEncoding.enc 0000775 0000000 0000000 00000004367 14573150434 0022715 0 ustar 00root root 0000000 0000000 /TeX-T2BAdobeEncoding [
/grave % 0x00
/acute
/circumflex
/tilde
/dieresis
/hungarumlaut
/ring
/caron
/breve
/macron
/dotaccent
/cedilla
/ogonek
/.notdef
/angleleft
/angleright
/quotedblleft % 0x10
/quotedblright
/cyrflex
/dblgrave
/cyrbreve
/endash
/emdash
/.notdef
/.notdef
/dotlessi
/.notdef
/ff
/fi
/fl
/ffi
/ffl
/.notdef % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quoteright
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/quoteleft % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/hyphen
/.notdef % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10058
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/afii10062
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10059
/.notdef
/.notdef
/afii10023
/afii61352
/currency
/section
/.notdef % 0xa0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10106
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xb0
/.notdef
/afii10110
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10107
/afii10846
/.notdef
/afii10071
/quotedblbase
/guillemotleft
/guillemotright
/afii10017 % 0xc0
/afii10018
/afii10019
/afii10020
/afii10021
/afii10022
/afii10024
/afii10025
/afii10026
/afii10027
/afii10028
/afii10029
/afii10030
/afii10031
/afii10032
/afii10033
/afii10034 % 0xd0
/afii10035
/afii10036
/afii10037
/afii10038
/afii10039
/afii10040
/afii10041
/afii10042
/afii10043
/afii10044
/afii10045
/afii10046
/afii10047
/afii10048
/afii10049
/afii10065 % 0xe0
/afii10066
/afii10067
/afii10068
/afii10069
/afii10070
/afii10072
/afii10073
/afii10074
/afii10075
/afii10076
/afii10077
/afii10078
/afii10079
/afii10080
/afii10081
/afii10082 % 0xf0
/afii10083
/afii10084
/afii10085
/afii10086
/afii10087
/afii10088
/afii10089
/afii10090
/afii10091
/afii10092
/afii10093
/afii10094
/afii10095
/afii10096
/afii10097
] def
ruby-rghost-0.9.9/lib/rghost/ps/TeX-T2CAdobeEncoding.enc 0000775 0000000 0000000 00000004357 14573150434 0022715 0 ustar 00root root 0000000 0000000 /TeX-T2CAdobeEncoding [
/grave % 0x00
/acute
/circumflex
/tilde
/dieresis
/hungarumlaut
/ring
/caron
/breve
/macron
/dotaccent
/cedilla
/ogonek
/.notdef
/angleleft
/angleright
/quotedblleft % 0x10
/quotedblright
/cyrflex
/dblgrave
/cyrbreve
/endash
/emdash
/.notdef
/.notdef
/dotlessi
/.notdef
/ff
/fi
/fl
/ffi
/ffl
/.notdef % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quoteright
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/quoteleft % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/hyphen
/.notdef % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10145
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10023
/afii61352
/currency
/section
/.notdef % 0xa0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xb0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10193
/.notdef
/.notdef
/.notdef
/afii10846
/.notdef
/afii10071
/quotedblbase
/guillemotleft
/guillemotright
/afii10017 % 0xc0
/afii10018
/afii10019
/afii10020
/afii10021
/afii10022
/afii10024
/afii10025
/afii10026
/afii10027
/afii10028
/afii10029
/afii10030
/afii10031
/afii10032
/afii10033
/afii10034 % 0xd0
/afii10035
/afii10036
/afii10037
/afii10038
/afii10039
/afii10040
/afii10041
/afii10042
/afii10043
/afii10044
/afii10045
/afii10046
/afii10047
/afii10048
/afii10049
/afii10065 % 0xe0
/afii10066
/afii10067
/afii10068
/afii10069
/afii10070
/afii10072
/afii10073
/afii10074
/afii10075
/afii10076
/afii10077
/afii10078
/afii10079
/afii10080
/afii10081
/afii10082 % 0xf0
/afii10083
/afii10084
/afii10085
/afii10086
/afii10087
/afii10088
/afii10089
/afii10090
/afii10091
/afii10092
/afii10093
/afii10094
/afii10095
/afii10096
/afii10097
] def
ruby-rghost-0.9.9/lib/rghost/ps/TeX-X2AdobeEncoding.enc 0000775 0000000 0000000 00000005160 14573150434 0022607 0 ustar 00root root 0000000 0000000 /TeX-X2AdobeEncoding [
/grave % 0x00
/acute
/circumflex
/tilde
/dieresis
/hungarumlaut
/ring
/caron
/breve
/macron
/dotaccent
/cedilla
/ogonek
/.notdef
/angleleft
/angleright
/quotedblleft % 0x10
/quotedblright
/cyrflex
/dblgrave
/cyrbreve
/endash
/emdash
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quoteright
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/.notdef
/afii10051
/afii10060
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10055
/afii10057
/afii10058
/.notdef
/afii10059
/.notdef
/.notdef
/.notdef % 0x50
/.notdef
/.notdef
/afii10054
/.notdef
/afii10145
/.notdef
/.notdef
/afii10146
/.notdef
/afii10148
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/quoteleft % 0x60
/.notdef
/afii10099
/afii10108
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10103
/afii10105
/afii10106
/.notdef
/afii10107
/.notdef
/.notdef
/.notdef % 0x70
/.notdef
/.notdef
/afii10102
/.notdef
/afii10193
/.notdef
/.notdef
/afii10194
/.notdef
/afii10196
/braceleft
/bar
/braceright
/asciitilde
/hyphen
/afii10050 % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10056
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/afii10062
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10053
/.notdef
/.notdef
/afii10023
/afii61352
/currency
/section
/afii10098 % 0xa0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10104
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xb0
/.notdef
/afii10110
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/afii10101
/afii10846
/.notdef
/afii10071
/quotedblbase
/guillemotleft
/guillemotright
/afii10017 % 0xc0
/afii10018
/afii10019
/afii10020
/afii10021
/afii10022
/afii10024
/afii10025
/afii10026
/afii10027
/afii10028
/afii10029
/afii10030
/afii10031
/afii10032
/afii10033
/afii10034 % 0xd0
/afii10035
/afii10036
/afii10037
/afii10038
/afii10039
/afii10040
/afii10041
/afii10042
/afii10043
/afii10044
/afii10045
/afii10046
/afii10047
/afii10048
/afii10049
/afii10065 % 0xe0
/afii10066
/afii10067
/afii10068
/afii10069
/afii10070
/afii10072
/afii10073
/afii10074
/afii10075
/afii10076
/afii10077
/afii10078
/afii10079
/afii10080
/afii10081
/afii10082 % 0xf0
/afii10083
/afii10084
/afii10085
/afii10086
/afii10087
/afii10088
/afii10089
/afii10090
/afii10091
/afii10092
/afii10093
/afii10094
/afii10095
/afii10096
/afii10097
] def
ruby-rghost-0.9.9/lib/rghost/ps/TeX-XL2encoding.enc 0000775 0000000 0000000 00000004104 14573150434 0022025 0 ustar 00root root 0000000 0000000 /TeX-XL2encoding [
/Gamma % 0x00
/uni2206
/Theta
/Lambda
/Xi
/Pi
/Sigma
/Upsilon
/Phi
/Psi
/uni2126
/ff
/fi
/fl
/ffi
/ffl
/dotlessi % 0x10
/dotlessj
/grave
/acute
/caron
/breve
/macron
/ring
/cedilla
/germandbls
/ae
/oe
/oslash
/AE
/OE
/Oslash
/.notdef % 0x20
/exclam
/quotedblright
/numbersign
/dollar
/percent
/ampersand
/quoteright
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/exclamdown
/equal
/questiondown
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/quotedblleft
/bracketright
/circumflex
/dotaccent
/quoteleft % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/endash
/emdash
/hungarumlaut
/tilde
/dieresis
/ellipsis % 0x80
/dagger
/daggerdbl
/bullet
/sterling
/paragraph
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/perthousand
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/Agrave
/.notdef
/.notdef
/.notdef
/hyphen
/ogonek
/guillemotleft
/guillemotright
/.notdef % 0xa0
/Aogonek
/breve
/Lslash
/currency
/Lcaron
/Sacute
/section
/dieresis
/Scaron
/Scedilla
/Tcaron
/Zacute
/.notdef
/Zcaron
/Zdotaccent
/ring % 0xb0
/aogonek
/cedilla
/lslash
/acute
/lcaron
/sacute
/caron
/agrave
/scaron
/scedilla
/tcaron
/zacute
/hungarumlaut
/zcaron
/zdotaccent
/Racute % 0xc0
/Aacute
/Acircumflex
/Abreve
/Adieresis
/Lacute
/Cacute
/Ccedilla
/Ccaron
/Eacute
/Eogonek
/Edieresis
/Ecaron
/Iacute
/Icircumflex
/Dcaron
/Eth % 0xd0
/Nacute
/Ncaron
/Oacute
/Ocircumflex
/Ohungarumlaut
/Odieresis
/multiply
/Rcaron
/Uring
/Uacute
/Uhungarumlaut
/Udieresis
/Yacute
/Togonek
/germandbls
/racute % 0xe0
/aacute
/acircumflex
/abreve
/adieresis
/lacute
/cacute
/ccedilla
/ccaron
/eacute
/eogonek
/edieresis
/ecaron
/iacute
/icircumflex
/dcaron
/eth % 0xf0
/nacute
/ncaron
/oacute
/ocircumflex
/ohungarumlaut
/odieresis
/divide
/rcaron
/uring
/uacute
/uhungarumlaut
/udieresis
/yacute
/quotedblbase
/quotedblleft
] def
ruby-rghost-0.9.9/lib/rghost/ps/TeXMathExtensionEncoding.enc 0000775 0000000 0000000 00000006310 14573150434 0024072 0 ustar 00root root 0000000 0000000 /TeXMathExtensionEncoding [
/parenleftbig % 0x00
/parenrightbig
/bracketleftbig
/bracketrightbig
/floorleftbig
/floorrightbig
/ceilingleftbig
/ceilingrightbig
/braceleftbig
/bracerightbig
/angbracketleftbig
/angbracketrightbig
/vextendsingle
/vextenddouble
/slashbig
/backslashbig
/parenleftBig % 0x10
/parenrightBig
/parenleftbigg
/parenrightbigg
/bracketleftbigg
/bracketrightbigg
/floorleftbigg
/floorrightbigg
/ceilingleftbigg
/ceilingrightbigg
/braceleftbigg
/bracerightbigg
/angbracketleftbigg
/angbracketrightbigg
/slashbigg
/backslashbigg
/parenleftBigg % 0x20
/parenrightBigg
/bracketleftBigg
/bracketrightBigg
/floorleftBigg
/floorrightBigg
/ceilingleftBigg
/ceilingrightBigg
/braceleftBigg
/bracerightBigg
/angbracketleftBigg
/angbracketrightBigg
/slashBigg
/backslashBigg
/slashBig
/backslashBig
/parenlefttp % 0x30
/parenrighttp
/bracketlefttp
/bracketrighttp
/bracketleftbt
/bracketrightbt
/bracketleftex
/bracketrightex
/bracelefttp
/bracerighttp
/braceleftbt
/bracerightbt
/braceleftmid
/bracerightmid
/braceex
/arrowvertex
/parenleftbt % 0x40
/parenrightbt
/parenleftex
/parenrightex
/angbracketleftBig
/angbracketrightBig
/unionsqtext
/unionsqdisplay
/contintegraltext
/contintegraldisplay
/circledottext
/circledotdisplay
/circleplustext
/circleplusdisplay
/circlemultiplytext
/circlemultiplydisplay
/summationtext % 0x50
/producttext
/integraltext
/uniontext
/intersectiontext
/unionmultitext
/logicalandtext
/logicalortext
/summationdisplay
/productdisplay
/integraldisplay
/uniondisplay
/intersectiondisplay
/unionmultidisplay
/logicalanddisplay
/logicalordisplay
/coproducttext % 0x60
/coproductdisplay
/hatwide
/hatwider
/hatwidest
/tildewide
/tildewider
/tildewidest
/bracketleftBig
/bracketrightBig
/floorleftBig
/floorrightBig
/ceilingleftBig
/ceilingrightBig
/braceleftBig
/bracerightBig
/radicalbig % 0x70
/radicalBig
/radicalbigg
/radicalBigg
/radicalbt
/radicalvertex
/radicaltp
/arrowvertexdbl
/arrowtp
/arrowbt
/bracehtipdownleft
/bracehtipdownright
/bracehtipupleft
/bracehtipupright
/arrowdbltp
/arrowdblbt
/.notdef % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xa0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xb0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xc0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xd0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xe0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xf0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
] def
ruby-rghost-0.9.9/lib/rghost/ps/TeXMathItalicEncoding.enc 0000775 0000000 0000000 00000004071 14573150434 0023325 0 ustar 00root root 0000000 0000000 /TeXMathItalicEncoding [
/Gamma % 0x00
/uni2206
/Theta
/Lambda
/Xi
/Pi
/Sigma
/Upsilon
/Phi
/Psi
/uni2126
/alpha
/beta
/gamma
/delta
/epsilon1
/zeta % 0x10
/eta
/theta
/iota
/kappa
/lambda
/mu
/nu
/xi
/pi
/rho
/sigma
/tau
/upsilon
/phi
/chi
/psi % 0x20
/omega
/epsilon
/theta1
/omega1
/rho1
/sigma1
/phi1
/uni21BC
/uni21BD
/uni21C0
/uni21C1
/uni21A9
/uni21AA
/uni22B2
/uni22B3
/zero.oldstyle % 0x30
/one.oldstyle
/two.oldstyle
/three.oldstyle
/four.oldstyle
/five.oldstyle
/six.oldstyle
/seven.oldstyle
/eight.oldstyle
/nine.oldstyle
/period
/comma
/less
/slash
/greater
/star
/partialdiff % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/flat
/natural
/sharp
/uni2323
/uni2322
/afii61289 % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/dotlessi
/dotlessj
/weierstrass
/vector
/uni2040
/.notdef % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xa0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xb0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xc0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xd0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xe0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xf0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
] def
ruby-rghost-0.9.9/lib/rghost/ps/TeXMathSymbolEncoding.enc 0000775 0000000 0000000 00000004650 14573150434 0023370 0 ustar 00root root 0000000 0000000 /TeXMathSymbolEncoding [
/minus % 0x00
/periodcentered
/multiply
/asteriskmath
/divide
/uni22C4
/plusminus
/uni2213
/circleplus
/uni2296
/circlemultiply
/uni2298
/uni2299
/circlecopyrt
/openbullet
/bullet
/uni224D % 0x10
/equivalence
/reflexsubset
/reflexsuperset
/lessequal
/greaterequal
/uni227C
/uni227D
/similar
/approxequal
/propersubset
/propersuperset
/uni226A
/uni226B
/uni227A
/uni227B
/arrowleft % 0x20
/arrowright
/arrowup
/arrowdown
/arrowboth
/uni2197
/uni2198
/similarequal
/arrowdblleft
/arrowdblright
/arrowdblup
/arrowdbldown
/arrowdblboth
/uni2196
/uni2199
/proportional
/minute % 0x30
/infinity
/element
/suchthat
/uni25B3
/uni25BD
/negationslash
/mapsto
/universal
/existential
/logicalnot
/emptyset
/Rfraktur
/Ifractur
/uni22A4
/perpendicular
/aleph % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/union
/intersection
/uni228E
/logicaland
/logicalor
/uni22A2 % 0x60
/uni22A3
/uni230A
/uni230B
/uni2308
/uni2309
/braceleft
/braceright
/angbracketleft
/angbracketright
/bar
/bardbl
/arrowbothv
/arrowdblbothv
/backslash
/uni2240
/radical % 0x70
/uni2210
/gradient
/integral
/uni2294
/uni2293
/uni2291
/uni2292
/section
/dagger
/daggerdbl
/paragraph
/club
/diamond
/heart
/spade
/.notdef % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xa0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xb0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xc0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xd0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xe0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xf0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
] def
ruby-rghost-0.9.9/lib/rghost/ps/US-ASCII.enc 0000775 0000000 0000000 00000004112 14573150434 0020367 0 ustar 00root root 0000000 0000000 /US-ASCII [
/.notdef % 0x00
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x10
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/space % 0x20
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quotesingle
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero % 0x30
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at % 0x40
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P % 0x50
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/grave % 0x60
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p % 0x70
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
/.notdef
/.notdef % 0x80
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0x90
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xa0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xb0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xc0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xd0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xe0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef % 0xf0
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
/.notdef
] def
ruby-rghost-0.9.9/lib/rghost/ps/UTF-8.enc 0000775 0000000 0000000 00000003760 14573150434 0020025 0 ustar 00root root 0000000 0000000 /UTF-8
[/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /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 /semicoln /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 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.nodef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /exclamdown /cent /sterling /fraction /yen /florin /section /currency /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl /.notdef /endash /dagger /daggerdbl /periodcentered /.notdef /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /.notdef /questiondown /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent /ieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /emdash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef /Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef /.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef /lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef]
def
ruby-rghost-0.9.9/lib/rghost/ps/_cusor.ps 0000775 0000000 0000000 00000002114 14573150434 0020361 0 ustar 00root root 0000000 0000000 /current_page 1 def
/X{ currentpoint pop } def
/Y{ currentpoint exch pop} def
/nrdp{ next_row default_point } def
/next_page{
after_page_create callback
/row 1 def
%(Page: ) print current_page 8 string cvs print (\n) print
showpage
/new_page? true def
/current_page inc
/current_row limit_top row row_height mul sub def
%before_page_create callback
%odd_or_even callback
current_page count_pages eq { last_page } if
new_current_row_point
default_point
before_page_create callback
odd_or_even callback
} def
/default_point { limit_left current_row moveto} def
/new_current_row_point{ /current_row limit_top row row_height row_padding add mul sub def }def
/next_row{
row rows_per_page lt current_row limit_bottom ge and { /row inc
new_current_row_point
}{ next_page }ifelse
} def
/jump_rows{
%dup 1 le { { next_row }repeat} if
{ next_row }repeat
} def
/jump_rows{
%dup 1 le { { next_row }repeat} if
dup 0 ge {{ next_row }repeat
}{ neg { /row dec } repeat new_current_row_point } ifelse
} def
/goto_row{
/row exch def
new_current_row_point
} def ruby-rghost-0.9.9/lib/rghost/ps/basic.ps 0000775 0000000 0000000 00000001117 14573150434 0020152 0 ustar 00root root 0000000 0000000 /inc{ dup cvx exec 1 add def} def
/dec{ dup cvx exec 1 sub def} def
/to_s{ 80 string cvs } def
/is_array?{ count 0 ne {dup}{false} ifelse type to_s (arraytype) }def
/new_page? true def
/strlen { dup stringwidth pop } def
/current_page 1 def
/puts { to_s print (\n) print } def
/row 1 def
%if include in array
/include? { /_atual 1 def exch dup length /_s exch def exch /_v exch def
{ _v eq {true exit}{ _atual _s eq { false exit }{ /_atual inc } ifelse } ifelse }forall
_s 0 eq {false} if
} def
/beging{
currentrgbcolor
currentfont
}bind def
/endg{
setfont
setrgbcolor
}bind def
ruby-rghost-0.9.9/lib/rghost/ps/begin_document.ps 0000775 0000000 0000000 00000000265 14573150434 0022056 0 ustar 00root root 0000000 0000000 /current_row limit_top row row_height mul sub def
new_current_row_point
%default_point
before_document_create
before_page_create callback
first_page
even_pages callback
default_font ruby-rghost-0.9.9/lib/rghost/ps/callbacks.ps 0000775 0000000 0000000 00000006546 14573150434 0021023 0 ustar 00root root 0000000 0000000 %static callbacks
/before_document_create {} bind def
/first_page {} bind def
/last_page {} bind def
/after_document_create {} bind def
%%dynamic callbacks
/before_page_create 3 dict def
before_page_create begin
/proc {} bind def
/except [ ] def
/only [ ] def
end
/after_page_create 3 dict def
after_page_create begin
/proc {} bind def
/except [ ] def
/only [ ] def
end
/odd_pages 3 dict def
odd_pages begin
/proc { } bind def
/except [] def
/only [] def
end
/even_pages 3 dict def
even_pages begin
/proc {} bind def
/except [ ] def
/only [ ] def
end
%execute callbacks
/callback{
dup dup
/except get length 0 ne { /except get current_page include? not}{
dup /only get length 0 ne { /only get current_page include?}{
pop true
}ifelse
}ifelse
{ /proc get exec }{
pop
}ifelse
} bind def
%execute virtual page callbacks
/vp_callback{
dup dup
/except get length 0 ne { /except get current_vp include? not}{
dup /only get length 0 ne { /only get current_vp include?}{
pop true
}ifelse
}ifelse
{ /proc get exec }{
pop
}ifelse
} bind def
/odd? { 2 mod 0 eq {true}{false} ifelse } bind def
/odd_or_even { current_page odd? {odd_pages}{even_pages}ifelse }def
%TABLE
/before_table_create {} def
/after_table_create {} def
%TABLE ROW
/row_odd_or_even {
current_table_row odd? {odd_row}{even_row} ifelse
}def
/before_row 3 dict def before_row begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/after_row 3 dict def after_row begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/odd_row 3 dict def odd_row begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/even_row 3 dict def even_row begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
%column
/col_odd_or_even {
col odd? {odd_column}{even_column} ifelse
}def
/before_column 3 dict def before_column begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/after_column 3 dict def after_column begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/odd_column 3 dict def odd_column begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/even_column 3 dict def even_column begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
%%HEADER----------------------
/before_header_create {} def
/after_header_create {} def
/before_column_header 3 dict def before_column_header begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/after_column_header 3 dict def after_column_header begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
%%ROW CALLBACKS
/callback_row{
dup dup
/except get length 0 ne { /except get current_table_row include? not}{
dup /only get length 0 ne { /only get current_table_row include?}{
pop true
}ifelse
}ifelse
{ /proc get exec }{
pop
}ifelse
} bind def
%%COLUMN CALLBACKS
/callback_col{
dup dup
/except get length 0 ne { /except get col include? not}{
dup /only get length 0 ne { /only get col include?}{
pop true
}ifelse
}ifelse
{ /proc get exec }{
pop
}ifelse
} bind def
/before_virtual_page_create 3 dict def
before_virtual_page_create begin
/proc {} bind def
/except [ ] def
/only [ ] def
end
/after_virtual_page_create 3 dict def
after_virtual_page_create begin
/proc {} bind def
/except [ ] def
/only [ ] def
end
ruby-rghost-0.9.9/lib/rghost/ps/code128.font 0000775 0000000 0000000 00000036004 14573150434 0020565 0 ustar 00root root 0000000 0000000 %!FontType1-1.1: Code128JK 001.000
%%CreationDate: Thu Feb 22 12:20:30 2001
%%VMusage: 12406 12030
%
% This Type 1 PostScript font implements the Code 128 bar code.
% Copyright (C) 2001 Jan Karrman. All rights reserved.
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%
11 dict begin
/FontInfo 10 dict dup begin
/version (001.000) readonly def
/Notice (Copyright (C) 2001 Jan Karrman. All rights reserved.) readonly def
/FullName (Code 128 JK) readonly def
/FamilyName (Code 128 JK) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition 0 def
/UnderlineThickness 0 def
end readonly def
/FontName /Code128JK def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 32 /space put
dup 33 /exclam put
dup 34 /quotedbl put
dup 35 /numbersign put
dup 36 /dollar put
dup 37 /percent put
dup 38 /ampersand put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 60 /less put
dup 61 /equal put
dup 62 /greater put
dup 63 /question put
dup 64 /at put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 90 /Z put
dup 91 /bracketleft put
dup 92 /backslash put
dup 93 /bracketright put
dup 94 /asciicircum put
dup 95 /underscore put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /braceleft put
dup 124 /bar put
dup 125 /braceright put
dup 126 /asciitilde put
dup 127 /Agrave put
dup 128 /Aacute put
dup 129 /Acircumflex put
dup 130 /Atilde put
dup 131 /Adieresis put
dup 132 /Aring put
dup 133 /AE put
dup 134 /Ccedilla put
dup 135 /Egrave put
dup 136 /Eacute put
dup 137 /Ecircumflex put
dup 138 /Edieresis put
dup 192 /Agrave put
dup 193 /Aacute put
dup 194 /Acircumflex put
dup 195 /Atilde put
dup 196 /Adieresis put
dup 197 /Aring put
dup 198 /AE put
dup 199 /Ccedilla put
dup 200 /Egrave put
dup 201 /Eacute put
dup 202 /Ecircumflex put
dup 203 /Edieresis put
readonly def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueID 5119293 def
/FontBBox [0 0 390 800] readonly def
currentdict end
currentfile eexec
f983ef0097ece636fb4a96c74d26ab84185f6dfa4a16a7a1c27bbe3f1156aea6
98df331278ddd83a95bfe3721babb069504235a8fca9f8012c70beaa7df68b59
3bd9d4efa3ace1dece221596c4dfc26c5c23e53e56473f4d3d6af6250e05d49b
73f7a3256c4c7009b943617e186e6e406c0452dfa948d4c47a33656eb964cb53
dee08929b0003bd7ddaccd7fa8af1d9d747bfddcfef440f31be75ad6f19c971e
720977e21ff5df9eb46cffc8637d5b56f558338bcfaa175db8707efb880ccfa5
be787a0185c3164b2213ed9d4933bfb0142b34cf3296a02575d97c10fe982329
3233e30900b1b428c0429f1922d7ec6f01b8d1a72d48f3e093a40a00ffa76f47
90cca9a125a321f3d49f5807e4b8695f196628f2e2081982b29f03c5c4fa6395
10535bf50aef9fd0138783f00bb1d2b99506e4c6e6fe9d6577c3e4f903a10fe5
533d1196d530ff419aa476d5e474fd920ebb0b04647e765cbe46ae4e93a7bf50
45995c7c962a57e92102630b0ab96fff3b737b0d57e5ee9b6cdfdce32ab0adee
1ac854838c4fb21bce603a061e7072d03a48efb98d133ffc1e7d79132b096c50
174a516e0b7145ce584628e33128958295ac6f5b06f9751d7f03b1444c64470d
47d382681bfc2918b0861d07ea90e81cbd1d9ef725e4b88f1c85150e50f316eb
b56fde88c50ff4e5c9479e844ad06e8de2afcce6fd03e7281e0594d79b23e845
2fbac623d05371bb457906cd6afa885c65045eedc424efcf8ba0181811dbd285
8822b485615f62ff4ba0386c32846d107668e03dd1b9f53f4bd28eb78357ff86
9310dfc8518971ff0a8b16b5aa0de305d83f13a5efae423805cab7df12b851ad
c2a13b1dbd6e9f3ef1e2b27ca69df8d19424ce0035e9613b16c45ee30fef3fc6
76bd947c8d149b810d4927dc624bf776e10e2e5616a650142beb27737aaec609
37aca050d9a13546a9444f3aeae89d82056bcd749add016985caf720421bc288
ea394632c0bb3c889d0bdfc5bc15f6abf7c7bd816c9f71d15742e5470bbc61f0
ae0e87e4dedd6461e71f2c3f2166517009d8da8aff423960e3bdc22290fedeb6
325b3f6a821b99037f3d343d758aaec9b21e5afc1d83021175f8a3a0b785bd80
7026a2d370b50317ad3396be1a8d702ee1a79eafe6db5373630298e8b38d3c98
87c1352d8f4c582163499c4243b100838d59bab7367db7a543ca3b679412abcf
f521f17f4d736411144fef8a6c391d3820556a59925d3de13e3a7a37875af2d6
6fb27b5a585ead9d9f0c7296ee2ff7ced6526b14e8d4a4221b87854296e76107
b430691e11471a420579f11c9a3276ed4ea23d93e5251f10e615660abb2b5168
ee9e013c76e31fea64b9500e6e64c5f3e8ed6440c1b3dcd6a67dfe2827426962
1a7901c6a70e1390c63b4a53db3f7901a8e0a244c4b4d927cf873935d3887c6e
99b4d001294d514add305b0f0fcbf4f883004037b464b773cd9139411461c790
86c5e2aba7974d17e0171c4540cca82c7e4f828179b5bd23c4db3965aee32475
d73708a52d8acc4a018db0486f3ff59f69a8bd4cca65592de5bcaf5f8c60062d
46e2bd0356f7fb7bd7ffadd8383970bc27bba7954ea88ba0fcf3d79e2beb2e6f
29714ef394273b159f2269994fa69ae72ee276812390c41d663be5656f560ce2
9e26972f6319fa3af0f81ed44ca23651904e3a03030d5089c09bb583111d5f8d
3a6a8343f6a47bbe1169373d25e27ddbfa5faefc24c532868089fa0085780a41
fc35b76c633489fa3be7dc99ce66ef5428adfa6de46d16361d46a6d90b6e8666
b014da9a7342ea17cbc7288b74cff76a03905eb668e21c9f1a3cb52e90794ec6
2b218af5ef8e0d039d69e1c86fb9fc0f1a5c01668ccbbe6a3ddd5e5713eab488
8c370f7e760116172cf35eefefe3d0a9baac42ac42bc31e61d9e3f7362ac4e5a
7fd8852568da61f2956aaaf5460d40040bd93711976aa116014417f1f491aaaf
de2960d087e8f3bbe08bfa41319ab9eb36e16dc09177a779043451d8b53b67cf
d3c9c74f610804736ca3706d8573d8676335075a2ca94784ef99459cb8e296e2
f4fca7464f0e6fa76a2f0100a8c6d401aa2066a451e76a1e4904f5579fee3090
a580971eb6186c176d41f8e7bd30dead82ca568e7f8b1c0ff3b712878ec983af
155bbb7761b5e122fe5436f9e3ec6a424666eb8d938a2d6b24c078da2b2c499c
e613bfdd56f30f0acb08222b1f2d55308f36718e7f9b7e8b708e569982c6ed67
a43626a761774e6e87ba377cfa9cb1bda6dca4278a7c5514244c4a67ec9a837f
a290a6c84be96eb6e8d0cabd0487114ff82e8ec2a0c86e15b3c5a14464dbe55d
58da43feb0444c59e7c13721c54d3a720ab97daec6b553b51fdcb14e87e83c88
6647b6b9c9bc5e4910241c73f49cf869b6849c8c71b132245165c756e82146eb
9859db5aa814f63b94835bfabaccc291828a9c4febad4543d3f5779233ecdea1
c322c013941f8a58b6942cac38691dffbad9b573d5aee40e18df341f3d468638
1cae151661190abdd73bdea31af03af6f736f19eefa7bf9b36066148927cbf17
b1a21b7c2ecd77f85702a2c448ad22c57c9ac263101744133ba2502ce5eb13ba
eaf235f992d84f881f4c372e918f17a6eeba417f8abbe88c3772122655d169e7
4059fb8fd98775952e186202cc34028f4bc12a389d8ada039f397b118c4c02d3
6e0dd822e11b737416b239dc75d034310b89d02a7fc6734bc8a74378c4718c61
d20ee1610f3ed1e7d9e9b1a93dad02f5c9eb12dc9926c1204b45904a78989cca
42ffe78799eb6da798f071ea1bdb34a289e8b5da4d474a8420fbf515de6a9aea
b15dd3d2998f223ea0d931e7648fe1e384a6c8cf506853090da7f1963e852a87
643ae1a28e93d6221e2a9b5e9cd0c68278ff22717fc150b975f478dab3b4d155
b709fea39272616ef1a1612129f703c9a71429fd71832bd4b53e6a4d83612f41
1d3269d5e868fc6f7c47bb6e637990f9787835bf27b23aa5ef882141b7dabb7a
8a416f93218341f0e74396aad64eee3633744d6cb7a7787f2bb0c44810633b16
ba6985f37f05a1f873ff7ec7aa37a0ee4b4ae478a90d8b52bfe9c9953a48ed00
e17b46e8d5d7cb7eebd761abfacaaacf75c82f27e23b08e1d8ce2e915545ffd8
c51e4d84827019386502b4a0c2360c3e057ec766a03865369b30149bddb1b5c1
bef2f64dd2abdd2b5ac2dadcd4d6f3a692b26fb7a5cdec5a89b77955c42aeef2
af421ca47dcc1654df5a15b77e8e9bbf076f0e7baad6cb3ed185f562c24a705a
57f5defcf2f7b6201e8e739847f890af85cc787c82c0958de1f2ab6c532300b2
6b3be03e3e67f50d0c30b468f34cabd2b94715d0bc91ca671571c1b72f1910fb
42256ad5b8d4967f826a1c36dfa72c13975d8794053790bbf47118b0a2150d4f
97ee2ac0c5ab5d37bf0255426d35ee92b5282b710ad6827e17a7b7016a870e65
b1ef58dc5d5fb542c27ef4d761e4439c89b56220e5758fea5089e34795d6add5
a71706adbe05feba1bf1041dc3bb0d1d141a3ee324a15b471fcaced9f0cbaa9b
b6b61adba970da53d86992f6b0ab59215356bc23fe037ded829879983b84768a
aebc5094869f5bd083e72f469dce84338391f96699c05351beed8746355a24ba
8a50318c7d6c41c2309e2107b56d791e3096b5ca865577d31f8814c70c3c8ab7
58899ef40bc8d76449dd5d7d5a06bc496857fc9e3201061912138d28ecdd04fc
5d3902e3706eda79b0cd040d6eecf94f4fb5d1b5dc4166a4fb19ffaf720d9313
0baa1bce912af96b0b16c661f29247be90b0b254ae2d7d8604090be4506afca9
dc64920207d1e31da9b55c350e2de0b4188cc0b621538d367b0e3d226469c0a8
3af984713a2a4d4888f025ba7641d811a7a1d4cc2d8e23f9ccf86e139818e4f3
e22aac025a5414d0feaef22a370bfc28152c6c1bed2b0f701aae3bf88600670b
60996ba47bcc8afd13623902ae566dab0784c6996ddacc6545293b597dc202d2
a5ee0d3569d460a267e5475203a930f2fe134141795ba22aad586fe6e7fa0c78
f7d92c1dcdf3e3dfbb5c3eef3e15310b73ffb6e55b3d8d6c38f8437e8e365a6b
7b62933ce12482fe70852960c8eac18c743ce01bb4e394c8bee5fa600f58c415
10340fd95ecea6d5364c9c936b0bd057795690ded81d0b829249bdeda814bdce
cc7f2ee28ecdce96440e1ec4f69fd9a92e8b6239912cf762e5f3e5a151a41b7e
6877ac01944b600fdd6c3e80e7632c820132d4f5eb9acb76ee509e8daa461bf1
03720f935b0e818a1d9acf55685fcc5bfe3b5980b670ee21ae6de1780ea44094
9d53c17969804aaf8522da7f5cba69367d4b8bd8a9579bf43c166af2042a2902
d0aa5c8971146554b8827eba094d2c2673594608979cb241e3ab7708da24e555
bd2908c97f46ba90e8a03bc7a49e310371860397c0630e0fb6c79118d0787a14
6d3aa44b082c1aceb2e78844efa9fe6fc7ab1c124da3b057843c93bc931e8672
a14586b3341975ec787fae69a46a4150cd80d21bf4f9dec8a5065a648e8fda28
f0489b04bad6f8d9ecb22ca58fecc355a4e3a4dcb76a1ecf5e22197a4575eead
6679ae4fa06bc7ffda0f25acf188f91004affeb9e3345ab787b462f8e809a8f3
177b6e284d4d6deb3d9b47e35c254d7373de4426f268c01eec2309acc595f4d6
88cab764090cea9983842400ec46fa34254b2454cfdbe3291a0475d20eb0f067
bd118797c5b920d63474fec9cb975a54e3d1777a118d5085b63a4f2c3b515537
e5b8292b6de3b7bf9e5d261f538a9cd5de3e95d6921c6f23294443bb73d9fa20
dd36aca93c4c8f48719f905948d64e4f2b6f2f53332fe72bc9f757cca1406f9b
82f58e59e00a62a8932aae06d72924f5c430a5750e5adb4389aebe37a4873214
045f0c3a2e54ad5e8cb8dc5b272e4dd28b763e9c440bb362b5068b3a82774cc7
1cd6ecbcb1dc8a9d50ab87f36c062c4f0c8d31e85d02dafd475293c83b996e9a
04f7b3ee620bd02e74b7e657bc72a1e27a14b9815a101146d6f180af4b4da48e
04f6b11760086f1be3bd5d742292529a7fca0aa930b2769a67e9a2d16fa18f93
8ff3d94a29b482aeb69dd5fbfb3af3d46f58f5ff26ad108e771071be3f3dbe54
0aa62b686f3c153861b5631d73c8c059dcd5feb1b952a49a734fa087a4d1a36e
6d007ff70e99fcf18fda7c17fae7aed58a5e32ddea3e994f10d2606eeb014ade
328dc07691e9fa55a52c5d19a0c9e509bdc31198f8af8944ab28f402b7b20e9f
196e4007ba3ba9d6b171e61528020798ffcc0d620fde50c96765f402d1eac643
4aafe363f756750dd1ffd927677723b555275b3160ed76e86dcd4ca19d508ce5
0dd63793de5e09dfea794532efa2e07463a0bf957d0c05883c40f9bae6a0d35d
ee89496142a0d71c1a691e766122dfa121eb1e6a81373f091e6f7d42d0917698
757a2ebc15110f20808aa48dd363d7ed93c6dcc06978b29f186ae7285bb0705a
057066b41b60e5bbad4c7cfa0b0b2860363c4002d732529000803b3ddcb053da
8f50dac7928f6939df3b40833694edb0d91b9df6317a13d0157da4d9d991cd55
6047440ede3d1bcea7f4364169c8963a02cde3163985d4fe93c944e9506dcf35
2a31b04eb4baaf5fd475c0eafab82df88159844f36e2dae8c09c196c0515aaf8
ba0293a762e82ebb10b85ccf62f5c016dd21865773d78b5f8594f303aa73644e
fa7751b20df636333158ce622bb3b9dad32108f69d420d46108ddd2cbc3d24f3
9f2c942adc1dc04350889217cda72d09bf9111af0099a75542e4c5f0a34b98fb
046eb87e304f86f8f7ae0c4941b7ad12d5adfd40152013b1c9f3de263f2ed8f3
594cf1c905c5d5500163c8edc58280200f11a5898d1de104c60f24976f2d20b2
ce216625af106b21152bab7a5ad102aeae155a65f343168d03c65cceb3d5946b
1315cd5c3772a59b59c73c1b165d2e930e86dab62f1cf93defd8487bd82786b5
97042873a36730324aa2d3dc62b48b4e1e6dd5fa9c1f413b6c0a8272b79dfa95
ba00c0c672da4de34012d91c13c379fcf668ca4e490e236326b5a68b20aa6aed
dfd33db4002079b38bc1aa1a32801bbe200f1d41a9d81d9d4bb9b3fdc2e01dcd
a744e8de7139aa22c2d5b5f5f4f93f2ee71b54acf6db2230459c566cd9b35d21
db618edab38b9c7513b5bd45dc816716a348be8b79d3ce6a258ae4393784e492
b66e2b4e311ac5118f0cbd4481f2ea9ad521c4e9e316e49f3db428f4fedaec2f
d3c0c59a4692296ad243a972cdbad61e7a0542945364cd6f29bd1fce64ba05e6
9909d6782b90301644dcfc14714ebc4ed769a83cc5891bbdd02e8a463b9af76a
3a30291be6b0f5d8450af3d99ee556e8a9966bc45fd83ba478f48462cd61dff3
f4c2be59d52746b9b5c23d5b0a2724a394d41430d4106ef9f1d0d35751f6e67d
c45d4c1018bfc7830fc3c6e33c9739ae275cdcd2f835de731db506a709e55380
96e78f72636ec6998d2f8f23d58632fef95949f1954b57950c8c5d82ccc95fad
0ed7b8805aef4057b2abb75137a339ccba3bf21f20549ee7a49615bad739d180
b55b9e71367ca13211ee2eafd52a46a117e87922717a5129ec57528c4978991d
7aef7291e57eaaa2cbba8a071ac68f0828bc977998705d2dd8dff32b93a2834a
37a806b8ef6ed401a275bf0aac2404ebc9ed3ad5cb3f2c18f7a3a72adbe6406a
9a7a89a8e9f3d4ec2bcc308bffa532da192d347fd673248dd8e45e136fad5d4e
167b8a45cc60137b92bd4fb03bb7598dbb240b0adf96f633346c7fc12b7c5ffc
48c4b2be81f96b654f9ec246679d0adfdde48ac7d857983fb834922e31384147
d79f942782beb20dda9ae7f70b51c742bfb65ffba3e541a616eb66934f0b44ce
73dc024eda022413da78cec0dcb5ebf515bad4eebb64a2b939f3fb1ad5703e81
a5f53b1d242f0efce4df3461953e2f3d3811ee61b72f1805c1b9e84cb79d5542
ea80ed21e3f545fec6bf5444b82a26e563a398e2fefc316b15abc1588fbbf739
ab4f8f7d5beaa1d7e97b6c237c85ae20da23c15bfccf173e3e935b5ab8b5112a
9fa2fd40696a8111a06a7c61f74325095757b036fd87107082aaa735df0a0222
1046fb66bb4e219e5a21a6f8ffe89139ae261264d194f1109bf4b0db112bc67d
7c12656dc2f3108fa9ebf20009fa4c48fddb4508cc0f40649555e11052d49847
7cbb42173a54a6e3f16c6eaa6285520077f6f570265d73e36394e73424d9f4c7
1b39f02f546059f41c330c6293b559aeb2ca1f36805645dbaadec923fc8630f5
f8ce86bbca61c3f826f63e5329ee974fdda89f262ae269c462a43c849a020321
1653928bdd291c7b55e40a4e6caa223495a32c6805164ad46fd06240b3752194
541c160b1e6b12eb54e95da09c0a8bd734c3d166629d964944f2bce49cecf82b
eaa010647b00b7c24476e9c3f44cee5ffa517f9924b0cabfee368edb99979b9f
104976c7368d0b0adb1c18c8074327beee96b698bd45ba15a651f2a96162ff3d
b04adc8ca18aebb71d294fdce5ff7a365d89ee60516889a2d6fc304e6db3b9cb
e7a78e921369352055c025ae17dcfd0c9dea7a5801cfd19288d51695b70fe743
15f82c56666bb7d81d9aba437c9d5d1ffcab05cead3ea60a6eb25c662963bc45
44af13ba96ec92340b196b5e822ce1b7ffa8874b924696b0a70dd6cf09294657
6c605ead55adcf5980ab6dc7755a5ba84f93
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
ruby-rghost-0.9.9/lib/rghost/ps/code39.font 0000775 0000000 0000000 00000021667 14573150434 0020517 0 ustar 00root root 0000000 0000000 %!FontType1-1.1: Code39JK 001.000
%%CreationDate: Thu Feb 22 12:20:33 2001
%%VMusage: 10488 6784
%
% This Type 1 PostScript font implements the Code 39 bar code.
% Copyright (C) 2001 Jan Karrman. All rights reserved.
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%
11 dict begin
/FontInfo 10 dict dup begin
/version (001.000) readonly def
/Notice (Copyright (C) 2001 Jan Karrman. All rights reserved.) readonly def
/FullName (Code 39 JK) readonly def
/FamilyName (Code 39 JK) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition 0 def
/UnderlineThickness 0 def
end readonly def
/FontName /Code39JK def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 32 /space put
dup 36 /dollar put
dup 37 /percent put
dup 42 /asterisk put
dup 43 /plus put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 90 /Z put
readonly def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueID 5119294 def
/FontBBox [0 0 360 800] readonly def
currentdict end
currentfile eexec
f983ef0097ece636fb4a96c74d26ab84185f6dfa4a16a7a1c27bbe3f1156aea6
98df331278ddd83a95bfe3721babb069504235a8fca9f8012c70beaa7df68b59
3bd9d4efa3ace1dece221596c4dfc26c5c23e53e56473f4d3d6af6250e05d49b
73f7a3256c4c7009b943617e186e6e406c0452dfa948d4c47a33656eb964cb53
dee08929b0003bd7ddaccd7fa8af1d9d747bfddcfef440f31be75ad6f19c971e
720977e21ff5df9eb46cffc8637d5b56f558338bcfaa175db8707efb880ccfa5
be787a0185c3164b2213ed9d4933bfb0142b34cf3296a02575d97c10fe982329
3233e30900b1b428c0429f1922d7ec6f01b8d1a72d48f3e093a40a00ffa768e2
d3e1162c36d8cf116197ee43f5301c217e6f9726917a19d55fd1e8d25e950459
ff7e42293071631ee92822a5f9f812fa59252b169861541bc334cff66cbb2d61
52330092f967f0afe830c391f42739ec786a5e5bbe7b7211120e9acf4c32d9ea
97c44b45b3f6d3906afd46dc59ebc162dd11d0a03e32eb21ecc44a1c7f68a6fa
2da8f683444c371c1b223bdc8f22d81fdba645d4aac65208590b5df9358ef42c
7bdc233984ccfd30846b35941be9c3ac378d34ffa48e9e425c1ab97d4c122677
7ff90303deadc59a42e51826dc065a6cc2e708e4cc66f604f52076e022cefce7
7223a0f12090d4c370dbb8680834a09b83200f66822a15d9287d786326762b9e
86709e3f2775d350eec892870b3b34eda9315924705fabf8ebeab98ae22449d3
2e9104f73511b5d8c6b77fe1f2a23042360baa7cc12863ff9577dba7e2b193a3
437338ce1b4715f5f72e5b0621c12774a38eefc64e6ec560809f68ef25d3770a
90c9f106f9574232f62a98d6a6d564b39554ce6fbc2469ab3963f0e81adefcb9
c13d9d8e005419ed384c80bd4f53e0bf55efa1632c0ffed21488373639267cee
1412d4ceed8a9106d75ba9781383428f0ac5b8f9e5b130a53f708ed004c11458
8277fc93fadaf0072baad1974097704a35828af5e9ea2231fa79ded4c93c6465
8cfff250066d3094d027af1ff377117db766c2b6d84f4a0ff18cb75de0294ecb
bbc530d74620e71ed422b48b54489f9ba454260283842c0601b9a15cf3210eb6
d366e0ea5df852255f95ebc6e144676c53f6c1936868591243451b199ef64978
6555f5d89a1c02f8c1c245b04fa691c71a46e0e7c26c3c27f26e1c8aae84dee6
c880e76ae9e6050c77ab738a90573137acc1ea3678647391581fd63bf2c94337
16e4a47e377f24126dc9ecc9f9d120a96bf04a8f9080e4fbfdc1f93962074c41
73591895540961a61b4ebf2189e19c682df3bf5e678491161e012e1a39d8b0ee
56953d9080d87d90bb7c85a73953b8a2336638f17fc07bdabed372d2278ab84a
bc40440d5b685cfe6497116c736ce9813aaed18486c47832833cecee650bf780
085f19dd5ba5c03364c051fe402b16560b508b0e4b60c7daec677f305ad303b4
2ef4656506b8ddc1cd1998d0605173020d84edd1010257e962a9d8c62096c2a9
a461225bd98372f6336a7289fe3f2852573c77e376a545e5847bfbc1558128ba
b149d35fef3a7616952420958a5b2772d4443c52d507552694281de81372e742
5b3c304c4e4aa53904c8f0e848acea7e904959205563c2155f48a5ceb50126bd
1e5b619ecc05cda3489d11687667dafa8059d0adc8fd3b1f25e5e70ec37df8fe
7444249d7c806249fbf5e45bff855bda025da96dc80a1fe921508d39e9e2b3e8
442538a8a528ac7e4625e569a15717f70fa619113c9f9f69ab5f16b86dcccbbd
cf6bcdff94020acf1c510c844fc3427932281a21bdf13a49f8db6a3e888bb4d8
2060165e08d3428f5f44f32553584421ddbba06bbf874352b30cc25104ffad8b
9378574753ee8af2e29884445a8ea1cf2c394e7c905c9f5578c48c1f3d9bd135
8f3b26b924818e3a5b0e3b90af115dd8154997dde42863be62fe49942cdcfeec
edcb38dabd23afbe20d9f18700345da0e4f3a1647fc2b29cab8209a964f0032c
dc45fad7edb94e1dc574ac9a702cae006d86c0999c107dd5129f6cecceb6e1b8
35b53eaf32ca00bedebfa2bffc01c3733edb2513965f95681d0ab13f2188e328
9773b193b7ef7fe2a6927f898f8098b3f61db4dbcddcc584b397f4b34ff3155e
3a2f8914e521bef2bedc8412984a6ee9e8f778fc41204177a6392b510ba3632c
801485e3216e8bed24254259d41066d884c6ede447b3e61803e7330fc6840f19
69beb27e73b2a88836bddce8a1399e28f9dbaff4c0d51c4e58dc6e8837be0218
05846d0afd5a29c166bbaa4d767ad1d0e6549f0c18597bc701afb56b80fce498
16d006103e14c901e94771b3cee1135f180d121dd3953207011b280da7831edb
03a7170bd937fed6d337ff2e364a6573abff53144aa21ab91e7aa07d20bbf195
96cff361b33917290f4c2a44191943b78b4d384143e18e1b30db604a98e4d80e
0e238aef92d8964072436a6e084f86e718f0227b146de41aed0478164ded09ef
81139ee0cfee8cfa6e8fdde79d2351f3f406271e30f41432b016a006883b789c
876d9e0cfef335e78d596e1b1c217074363a55fc5261766db0541acc9e1540d3
a7a3bbe6591b25866be0416172ad244eaf1c7a3b373573bf17de55fcded55d13
45711e27248ab0e155fab1cb163a7d4c0207fc7e6ab4012ffeb7837f66b3f526
be1f3762ae9e4bbe20768c88e6bf86719a94fc323cc22db7bef746cdd87c2fba
69a8ac401dec2f33a2d6a2c25bfb2c2e4c1d0a02737764afdc71d6c5b9cda9cc
59690208c68f92c91a7a21d090584679245801b507a184c63deba8ae147e3cc1
8d9f5ed12a2e3b3086ecdb4d03abd6123212227df157d06b8ea2bacb319f06de
87625fb7a949fce79ca3f4ba09b71f00365d05c4fd583ca71700c502b3505098
6d359100adad44cc2331b9cceac941e91f74467b910b772da9a8ddec760ded34
077eeec300a0444313e4dbc7d2b29176bb34e8007f5cc3ac9586cceb56a317e1
18bb69205b313361f7feceac84d688ee70d0ab3c5af9428d0b1b373adf018894
3ba8e82d017f2855dd94c37dcc2c3a5661fc34db09e6fd3ab0e3019cfe4a4a8d
b01d6a48e74fc4aba7fb1bb9e8af6f476188fe75deb7da278d3b597c754368a9
d9b15c3319a7fd66370a4abddc47e428f884b4d359a7bcba799b2b1f8a6629d3
5385caee9c04dbd5b6521f621473a62020f814ecbbbcc300e6a8cb1d729529b3
9528e6872380e4777abfc41f437dda52759a251b93174298f5fc5752862fd62c
865db358d52384e6b9649556a8b8a84f56393cfac7d8ef532cf911a76a3f996f
2a747d0cb97798bcccc8cfa31cd3de4bc923e8a94369943e6cc34aeec4d99dbe
5f02efd96263f7e639d08998742ef4d03f786e58b9b76e83a05b1fd3cc952b44
049824cf808e95d868031089bf2606f77b39c8b82f0712eeefde6952ef7ed510
b468c03b3fe288e20f87538c9980301be5f0753611ffee00ada6436b8978b632
ad51185337a3862bebfafa0af6c5f276bafea34d202669787c3f8003c66c2871
338dde6b629d9e8e94bc2bbc5583e1196f36e179de3d4861fd4dbb461e49b2a1
a775c12f8ab1a733a7597d6b2801020b7241babe073b8ecd1b6ac5ae872ddd3e
cb55324f6006c8d8979052fa8f2b4c13435488064c3ca2262dc75d3aa62e8a43
9a723cc8c28c8076f3ed0e981845619e58c3d8e935a73ec8c24f8e4213880a2a
69e1b61e10ed165826836d454db0a9233cad93e61a865035ffb446a53638f6a6
0ae72bf6948ae2f80f337eabc92a7113dfe35c4de690c71349a5bdf18c1bc4e3
47d2bbec3318fa751d4978922cb0653d9ba73ba3b430b153461e2deaec27dfaa
39f7eaa8fae31bd85b7e9c88e4d9144930bca23d3e7e0cc5235b295bc597a12f
71868bca353e31d728771ee6e7cc9e1c3b69472a39a9b1a4b50f321237daf0ff
4ed8abeea87a8ad49f1876f6d51c88c6dec98ba9da1c393ac0adf7693fb14b19
1d3ecad5b10a45d1a679f90f4cebf91454d89f7e2a0c5f2e474fcb095cfab2b1
5bcc4b824d6860b5fe1505197e3a76773d0a737bd3fb568cd7d20b32e8d98613
9d2973d000d180d77f907ba8c1ad684236e84aec0089e800ac98b126ffa78ad9
16c3053e10ed7d8697fa6189327e9018f44370a8a3399d320e589f2b4bc2bd4c
f742b5c98b808c29c9e7442398ad0407494284ca2addf340ce5b51e0c5792589
70d84434f2869055f84917e9a64787c5f5333b4cf78887a73836f14e6f58c980
2c90ff4669b97267394826d854f35cb5abe96fe46d558fbc02a371e26972aff3
2303941bcc1913ea8e90bbd916ad22745820f52ba160db1c36b811d927924cd6
9784b3617cd20e8df06c5cf7dbcea9a59d74bd5de2595afdf90e37
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
ruby-rghost-0.9.9/lib/rghost/ps/cursor.ps 0000775 0000000 0000000 00000004725 14573150434 0020416 0 ustar 00root root 0000000 0000000 /p{ pstack} def
/current_page 1 def
/current_vp 1 def
%vp = virtual_page
/new_vp? false def
/has_vp? false def
/start_vp{
/has_vp? true def
/current_vp 1 def
%/vp_params [ [20 cm 1 cm ] [10 cm 1 cm ] [7 cm 1 cm ] ] def
/vp_count vp_params length def
/source_limit_left limit_left def
/source_limit_right limit_right def
}def
/first_vp_page{
vp_params 0 get aload pop %pop
limit_left add
/limit_right exch def
/new_vp? true def
default_point
%before_virtual_page_create vp_callback
} def
/vp_proc{
has_vp? { start_vp before_virtual_page_create vp_callback first_vp_page } if
} def
/new_page_defaults{
/current_page inc
/current_row limit_top row row_height mul sub def
current_page count_pages eq { last_page } if
new_current_row_point
default_point
before_page_create callback
odd_or_even callback
before_virtual_page_create vp_callback
} def
/X{ currentpoint pop } def
/Y{ currentpoint exch pop} def
/nrdp{ next_row default_point } def
/next_page{
has_vp?{ (ok has virtual page\n) print
/row 1 def
current_vp vp_count lt {
default_point
after_virtual_page_create vp_callback
vp_params current_vp get
/current_vp inc
aload pop limit_right exch add /limit_left exch def
limit_left add /limit_right exch def
/current_row limit_top row row_height mul sub def
new_current_row_point
default_point
before_virtual_page_create vp_callback
/new_vp? true def
}{
after_page_create callback
/current_vp 1 def
/limit_left source_limit_left def
showpage
new_page_defaults
has_vp? {first_vp_page} if
} ifelse
new_current_row_point
default_point
}{
/row 1 def
/new_page? true def
/current_vp 1 def
after_page_create callback
showpage
/new_page? true def
new_page_defaults
has_vp? {first_vp_page} if
}ifelse
} def
/default_point { limit_left current_row moveto} def
/new_current_row_point{ /current_row limit_top row row_height row_padding add mul sub def }def
/next_row{
row rows_per_page lt current_row limit_bottom ge and { /row inc
new_current_row_point
}{ next_page }ifelse
} def
/jump_rows{
%dup 1 le { { next_row }repeat} if
{ next_row }repeat
} def
/jump_rows{
%dup 1 le { { next_row }repeat} if
dup 0 ge {{ next_row }repeat
}{ neg { /row dec } repeat new_current_row_point } ifelse
} def
/goto_row{
/row exch def
new_current_row_point
} def ruby-rghost-0.9.9/lib/rghost/ps/datagrid.ps 0000775 0000000 0000000 00000002304 14573150434 0020647 0 ustar 00root root 0000000 0000000 /col_padding 0.1 cm def
/st_center{ exch strlen 3 -1 roll sub -2 div dup 0 rmoveto exch show 0 rmoveto } def
/st_right{ exch strlen 3 -1 roll X add sub neg col_padding sub current_row moveto show col_padding 0 rmoveto } def
/st_left{ X add exch X col_padding add current_row moveto show current_row moveto }def
/col 0 def
/current_table_row 0 def %current row table
/nextcol{ /col inc } def
/headings? true def
/header_proc {
new_page? new_vp? or{
%before_row_create callback_row
before_header_create
header_titles {
before_column_header callback_col
headings? {
table_header col get aload pop cvx exec nextcol
}{ pop } ifelse
after_column_header callback_col
} forall
after_header_create
after_row
/new_page? false def
/new_vp? false def
}if
} def
/after_row{
/current_table_row inc
/col 0 def
next_row
new_current_row_point
limit_left current_row moveto
}def
/table_proc {
{limit_left current_row moveto
header_proc
before_row callback_row
row_odd_or_even callback_row
{
before_column callback_col
table_params col get aload pop cvx exec nextcol
after_column callback_col
} forall
after_row
} forall
after_table_create
}bind def
ruby-rghost-0.9.9/lib/rghost/ps/developer.ps 0000775 0000000 0000000 00000014316 14573150434 0021063 0 ustar 00root root 0000000 0000000 %!
(type.ps) runlibfile
(unit.ps) runlibfile
(IsoLatin.enc) runlibfile
/default_encoding IsoLatin def
<< /Duplex false /Tumble false >> setpagedevice
/pagesize [595 842] def
/margin 3 dict def margin begin /top 1 cm def /right 2 cm def /bottom 1 cm def /left 2 cm def end
(paper.ps) runlibfile
/rows_per_page 80 def /count_pages 10 def /row_height 0.8 cm def /row_padding 0.1 cm def (basic.ps) runlibfile
(cursor.ps) runlibfile
(rectangle.ps) runlibfile
(font.ps) runlibfile
(text.ps) runlibfile
(horizontal_line.ps) runlibfile
(vertical_line.ps) runlibfile
(callbacks.ps) runlibfile
(show.ps) runlibfile
(eps.ps) runlibfile
(jpeg.ps) runlibfile
(gif.ps) runlibfile
(begin_document.ps) runlibfile
(datagrid.ps) runlibfile
limit_left current_row moveto
/title{
/Helvetica-encoding findfont 20 scalefont setfont 0 setgray
} bind def
/h1{
/Helvetica-encoding findfont 14 scalefont setfont 0 setgray
} bind def
/b{
/Helvetica-Bold-encoding findfont 10 scalefont setfont 0 setgray
} bind def
/span{
/Helvetica-encoding findfont 10 scalefont setfont 0 setgray
} bind def
/h2{
/Helvetica-encoding findfont 13 scalefont setfont 0 setgray
} bind def
/i{
/Helvetica-Oblique-encoding findfont 10 scalefont setfont 0 setgray
} bind def
/h3{
/Helvetica-encoding findfont 12 scalefont setfont 0.5 setgray
} bind def
/bi{
/Helvetica-BoldOblique-encoding findfont 10 scalefont setfont 0 setgray
} bind def
/h4{
/Helvetica-encoding findfont 11 scalefont setfont 1 0 0 setrgbcolor
} bind def
/big{
/Helvetica-encoding findfont 24 scalefont setfont 0 setgray
} bind def
/h5{
/Helvetica-encoding findfont 10 scalefont setfont 0 setgray
} bind def
/pre{
/Courier-encoding findfont 10 scalefont setfont 0 setgray
} bind def
/small{
/Helvetica-encoding findfont 7 scalefont setfont 0 setgray
} bind def
(begin_document.ps) runlibfile
limit_left current_row moveto
%gs -sDEVICE=x11 -I/local/projects/ruby/rghost_rf/lib/lib/rghost/ps developer.ps
/p{ pstack} def
(rghost - Develop Environment\n) print
(by Shairon Toledo\n) print
(Postscript Version ) print version print (\n) print
%%rounded corners
/rcorners_params{
/:x 3 cm def /:y 12 cm def
/:w 10 cm def /:h 8 cm def
/:r 10 def
/:s 1 def
/:inside{
0.9 setgray
%0.2 0.4 0 setrgbcolor
fill
} def
/:outside{
0.5 setgray
}def
} def
/rcorners{
gsave
:x :y :r add moveto
:outside
/:l1{ :x :y :h add :x :s add :y :h add :r arcto } def
/:l2{ :x :w add :y :h add :x :w add :y :h add :s sub :r arcto } def
/:l3{ :x :w add :y :x :w add :s sub :y :r arcto } def
/:l4{ :x :y :x :y :s add :r arcto } def
:l1 :l2 :l3 :l4 clear
closepath
gsave
:inside
grestore
stroke
grestore
} def
%rcorners_params rcorners
%charmap
/charmap{
/c 1 string def
/n 3 string def
default_font span
/Times-Roman findfont 12 scalefont setfont
1 1 255{
dup dup dup
n cvs show ( = ) show
c 0 3 -1 roll put c show
5 mod 0 eq{ nrdp }{ 5 mod 4 cm mul Y moveto } ifelse
} for
} def
%charmap
/font_outline{
big
1 0 0 setrgbcolor
(Hello) true charpath gsave 0.5 setgray fill grestore stroke
} def
/clipping{
/Times-BoldItalic findfont 48 scalefont setfont
/rays{
BeginEPSF
(rghost_default_template.eps) run
EndEPSF
} def
300 400 translate
.25 setlinewidth
newpath
0 0 moveto
(StarLines) true charpath clip
newpath
0 -5 translate
rays
}def
%clipping
%linecap
%setlinecap
%setlinejoin
%setmiterlimit
%[ ] 0 setdash % Turn dashing off: solid lines
%[3] 0 setdash % 3-unit on, 3-unit off,
%nrdp
%[0 1 9 9] 1 setdash
%limit_left area_x horizontal_line_top
%stroke showpage
/:test (If proc executes the exit operator, rasdf a adad af its own on the stack, but XX ## If proc executes the exit operator, repeat terminates prematurely. repeat leaves no results of its own on the stack, but What if the printer isn't on the default queue? The destination for the printed output can be specified on the command line. To output to the file c:\out.prn, add -sOutputFile="c:/out.prn" somewhere before the name of the PostScript file. To output to a Windows 95 queue named HP DeskJet Portable Printer, use -sOutputFile="\\spool\HP DeskJet Portable Printer". Get the spelling exact or it won't work. For Windows 3.1 or Win32s, to output to port LPT2:"
) def
default_font
%gsave
%5 cm 17 cm translate
/:bw 14 cm def %box width
/:rp 0.1 cm def %row padding
/:rh 0.5 cm def %row height
/:text_area {
%next box row
/:nbw{ currentpoint :rh :rp add sub exch pop 0 exch moveto } def
/:space ( ) def
/:this_or_next{ X add :bw le { show :space show }{ :nbw show } ifelse } def
/:nw{ search false eq { /:last true def } if dup stringwidth pop :this_or_next }def
/:last false def
} def
/:text_proc{:space { :nw :last {exit} if } loop /:last false def } def
/concat
{ exch dup length
2 index length add string
dup dup 4 2 roll copy length
4 -1 roll putintervaler,
but it is considered a development release. Several virtual machines are
} bind def
/Helvetica findfont 16 scalefont setfont
/str (As of December 2007, the latest stable version is 1.8.6. Ruby 1.9.0 was released in December, but it is considered a development release. Several virtual machines are being developed for Ruby These include JRuby, a port of Ruby to the Java platform, IronRuby an implementation for the .NET Framework produced by Microsoft and Rubinius, an interpreter modeled after self-hosting Smalltalk virtual machines. The main developers have thrown their weight behind the virtual machine provided by the YARV project, which was merged into the Ruby source) def
/fstr () def
/append{
%curstr exch ( ) concat concat /curstr exch def
dup cvx exec 3 -1 roll concat ( ) concat def
} def
/txt_nrdp{
(novo----------) puts
currentpoint puts puts
%currentpoint exch pop :rh sub 0 exch moveto
762.786
282.908
nrdp
} def
%gsave
5 cm 0 translate
/:bw 10 cm def
/text_align { /cdenter } def
str text_area_cr
%grestore
%h3
%(*tree on 31 December 2006, and released as part of Ruby1.9) text_area_cr
%h4
%(*The type of the result is the same as the type of num1, unless num1 is the most negative integer, in which case the result is a real. )
%text_area_cr
showpage
ruby-rghost-0.9.9/lib/rghost/ps/ean.font 0000775 0000000 0000000 00000014707 14573150434 0020171 0 ustar 00root root 0000000 0000000 %!FontType1-1.1: EANJK 001.000
%%CreationDate: Thu Feb 22 12:20:39 2001
%%VMusage: 9382 5654
%
% This Type 1 PostScript font implements the EAN bar code.
% Copyright (C) 2001 Jan Karrman. All rights reserved.
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%
11 dict begin
/FontInfo 10 dict dup begin
/version (001.000) readonly def
/Notice (Copyright (C) 2001 Jan Karrman. All rights reserved.) readonly def
/FullName (EAN JK) readonly def
/FamilyName (EAN JK) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
/UnderlinePosition 0 def
/UnderlineThickness 0 def
end readonly def
/FontName /EANJK def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 32 /space put
dup 45 /hyphen put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 91 /bracketleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 124 /bar put
dup 125 /braceright put
readonly def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/UniqueID 5119296 def
/FontBBox [0 0 105 800] readonly def
currentdict end
currentfile eexec
f983ef0097ece636fb4a96c74d26ab84185f6dfa4a16a7a1c27bbe3f1156aea6
98df331278ddd83a95bfe3721babb069504235a8fca9f8012c70beaa7df68b59
3bd9d4efa3ace1dece221596c4dfc26c5c23e53e56473f4d3d6af6250e05d49b
73f7a3256c4c7009b943617e186e6e406c0452dfa948d4c47a33656eb964cb53
dee08929b0003bd7ddaccd7fa8af1d9d747bfddcfef440f31be75ad6f19c971e
720977e21ff5df9eb46cffc8637d5b56f558338bcfaa175db8707efb880ccfa5
be787a0185c3164b2213ed9d4933bfb0142b34cf3296a02575d97c10fe982329
3233e30900b1b428c0429f1922d7ec6f01b8d1a72d48f3e093a40a00ffa76a7f
7c45d6a17c6ff93abdc4379def417d42c1766e0c2e80c3ca94736566c48ab228
d845ac759d8b8cff1a53820e739d6af182fc56e3f40cbd37686756d399e04395
df28d88961b1cc61802438404603f21cbafe39a5a2b5ecb07d74a545507b21e8
935d1cba55f2df98218418005d6054d0c89bd0a034352c6d127ee89f7e9829ab
b288e558dc39a73a191de483173b5db8b082a46e0b4ecd8bfc44f870ed2cfdf5
baaf23486e1881219320672b5e5154cb9de3ba95e31e2b938ebb0b89c97faa7b
1fbdd41585c67e9a1e359e12fbfd6d12b5510138ae5277d4a1844957b5ba47f3
c9f2d5ac111cf3e65784b47857439180a0bf758d7b49b76da27b5c7849d73497
4e370214c08f80e2a6cb3d08790f5b9d5b8cc43755e38ce8feff14383d9f45d2
751dc38025647677a2ae7d5a0e4b56f9080f56c2a01d8428af5280ae88eefc4f
5341b9b72c8ea08cd58614d83f3c7e2bcada3a55f788d6779547a6a233dec843
0746db0f5202577bf7f2746057a1dec9020da9665b8937338b4f9faa67e5d852
4bb56d56865fe7c57e4c67b8936a88a41bd671ad435f41972c65cb7b9248ec95
b5499467a29d2a21493991ee9cd9becdf9794169e33b2e44fa6760d60bc5aba7
697065aba86aeae7587f00415304caed4d96b7d7bcbc093eac908f81746a525e
6d96d9d12466bf4fa978e98e985fe2d4d373dfcfc9b044c69573e5af00f96892
02edba6393432f5e001b9fe9b44362dff672256ddeb3ec3a1498fb08487e3098
f258073103d43dd0873429c62ddcfdd3aa5b2b4492e7781434e97c70b13794c4
a71a639b990a2ce622b55307bb5dceb60e7477cba339eb4bbb78eca7b683e5e0
5f568c50dbe2887bbab789dd532228ac9922cb0fc2a423ded5861de8f878c57a
db2ad12e59fea046eb25dd4f218f8a193cf7a281d7b306ecb4fccd56828a56c3
775fa543399b8359bd48f1e9e433285f77c65ff8dc873e7b1450e036be55f824
ea32e1a1c3d4b77e77691670dec55729a657340a37e617f99d793f06c3f21a5f
598c6a91cdba13aa4d8bf9d1835d9ada802d847a39b39ea429d608085f96b579
71b17e85955cc4ac6bdcb17db2fe392a4e87ec0766bb3b01643faf8556cc8041
87979e79c437cd90307cbdbd3ff373c4935bcf940c939da9d8db90f2fd73e913
74cfccf3281c6f16a81a7ad9b65ac24e41b9cfd2da4bf8a2ab640b4d496a207d
2de55592c65beae60e04be51dd7975dc18cad4d5280c28efae243577de4748fa
b6fd29fe5d7a26ab040c04bdc8cb06d7e62829a6ce540db176c08cd6e0ba1a6b
3d77569f518ab93d5f8a71af0841a4feb5eabeea0ed06da3b9d21c2b587d1740
dca281c49a1a3498e662628690015fcb8236321fbf6a34682ca110e18c9ca2b7
22e5703e43144fcee032e6efd9029b879682899a280179eb98954a604bbb86e5
0a82330d8cce279b183726363e69fce4954ccb6e2a14157df8ce3b0238754087
6cf8975f97e81ec3a0cfd98fec5720c3b105cf7032acb17aeaf5a8881e7b8cf8
4fa6fc1c6202fac511af1512f80bdf5447d06a948c7961ebeda48ddcbb229fe5
65e7b3944746a894da0c1b50186d1749b8b1c18e58394c09e550e298e5b8e269
cd9cf6c8f00ad6fd4fd6f17598495e17e1ba71ed558ba5219012e1ed104f633e
72d3aff11865ee21e7fbae62483070731c431fbe5362613ba2cc394be13ef5a2
97a72ca488391b447de7816b9c33a13d562c1413fbdc3633d91b8e4230664041
ff53c6ced5f1f15d4557ec314b75b08512071e45c71cbfbd7c5f9f210890805c
892339b445b7e3df25609485062f2d4849ea74ed3ce0e1db70315c6bdd672a4c
8c5c3bb56841ddf69b9fbe42dba56c2764c0c80ffb79da27416a5f755860381e
f229cfa6b817cbdfcf5913d1b2365a0a6418f216c0533c4a714034a724c4f07d
f4064d83309022fc5a3ca8fb13ef1a5c273ce853091b22e41cc5e9327937e2f5
d80f421a3742fa3928e5c40d4ffb16afa35be53966083098531ed367b6aaa775
05b30e63ba166d7e64bc354f577bbb42219d74cb579b574c6ba0923ec7fde374
aa63541ab0429593df87891dc8d26b7daeda3cd79df4a5af6c64c68e36111efc
1b83a128b44377fe854b905cec9ec6d4192eae83c025396fedb813c894596a96
14813b114039ed3f7c5ffe09836570ea2d253c4664b17335b663f29cc4f935b2
fe8f3b82d94081846e133704bb6255c947034788aba2679fb458dff757c27541
871c64d0da1c8cfa4fc66d8bc472ae203db59d649f6639846c20430cf432237c
d4dfc9babeabcd4b9b93dfacb3ba2e8f503fc18e9ea037dea06ec0422f567dbf
5150a65f8da17741a06bbafb80a0f4d6d790fd26d9
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
ruby-rghost-0.9.9/lib/rghost/ps/eps.ps 0000775 0000000 0000000 00000001366 14573150434 0017666 0 ustar 00root root 0000000 0000000 /BeginEPSF
{
/EPSFsave save def
count /OpStackSize exch def
/DictStackSize countdictstack def
% turn off showpage
/showpage {} def
% set up default graphics state
0 setgray 0 setlinecap
1 setlinewidth 0 setlinejoin
10 setmiterlimit [] 0 setdash newpath
/languagelevel where
{
pop languagelevel 1 ne
{
false setstrokeadjust false setoverprint
} if
} if
} bind def
/EndEPSF
{
count OpStackSize sub
dup 0 lt {neg {pop} repeat} {pop} ifelse
countdictstack DictStackSize sub
dup 0 lt {neg {end} repeat} {pop} ifelse
EPSFsave restore
} bind def
/EPSFBox
{
4 dict begin
/ury exch def
/urx exch def
/lly exch def
/llx exch def
llx lly moveto
urx lly lineto
urx ury lineto
llx ury lineto
closepath
end
} def
/pagesave save def ruby-rghost-0.9.9/lib/rghost/ps/font.ps 0000775 0000000 0000000 00000001755 14573150434 0020047 0 ustar 00root root 0000000 0000000 /fontsize 8 def
/encoding_font { findfont dup length dict begin { 1 index /FID ne { def } { pop pop } ifelse } bind forall /Encoding default_encoding def currentdict end } def
/Helvetica encoding_font
/Helvetica-encoding exch definefont pop
/Helvetica-Bold encoding_font
/Helvetica-Bold-encoding exch definefont pop
/Helvetica-Oblique encoding_font
/Helvetica-Oblique-encoding exch definefont pop
/Helvetica-BoldOblique encoding_font
/Helvetica-BoldOblique-encoding exch definefont pop
/font_normal{
/Helvetica-encoding findfont fontsize scalefont setfont
0 setgray
} bind def
/font_bold{
/Helvetica-Bold-encoding findfont fontsize scalefont setfont
0 setgray
} bind def
/font_italic{
/Helvetica-Oblique-encoding findfont fontsize scalefont setfont
0 setgray
} bind def
/font_bold_italic{
/Helvetica-BoldOblique-encoding findfont fontsize scalefont setfont
0 setgray
} bind def
/b{font_bold } def
/i{font_italic } def
/default_font{ font_normal} def
/_default_font{ font_normal} def
ruby-rghost-0.9.9/lib/rghost/ps/frame.ps 0000775 0000000 0000000 00000000554 14573150434 0020167 0 ustar 00root root 0000000 0000000 /rcorners{
gsave
:x :y :r add moveto
:outside
/:l1{ :x :y :h add :x :s add :y :h add :r arcto } def
/:l2{ :x :w add :y :h add :x :w add :y :h add :s sub :r arcto } def
/:l3{ :x :w add :y :x :w add :s sub :y :r arcto } def
/:l4{ :x :y :x :y :s add :r arcto } def
:l1 :l2 :l3 :l4 clear
closepath
%gsave
:inside
%grestore
:stk
grestore
} def ruby-rghost-0.9.9/lib/rghost/ps/gif.ps 0000775 0000000 0000000 00000010110 14573150434 0017627 0 ustar 00root root 0000000 0000000 % Copyright (C) 1989, 1992, 1993, 1998 Aladdin Enterprises. All rights reserved.
% For more information about licensing, please refer to
% http://www.ghostscript.com/licensing/. For information on
% commercial licensing, go to http://www.artifex.com/licensing/ or
% Adaptation to ruby-ghost by Shairon Toledo shairon.toledo@gmail.com
/read1 % read1
{ read pop
} bind def
/read2 % read2
{ dup read1 exch read1 8 bitshift add
} bind def
/readGIFheader % readGIFheader
{ 20 dict begin
dup 6 string readstring pop
dup (GIF87a) eq exch (GIF89a) eq or not
{ (Not a GIF file.\n) print cleartomark stop
} if
dup read2 /Width exch def
dup read2 /Height exch def
dup read1
dup 128 ge /GlobalColor exch def
dup -4 bitshift 7 and 1 add /BitsPerPixel exch def %***BOGUS?***
dup 8 and 0 ne /PaletteSorted exch def
7 and 1 add dup /BitsPerPixel exch def
1 exch bitshift /PaletteSize exch def
dup read1 /BackgroundIndex exch def
dup read1 15 add 64 div /AspectRatio exch def
GlobalColor
{ PaletteSize 3 mul string readstring pop
/GlobalPalette exch def
} if
currentdict end
} bind def
/readGIFimageHeader % readGIFimageHeader
% Note: GIF header must be on dict stack
{ 10 dict begin
{ dup read1
dup (!) 0 get ne { exit } if pop % extension
dup read1 pop
{ dup read1 dup 0 eq { pop exit } if { dup read1 pop } repeat
} loop
} loop
(,) 0 get ne
{ (Not a GIF image.\n) print stop
} if
dup read2 /Left exch def
dup read2 /Top exch def
dup read2 /Width exch def
dup read2 /Height exch def
dup read1
dup 128 ge /LocalColor exch def
dup 64 and 0 ne /Interlaced exch def
LocalColor
{ 7 and 1 add /BitsPerPixel exch def
1 BitsPerPixel bitshift 3 mul string readstring pop
/Palette exch def
}
{ pop pop /Palette GlobalPalette def
}
ifelse
currentdict end
} bind def
/imageGIF % imageGIF
{ /ImageOut where
{ pop
% We know BitsPerComponent = 8, Decode = [0 255].
% and there is only a single data source which is
% either a filter or a string whose size is exactly
% the width of the row.
dup /DataSource get dup type /stringtype eq
{ ImageOut exch writestring
}
{ pop dup /Width get string
1 index /Height get
{ 1 index /DataSource get 1 index readstring pop
ImageOut exch writestring
}
repeat pop pop
}
ifelse
}
{ image
}
ifelse
} bind def
/viewGIF % viewGIF -
{ save 20 dict begin
/saved exch def
dup type /stringtype eq { (r) file } if
/F exch def
/ImageOutFile where { /ImageOut ImageOutFile (w) file def } if
F readGIFheader /Header exch def
currentdict Header end begin begin
VGIFDEBUG { Header { exch == == } forall (----------------\n) print flush } if
F readGIFimageHeader /ImageHeader exch def
currentdict ImageHeader end begin begin
VGIFDEBUG { ImageHeader { exch == == } forall (----------------\n) print flush } if
/D F
<< /InitialCodeLength F read1
/FirstBitLowOrder true
/BlockData true
/EarlyChange 0
>> /LZWDecode filter def
[/Indexed /DeviceRGB 1 BitsPerPixel bitshift 1 sub Palette] setcolorspace
matrix currentmatrix
0 1 3 { 2 copy get dup 0 ne { dup abs div } if 3 copy put pop pop } for
setmatrix
<< /ImageType 1
/ImageMatrix [1 0 0 -1 0 Height]
/BitsPerComponent 8
/Decode [0 255]
Interlaced
{ /Width Width /Height 1
/row Width string def
/DataSource row
>> /I exch def
/inter % inter -
{ /denom exch def /num exch def
gsave
/lines Height denom 1 sub add num sub denom idiv def
0 1 lines 1 sub {
Height exch denom mul num add sub
I /ImageMatrix get 5 3 -1 roll put
D row readstring pop pop
I imageGIF
} for
grestore
}
bind def
0 8 inter
4 8 inter
2 4 inter
1 2 inter
}
{ /Width Width /Height Height
gif_params
/DataSource D
>> imageGIF
}
ifelse
saved end end end restore
} bind def
gsave
ruby-rghost-0.9.9/lib/rghost/ps/horizontal_line.ps 0000775 0000000 0000000 00000000557 14573150434 0022300 0 ustar 00root root 0000000 0000000 %/horizontal_line_top { exch gsave current_row row_height add moveto 0 rlineto stroke grestore } def
/horizontal_line_top { exch current_row row_height add moveto 0 rlineto stroke } def
/horizontal_line_middle { exch current_row row_height sqrt add moveto 0 rlineto stroke }def
/horizontal_line_bottom { exch current_row row_padding sub moveto 0 rlineto stroke }def ruby-rghost-0.9.9/lib/rghost/ps/i25.font 0000775 0000000 0000000 00000011306 14573150434 0020015 0 ustar 00root root 0000000 0000000 %!PS-AdobeFont-1.0: Codei25JK 1.000
%%CreationDate: Thu Feb 22 12:20:33 2001
%%VMusage: 10488 6784
%
% This Type 1 PostScript font implements the Code 39 bar code.
% Copyright (C) 2001 Jan Karrman. All rights reserved.
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%
false
17 dict begin
/FontInfo 13 dict dup begin
/version(001.000) readonly def
/Notice(Copyright (C) 2001 Jan Karrman. All rights reserved.)readonly def
/FullName(Interleaved 2 of 5)readonly def
/FamilyName(Interleaved 2 of 5)readonly def
/Weight(Normal)readonly def
/isFixedPitch false def
/ItalicAngle 0 def
/UnderlinePosition -133 def
/UnderlineThickness 20 def
end readonly def
/FontName /Codei25JK def
/Encoding StandardEncoding def
/PaintType 0 def
/FontType 1 def
/StrokeWidth 0 def
/FontMatrix[0.001 0 0 0.001 0 0]readonly def
/UniqueID 4345031 def
/FontBBox{0 0 201 1003}readonly def
currentdict end
currentfile eexec
d9d66f633b846a97b686a97e45a3d0aa0525392eecac163e584a9104d99ad0bc
1b1f3f7121d1d0f2c60dd206b0d3c8c450620b47320ca0aeb8937511e456aade
8e66b301b1e3e9dfe17e2f79ecfea709ff3dae19b4c169df6773eda414d02915
a6f0faf8b24fbb0777c697be8a37d63a390ad9dae495bb7e626721ff2fd3fb14
7c80d22beac37c2624d818d58c8df0209f5ce76acdde57a303d9042bf0a674d0
95697f925f532d1814bea8f8a5b1fd0737f362c88e00acaed0fbd4a36e9c2a30
8f53570cf2a0c2f3cacdcef9a65bc833ba02199166a964e544f4b7b7afeaac17
f8e05601552604b40d45d9fa0ab5a091879bf8f22cfa7ada67b9cc14129ca45f
a4c800e5c096889016e179a61c27f4e94f4f665fe0ffde7fa87eee002851e3da
feb5b00e066377ebe43637036e54a7a96bffe3a5b9bb29d1139125a36291f767
17d0083283a430a2842be99904f3160181d8007d412200a34824f478a098157d
96002e8dea100b6b11ed62564d1084f84db72cf8246e1afc90613b4fc4857601
a5dbf84543531f6c6b5d0843fb6f982f1a942c7fc9d041b3a1678d40e94f994c
a2f2f27034fa69106f1adaa2dac46114af354e3143e0edd091a021eee4060880
0bc8f236114a0a40eb6533819e15d3e4f2adacdb65329de3f7f57bc58432c12d
3ffe9847c0797728c4d0dc106609cbcb7ec1df50872bede40f92c33b7ed57aa8
05d58482571f8440d26d1e27d9b63bafa6d5d3a506238448dd4832d73d1ad4e1
0656d6796a70de97442bc98689d002beb5a63e222bc8f3000d25873be21fd28c
ddb4dfc11da7337bfbdb28714f5905c98798499a36e9bada0cdf82aefbbb9b7f
88f5f0b5cd27b129da62afba21cc46bb3207676b96695aedbfe52b3d4e097418
c1033dd020930229eb0888b285b72c0ef088a386cb77a060b529ff519061d665
3e8df6c9c90f4c459352f8149cf30339daa54822c2d72a7938a76fe4bdd1becb
4f085845d39491f9ac0256d2ea56c62cd14a0b49dedfa9b1da56c771eb30f6f3
b26e479da0bbc92521b15ad68cad72849d651245c5ec4f62a6e5bf9897e75c31
a1a6938f1bbf331d5432ba5eca376fd94ca1d82701e2f30aa14cef5c7609b7b8
a5e1854cad98aa1eb4e769f964ba42ad48748fb6356a4f1b01317b3f7882b2a3
69c6301f483dcf59ebcfcc2bd9d6fd09448d01ed1d5303950c46968954828189
c1955f876e92acaff10ecd920b11bf0f1f75006e66fe5ff817f94ab879d80e76
ff1cf788da1298bfb31b43aa1eb02b4ead48691c2a47df0576970140ceec8429
a1acd7e32b7bbc152d967e4fd41cdd60d6643a6584fba4114608c6556b42a230
7eedeaede6918d32153c448db337d539fcb0edd42cd26374e816bf38a498c651
9e2dcf1de36ca654aa4124d577d7f47fd14be17d8c830a2bcafb0ccdfbe13d2e
7c026ee679c3e7adab9939315238f16f7ba5a0de9a8171295c0deaa2bad1fb80
d67f16b316cbb54d5da2b380bffaaff1d0bb3d19d19f2dab4becb387548d6d13
326ed54154eb4040e6e7e797e18a75e5ac29d39a35490f03daf5a2da077f6f9d
588054a06a923ebd689ff14fe3bbe917e4621145d1ddda773ec146cb259e4e72
235d21f4b7d7fec81f27ff764f80221ce57d5b447026590da0fbd0ccba3a850e
e76b6d6214ac21b1012afab0fd82aaf86bf0fbef01d92c7862418323581e7a6c
96fe2ed6c5cc6aa7ee629d85ab55a9517579b847f0173eae4b5ebb54d5118af0
9cde391674cc9ced53988dfa7c609e2eda8a7988c135c4aa9e6a41be39a192b8
d5701ce678af5d99ad1e63d6cc276c10deb077e464bf8b8105b2c55f2ee5dbd1
fd75d518841b85833cef602275d860
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
cleartomark{restore}if ruby-rghost-0.9.9/lib/rghost/ps/jpeg.ps 0000775 0000000 0000000 00000007153 14573150434 0020024 0 ustar 00root root 0000000 0000000 % viewjpeg.ps Copyright (C) 1994 Thomas Merz
% This software is provided AS-IS with no warranty, either express or
% implied.
% For more information about licensing, please refer to http://www.ghostscript.com/licensing/
% Author's address:
% ------------------------------+
% {(pstack exec quit) = flush } | Thomas Merz, Munich
% pstack exec quit | voice +49/89/29160728
% ------------------------------+ tm@muc.de http://www.muc.de/~tm/
%
% Adaptation to ruby-ghost by Shairon Toledo shairon.toledo@gmail.com
% zoom, translate and real size
/languagelevel where {pop languagelevel 2 lt}{true} ifelse {
(JPEG needs PostScript Level 2!\n) print flush stop
} if
/JPEGdict 20 dict def
JPEGdict begin
/NoParamMarkers [ % JPEG markers without additional parameters
16#D0 16#D1 16#D2 16#D3 16#D4 16#D5 16#D6 16#D7 16#D8 16#01
] def
/NotSupportedMarkers [ % JPEG markers not supported by PostScript level 2
16#C3 16#C5 16#C6 16#C7 16#C8 16#C9 16#CA 16#CB 16#CD 16#CE 16#CF
] def
% Names of color spaces
/ColorSpaceNames << /1 /DeviceGray /3 /DeviceRGB /4 /DeviceCMYK >> def
% read one byte from file F
% - ==> int --or-- stop context
/NextByte {
F read not { (Read error in ViewJPEG!\n) print flush stop } if
} bind def
/SkipSegment { % read two bytes and skip that much data
NextByte 8 bitshift NextByte add 2 sub { NextByte pop } repeat
} bind def
% read width, height, and # of components from JPEG markers
% and store in dict
/readJPEGmarkers { % - ==> dict --or-- stop context
5 dict begin
{ % loop: read JPEG marker segments until we find SOFn marker or EOF
NextByte
16#FF eq { % found marker
/markertype NextByte def
% Is it S0F0=baseline, SOF1=extended sequential, SOF2=progressive ?
markertype dup 16#C0 ge exch 16#C2 le and {
NextByte pop NextByte pop % segment length
% Ghostscript and Adobe PS accept only data precision 8
NextByte 8 ne {
(Error: not 8 bits per component!\n) print flush stop
} if
% Read crucial image parameters
/height NextByte 8 bitshift NextByte add def
/width NextByte 8 bitshift NextByte add def
/colors NextByte def
VJPGDEBUG { currentdict { exch == == } forall flush } if
exit
} if
% detect several segment types which are not compatible with PS
NotSupportedMarkers {
markertype eq {
(Marker ) print markertype ==
(not supported!\n) print flush stop
} if
} forall
% Skip segment if marker has parameters associated with it
true NoParamMarkers { markertype eq {pop false exit} if } forall
{ SkipSegment } if
} if
} loop
currentdict dup /markertype undef
end
} bind def
end % JPEGdict
% read image parameters from JPEG file and display the image
/viewJPEG { % ==> -
save
JPEGdict begin
/saved exch def
/scratch 1 string def
dup type /stringtype eq { (r) file } if
/F exch def
readJPEGmarkers begin
F 0 setfileposition % reset file pointer
width zoom mul height zoom mul scale
% use whole width or height, whichever is appropriate
ColorSpaceNames colors scratch cvs get setcolorspace
% prepare image dictionary
<< /ImageType 1
/Width width
/Height height
/ImageMatrix [ width 0 0 height neg 0 height ]
/BitsPerComponent 8
% If 4-component (CMYK), assume data is inverted per Adobe Photoshop
colors 4 eq {
/Decode [ colors { 1 0 } repeat ]
} {
/Decode [ colors { 0 1 } repeat ]
} ifelse
/DataSource F /DCTDecode filter
>> image
end % image parameter dictionary
saved end restore
} bind def
ruby-rghost-0.9.9/lib/rghost/ps/link.ps 0000775 0000000 0000000 00000000624 14573150434 0020030 0 ustar 00root root 0000000 0000000 /:fh{ currentfont /FontMatrix get 3 get 1000 mul } def
/:link_str () def
/:link_uri () def
/:link_rect 4 array def
/:link_make{
:link_rect 0 X put
:link_rect 1 Y put
:link_rect 2 :link_str stringwidth pop X add put
:link_rect 3 :fh Y add put
:link_rect
[ /Rect :link_rect
/Action /Launch
/Border [0 0 0]
/Color [0 0 0]
/URI :link_uri
/Subtype /Link
/ANN pdfmark
:link_str show
} def ruby-rghost-0.9.9/lib/rghost/ps/paper.ps 0000775 0000000 0000000 00000000652 14573150434 0020203 0 ustar 00root root 0000000 0000000 2 dict dup /PageSize pagesize put dup /ImagingBBox null put setpagedevice
/limit_top { pagesize 1 get margin /top get sub } def
/limit_right { pagesize 0 get margin /right get sub } def
/limit_bottom { margin /bottom get } def
/limit_left { margin /left get } def
/area_x pagesize 0 get margin /right get sub margin /left get sub def
/area_y pagesize 1 get margin /top get sub margin /bottom get sub def
1 unit 1 unit moveto ruby-rghost-0.9.9/lib/rghost/ps/rect_link.ps 0000775 0000000 0000000 00000000473 14573150434 0021047 0 ustar 00root root 0000000 0000000 /:rect_x 0 def
/:rect_y 0 def
/:rect_w 0 def
/:rect_h 0 def
/:rect_uri (http://rghost.rubyforge.org) def
/:rect_link{
:rect_x :rect_y moveto
[ /Rect [:rect_x :rect_y :rect_w X add :rect_h Y add]
/Action /Launch
/Border [0 0 1]
/Color :rect_color
/URI :rect_uri
/Subtype /Link
/ANN pdfmark
} def ruby-rghost-0.9.9/lib/rghost/ps/rectangle.ps 0000775 0000000 0000000 00000000241 14573150434 0021032 0 ustar 00root root 0000000 0000000 /background_row {
gsave dup type to_s (arraytype) eq { exec} if
current_row row_padding sub exch row_height row_padding add 0.5 sub rectfill
grestore
}def ruby-rghost-0.9.9/lib/rghost/ps/rghost_default_template.eps 0000775 0000000 0000000 00000322520 14573150434 0024147 0 ustar 00root root 0000000 0000000 %!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 595 842
%%Pages: 0
%%Creator: Sun Microsystems, Inc.
%%Title: none
%%CreationDate: none
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
%%BeginResource: procset SDRes-Prolog 1.0 0
/b4_inc_state save def
/dict_count countdictstack def
/op_count count 1 sub def
userdict begin
0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit[] 0 setdash newpath
/languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint} if} if
/bdef {bind def} bind def
/c {setrgbcolor} bdef
/l {neg lineto} bdef
/rl {neg rlineto} bdef
/lc {setlinecap} bdef
/lj {setlinejoin} bdef
/lw {setlinewidth} bdef
/ml {setmiterlimit} bdef
/ld {setdash} bdef
/m {neg moveto} bdef
/ct {6 2 roll neg 6 2 roll neg 6 2 roll neg curveto} bdef
/r {rotate} bdef
/t {neg translate} bdef
/s {scale} bdef
/sw {show} bdef
/gs {gsave} bdef
/gr {grestore} bdef
/f {findfont dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def
currentdict end /NFont exch definefont pop /NFont findfont} bdef
/p {closepath} bdef
/sf {scalefont setfont} bdef
/ef {eofill}bdef
/pc {closepath stroke}bdef
/ps {stroke}bdef
/pum {matrix currentmatrix}bdef
/pom {setmatrix}bdef
/bs {/aString exch def /nXOfs exch def /nWidth exch def currentpoint nXOfs 0 rmoveto pum nWidth aString stringwidth pop div 1 scale aString show pom moveto} bdef
%%EndResource
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
pum
0.02833 0.02835 s
0 -29700 t
/tm matrix currentmatrix def
gs
0 0 m 20999 0 l 20999 29699 l 0 29699 l 0 0 l eoclip newpath
gs
0 0 m 20999 0 l 20999 29699 l 0 29699 l 0 0 l eoclip newpath
1.000 1.000 1.000 c 0 0 m 1 0 rl 0 1 rl 1 neg 0 rl ef p ef
0 0 m 21000 0 l 21000 29700 l 0 29700 l 0 0 l eoclip newpath
gs
gs
pum
1058 27524 t
pom
gr
gr
gs
gs
pum
10420 27524 t
pom
gr
gr
gs
0 28240 m 21055 28240 l 21055 29945 l 0 29945 l 0 28240 l eoclip newpath
gs
tm setmatrix
0 28230.78787 t
0.9815 0.96969 s
gs
tm setmatrix
0 846.54545 t
0.9815 0.96969 s
pum
0 29946 t
21418 1706 s
/DeviceRGB setcolorspace
<<
/ImageType 1
/Width 139
/Height 60
/BitsPerComponent 8
/Decode[0 1 0 1 0 1]
/ImageMatrix[139 0 0 -60 0 60]
/DataSource currentfile
/ASCIIHexDecode filter
>>
image
FDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFF
FFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFD
FFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFF
FDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFF
FFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFD
FFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFF
FDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFF
FFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFD
FFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFF
FDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFF
FFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFD
FFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFC93939
C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C939
39C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C9
3939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939
C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C939
39C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C9
3939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939
C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C939
39C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C9
3939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939
C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C939
39C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C9
3939C93939C93939C93939C93939C93939C93939C93939C93939C93939CC3C3CCC3C3C
CC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C
3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC
3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3C
CC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C
3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC
3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3C
CC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C
3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC
3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3C
CC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C
3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC
3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCE3E3ECE3E3ED03F3F
D03F3FD03F3FD03F3FCE3E3ED03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F
3FD03F3FD03F3FD03F3FD03F3FD03F3FCE3E3ED03F3FD03F3FD03F3FD03F3FD03F3FD0
3F3FD03F3FD03F3FCE3E3ED03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3F
D03F3FCE3E3ED03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FCE3E
3ED03F3FD03F3FD03F3FD03F3FCE3E3ED03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD0
3F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3F
D03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F
3FCE3E3ED03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FCE3E3ED03F3FD0
3F3FD03F3FD03F3FD03F3FCE3E3ED03F3FD03F3FD03F3FD03F3FCE3E3ED03F3FD03F3F
D03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F
3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FD03F3FCE3E3ED0
3F3FD03F3FD03F3FD03F3FD03F3FCE3E3ECE3E3ED03F3FD24141D24141D24141D24141
D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D241
41D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D2
4141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141
D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D241
41D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D2
4141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141
D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D241
41D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D2
4141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141
D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D241
41D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D2
4141D24141D24141D24141D24141D24141D24141D54444D54444D54444D54444D54444
D54444D54444D54444D54444D54444D54444D54444D54444D54444D54344D54444D544
44D54444D54444D54444D54444D54344D54444D54444D54444D54444D54444D54444D5
4444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444
D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D544
44D54444D54444D54444D54444D54444D54444D54444D54344D54444D54444D54444D5
4444D54444D54444D54444D54444D54444D54444D54444D54344D54444D54444D54444
D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D543
44D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54344D5
4444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444
D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D544
44D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D5
4444D54444D54444D54444D54444D54444D74646D74646D84747D74646D74646D74646
D74646D74646D74646D74646D74646D84747D84747D74646D74646D84747D74646D847
47D74646D74646D74646D84747D74646D74646D74646D74646D74646D74646D84747D7
4646D74646D74646D74646D84747D84747D74646D74646D74646D74646D84747D84747
D74646D74646D74646D84747D84747D74646D84747D84747D74646D74646D84747D746
46D84747D74646D74646D84747D74646D74646D74646D74646D84747D74646D74646D8
4747D84747D74646D74646D84747D84747D84747D74646D74646D74646D74646D74646
D74646D74646D74646D74646D84747D74646D74646D74646D74646D74646D74646D746
46D74646D74646D74646D84747D74646D74646D74646D84747D74646D74646D74646D7
4646D74646D74646D74646D84747D84747D74646D84747D74646D74646D84747D74646
D84747D74646D84747D74646D84747D74646D74646D74646D74646D74646D74646D746
46D74646D84747D74646D74646D74646D74646D74646D74646D74646D84747D74646D7
4646D84747D84747D74646D74646DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DD4B4BDD4B4BDD4B4BDD4B4CDD4B4BDD4B4BDD4B4BDD4B4B
DD4B4BDE4B4BDD4B4BDD4B4CDD4B4BDD4B4BDD4B4CDD4B4CDD4B4CDD4B4CDD4B4BDD4B
4BDE4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4CDE4B4BDD
4B4CDE4B4BDD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4B
DD4B4BDD4B4BDD4B4BDD4B4CDD4B4CDD4B4BDD4B4BDD4B4BDD4B4BDD4B4CDD4B4CDD4B
4BDD4B4BDD4B4CDD4B4CDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4CDE4B4BDF
4C4CDD4B4CDD4B4BDD4B4BDD4B4CDD4B4BDD4B4BDD4B4CDE4B4BDD4B4BDD4B4CDD4B4B
DD4B4BDD4B4CDD4B4BDD4B4BDD4B4BDE4B4BDD4B4CDD4B4CDD4B4BDD4B4CDD4B4CDD4B
4CDD4B4CDE4B4BDD4B4CDD4B4CDD4B4CDD4B4BDD4B4BDE4B4BDD4B4CDD4B4BDD4B4CDD
4B4BDD4B4BDD4B4BDE4B4BDD4B4CDD4B4BDD4B4CDD4B4CDD4B4BDD4B4BDD4B4BDD4B4B
DD4B4BDD4B4BDD4B4CDD4B4BDF4C4CDD4B4BDD4B4CDD4B4BDD4B4BDD4B4BDD4B4CDD4B
4CDD4B4BDD4B4CDD4B4BDD4B4CDF4C4CDD4B4CDD4B4BDD4B4BDD4B4BDD4B4BDD4B4CDD
4B4CDE4B4BDD4B4BE04D4DE04D4DE04D4DE04D4DE14E4EE04D4DE04D4DE04D4DE04D4D
E04D4DE14E4EE14E4EE14E4EE04D4DE04D4DE04D4DE04D4DE04D4DE14E4EE04D4DE04D
4DE14E4EE04D4DE14E4EE04D4DE04D4DE14E4EE04D4DE04D4DE04D4DE04D4DE04D4DE0
4D4DE04D4DE04D4DE04D4DE14E4EE04D4DE04D4DE04D4DE14E4EE04D4DE14E4EE14E4E
E04D4DE14E4EE04D4DE04D4DE14E4EE04D4DE14E4EE04D4DE04D4DE04D4DE14E4EE04D
4DE04D4DE04D4DE04D4DE14E4EE04D4DE04D4DE04D4DE04D4DE04D4DE14E4EE04D4DE0
4D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE14E4EE04D4DE04D4D
E04D4DE14E4EE04D4DE04D4DE14E4EE14E4EE04D4DE04D4DE04D4DE04D4DE14E4EE14E
4EE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE14E4EE14E4EE04D4DE0
4D4DE04D4DE04D4DE04D4DE04D4DE14E4EE04D4DE14E4EE04D4DE04D4DE04D4DE04D4D
E04D4DE14E4EE04D4DE04D4DE14E4EE14E4EE04D4DE04D4DE04D4DE14E4EE14E4EE04D
4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE14E4EE0
4D4DE04D4DE24F4FE24F4FE34F50E24F4FE35050E24F4FE24F4FE34F50E24F4FE24F4F
E24F4FE24F4FE24F4FE34F50E24F4FE35050E34F50E35050E24F4FE34F50E34F50E24F
4FE34F50E24F4FE24F4FE24F4FE34F50E34F50E34F50E24F4FE34F50E35050E24F4FE3
4F50E24F4FE34F50E24F4FE34F50E24F4FE24F4FE35050E24F4FE34F50E24F4FE24F4F
E24F4FE34F50E24F4FE24F4FE24F4FE24F4FE34F50E35050E24F4FE24F4FE35050E24F
4FE34F50E24F4FE24F4FE24F4FE24F4FE24F4FE24F4FE24F4FE34F50E34F50E24F4FE2
4F4FE35050E24F4FE34F50E35050E24F4FE24F4FE34F50E35050E24F4FE34F50E34F50
E34F50E24F4FE24F4FE24F4FE34F50E35050E24F4FE34F50E24F4FE24F4FE24F4FE24F
4FE24F4FE34F50E24F4FE34F50E24F4FE24F4FE34F50E35050E24F4FE34F50E24F4FE3
4F50E24F4FE34F50E24F4FE34F50E24F4FE34F50E24F4FE34F50E24F4FE34F50E24F4F
E34F50E24F4FE24F4FE24F4FE34F50E24F4FE34F50E24F4FE34F50E24F4FE35050E24F
4FE24F4FE24F4FE35050E24F4FE24F4FE34F50E34F50E24F4FE24F4FE34F50E34F50E2
4F4FE45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E4
5151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E4
5151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E4
5151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E4
5151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E4
5151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E4
5151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E4
5151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E4
5151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E4
5151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E4
5151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E4
5151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151
E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E45151E451
51E45151E45151E45151E45151E45151E45151E45151E45151E45151E35050E35050E3
5050E35050E35050E35050E35050E45151E35050E35050E35050E35050E35050E35050
E35050E35050E35050E35050E35050E35050E35050E45151E35050E35050E35050E350
50E35050E35050E35050E35050E45151E45151E35050E35050E35050E35050E35050E3
5050E35050E35050E35050E35050E35050E35050E35050E35050E35050E45151E35050
E45151E35050E35050E35050E35050E35050E35050E35050E35050E35050E45151E350
50E45151E35050E35050E45151E45151E35050E45151E35050E35050E35050E35050E3
5050E35050E35050E35050E35050E35050E35050E35050E35050E45151E35050E35050
E35050E35050E35050E35050E35050E35050E45151E35050E35050E35050E35050E350
50E35050E35050E45151E35050E35050E35050E35050E35050E45151E35050E35050E3
5050E35050E45151E35050E35050E45151E35050E35050E35050E35050E35050E35050
E45151E35050E45151E45151E35050E35050E35050E45151E35050E35050E35050E350
50E35050E45151E35050E45151E35050E35050E35050E35050E24F4FE35050E34F50E2
4F4FE34F50E24F4FE24F4FE24F4FE24F4FE34F50E24F4FE24F4FE24F4FE34F50E34F50
E24F4FE24F4FE34F50E24F4FE34F50E24F4FE34F50E24F4FE24F4FE35050E24F4FE350
50E35050E34F50E24F4FE34F50E24F4FE24F4FE34F50E24F4FE24F4FE24F4FE34F50E3
4F50E24F4FE34F50E24F4FE24F4FE34F50E24F4FE24F4FE34F50E24F4FE34F50E34F50
E24F4FE24F4FE34F50E35050E24F4FE24F4FE34F50E24F4FE34F50E34F50E24F4FE350
50E24F4FE35050E34F50E24F4FE34F50E35050E24F4FE34F50E34F50E24F4FE24F4FE2
4F4FE34F50E35050E24F4FE24F4FE34F50E24F4FE35050E24F4FE24F4FE24F4FE34F50
E34F50E35050E34F50E24F4FE34F50E34F50E24F4FE24F4FE34F50E24F4FE34F50E24F
4FE24F4FE24F4FE24F4FE24F4FE24F4FE24F4FE24F4FE24F4FE24F4FE24F4FE34F50E2
4F4FE34F50E24F4FE24F4FE34F50E35050E35050E34F50E34F50E24F4FE24F4FE35050
E34F50E24F4FE34F50E34F50E24F4FE24F4FE35050E24F4FE35050E34F50E34F50E24F
4FE35050E24F4FE35050E35050E35050E24F4FE24F4FE14E4EE14E4EE14E4EE14E4EE1
4E4EE14E4EE24F4FE14E4EE14E4EE24F4FE14E4EE14E4EE14E4EE14E4EE14E4EE14E4E
E14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE24F4FE14E
4EE24F4FE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE24F4FE1
4E4EE14E4EE14E4EE14E4EE14E4EE24F4FE14E4EE14E4EE14E4EE14E4EE14E4EE24F4F
E14E4EE14E4EE14E4EE24F4FE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE24F
4FE14E4EE24F4FE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE2
4F4FE24F4FE14E4EE24F4FE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4E
E14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE24F
4FE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE24F4FE14E4EE14E4EE14E4EE1
4E4EE14E4EE14E4EE14E4EE24F4FE24F4FE14E4EE14E4EE14E4EE14E4EE24F4FE14E4E
E14E4EE14E4EE24F4FE14E4EE14E4EE24F4FE14E4EE24F4FE14E4EE14E4EE14E4EE24F
4FE14E4EE14E4EE14E4EE14E4EE14E4EE14E4EE04D4DE04D4DE04D4DE04D4DE04D4DE0
4D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE14E4EE04D4DE04D4DE04D4D
E04D4DE04D4DE04D4DE04D4DE14E4EE04D4DE14E4EE04D4DE04D4DE04D4DE04D4DE04D
4DE04D4DE04D4DE14E4EE04D4DE14E4EE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE0
4D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4D
E04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D
4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE14E4EE04D4DE04D4DE04D4DE04D4DE0
4D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE14E4EE04D4D
E04D4DE04D4DE04D4DE04D4DE04D4DE14E4EE04D4DE04D4DE04D4DE04D4DE04D4DE04D
4DE14E4EE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE0
4D4DE14E4EE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE14E4EE14E4EE04D4D
E04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D4DE04D
4DE04D4DE04D4DE04D4DE14E4EE04D4DDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF
4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4C
DF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C
4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF
4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4C
DF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C
4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF
4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4C
DF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C
4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF
4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4C
DF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C4CDF4C
4CDF4C4CDF4C4CDF4C4CDF4C4CDD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDD4B4BDD4B4BDD
4B4BDD4B4BDE4B4BDD4B4BDD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDD4B4BDD4B4BDD4B4B
DD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDE4B4BDD4B4BDD4B
4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDD4B4BDD4B4BDD
4B4BDD4B4BDE4B4BDE4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDE4B4BDE4B4BDD4B4B
DD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDE4B4BDD4B
4BDD4B4BDE4B4BDE4B4BDE4B4BDE4B4BDD4B4BDD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDD
4B4BDE4B4BDE4B4BDD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4B
DD4B4BDD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDE4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B
4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDE4B4BDE4B4BDD4B4BDE4B4BDD
4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDD4B4B
DD4B4BDD4B4BDE4B4BDD4B4BDD4B4BDD4B4BDD4B4BDD4B4BDE4B4BDD4B4BDD4B4BDD4B
4BDD4B4BDD4B4BDD4B4BDB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB
4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949
DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB4949DB49
49DB4949D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D8
4747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747
D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D847
47D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D8
4747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747
D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D847
47D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D8
4747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747
D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D847
47D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D8
4747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747
D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D84747D847
47D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D7
4646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646
D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D746
46D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D7
4646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646
D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D746
46D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D7
4646D74646D74646D54444D74646D74646D74646D74646D74646D74646D74646D74646
D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D746
46D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D7
4646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646
D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D74646D544
44D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D5
4444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444
D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D544
44D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D5
4444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444
D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D544
44D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D5
4444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444
D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D544
44D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D5
4444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444
D54444D54444D54444D54444D54444D54444D54444D54444D54444D54444D44343D443
43D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343D2
4141D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343
D44343D44343D44343D44343D44343D24141D44343D44343D44343D44343D44343D443
43D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343D4
4343D24141D44343D44343D44343D24141D44343D44343D44343D44343D44343D44343
D44343D44343D44343D24141D44343D44343D44343D24141D44343D24141D44343D443
43D44343D24141D44343D44343D44343D44343D44343D44343D44343D44343D24141D4
4343D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343
D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343D443
43D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343D44343D4
4343D44343D24141D44343D44343D44343D44343D44343D44343D44343D24141D44343
D44343D44343D44343D44343D24141D44343D44343D24141D44343D24141D24141D241
41D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D2
4141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141
D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D241
41D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D2
4141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141
D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D241
41D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D2
4141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141
D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D241
41D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D2
4141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141D24141
D24141D24141D24141D24141D24141D24141D24141D24141D03F3FD03F3FD03F3FD040
40D03F3FD04040D03F3FD04040D04040D03F3FD03F3FD04040D03F3FD03F3FD04040D0
4040D0403FD03F3FD03F3FD04040D03F3FD0403FD03F3FD04040D03F3FD03F3FD03F3F
D0403FD04040D0403FD04040D0403FD0403FD0403FD04040D03F3FD04040D03F3FD040
3FD03F3FD04040D03F3FD03F3FD0403FD03F3FD03F3FD03F3FD03F3FD04040D0403FD0
3F3FD0403FD03F3FD0403FD03F3FD04040D04040D03F3FD04040D03F3FD0403FD03F3F
D03F3FD03F3FD03F3FD0403FD04040D0403FD03F3FD03F3FD03F3FD03F3FD03F3FD03F
3FD03F3FD03F3FD04040D0403FD03F3FD04040D04040D0403FD03F3FD03F3FD03F3FD0
4040D03F3FD04040D03F3FD04040D03F3FD03F3FD0403FD03F3FD03F3FD03F3FD04040
D03F3FD0403FD03F3FD04040D03F3FD03F3FD0403FD03F3FD0403FD0403FD03F3FD040
3FD04040D03F3FD03F3FD03F3FD04040D04040D03F3FD03F3FD0403FD04040D04040D0
4040D0403FD03F3FD04040D03F3FD0403FD0403FD03F3FD04040D04040D03F3FD03F3F
D0403FD03F3FD04040D03F3FD0403FD03F3FD03F3FCE3E3ECE3E3ECE3E3ECE3E3ECE3E
3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE
3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3E
CE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E
3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE
3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3E
CE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E
3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE
3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3E
CE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E
3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE
3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3E
CE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECE3E3ECC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C
3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC
3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3C
CC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C
3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC
3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3C
CC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C
3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC
3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3C
CC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C
3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC
3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCC3C3C
CC3C3CCC3C3CCC3C3CCC3C3CCC3C3CCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B
3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA
3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3B
CA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B
3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA
3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3B
CA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B
3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA
3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3B
CA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B
3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA
3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3BCA3B3B
CA3B3BCA3B3BCA3B3BCA3B3BC93939C93939C93939C93939C93939C93939C93939C939
39C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C9
3939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939
C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C939
39C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C9
3939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939
C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C939
39C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C9
3939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939
C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C939
39C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C9
3939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939C93939
C93939C93939C93939C73738C73737C73738C73737C73737C73738C73738C73737C737
38C73737C73737C73738C73737C73737C73738C73738C73737C73737C73738C73737C7
3738C73737C73738C73738C73738C73738C73737C73737C73737C73738C73738C73737
C73737C73737C73737C73737C73738C73738C73738C73737C73737C73737C73737C737
38C73738C73738C73737C73738C73737C73737C73738C73737C73738C73737C73738C7
3737C73737C73737C73738C73737C73738C73737C73737C73737C73738C73737C73738
C73737C73737C73737C73738C73737C73737C73737C73738C73738C73737C73738C737
37C73738C73738C73738C73737C73737C73738C73737C73737C73738C73737C73738C7
3738C73738C73737C73738C73737C73737C73737C73738C73737C73737C73737C73737
C73738C73737C73737C73737C73738C73738C73737C73737C73738C73737C73737C737
38C73737C73737C73737C73738C73737C73737C73737C73737C73737C73737C73737C7
3737C73737C73738C73737C73738C73737C73737C73738C73737C73738C73737C73737
C73737C73738C53636C53636C53636C53636C53636C53636C53636C53636C53636C536
36C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C5
3636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636
C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C536
36C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C5
3636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636
C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C536
36C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C5
3636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636
C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C536
36C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C5
3636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636C53636
C53636C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C234
34C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C2
3434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434
C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C234
34C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C2
3434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434
C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C234
34C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C2
3434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434
C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C234
34C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C2
3434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434C23434
C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C032
32C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C0
3232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232
C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C032
32C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C23434C0
3232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232
C03232C03232C03232C03232C03232C03232C03232C23434C03232C03232C03232C032
32C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C0
3232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C23434
C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C032
32C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C0
3232C03232C03232C23434C03232C03232C03232C03232C23434C03232C03232C03232
C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C032
32C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C0
3232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232
C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C032
32C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C0
3232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232
C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C032
32C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C0
3232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232
C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C032
32C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C03232C0
3232C03232C03232C03232C03232C03232C03232C03232C03232C03232BD2F30BD2F30
BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F
30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD
2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30
BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F
30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD
2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30
BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F
30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD
2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30
BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F
30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD
2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BD2F30BC2E2EBC2E2EBC2E2E
BC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E
2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC
2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2E
BC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E
2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC
2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2E
BC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E
2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC
2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2E
BC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E
2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC
2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EBC2E2EB92C2CB92C2CB92C2CB92C2C
B92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C
2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB9
2C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2C
B92C2CB92C2CB92C2CB92C2CB92C2CBC2E2EB92C2CB92C2CB92C2CB92C2CB92C2CB92C
2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB9
2C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2C
B92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C
2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB9
2C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2C
B92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C
2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB9
2C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2C
B92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C
2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB9
2C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2C
B92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C
2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB9
2C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2C
B92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C
2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB9
2C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2C
B92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C
2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB92C2CB9
2C2CB92C2CB92C2CB92C2CB92C2CB92C2CB62929B62929B62929B62929B62929B62929
B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B629
29B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B6
2929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929
B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B629
29B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B6
2929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929
B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B629
29B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B6
2929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929
B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B629
29B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B6
2929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929
B62929B62929B62929B42727B42727B42727B62929B62929B42727B62929B62929B629
29B42727B62929B62929B42727B62929B42727B62929B62929B42727B62929B62929B6
2929B62929B62929B62929B62929B62929B62929B62929B42727B62929B62929B62929
B62929B62929B42727B62929B62929B62929B62929B62929B62929B62929B62929B629
29B62929B62929B62929B42727B42727B62929B42727B62929B42727B62929B62929B6
2929B42727B62929B62929B62929B62929B62929B62929B62929B62929B62929B62929
B62929B42727B62929B62929B62929B42727B42727B62929B62929B62929B42727B427
27B62929B62929B62929B62929B62929B42727B42727B62929B62929B62929B62929B4
2727B42727B42727B62929B62929B62929B62929B62929B42727B62929B42727B42727
B62929B62929B62929B62929B42727B62929B62929B62929B62929B62929B62929B629
29B42727B42727B62929B62929B62929B62929B62929B62929B62929B62929B62929B6
2929B62929B62929B42727B42727B42727B42727B42727B42727B42727B42727B42727
B42727B42727B22626B22626B42727B42727B42727B42727B42727B42727B42727B427
27B42727B42727B42727B42727B42727B42727B42727B42727B42727B42727B42727B4
2727B42727B42727B42727B42727B42727B42727B42727B42727B42727B42727B42727
B42727B22626B42727B42727B42727B42727B42727B42727B42727B42727B42727B427
27B42727B42727B42727B42727B42727B42727B22626B42727B42727B42727B42727B4
2727B22626B42727B42727B42727B42727B42727B42727B42727B42727B42727B42727
B42727B42727B42727B42727B42727B42727B42727B42727B42727B42727B42727B427
27B42727B42727B42727B42727B22626B42727B42727B42727B42727B42727B42727B4
2727B42727B42727B42727B22626B42727B42727B42727B42727B42727B42727B42727
B42727B42727B42727B42727B42727B42727B42727B42727B42727B42727B42727B427
27B42727B42727B22626B42727B42727B42727B42727B42727B42727B42727B42727B4
2727B42727B42727B22626B22626B22626B22626B22626B22626B22626B22626B22626
B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B226
26B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B2
2626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626
B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B226
26B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B2
2626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626
B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B226
26B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B2
2626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626
B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B226
26B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B22626B2
2626B22626B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424
B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B024
24B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B0
2424B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424
B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B024
24B02424B02424B02424B02424B02424B02424B02424B22626B02424B02424B02424B0
2424B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424
B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B024
24B02424B02424B22626B02424B02424B02424B02424B22626B02424B02424B02424B0
2424B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B22626
B02424B02424B02424B02424B02424B02424B02424B22626B02424B02424B02424B024
24B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B02424B2
2626B02424B02424B02324B02424B02324B02423B02424B02324B02423B02424B02423
B02423B02424B02424B02324B02423B02424B02424B02424B02424B02424B02324B024
23B02424B02424B02423B02424B02424B02324B02424B02423B02423B02423B02324B0
2424B02423B02423B02324B02423B02424B02423B02424B02423B02423B02324B02324
B02324B02423B02423B02324B02324B02424B02324B02424B02424B02324B02424B024
24B02324B02324B02424B02424B02324B02324B02424B02423B02423B02324B02424B0
2423B02423B02423B02324B02424B02424B02423B02324B02424B02424B02424B02424
B02423B02324B02324B02424B02424B02424B02424B02324B02424B02424B02423B024
23B02324B02324B02324B02424B02424B02424B02324B02324B02424B02324B02424B0
2324B02324B02424B02424B02424B02423B02324B02424B02324B02424B02424B02424
B02324B02324B02424B02424B02324B02324B02424B02324B02324B02424B02423B024
24B02324B02423B02424B02324B02324B02424B02324B02324B02324B02324B02424AE
2322B02324AE2322B02324AE2322B02324AE2322AE2322AE2122B02324AE2322AE2322
B02324AE2322B02324AE2322AE2122AE2322B02324B02324B02324AE2322AE2322AE21
22B02324AE2122AE2122AE2122AE2122B02324B02324AE2322B02324AE2322AE2322B0
2324AE2322B02324B02324AE2322B02324AE2322AE2322B02324AE2322AE2322AE2122
B02324B02324AE2122B02324AE2122B02324B02324B02324AE2322B02324B02324B023
24AE2122B02324AE2322AE2122B02324B02324AE2322AE2122B02324AE2322B02324AE
2322AE2322AE2122AE2122B02324B02324AE2122AE2122B02324B02324AE2122AE2322
AE2322B02324B02324AE2322B02324B02324AE2322B02324AE2322AE2122AE2322B023
24B02324AE2122B02324B02324AE2122AE2122B02324AE2322AE2322AE2122AE2122B0
2324AE2122B02324AE2322B02324B02324B02324AE2122AE2322AE2322B02324B02324
AE2122AE2322AE2322B02324AE2122AE2322AE2322B02324AE2322AE2122B02324AE23
22B02324AE2122AE2122AE2122B02324AE2322B02324B02324B02324AE2122AE2122AE
2122AE2122AD2221AD2222AD2222AE2122AE2122AE2122AD2222AD2221AE2122AE2122
AE2122AB2020AE2122AE2122AE2122AE2122AE2122AD2222AD2222AE2122AD2222AE21
22AD2222AE2122AE2122AE2122AD2222AE2221AE2122AD2222AE2122AE2221AE2122AE
2122AE2122AE2122AE2122AE2122AD2222AE2122AE2122AE2122AE2122AE2122AD2222
AE2122AE2122AE2122AD2222AE2122AE2221AE2122AE2122AE2122AD2222AE2122AE21
22AE2221AD2222AE2122AD2222AD2222AE2122AE2122AE2122AE2122AE2122AE2122AD
2222AE2122AD2222AE2122AE2122AD2222AD2222AD2222AE2221AE2122AE2122AE2122
AE2122AE2122AE2122AD2222AE2122AE2122AE2122AE2122AE2122AE2122AD2222AE21
22AD2222AE2122AD2222AD2222AE2122AD2222AE2221AE2122AE2122AE2122AE2122AD
2221AE2122AE2122AE2122AE2122AE2122AE2122AE2221AD2221AE2122AE2122AE2122
AE2122AE2122AE2221AE2122AE2221AE2221AE2122AD2222AD2222AE2122AE2122AE22
21AE2122AD2222AE2221AE2122AD2222AD2221AD2222AE2122AE2122AD2121AD2121AD
2121AD2121AE2122AD2121AD2121AD2121AD2121AD2221AD2121AD2121AD2121AD2121
AD2121AD2121AD2221AD2121AD2121AD2121AD2121AD2221AD2121AD2121AD2121AD21
21AD2121AE2122AD2121AD2121AD2121AD2121AD2121AE2122AD2121AD2121AD2221AD
2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121
AD2221AD2121AD2121AD2121AD2221AD2121AD2121AD2121AD2121AB2020AD2121AD22
21AD2121AD2121AD2121AD2121AD2221AE2122AD2222AD2121AD2121AD2121AD2121AD
2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD2221AD2121AD2121
AD2121AD2121AD2121AD2121AD2222AD2121AD2121AD2121AD2121AD2121AD2121AD22
22AD2121AD2221AD2221AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD
2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121AD2121
AD2221AD2121AD2121AD2221AD2121AD2121AD2221AD2121AD2121AD2121AD2121AD21
21AD2121AD2221AD2121AD2121AD2121AD2121AD2121AD2121AC2020AC2020AC2020AC
2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121
AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC20
20AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC
2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020
AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC20
20AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC
2020AD2121AC2020AC2020AC2020AC2020AC2020AD2121AD2121AC2020AC2020AC2020
AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD21
21AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AD
2121AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AD2121AC2020
AC2020AC2020AC2020AC2020AD2121AD2121AC2020AC2020AD2121AC2020AC2020AD21
21AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC
2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AD2121
AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC20
20AC2020AC2020AD2121AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC
2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020
AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AD2121AC20
20AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AD
2121AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020
AC2020AC2020AD2121AC2020AC2020AC2020AD2121AD2121AC2020AC2020AC2020AD21
21AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC
2020AC2020AC2020AD2121AD2121AC2020AC2020AC2020AC2020AD2121AC2020AC2020
AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC20
20AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC
2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020
AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC20
20AC2020AC2020AD2121AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AD
2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AD2121AC2020
AC2020AC2020AC2020AD2121AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC20
20AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC
2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020
AC2020AC2020AD2121AD2121AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC20
20AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AD2121AC2020AC
2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020
AC2020AD2121AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC20
20AC2020AC2020AC2020AC2020AC2020AD2121AD2121AD2121AD2121AC2020AC2020AC
2020AC2020AC2020AD2121AC2020AD2121AC2020AC2020AC2020AD2121AC2020AC2020
AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC20
20AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD
2121AC2020AC2020AD2121AC2020AC2020AC2020AD2121AC2020AD2121AD2121AC2020
AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AD2121AC2020AC2020AC20
20AC2020AC2020AC2020AD2121AC2020AD2121AC2020AC2020AC2020AC2020AC2020AD
2121AC2020AD2121AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020
AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC20
20AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AD2121AC2020AC2020AC
2020AC2020AC2020AC2020AC2020AC2020AD2121AD2121AC2020AC2020AC2020AC2020
AC2020AD2121AC2020AD2121AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC20
20AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC
2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AD2121
AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD21
21AC2020AC2020AD2121AC2020AD2121AC2020AC2020AD2121AC2020AC2020AC2020AC
2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AD2121
AC2020AC2020AD2121AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AD21
21AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC
2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AD2121
AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC20
20AC2020AD2121AC2020AD2121AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC
2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121
AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC20
20AC2020AD2121AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AD2121AD
2121AC2020AC2020AD2121AC2020AC2020AD2121AD2121AC2020AC2020AC2020AD2121
AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC20
20AC2020AC2020AD2121AC2020AD2121AC2020AC2020AC2020AD2121AC2020AC2020AC
2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020
AC2020AD2121AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD21
21AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC
2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AD2121AC2020AD2121
AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AD2121AC20
20AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC
2020AD2121AC2020AC2020AC2020AD2121AD2121AC2020AC2020AC2020AD2121AC2020
AC2020AC2020AC2020AD2121AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC20
20AC2020AC2020AD2121AC2020AC2020AC2020AD2121AD2121AC2020AD2121AC2020AC
2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020
AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC20
20AC2020AC2020AD2121AC2020AD2121AC2020AC2020AC2020AC2020AD2121AC2020AC
2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020
AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC2020AD2121AC2020AC20
20AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC
2020AC2020AC2020AC2020AD2121AC2020AC2020AD2121AC2020AD2121AC2020AC2020
AC2020AC2020AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC20
20AC2020AD2121AC2020AC2020AC2020AC2020AC2020AC2020AD2121AC2020AC2020AC
2020AC2020AD2121AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020
AD2121AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC2020AC20
20AC2020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF>
pom
tm setmatrix
0 28230.78787 t
0.9815 0.96969 s
gr
gr
gr
gs
gs
pum
1460 23350 t
90.0 r 1.000 0.503 0.503 c 130 0 m 130 0 130 0 130 -870 ct 130 -870 130 -870 252 -870 ct
252 -870 252 -870 252 -751 ct 287 -838 365 -882 486 -882 ct 585 -882 654 -854 691 -799 ct
722 -754 738 -678 738 -570 ct 738 -570 738 -570 738 -564 ct 738 -564 738 -564 611 -564 ct
611 -564 611 -564 611 -589 ct 611 -656 601 -700 582 -724 ct 560 -752 518 -765 456 -765 ct
379 -765 326 -741 295 -691 ct 270 -651 257 -589 257 -506 ct 257 -506 257 -506 257 0 ct
257 0 257 0 130 0 ct p ef
1618 -870 m 1618 -870 1618 -870 1618 0 ct 1618 0 1618 0 1497 0 ct 1497 0 1497 0 1497 -118 ct
1457 -31 1364 12 1217 12 ct 1105 12 1027 -11 982 -58 ct 938 -104 915 -185 915 -299 ct
915 -299 915 -299 915 -870 ct 915 -870 915 -870 1041 -870 ct 1041 -870 1041 -870 1041 -326 ct
1041 -241 1052 -184 1076 -154 ct 1102 -121 1155 -105 1235 -105 ct 1323 -105 1388 -125 1429 -167 ct
1470 -208 1490 -273 1490 -363 ct 1490 -363 1490 -363 1490 -870 ct 1490 -870 1490 -870 1618 -870 ct
p ef
2023 -506 m 2023 -506 2023 -506 2023 -364 ct 2023 -272 2045 -206 2087 -165 ct
2128 -125 2194 -105 2284 -105 ct 2374 -105 2432 -125 2458 -165 ct 2480 -196 2490 -261 2490 -360 ct
2490 -360 2490 -360 2490 -509 ct 2490 -608 2480 -674 2459 -705 ct 2432 -745 2374 -765 2284 -765 ct
2194 -765 2128 -745 2086 -704 ct 2044 -664 2023 -597 2023 -506 ct p
1898 0 m 1898 0 1898 0 1898 -1231 ct 1898 -1231 1898 -1231 2023 -1231 ct 2023 -1231 2023 -1231 2023 -746 ct
2069 -837 2158 -882 2289 -882 ct 2411 -882 2497 -856 2547 -804 ct 2596 -752 2621 -663 2621 -538 ct
2621 -538 2621 -538 2621 -331 ct 2621 -207 2596 -119 2547 -67 ct 2497 -14 2411 12 2289 12 ct
2148 12 2058 -37 2019 -134 ct 2019 -134 2019 -134 2019 0 ct 2019 0 2019 0 1898 0 ct
p ef
2777 -870 m 2777 -870 2777 -870 2903 -870 ct 2903 -870 2903 -870 3157 -121 ct
3157 -121 3157 -121 3409 -870 ct 3409 -870 3409 -870 3534 -870 ct 3534 -870 3534 -870 3212 76 ct
3183 162 3155 223 3128 258 ct 3086 312 3029 339 2958 339 ct 2936 339 2914 337 2891 333 ct
2891 333 2891 333 2892 220 ct 2900 221 2912 222 2930 222 ct 2973 222 3006 210 3029 187 ct
3047 168 3065 136 3081 90 ct 3081 90 3081 90 3112 0 ct 3112 0 3112 0 3074 0 ct
3074 0 3074 0 2777 -870 ct p ef
pom
gr
gs
pum
1460 19787 t
90.0 r 0.601 0.601 1.000 c 719 -364 m 719 -364 719 -364 719 -506 ct 719 -597 698 -664 656 -704 ct
614 -745 548 -765 458 -765 ct 368 -765 310 -745 283 -705 ct 261 -674 250 -608 250 -509 ct
250 -509 250 -509 250 -360 ct 250 -262 261 -197 283 -165 ct 310 -125 368 -105 458 -105 ct
548 -105 614 -125 656 -166 ct 698 -206 719 -272 719 -364 ct p
844 -871 m 844 -871 844 -871 844 -10 ct 844 117 820 206 770 257 ct 721 307 635 333 511 333 ct
511 333 511 333 453 333 ct 349 333 271 315 220 279 ct 162 238 129 167 122 66 ct
122 66 122 66 250 66 ct 256 127 277 169 314 190 ct 341 207 388 215 454 215 ct 454 215 454 215 511 215 ct
578 215 627 205 658 186 ct 698 162 719 118 719 56 ct 719 56 719 56 719 -124 ct
674 -34 585 12 453 12 ct 331 12 245 -14 196 -67 ct 146 -119 122 -207 122 -331 ct
122 -331 122 -331 122 -538 ct 122 -663 146 -752 196 -804 ct 245 -856 331 -882 453 -882 ct
593 -882 683 -833 723 -735 ct 723 -735 723 -735 723 -871 ct 723 -871 723 -871 844 -871 ct
p ef
1130 0 m 1130 0 1130 0 1130 -1231 ct 1130 -1231 1130 -1231 1251 -1231 ct 1251 -1231 1251 -1231 1251 -751 ct
1291 -838 1384 -882 1530 -882 ct 1641 -882 1720 -859 1765 -812 ct 1809 -766 1832 -685 1832 -570 ct
1832 -570 1832 -570 1832 0 ct 1832 0 1832 0 1705 0 ct 1705 0 1705 0 1705 -543 ct
1705 -628 1694 -685 1671 -714 ct 1645 -748 1593 -765 1513 -765 ct 1425 -765 1360 -745 1318 -703 ct
1277 -662 1256 -596 1256 -506 ct 1256 -506 1256 -506 1256 0 ct 1256 0 1256 0 1130 0 ct
p ef
2683 -360 m 2683 -360 2683 -360 2683 -509 ct 2683 -610 2672 -676 2650 -707 ct
2623 -745 2563 -764 2470 -764 ct 2470 -764 2470 -764 2411 -764 ct 2319 -764 2259 -745 2232 -707 ct
2211 -676 2201 -611 2201 -509 ct 2201 -509 2201 -509 2201 -360 ct 2201 -259 2211 -193 2233 -163 ct
2260 -124 2319 -105 2411 -105 ct 2411 -105 2411 -105 2470 -105 ct 2563 -105 2623 -124 2650 -163 ct
2672 -194 2683 -260 2683 -360 ct p
2413 12 m 2287 12 2198 -14 2147 -64 ct 2095 -115 2069 -204 2069 -331 ct 2069 -331 2069 -331 2069 -538 ct
2069 -666 2095 -755 2146 -806 ct 2197 -857 2285 -882 2411 -882 ct 2411 -882 2411 -882 2470 -882 ct
2596 -882 2685 -857 2737 -806 ct 2788 -755 2814 -666 2814 -538 ct 2814 -538 2814 -538 2814 -331 ct
2814 -204 2788 -115 2737 -64 ct 2686 -14 2598 12 2472 12 ct 2472 12 2472 12 2413 12 ct
p ef
3029 -259 m 3029 -259 3029 -259 3157 -259 ct 3157 -259 3157 -259 3157 -239 ct
3157 -175 3184 -133 3238 -114 ct 3266 -103 3321 -98 3401 -98 ct 3490 -98 3547 -103 3570 -112 ct
3617 -130 3641 -175 3641 -247 ct 3641 -311 3625 -353 3593 -371 ct 3573 -389 3526 -398 3454 -398 ct
3418 -398 3377 -398 3329 -398 ct 3215 -398 3147 -407 3125 -425 ct 3065 -459 3035 -529 3035 -635 ct
3035 -748 3075 -822 3153 -855 ct 3198 -873 3288 -882 3425 -882 ct 3532 -882 3608 -872 3651 -851 ct
3717 -819 3750 -756 3750 -662 ct 3750 -662 3750 -662 3624 -662 ct 3624 -662 3624 -662 3624 -670 ct
3624 -719 3593 -751 3530 -765 ct 3506 -770 3456 -772 3380 -772 ct 3300 -772 3249 -768 3226 -759 ct
3183 -741 3162 -700 3162 -635 ct 3162 -578 3173 -544 3195 -532 ct 3220 -515 3276 -507 3363 -507 ct
3381 -507 3398 -507 3414 -507 ct 3473 -507 3516 -503 3543 -495 ct 3605 -495 3647 -489 3669 -479 ct
3738 -446 3773 -372 3773 -256 ct 3773 -197 3767 -151 3754 -120 ct 3739 -82 3709 -50 3665 -22 ct
3630 1 3542 12 3402 12 ct 3275 12 3189 1 3142 -20 ct 3066 -54 3029 -126 3029 -236 ct
3029 -236 3029 -236 3029 -259 ct p ef
3966 -760 m 3966 -760 3966 -760 3966 -870 ct 3966 -870 3966 -870 4071 -870 ct
4071 -870 4071 -870 4071 -1066 ct 4071 -1066 4071 -1066 4197 -1066 ct 4197 -1066 4197 -1066 4197 -870 ct
4197 -870 4197 -870 4615 -870 ct 4615 -870 4615 -870 4615 -760 ct 4615 -760 4615 -760 4197 -760 ct
4197 -760 4197 -760 4197 -281 ct 4197 -215 4207 -169 4227 -145 ct 4250 -118 4292 -105 4355 -105 ct
4418 -105 4461 -118 4482 -145 ct 4501 -169 4511 -214 4511 -280 ct 4511 -280 4511 -280 4511 -306 ct
4511 -306 4511 -306 4639 -306 ct 4639 -306 4639 -306 4639 -299 ct 4639 -175 4618 -92 4577 -50 ct
4535 -9 4454 12 4332 12 ct 4229 12 4158 -14 4120 -67 ct 4087 -111 4071 -188 4071 -299 ct
4071 -299 4071 -299 4071 -760 ct 4071 -760 4071 -760 3966 -760 ct p ef
4858 -259 m 4858 -259 4858 -259 4986 -259 ct 4986 -259 4986 -259 4986 -239 ct
4986 -175 5013 -133 5067 -114 ct 5095 -103 5150 -98 5230 -98 ct 5319 -98 5376 -103 5399 -112 ct
5446 -130 5470 -175 5470 -247 ct 5470 -311 5454 -353 5422 -371 ct 5402 -389 5355 -398 5283 -398 ct
5247 -398 5206 -398 5158 -398 ct 5044 -398 4976 -407 4954 -425 ct 4894 -459 4864 -529 4864 -635 ct
4864 -748 4904 -822 4982 -855 ct 5027 -873 5117 -882 5254 -882 ct 5361 -882 5437 -872 5480 -851 ct
5546 -819 5579 -756 5579 -662 ct 5579 -662 5579 -662 5453 -662 ct 5453 -662 5453 -662 5453 -670 ct
5453 -719 5422 -751 5359 -765 ct 5335 -770 5285 -772 5209 -772 ct 5129 -772 5078 -768 5055 -759 ct
5012 -741 4991 -700 4991 -635 ct 4991 -578 5002 -544 5024 -532 ct 5049 -515 5105 -507 5192 -507 ct
5210 -507 5227 -507 5243 -507 ct 5302 -507 5345 -503 5372 -495 ct 5434 -495 5476 -489 5498 -479 ct
5567 -446 5602 -372 5602 -256 ct 5602 -197 5596 -151 5583 -120 ct 5568 -82 5538 -50 5494 -22 ct
5459 1 5371 12 5231 12 ct 5104 12 5018 1 4971 -20 ct 4895 -54 4858 -126 4858 -236 ct
4858 -236 4858 -236 4858 -259 ct p ef
6189 12 m 6063 12 5974 -14 5923 -64 ct 5871 -115 5845 -204 5845 -331 ct 5845 -331 5845 -331 5845 -538 ct
5845 -666 5871 -755 5922 -806 ct 5973 -857 6061 -882 6187 -882 ct 6187 -882 6187 -882 6246 -882 ct
6360 -882 6444 -861 6498 -819 ct 6557 -772 6588 -691 6590 -579 ct 6590 -579 6590 -579 6459 -579 ct
6457 -653 6439 -704 6405 -730 ct 6376 -753 6323 -764 6246 -764 ct 6246 -764 6246 -764 6187 -764 ct
6095 -764 6035 -745 6008 -707 ct 5987 -676 5977 -611 5977 -509 ct 5977 -509 5977 -509 5977 -361 ct
5977 -259 5987 -193 6009 -163 ct 6036 -124 6095 -105 6187 -105 ct 6187 -105 6187 -105 6246 -105 ct
6326 -105 6381 -118 6411 -145 ct 6443 -173 6459 -227 6459 -307 ct 6459 -307 6459 -307 6459 -322 ct
6459 -322 6459 -322 6590 -322 ct 6590 -322 6590 -322 6590 -305 ct 6590 -188 6561 -105 6504 -55 ct
6451 -11 6366 12 6248 12 ct 6248 12 6248 12 6189 12 ct p ef
6836 0 m 6836 0 6836 0 6836 -870 ct 6836 -870 6836 -870 6958 -870 ct 6958 -870 6958 -870 6958 -751 ct
6993 -838 7071 -882 7192 -882 ct 7291 -882 7360 -854 7397 -799 ct 7428 -754 7444 -678 7444 -570 ct
7444 -570 7444 -570 7444 -564 ct 7444 -564 7444 -564 7317 -564 ct 7317 -564 7317 -564 7317 -589 ct
7317 -656 7307 -700 7288 -724 ct 7266 -752 7224 -765 7162 -765 ct 7085 -765 7032 -741 7001 -691 ct
6976 -651 6963 -589 6963 -506 ct 6963 -506 6963 -506 6963 0 ct 6963 0 6963 0 6836 0 ct
p ef
7628 -1086 m 7628 -1231 l 7754 -1231 l 7754 -1086 l 7628 -1086 l p
7628 0 m 7628 -870 l 7754 -870 l 7754 0 l 7628 0 l p ef
8153 -364 m 8153 -272 8175 -206 8217 -165 ct 8258 -125 8324 -105 8414 -105 ct
8504 -105 8562 -125 8588 -165 ct 8610 -196 8620 -261 8620 -360 ct 8620 -360 8620 -360 8620 -509 ct
8620 -608 8610 -674 8589 -705 ct 8562 -745 8504 -765 8414 -765 ct 8324 -765 8258 -745 8216 -704 ct
8174 -664 8153 -597 8153 -506 ct 8153 -506 8153 -506 8153 -364 ct p
8028 -871 m 8028 -871 8028 -871 8149 -871 ct 8149 -871 8149 -871 8149 -735 ct
8189 -833 8279 -882 8419 -882 ct 8541 -882 8627 -856 8677 -804 ct 8726 -752 8751 -663 8751 -538 ct
8751 -538 8751 -538 8751 -331 ct 8751 -207 8726 -119 8677 -67 ct 8627 -14 8541 12 8419 12 ct
8288 12 8199 -34 8153 -124 ct 8153 -124 8153 -124 8153 333 ct 8153 333 8153 333 8028 333 ct
8028 333 8028 333 8028 -871 ct p ef
8915 -760 m 8915 -760 8915 -760 8915 -870 ct 8915 -870 8915 -870 9020 -870 ct
9020 -870 9020 -870 9020 -1066 ct 9020 -1066 9020 -1066 9146 -1066 ct 9146 -1066 9146 -1066 9146 -870 ct
9146 -870 9146 -870 9564 -870 ct 9564 -870 9564 -870 9564 -760 ct 9564 -760 9564 -760 9146 -760 ct
9146 -760 9146 -760 9146 -281 ct 9146 -215 9156 -169 9176 -145 ct 9199 -118 9241 -105 9304 -105 ct
9367 -105 9410 -118 9431 -145 ct 9450 -169 9460 -214 9460 -280 ct 9460 -280 9460 -280 9460 -306 ct
9460 -306 9460 -306 9588 -306 ct 9588 -306 9588 -306 9588 -299 ct 9588 -175 9567 -92 9526 -50 ct
9484 -9 9403 12 9281 12 ct 9178 12 9107 -14 9069 -67 ct 9036 -111 9020 -188 9020 -299 ct
9020 -299 9020 -299 9020 -760 ct 9020 -760 9020 -760 8915 -760 ct p ef
pom
gr
gs
pum
1460 10080 t
90.0 r 1.000 0.503 0.503 c 228 -520 m 228 -520 228 -520 710 -520 ct 710 -520 710 -520 710 -554 ct
710 -637 696 -692 666 -721 ct 636 -749 580 -764 497 -764 ct 497 -764 497 -764 438 -764 ct
357 -764 301 -749 272 -721 ct 242 -692 228 -637 228 -554 ct 228 -554 228 -554 228 -520 ct
p
440 12 m 314 12 225 -14 174 -64 ct 122 -115 96 -204 96 -331 ct 96 -331 96 -331 96 -538 ct
96 -666 122 -755 173 -806 ct 224 -857 312 -882 438 -882 ct 438 -882 438 -882 497 -882 ct
623 -882 712 -857 764 -806 ct 815 -755 841 -666 841 -538 ct 841 -538 841 -538 841 -406 ct
841 -406 841 -406 228 -406 ct 227 -388 226 -364 226 -332 ct 226 -243 240 -184 268 -152 ct
296 -121 353 -105 438 -105 ct 438 -105 438 -105 497 -105 ct 565 -105 613 -113 642 -130 ct
681 -152 703 -194 708 -256 ct 708 -256 708 -256 839 -256 ct 832 -154 798 -83 736 -41 ct
684 -6 605 12 499 12 ct 499 12 499 12 440 12 ct p ef
1088 0 m 1088 0 1088 0 1088 -870 ct 1088 -870 1088 -870 1209 -870 ct 1209 -870 1209 -870 1209 -751 ct
1249 -838 1342 -882 1488 -882 ct 1599 -882 1678 -859 1723 -812 ct 1767 -766 1790 -685 1790 -570 ct
1790 -570 1790 -570 1790 0 ct 1790 0 1790 0 1663 0 ct 1663 0 1663 0 1663 -543 ct
1663 -628 1652 -685 1629 -714 ct 1603 -748 1551 -765 1471 -765 ct 1300 -765 1214 -679 1214 -506 ct
1214 -506 1214 -506 1214 0 ct 1214 0 1214 0 1088 0 ct p ef
2649 -364 m 2649 -364 2649 -364 2649 -506 ct 2649 -597 2628 -664 2586 -704 ct
2544 -745 2478 -765 2388 -765 ct 2298 -765 2240 -745 2213 -705 ct 2191 -674 2180 -608 2180 -509 ct
2180 -509 2180 -509 2180 -360 ct 2180 -262 2191 -197 2213 -165 ct 2240 -125 2298 -105 2388 -105 ct
2478 -105 2544 -125 2586 -166 ct 2628 -206 2649 -272 2649 -364 ct p
2774 -871 m 2774 -871 2774 -871 2774 -10 ct 2774 117 2750 206 2700 257 ct 2651 307 2565 333 2441 333 ct
2441 333 2441 333 2383 333 ct 2279 333 2201 315 2150 279 ct 2092 238 2059 167 2052 66 ct
2052 66 2052 66 2180 66 ct 2186 127 2207 169 2244 190 ct 2271 207 2318 215 2384 215 ct
2384 215 2384 215 2441 215 ct 2508 215 2557 205 2588 186 ct 2628 162 2649 118 2649 56 ct
2649 56 2649 56 2649 -124 ct 2604 -34 2515 12 2383 12 ct 2261 12 2175 -14 2126 -67 ct
2076 -119 2052 -207 2052 -331 ct 2052 -331 2052 -331 2052 -538 ct 2052 -663 2076 -752 2126 -804 ct
2175 -856 2261 -882 2383 -882 ct 2523 -882 2613 -833 2653 -735 ct 2653 -735 2653 -735 2653 -871 ct
2653 -871 2653 -871 2774 -871 ct p ef
3060 -1086 m 3060 -1231 l 3186 -1231 l 3186 -1086 l 3060 -1086 l p
3060 0 m 3060 -870 l 3186 -870 l 3186 0 l 3060 0 l p ef
3458 0 m 3458 0 3458 0 3458 -870 ct 3458 -870 3458 -870 3579 -870 ct 3579 -870 3579 -870 3579 -751 ct
3619 -838 3712 -882 3858 -882 ct 3969 -882 4048 -859 4093 -812 ct 4137 -766 4160 -685 4160 -570 ct
4160 -570 4160 -570 4160 0 ct 4160 0 4160 0 4033 0 ct 4033 0 4033 0 4033 -543 ct
4033 -628 4022 -685 3999 -714 ct 3973 -748 3921 -765 3841 -765 ct 3670 -765 3584 -679 3584 -506 ct
3584 -506 3584 -506 3584 0 ct 3584 0 3584 0 3458 0 ct p ef
4529 -520 m 4529 -520 4529 -520 5011 -520 ct 5011 -520 5011 -520 5011 -554 ct
5011 -637 4997 -692 4967 -721 ct 4937 -749 4881 -764 4798 -764 ct 4798 -764 4798 -764 4739 -764 ct
4658 -764 4602 -749 4573 -721 ct 4543 -692 4529 -637 4529 -554 ct 4529 -554 4529 -554 4529 -520 ct
p
4741 12 m 4615 12 4526 -14 4475 -64 ct 4423 -115 4397 -204 4397 -331 ct 4397 -331 4397 -331 4397 -538 ct
4397 -666 4423 -755 4474 -806 ct 4525 -857 4613 -882 4739 -882 ct 4739 -882 4739 -882 4798 -882 ct
4924 -882 5013 -857 5065 -806 ct 5116 -755 5142 -666 5142 -538 ct 5142 -538 5142 -538 5142 -406 ct
5142 -406 5142 -406 4529 -406 ct 4528 -388 4527 -364 4527 -332 ct 4527 -243 4541 -184 4569 -152 ct
4597 -121 4654 -105 4739 -105 ct 4739 -105 4739 -105 4798 -105 ct 4866 -105 4914 -113 4943 -130 ct
4982 -152 5004 -194 5009 -256 ct 5009 -256 5009 -256 5140 -256 ct 5133 -154 5099 -83 5037 -41 ct
4985 -6 4906 12 4800 12 ct 4800 12 4800 12 4741 12 ct p ef
pom
gr
gr
gs
gs
pum
9128 29058 t
22 0 m 22 0 22 0 22 -145 ct 22 -145 22 -145 43 -145 ct 43 -145 43 -145 43 -125 ct
49 -140 62 -147 83 -147 ct 100 -147 111 -142 117 -133 ct 123 -126 125 -113 125 -95 ct
125 -95 125 -95 125 -94 ct 125 -94 125 -94 104 -94 ct 104 -94 104 -94 104 -98 ct
104 -109 102 -117 99 -121 ct 95 -125 88 -128 78 -128 ct 64 -128 55 -123 50 -115 ct
46 -108 44 -98 44 -84 ct 44 -84 44 -84 44 0 ct 44 0 44 0 22 0 ct p ef
253 -60 m 253 -60 253 -60 253 -84 ct 253 -99 250 -111 242 -117 ct 235 -124 224 -128 209 -128 ct
194 -128 184 -124 179 -117 ct 175 -112 174 -101 174 -85 ct 174 -85 174 -85 174 -60 ct
174 -43 175 -32 179 -27 ct 184 -20 194 -17 209 -17 ct 224 -17 235 -20 242 -27 ct
250 -34 253 -45 253 -60 ct p
274 -145 m 274 -145 274 -145 274 -1 ct 274 20 270 35 262 43 ct 254 52 239 56 218 56 ct
218 56 218 56 208 56 ct 190 56 177 53 168 47 ct 159 40 153 28 152 11 ct 152 11 152 11 174 11 ct
175 21 178 28 184 32 ct 189 35 197 36 208 36 ct 208 36 208 36 218 36 ct 229 36 237 35 243 31 ct
250 27 253 20 253 10 ct 253 10 253 10 253 -20 ct 246 -5 230 2 208 2 ct 187 2 173 -2 164 -11 ct
156 -19 152 -34 152 -55 ct 152 -55 152 -55 152 -90 ct 152 -110 156 -125 164 -134 ct
173 -143 187 -147 208 -147 ct 232 -147 247 -139 254 -122 ct 254 -122 254 -122 254 -145 ct
254 -145 254 -145 274 -145 ct p ef
318 0 m 318 0 318 0 318 -205 ct 318 -205 318 -205 339 -205 ct 339 -205 339 -205 339 -125 ct
346 -140 361 -147 386 -147 ct 405 -147 419 -143 426 -135 ct 434 -128 438 -114 438 -95 ct
438 -95 438 -95 438 0 ct 438 0 438 0 416 0 ct 416 0 416 0 416 -90 ct 416 -105 414 -114 410 -119 ct
406 -125 397 -128 383 -128 ct 368 -128 357 -124 350 -117 ct 343 -110 340 -99 340 -84 ct
340 -84 340 -84 340 0 ct 340 0 340 0 318 0 ct p ef
582 -60 m 582 -60 582 -60 582 -85 ct 582 -102 580 -113 576 -118 ct 572 -124 561 -127 546 -127 ct
546 -127 546 -127 536 -127 ct 520 -127 510 -124 505 -118 ct 501 -113 500 -102 500 -85 ct
500 -85 500 -85 500 -60 ct 500 -43 502 -32 505 -27 ct 510 -21 520 -17 536 -17 ct
536 -17 536 -17 546 -17 ct 561 -17 571 -21 576 -27 ct 580 -32 582 -43 582 -60 ct
p
536 2 m 514 2 499 -2 491 -11 ct 482 -19 477 -34 477 -55 ct 477 -55 477 -55 477 -90 ct
477 -111 482 -126 490 -134 ct 499 -143 514 -147 536 -147 ct 536 -147 536 -147 546 -147 ct
567 -147 582 -143 591 -134 ct 600 -126 604 -111 604 -90 ct 604 -90 604 -90 604 -55 ct
604 -34 600 -19 591 -11 ct 582 -2 567 2 546 2 ct 546 2 546 2 536 2 ct p ef
639 -43 m 639 -43 639 -43 661 -43 ct 661 -43 661 -43 661 -39 ct 661 -29 665 -22 674 -19 ct
679 -17 689 -16 702 -16 ct 717 -16 727 -17 731 -19 ct 739 -22 743 -29 743 -41 ct
743 -52 740 -58 735 -62 ct 731 -65 724 -66 711 -66 ct 705 -66 698 -66 690 -66 ct
671 -66 659 -68 655 -71 ct 645 -76 640 -88 640 -106 ct 640 -125 647 -137 660 -142 ct
668 -145 683 -147 706 -147 ct 725 -147 737 -145 745 -142 ct 756 -137 762 -126 762 -111 ct
762 -111 762 -111 740 -111 ct 740 -111 740 -111 740 -112 ct 740 -120 735 -125 724 -127 ct
720 -128 712 -129 699 -129 ct 685 -129 676 -128 673 -126 ct 665 -124 662 -117 662 -106 ct
662 -96 663 -90 667 -88 ct 671 -86 681 -84 696 -84 ct 699 -84 702 -84 704 -84 ct
714 -84 722 -84 726 -82 ct 737 -82 744 -81 748 -79 ct 760 -74 765 -62 765 -42 ct
765 -33 764 -25 762 -20 ct 760 -14 755 -8 747 -4 ct 741 0 726 2 702 2 ct 681 2 666 0 658 -3 ct
645 -9 639 -21 639 -39 ct 639 -39 639 -39 639 -43 ct p ef
795 -127 m 795 -127 795 -127 795 -145 ct 795 -145 795 -145 813 -145 ct 813 -145 813 -145 813 -178 ct
813 -178 813 -178 834 -178 ct 834 -178 834 -178 834 -145 ct 834 -145 834 -145 905 -145 ct
905 -145 905 -145 905 -127 ct 905 -127 905 -127 834 -127 ct 834 -127 834 -127 834 -47 ct
834 -36 836 -28 839 -24 ct 843 -20 850 -17 861 -17 ct 872 -17 879 -20 883 -24 ct
886 -28 887 -36 887 -47 ct 887 -47 887 -47 887 -51 ct 887 -51 887 -51 909 -51 ct
909 -51 909 -51 909 -50 ct 909 -29 906 -15 899 -8 ct 892 -1 878 2 857 2 ct 840 2 828 -2 821 -11 ct
815 -19 813 -31 813 -50 ct 813 -50 813 -50 813 -127 ct 813 -127 813 -127 795 -127 ct
p ef
pom
gr
gs
pum
10203 29058 t
22 0 m 22 0 22 0 22 -205 ct 22 -205 22 -205 43 -205 ct 43 -205 43 -205 43 -125 ct
50 -140 65 -147 90 -147 ct 109 -147 123 -143 130 -135 ct 138 -128 142 -114 142 -95 ct
142 -95 142 -95 142 0 ct 142 0 142 0 120 0 ct 120 0 120 0 120 -90 ct 120 -105 118 -114 114 -119 ct
110 -125 101 -128 87 -128 ct 72 -128 61 -124 54 -117 ct 47 -110 44 -99 44 -84 ct
44 -84 44 -84 44 0 ct 44 0 44 0 22 0 ct p ef
173 -127 m 173 -127 173 -127 173 -145 ct 173 -145 173 -145 191 -145 ct 191 -145 191 -145 191 -178 ct
191 -178 191 -178 212 -178 ct 212 -178 212 -178 212 -145 ct 212 -145 212 -145 283 -145 ct
283 -145 283 -145 283 -127 ct 283 -127 283 -127 212 -127 ct 212 -127 212 -127 212 -47 ct
212 -36 214 -28 217 -24 ct 221 -20 228 -17 239 -17 ct 250 -17 257 -20 261 -24 ct
264 -28 265 -36 265 -47 ct 265 -47 265 -47 265 -51 ct 265 -51 265 -51 287 -51 ct
287 -51 287 -51 287 -50 ct 287 -29 284 -15 277 -8 ct 270 -1 256 2 235 2 ct 218 2 206 -2 199 -11 ct
193 -19 191 -31 191 -50 ct 191 -50 191 -50 191 -127 ct 191 -127 191 -127 173 -127 ct
p ef
317 -127 m 317 -127 317 -127 317 -145 ct 317 -145 317 -145 335 -145 ct 335 -145 335 -145 335 -178 ct
335 -178 335 -178 356 -178 ct 356 -178 356 -178 356 -145 ct 356 -145 356 -145 427 -145 ct
427 -145 427 -145 427 -127 ct 427 -127 427 -127 356 -127 ct 356 -127 356 -127 356 -47 ct
356 -36 358 -28 361 -24 ct 365 -20 372 -17 383 -17 ct 394 -17 401 -20 405 -24 ct
408 -28 409 -36 409 -47 ct 409 -47 409 -47 409 -51 ct 409 -51 409 -51 431 -51 ct
431 -51 431 -51 431 -50 ct 431 -29 428 -15 421 -8 ct 414 -1 400 2 379 2 ct 362 2 350 -2 343 -11 ct
337 -19 335 -31 335 -50 ct 335 -50 335 -50 335 -127 ct 335 -127 335 -127 317 -127 ct
p ef
497 -60 m 497 -45 501 -34 508 -27 ct 515 -20 526 -17 541 -17 ct 557 -17 566 -20 571 -27 ct
574 -32 576 -43 576 -60 ct 576 -60 576 -60 576 -85 ct 576 -101 574 -112 571 -117 ct
566 -124 557 -128 541 -128 ct 526 -128 515 -124 508 -117 ct 500 -111 497 -99 497 -84 ct
497 -84 497 -84 497 -60 ct p
476 -145 m 476 -145 476 -145 496 -145 ct 496 -145 496 -145 496 -122 ct 503 -139 518 -147 542 -147 ct
563 -147 577 -143 586 -134 ct 594 -125 599 -110 599 -90 ct 599 -90 599 -90 599 -55 ct
599 -34 594 -19 586 -11 ct 577 -2 563 2 542 2 ct 520 2 505 -5 497 -20 ct 497 -20 497 -20 497 56 ct
497 56 497 56 476 56 ct 476 56 476 56 476 -145 ct p ef
650 0 m 650 -30 l 674 -30 l 674 0 l 650 0 l p
650 -115 m 650 -145 l 674 -145 l 674 -115 l 650 -115 l p ef
727 26 m 709 26 l 781 -208 l 801 -208 l 727 26 l p ef
804 26 m 786 26 l 858 -208 l 878 -208 l 804 26 l p ef
890 0 m 890 0 890 0 890 -145 ct 890 -145 890 -145 911 -145 ct 911 -145 911 -145 911 -125 ct
917 -140 930 -147 951 -147 ct 968 -147 979 -142 985 -133 ct 991 -126 993 -113 993 -95 ct
993 -95 993 -95 993 -94 ct 993 -94 993 -94 972 -94 ct 972 -94 972 -94 972 -98 ct
972 -109 970 -117 967 -121 ct 963 -125 956 -128 946 -128 ct 932 -128 923 -123 918 -115 ct
914 -108 912 -98 912 -84 ct 912 -84 912 -84 912 0 ct 912 0 912 0 890 0 ct p ef
1121 -60 m 1121 -60 1121 -60 1121 -84 ct 1121 -99 1118 -111 1110 -117 ct 1103 -124 1092 -128 1077 -128 ct
1062 -128 1052 -124 1047 -117 ct 1043 -112 1042 -101 1042 -85 ct 1042 -85 1042 -85 1042 -60 ct
1042 -43 1043 -32 1047 -27 ct 1052 -20 1062 -17 1077 -17 ct 1092 -17 1103 -20 1110 -27 ct
1118 -34 1121 -45 1121 -60 ct p
1142 -145 m 1142 -145 1142 -145 1142 -1 ct 1142 20 1138 35 1130 43 ct 1122 52 1107 56 1086 56 ct
1086 56 1086 56 1076 56 ct 1058 56 1045 53 1036 47 ct 1027 40 1021 28 1020 11 ct
1020 11 1020 11 1042 11 ct 1043 21 1046 28 1052 32 ct 1057 35 1065 36 1076 36 ct
1076 36 1076 36 1086 36 ct 1097 36 1105 35 1111 31 ct 1118 27 1121 20 1121 10 ct
1121 10 1121 10 1121 -20 ct 1114 -5 1098 2 1076 2 ct 1055 2 1041 -2 1032 -11 ct
1024 -19 1020 -34 1020 -55 ct 1020 -55 1020 -55 1020 -90 ct 1020 -110 1024 -125 1032 -134 ct
1041 -143 1055 -147 1076 -147 ct 1100 -147 1115 -139 1122 -122 ct 1122 -122 1122 -122 1122 -145 ct
1122 -145 1122 -145 1142 -145 ct p ef
1186 0 m 1186 0 1186 0 1186 -205 ct 1186 -205 1186 -205 1207 -205 ct 1207 -205 1207 -205 1207 -125 ct
1214 -140 1229 -147 1254 -147 ct 1273 -147 1287 -143 1294 -135 ct 1302 -128 1306 -114 1306 -95 ct
1306 -95 1306 -95 1306 0 ct 1306 0 1306 0 1284 0 ct 1284 0 1284 0 1284 -90 ct 1284 -105 1282 -114 1278 -119 ct
1274 -125 1265 -128 1251 -128 ct 1236 -128 1225 -124 1218 -117 ct 1211 -110 1208 -99 1208 -84 ct
1208 -84 1208 -84 1208 0 ct 1208 0 1208 0 1186 0 ct p ef
1450 -60 m 1450 -60 1450 -60 1450 -85 ct 1450 -102 1448 -113 1444 -118 ct 1440 -124 1429 -127 1414 -127 ct
1414 -127 1414 -127 1404 -127 ct 1388 -127 1378 -124 1373 -118 ct 1369 -113 1368 -102 1368 -85 ct
1368 -85 1368 -85 1368 -60 ct 1368 -43 1370 -32 1373 -27 ct 1378 -21 1388 -17 1404 -17 ct
1404 -17 1404 -17 1414 -17 ct 1429 -17 1439 -21 1444 -27 ct 1448 -32 1450 -43 1450 -60 ct
p
1404 2 m 1382 2 1367 -2 1359 -11 ct 1350 -19 1345 -34 1345 -55 ct 1345 -55 1345 -55 1345 -90 ct
1345 -111 1350 -126 1358 -134 ct 1367 -143 1382 -147 1404 -147 ct 1404 -147 1404 -147 1414 -147 ct
1435 -147 1450 -143 1459 -134 ct 1468 -126 1472 -111 1472 -90 ct 1472 -90 1472 -90 1472 -55 ct
1472 -34 1468 -19 1459 -11 ct 1450 -2 1435 2 1414 2 ct 1414 2 1414 2 1404 2 ct
p ef
1507 -43 m 1507 -43 1507 -43 1529 -43 ct 1529 -43 1529 -43 1529 -39 ct 1529 -29 1533 -22 1542 -19 ct
1547 -17 1557 -16 1570 -16 ct 1585 -16 1595 -17 1599 -19 ct 1607 -22 1611 -29 1611 -41 ct
1611 -52 1608 -58 1603 -62 ct 1599 -65 1592 -66 1579 -66 ct 1573 -66 1566 -66 1558 -66 ct
1539 -66 1527 -68 1523 -71 ct 1513 -76 1508 -88 1508 -106 ct 1508 -125 1515 -137 1528 -142 ct
1536 -145 1551 -147 1574 -147 ct 1593 -147 1605 -145 1613 -142 ct 1624 -137 1630 -126 1630 -111 ct
1630 -111 1630 -111 1608 -111 ct 1608 -111 1608 -111 1608 -112 ct 1608 -120 1603 -125 1592 -127 ct
1588 -128 1580 -129 1567 -129 ct 1553 -129 1544 -128 1541 -126 ct 1533 -124 1530 -117 1530 -106 ct
1530 -96 1531 -90 1535 -88 ct 1539 -86 1549 -84 1564 -84 ct 1567 -84 1570 -84 1572 -84 ct
1582 -84 1590 -84 1594 -82 ct 1605 -82 1612 -81 1616 -79 ct 1628 -74 1633 -62 1633 -42 ct
1633 -33 1632 -25 1630 -20 ct 1628 -14 1623 -8 1615 -4 ct 1609 0 1594 2 1570 2 ct
1549 2 1534 0 1526 -3 ct 1513 -9 1507 -21 1507 -39 ct 1507 -39 1507 -39 1507 -43 ct
p ef
1663 -127 m 1663 -127 1663 -127 1663 -145 ct 1663 -145 1663 -145 1681 -145 ct
1681 -145 1681 -145 1681 -178 ct 1681 -178 1681 -178 1702 -178 ct 1702 -178 1702 -178 1702 -145 ct
1702 -145 1702 -145 1773 -145 ct 1773 -145 1773 -145 1773 -127 ct 1773 -127 1773 -127 1702 -127 ct
1702 -127 1702 -127 1702 -47 ct 1702 -36 1704 -28 1707 -24 ct 1711 -20 1718 -17 1729 -17 ct
1740 -17 1747 -20 1751 -24 ct 1754 -28 1755 -36 1755 -47 ct 1755 -47 1755 -47 1755 -51 ct
1755 -51 1755 -51 1777 -51 ct 1777 -51 1777 -51 1777 -50 ct 1777 -29 1774 -15 1767 -8 ct
1760 -1 1746 2 1725 2 ct 1708 2 1696 -2 1689 -11 ct 1683 -19 1681 -31 1681 -50 ct
1681 -50 1681 -50 1681 -127 ct 1681 -127 1681 -127 1663 -127 ct p ef
1817 0 m 1817 -30 l 1841 -30 l 1841 0 l 1817 0 l p ef
1923 0 m 1923 0 1923 0 1923 -145 ct 1923 -145 1923 -145 1944 -145 ct 1944 -145 1944 -145 1944 -125 ct
1950 -140 1963 -147 1984 -147 ct 2001 -147 2012 -142 2018 -133 ct 2024 -126 2026 -113 2026 -95 ct
2026 -95 2026 -95 2026 -94 ct 2026 -94 2026 -94 2005 -94 ct 2005 -94 2005 -94 2005 -98 ct
2005 -109 2003 -117 2000 -121 ct 1996 -125 1989 -128 1979 -128 ct 1965 -128 1956 -123 1951 -115 ct
1947 -108 1945 -98 1945 -84 ct 1945 -84 1945 -84 1945 0 ct 1945 0 1945 0 1923 0 ct
p ef
2172 -145 m 2172 -145 2172 -145 2172 0 ct 2172 0 2172 0 2152 0 ct 2152 0 2152 0 2152 -20 ct
2145 -5 2129 2 2104 2 ct 2085 2 2072 -2 2064 -10 ct 2057 -17 2053 -31 2053 -50 ct
2053 -50 2053 -50 2053 -145 ct 2053 -145 2053 -145 2074 -145 ct 2074 -145 2074 -145 2074 -54 ct
2074 -40 2076 -31 2080 -26 ct 2085 -20 2094 -17 2107 -17 ct 2122 -17 2133 -21 2140 -28 ct
2147 -35 2151 -46 2151 -61 ct 2151 -61 2151 -61 2151 -145 ct 2151 -145 2151 -145 2172 -145 ct
p ef
2241 -84 m 2241 -84 2241 -84 2241 -61 ct 2241 -45 2245 -34 2252 -27 ct 2259 -21 2270 -17 2285 -17 ct
2301 -17 2310 -21 2315 -27 ct 2318 -33 2320 -43 2320 -60 ct 2320 -60 2320 -60 2320 -85 ct
2320 -101 2318 -112 2315 -118 ct 2310 -124 2301 -128 2285 -128 ct 2270 -128 2259 -124 2252 -117 ct
2244 -111 2241 -100 2241 -84 ct p
2220 0 m 2220 0 2220 0 2220 -205 ct 2220 -205 2220 -205 2241 -205 ct 2241 -205 2241 -205 2241 -124 ct
2249 -139 2264 -147 2286 -147 ct 2307 -147 2321 -143 2330 -134 ct 2338 -125 2343 -111 2343 -90 ct
2343 -90 2343 -90 2343 -55 ct 2343 -34 2338 -20 2330 -11 ct 2321 -2 2307 2 2286 2 ct
2262 2 2247 -6 2240 -22 ct 2240 -22 2240 -22 2240 0 ct 2240 0 2240 0 2220 0 ct
p ef
2364 -146 m 2364 -146 2364 -146 2386 -146 ct 2386 -146 2386 -146 2429 -20 ct
2429 -20 2429 -20 2472 -146 ct 2472 -146 2472 -146 2493 -146 ct 2493 -146 2493 -146 2438 12 ct
2433 26 2429 37 2424 42 ct 2417 51 2407 56 2395 56 ct 2392 56 2388 56 2384 55 ct
2384 55 2384 55 2384 36 ct 2385 36 2387 36 2391 36 ct 2398 36 2403 35 2407 31 ct
2410 28 2413 22 2416 15 ct 2416 15 2416 15 2421 0 ct 2421 0 2421 0 2415 0 ct 2415 0 2415 0 2364 -146 ct
p ef
2504 -127 m 2504 -127 2504 -127 2504 -145 ct 2504 -145 2504 -145 2525 -145 ct
2525 -146 2525 -148 2525 -150 ct 2525 -152 2525 -154 2525 -155 ct 2525 -172 2527 -185 2533 -192 ct
2540 -201 2551 -205 2568 -205 ct 2576 -205 2584 -205 2592 -204 ct 2592 -204 2592 -204 2592 -185 ct
2590 -185 2589 -185 2587 -185 ct 2581 -185 2577 -185 2574 -185 ct 2562 -185 2554 -183 2551 -178 ct
2548 -175 2546 -167 2546 -155 ct 2546 -155 2546 -155 2546 -145 ct 2546 -145 2546 -145 2592 -145 ct
2592 -145 2592 -145 2592 -127 ct 2592 -127 2592 -127 2546 -127 ct 2546 -127 2546 -127 2546 0 ct
2546 0 2546 0 2525 0 ct 2525 0 2525 0 2525 -127 ct 2525 -127 2525 -127 2504 -127 ct
p ef
2716 -60 m 2716 -60 2716 -60 2716 -85 ct 2716 -102 2714 -113 2710 -118 ct 2706 -124 2695 -127 2680 -127 ct
2680 -127 2680 -127 2670 -127 ct 2654 -127 2644 -124 2639 -118 ct 2635 -113 2634 -102 2634 -85 ct
2634 -85 2634 -85 2634 -60 ct 2634 -43 2636 -32 2639 -27 ct 2644 -21 2654 -17 2670 -17 ct
2670 -17 2670 -17 2680 -17 ct 2695 -17 2705 -21 2710 -27 ct 2714 -32 2716 -43 2716 -60 ct
p
2670 2 m 2648 2 2633 -2 2625 -11 ct 2616 -19 2611 -34 2611 -55 ct 2611 -55 2611 -55 2611 -90 ct
2611 -111 2616 -126 2624 -134 ct 2633 -143 2648 -147 2670 -147 ct 2670 -147 2670 -147 2680 -147 ct
2701 -147 2716 -143 2725 -134 ct 2734 -126 2738 -111 2738 -90 ct 2738 -90 2738 -90 2738 -55 ct
2738 -34 2734 -19 2725 -11 ct 2716 -2 2701 2 2680 2 ct 2680 2 2680 2 2670 2 ct
p ef
2778 0 m 2778 0 2778 0 2778 -145 ct 2778 -145 2778 -145 2799 -145 ct 2799 -145 2799 -145 2799 -125 ct
2805 -140 2818 -147 2839 -147 ct 2856 -147 2867 -142 2873 -133 ct 2879 -126 2881 -113 2881 -95 ct
2881 -95 2881 -95 2881 -94 ct 2881 -94 2881 -94 2860 -94 ct 2860 -94 2860 -94 2860 -98 ct
2860 -109 2858 -117 2855 -121 ct 2851 -125 2844 -128 2834 -128 ct 2820 -128 2811 -123 2806 -115 ct
2802 -108 2800 -98 2800 -84 ct 2800 -84 2800 -84 2800 0 ct 2800 0 2800 0 2778 0 ct
p ef
3009 -60 m 3009 -60 3009 -60 3009 -84 ct 3009 -99 3006 -111 2998 -117 ct 2991 -124 2980 -128 2965 -128 ct
2950 -128 2940 -124 2935 -117 ct 2931 -112 2930 -101 2930 -85 ct 2930 -85 2930 -85 2930 -60 ct
2930 -43 2931 -32 2935 -27 ct 2940 -20 2950 -17 2965 -17 ct 2980 -17 2991 -20 2998 -27 ct
3006 -34 3009 -45 3009 -60 ct p
3030 -145 m 3030 -145 3030 -145 3030 -1 ct 3030 20 3026 35 3018 43 ct 3010 52 2995 56 2974 56 ct
2974 56 2974 56 2964 56 ct 2946 56 2933 53 2924 47 ct 2915 40 2909 28 2908 11 ct
2908 11 2908 11 2930 11 ct 2931 21 2934 28 2940 32 ct 2945 35 2953 36 2964 36 ct
2964 36 2964 36 2974 36 ct 2985 36 2993 35 2999 31 ct 3006 27 3009 20 3009 10 ct
3009 10 3009 10 3009 -20 ct 3002 -5 2986 2 2964 2 ct 2943 2 2929 -2 2920 -11 ct
2912 -19 2908 -34 2908 -55 ct 2908 -55 2908 -55 2908 -90 ct 2908 -110 2912 -125 2920 -134 ct
2929 -143 2943 -147 2964 -147 ct 2988 -147 3003 -139 3010 -122 ct 3010 -122 3010 -122 3010 -145 ct
3010 -145 3010 -145 3030 -145 ct p ef
3091 -87 m 3091 -87 3091 -87 3173 -87 ct 3173 -87 3173 -87 3173 -93 ct 3173 -106 3170 -115 3165 -120 ct
3160 -125 3151 -127 3137 -127 ct 3137 -127 3137 -127 3127 -127 ct 3113 -127 3103 -125 3098 -120 ct
3093 -115 3091 -106 3091 -93 ct 3091 -93 3091 -93 3091 -87 ct p
3127 2 m 3105 2 3090 -2 3082 -11 ct 3073 -19 3068 -34 3068 -55 ct 3068 -55 3068 -55 3068 -90 ct
3068 -111 3073 -126 3081 -134 ct 3090 -143 3105 -147 3127 -147 ct 3127 -147 3127 -147 3137 -147 ct
3158 -147 3173 -143 3182 -134 ct 3191 -126 3195 -111 3195 -90 ct 3195 -90 3195 -90 3195 -68 ct
3195 -68 3195 -68 3091 -68 ct 3091 -65 3090 -61 3090 -55 ct 3090 -41 3093 -31 3098 -25 ct
3102 -20 3112 -17 3127 -17 ct 3127 -17 3127 -17 3137 -17 ct 3148 -17 3156 -19 3161 -22 ct
3168 -25 3171 -32 3172 -42 ct 3172 -42 3172 -42 3195 -42 ct 3193 -26 3188 -14 3177 -7 ct
3168 -1 3155 2 3137 2 ct 3137 2 3137 2 3127 2 ct p ef
3231 0 m 3231 -30 l 3255 -30 l 3255 0 l 3231 0 l p ef
3436 -60 m 3436 -60 3436 -60 3436 -85 ct 3436 -102 3434 -113 3430 -118 ct 3426 -124 3415 -127 3400 -127 ct
3400 -127 3400 -127 3390 -127 ct 3374 -127 3364 -124 3359 -118 ct 3355 -113 3354 -102 3354 -85 ct
3354 -85 3354 -85 3354 -60 ct 3354 -43 3356 -32 3359 -27 ct 3364 -21 3374 -17 3390 -17 ct
3390 -17 3390 -17 3400 -17 ct 3415 -17 3425 -21 3430 -27 ct 3434 -32 3436 -43 3436 -60 ct
p
3390 2 m 3368 2 3353 -2 3345 -11 ct 3336 -19 3331 -34 3331 -55 ct 3331 -55 3331 -55 3331 -90 ct
3331 -111 3336 -126 3344 -134 ct 3353 -143 3368 -147 3390 -147 ct 3390 -147 3390 -147 3400 -147 ct
3421 -147 3436 -143 3445 -134 ct 3454 -126 3458 -111 3458 -90 ct 3458 -90 3458 -90 3458 -55 ct
3458 -34 3454 -19 3445 -11 ct 3436 -2 3421 2 3400 2 ct 3400 2 3400 2 3390 2 ct
p ef
3498 0 m 3498 0 3498 0 3498 -145 ct 3498 -145 3498 -145 3519 -145 ct 3519 -145 3519 -145 3519 -125 ct
3525 -140 3538 -147 3559 -147 ct 3576 -147 3587 -142 3593 -133 ct 3599 -126 3601 -113 3601 -95 ct
3601 -95 3601 -95 3601 -94 ct 3601 -94 3601 -94 3580 -94 ct 3580 -94 3580 -94 3580 -98 ct
3580 -109 3578 -117 3575 -121 ct 3571 -125 3564 -128 3554 -128 ct 3540 -128 3531 -123 3526 -115 ct
3522 -108 3520 -98 3520 -84 ct 3520 -84 3520 -84 3520 0 ct 3520 0 3520 0 3498 0 ct
p ef
3729 -60 m 3729 -60 3729 -60 3729 -84 ct 3729 -99 3726 -111 3718 -117 ct 3711 -124 3700 -128 3685 -128 ct
3670 -128 3660 -124 3655 -117 ct 3651 -112 3650 -101 3650 -85 ct 3650 -85 3650 -85 3650 -60 ct
3650 -43 3651 -32 3655 -27 ct 3660 -20 3670 -17 3685 -17 ct 3700 -17 3711 -20 3718 -27 ct
3726 -34 3729 -45 3729 -60 ct p
3750 -145 m 3750 -145 3750 -145 3750 -1 ct 3750 20 3746 35 3738 43 ct 3730 52 3715 56 3694 56 ct
3694 56 3694 56 3684 56 ct 3666 56 3653 53 3644 47 ct 3635 40 3629 28 3628 11 ct
3628 11 3628 11 3650 11 ct 3651 21 3654 28 3660 32 ct 3665 35 3673 36 3684 36 ct
3684 36 3684 36 3694 36 ct 3705 36 3713 35 3719 31 ct 3726 27 3729 20 3729 10 ct
3729 10 3729 10 3729 -20 ct 3722 -5 3706 2 3684 2 ct 3663 2 3649 -2 3640 -11 ct
3632 -19 3628 -34 3628 -55 ct 3628 -55 3628 -55 3628 -90 ct 3628 -110 3632 -125 3640 -134 ct
3649 -143 3663 -147 3684 -147 ct 3708 -147 3723 -139 3730 -122 ct 3730 -122 3730 -122 3730 -145 ct
3730 -145 3730 -145 3750 -145 ct p ef
pom
gr
gs
pum
13975 29058 t
pom
gr
gs
pum
14119 29058 t
44 -84 m 44 -84 44 -84 44 -61 ct 44 -45 48 -34 55 -27 ct 62 -21 73 -17 88 -17 ct
104 -17 113 -21 118 -27 ct 121 -33 123 -43 123 -60 ct 123 -60 123 -60 123 -85 ct
123 -101 121 -112 118 -118 ct 113 -124 104 -128 88 -128 ct 73 -128 62 -124 55 -117 ct
47 -111 44 -100 44 -84 ct p
23 0 m 23 0 23 0 23 -205 ct 23 -205 23 -205 44 -205 ct 44 -205 44 -205 44 -124 ct
52 -139 67 -147 89 -147 ct 110 -147 124 -143 133 -134 ct 141 -125 146 -111 146 -90 ct
146 -90 146 -90 146 -55 ct 146 -34 141 -20 133 -11 ct 124 -2 110 2 89 2 ct 65 2 50 -6 43 -22 ct
43 -22 43 -22 43 0 ct 43 0 43 0 23 0 ct p ef
167 -146 m 167 -146 167 -146 189 -146 ct 189 -146 189 -146 232 -20 ct 232 -20 232 -20 275 -146 ct
275 -146 275 -146 296 -146 ct 296 -146 296 -146 241 12 ct 236 26 232 37 227 42 ct
220 51 210 56 198 56 ct 195 56 191 56 187 55 ct 187 55 187 55 187 36 ct 188 36 190 36 194 36 ct
201 36 206 35 210 31 ct 213 28 216 22 219 15 ct 219 15 219 15 224 0 ct 224 0 224 0 218 0 ct
218 0 218 0 167 -146 ct p ef
464 -67 m 464 -67 464 -67 487 -67 ct 487 -67 487 -67 487 -63 ct 487 -41 491 -28 499 -23 ct
505 -20 524 -18 557 -18 ct 578 -18 592 -22 598 -28 ct 602 -32 603 -41 603 -55 ct
603 -68 602 -77 601 -80 ct 598 -89 591 -94 580 -94 ct 580 -94 580 -94 517 -94 ct
498 -94 485 -98 478 -106 ct 471 -115 467 -129 467 -148 ct 467 -171 472 -188 482 -197 ct
488 -202 497 -205 509 -207 ct 515 -207 525 -207 539 -207 ct 539 -207 539 -207 546 -207 ct
563 -207 574 -207 581 -206 ct 594 -204 605 -200 612 -194 ct 620 -187 624 -175 624 -157 ct
624 -153 624 -149 623 -147 ct 623 -147 623 -147 601 -147 ct 601 -147 601 -147 601 -152 ct
601 -166 599 -175 595 -178 ct 590 -183 571 -186 538 -186 ct 520 -186 508 -184 503 -181 ct
494 -177 490 -166 490 -150 ct 490 -139 492 -131 495 -127 ct 499 -122 506 -119 516 -118 ct
516 -118 516 -118 581 -113 ct 598 -111 610 -106 617 -98 ct 623 -90 626 -77 626 -59 ct
626 -36 623 -21 615 -12 ct 609 -5 598 0 584 2 ct 578 3 566 3 549 3 ct 549 3 549 3 539 3 ct
524 3 513 3 508 2 ct 495 0 486 -4 479 -10 ct 469 -19 464 -35 464 -57 ct 464 -57 464 -57 464 -67 ct
p ef
670 0 m 670 0 670 0 670 -205 ct 670 -205 670 -205 691 -205 ct 691 -205 691 -205 691 -125 ct
698 -140 713 -147 738 -147 ct 757 -147 771 -143 778 -135 ct 786 -128 790 -114 790 -95 ct
790 -95 790 -95 790 0 ct 790 0 790 0 768 0 ct 768 0 768 0 768 -90 ct 768 -105 766 -114 762 -119 ct
758 -125 749 -128 735 -128 ct 720 -128 709 -124 702 -117 ct 695 -110 692 -99 692 -84 ct
692 -84 692 -84 692 0 ct 692 0 692 0 670 0 ct p ef
930 -37 m 930 -37 930 -37 930 -52 ct 930 -66 915 -72 886 -72 ct 874 -72 865 -71 861 -69 ct
854 -65 851 -58 851 -47 ct 851 -34 854 -26 861 -22 ct 865 -19 875 -18 888 -18 ct
916 -18 930 -24 930 -37 ct p
931 -15 m 925 -4 910 2 885 2 ct 865 2 851 -1 843 -6 ct 833 -12 828 -25 828 -44 ct
828 -63 832 -75 840 -82 ct 846 -87 861 -90 884 -90 ct 908 -90 924 -85 930 -76 ct
930 -76 930 -76 930 -101 ct 930 -114 926 -123 919 -126 ct 915 -128 905 -129 889 -129 ct
877 -129 870 -128 866 -127 ct 859 -124 855 -118 855 -109 ct 855 -109 855 -109 834 -109 ct
834 -109 834 -109 834 -113 ct 834 -127 839 -137 851 -142 ct 858 -145 871 -147 887 -147 ct
915 -147 933 -144 940 -139 ct 945 -135 949 -129 950 -122 ct 951 -118 952 -111 952 -102 ct
952 -102 952 -102 952 0 ct 952 0 952 0 932 0 ct 932 0 932 0 931 -15 ct p ef
996 -181 m 996 -205 l 1018 -205 l 1018 -181 l 996 -181 l p
996 0 m 996 -145 l 1018 -145 l 1018 0 l 996 0 l p ef
1063 0 m 1063 0 1063 0 1063 -145 ct 1063 -145 1063 -145 1084 -145 ct 1084 -145 1084 -145 1084 -125 ct
1090 -140 1103 -147 1124 -147 ct 1141 -147 1152 -142 1158 -133 ct 1164 -126 1166 -113 1166 -95 ct
1166 -95 1166 -95 1166 -94 ct 1166 -94 1166 -94 1145 -94 ct 1145 -94 1145 -94 1145 -98 ct
1145 -109 1143 -117 1140 -121 ct 1136 -125 1129 -128 1119 -128 ct 1105 -128 1096 -123 1091 -115 ct
1087 -108 1085 -98 1085 -84 ct 1085 -84 1085 -84 1085 0 ct 1085 0 1085 0 1063 0 ct
p ef
1294 -60 m 1294 -60 1294 -60 1294 -85 ct 1294 -102 1292 -113 1288 -118 ct 1284 -124 1273 -127 1258 -127 ct
1258 -127 1258 -127 1248 -127 ct 1232 -127 1222 -124 1217 -118 ct 1213 -113 1212 -102 1212 -85 ct
1212 -85 1212 -85 1212 -60 ct 1212 -43 1214 -32 1217 -27 ct 1222 -21 1232 -17 1248 -17 ct
1248 -17 1248 -17 1258 -17 ct 1273 -17 1283 -21 1288 -27 ct 1292 -32 1294 -43 1294 -60 ct
p
1248 2 m 1226 2 1211 -2 1203 -11 ct 1194 -19 1189 -34 1189 -55 ct 1189 -55 1189 -55 1189 -90 ct
1189 -111 1194 -126 1202 -134 ct 1211 -143 1226 -147 1248 -147 ct 1248 -147 1248 -147 1258 -147 ct
1279 -147 1294 -143 1303 -134 ct 1312 -126 1316 -111 1316 -90 ct 1316 -90 1316 -90 1316 -55 ct
1316 -34 1312 -19 1303 -11 ct 1294 -2 1279 2 1258 2 ct 1258 2 1258 2 1248 2 ct
p ef
1356 0 m 1356 0 1356 0 1356 -145 ct 1356 -145 1356 -145 1377 -145 ct 1377 -145 1377 -145 1377 -125 ct
1384 -140 1399 -147 1424 -147 ct 1443 -147 1457 -143 1464 -135 ct 1472 -128 1476 -114 1476 -95 ct
1476 -95 1476 -95 1476 0 ct 1476 0 1476 0 1454 0 ct 1454 0 1454 0 1454 -91 ct 1454 -105 1452 -114 1448 -119 ct
1444 -125 1435 -128 1421 -128 ct 1392 -128 1378 -113 1378 -84 ct 1378 -84 1378 -84 1378 0 ct
1378 0 1378 0 1356 0 ct p ef
1640 -183 m 1640 -205 l 1793 -205 l 1793 -183 l 1728 -183 l 1728 0 l
1705 0 l 1705 -183 l 1640 -183 l p ef
1912 -60 m 1912 -60 1912 -60 1912 -85 ct 1912 -102 1910 -113 1906 -118 ct 1902 -124 1891 -127 1876 -127 ct
1876 -127 1876 -127 1866 -127 ct 1850 -127 1840 -124 1835 -118 ct 1831 -113 1830 -102 1830 -85 ct
1830 -85 1830 -85 1830 -60 ct 1830 -43 1832 -32 1835 -27 ct 1840 -21 1850 -17 1866 -17 ct
1866 -17 1866 -17 1876 -17 ct 1891 -17 1901 -21 1906 -27 ct 1910 -32 1912 -43 1912 -60 ct
p
1866 2 m 1844 2 1829 -2 1821 -11 ct 1812 -19 1807 -34 1807 -55 ct 1807 -55 1807 -55 1807 -90 ct
1807 -111 1812 -126 1820 -134 ct 1829 -143 1844 -147 1866 -147 ct 1866 -147 1866 -147 1876 -147 ct
1897 -147 1912 -143 1921 -134 ct 1930 -126 1934 -111 1934 -90 ct 1934 -90 1934 -90 1934 -55 ct
1934 -34 1930 -19 1921 -11 ct 1912 -2 1897 2 1876 2 ct 1876 2 1876 2 1866 2 ct
p ef
1974 0 m 1974 -205 l 1996 -205 l 1996 0 l 1974 0 l p ef
2058 -87 m 2058 -87 2058 -87 2140 -87 ct 2140 -87 2140 -87 2140 -93 ct 2140 -106 2137 -115 2132 -120 ct
2127 -125 2118 -127 2104 -127 ct 2104 -127 2104 -127 2094 -127 ct 2080 -127 2070 -125 2065 -120 ct
2060 -115 2058 -106 2058 -93 ct 2058 -93 2058 -93 2058 -87 ct p
2094 2 m 2072 2 2057 -2 2049 -11 ct 2040 -19 2035 -34 2035 -55 ct 2035 -55 2035 -55 2035 -90 ct
2035 -111 2040 -126 2048 -134 ct 2057 -143 2072 -147 2094 -147 ct 2094 -147 2094 -147 2104 -147 ct
2125 -147 2140 -143 2149 -134 ct 2158 -126 2162 -111 2162 -90 ct 2162 -90 2162 -90 2162 -68 ct
2162 -68 2162 -68 2058 -68 ct 2058 -65 2057 -61 2057 -55 ct 2057 -41 2060 -31 2065 -25 ct
2069 -20 2079 -17 2094 -17 ct 2094 -17 2094 -17 2104 -17 ct 2115 -17 2123 -19 2128 -22 ct
2135 -25 2138 -32 2139 -42 ct 2139 -42 2139 -42 2162 -42 ct 2160 -26 2155 -14 2144 -7 ct
2135 -1 2122 2 2104 2 ct 2104 2 2104 2 2094 2 ct p ef
2298 -61 m 2298 -61 2298 -61 2298 -84 ct 2298 -100 2294 -111 2287 -117 ct 2280 -124 2269 -128 2254 -128 ct
2238 -128 2229 -124 2224 -118 ct 2220 -112 2219 -101 2219 -85 ct 2219 -85 2219 -85 2219 -60 ct
2219 -43 2220 -33 2224 -27 ct 2229 -21 2238 -17 2254 -17 ct 2269 -17 2280 -21 2287 -28 ct
2294 -34 2298 -45 2298 -61 ct p
2299 -22 m 2292 -6 2277 2 2253 2 ct 2232 2 2218 -2 2209 -11 ct 2201 -20 2196 -34 2196 -55 ct
2196 -55 2196 -55 2196 -90 ct 2196 -110 2201 -125 2209 -134 ct 2218 -143 2232 -147 2253 -147 ct
2275 -147 2290 -139 2298 -124 ct 2298 -124 2298 -124 2298 -205 ct 2298 -205 2298 -205 2319 -205 ct
2319 -205 2319 -205 2319 0 ct 2319 0 2319 0 2299 0 ct 2299 0 2299 0 2299 -22 ct
p ef
2462 -60 m 2462 -60 2462 -60 2462 -85 ct 2462 -102 2460 -113 2456 -118 ct 2452 -124 2441 -127 2426 -127 ct
2426 -127 2426 -127 2416 -127 ct 2400 -127 2390 -124 2385 -118 ct 2381 -113 2380 -102 2380 -85 ct
2380 -85 2380 -85 2380 -60 ct 2380 -43 2382 -32 2385 -27 ct 2390 -21 2400 -17 2416 -17 ct
2416 -17 2416 -17 2426 -17 ct 2441 -17 2451 -21 2456 -27 ct 2460 -32 2462 -43 2462 -60 ct
p
2416 2 m 2394 2 2379 -2 2371 -11 ct 2362 -19 2357 -34 2357 -55 ct 2357 -55 2357 -55 2357 -90 ct
2357 -111 2362 -126 2370 -134 ct 2379 -143 2394 -147 2416 -147 ct 2416 -147 2416 -147 2426 -147 ct
2447 -147 2462 -143 2471 -134 ct 2480 -126 2484 -111 2484 -90 ct 2484 -90 2484 -90 2484 -55 ct
2484 -34 2480 -19 2471 -11 ct 2462 -2 2447 2 2426 2 ct 2426 2 2426 2 2416 2 ct
p ef
2668 0 m 2668 0 2668 0 2668 -205 ct 2668 -205 2668 -205 2689 -205 ct 2689 -205 2689 -205 2689 -125 ct
2696 -140 2711 -147 2736 -147 ct 2755 -147 2769 -143 2776 -135 ct 2784 -128 2788 -114 2788 -95 ct
2788 -95 2788 -95 2788 0 ct 2788 0 2788 0 2766 0 ct 2766 0 2766 0 2766 -90 ct 2766 -105 2764 -114 2760 -119 ct
2756 -125 2747 -128 2733 -128 ct 2718 -128 2707 -124 2700 -117 ct 2693 -110 2690 -99 2690 -84 ct
2690 -84 2690 -84 2690 0 ct 2690 0 2690 0 2668 0 ct p ef
2819 -127 m 2819 -127 2819 -127 2819 -145 ct 2819 -145 2819 -145 2837 -145 ct
2837 -145 2837 -145 2837 -178 ct 2837 -178 2837 -178 2858 -178 ct 2858 -178 2858 -178 2858 -145 ct
2858 -145 2858 -145 2929 -145 ct 2929 -145 2929 -145 2929 -127 ct 2929 -127 2929 -127 2858 -127 ct
2858 -127 2858 -127 2858 -47 ct 2858 -36 2860 -28 2863 -24 ct 2867 -20 2874 -17 2885 -17 ct
2896 -17 2903 -20 2907 -24 ct 2910 -28 2911 -36 2911 -47 ct 2911 -47 2911 -47 2911 -51 ct
2911 -51 2911 -51 2933 -51 ct 2933 -51 2933 -51 2933 -50 ct 2933 -29 2930 -15 2923 -8 ct
2916 -1 2902 2 2881 2 ct 2864 2 2852 -2 2845 -11 ct 2839 -19 2837 -31 2837 -50 ct
2837 -50 2837 -50 2837 -127 ct 2837 -127 2837 -127 2819 -127 ct p ef
2963 -127 m 2963 -127 2963 -127 2963 -145 ct 2963 -145 2963 -145 2981 -145 ct
2981 -145 2981 -145 2981 -178 ct 2981 -178 2981 -178 3002 -178 ct 3002 -178 3002 -178 3002 -145 ct
3002 -145 3002 -145 3073 -145 ct 3073 -145 3073 -145 3073 -127 ct 3073 -127 3073 -127 3002 -127 ct
3002 -127 3002 -127 3002 -47 ct 3002 -36 3004 -28 3007 -24 ct 3011 -20 3018 -17 3029 -17 ct
3040 -17 3047 -20 3051 -24 ct 3054 -28 3055 -36 3055 -47 ct 3055 -47 3055 -47 3055 -51 ct
3055 -51 3055 -51 3077 -51 ct 3077 -51 3077 -51 3077 -50 ct 3077 -29 3074 -15 3067 -8 ct
3060 -1 3046 2 3025 2 ct 3008 2 2996 -2 2989 -11 ct 2983 -19 2981 -31 2981 -50 ct
2981 -50 2981 -50 2981 -127 ct 2981 -127 2981 -127 2963 -127 ct p ef
3143 -60 m 3143 -45 3147 -34 3154 -27 ct 3161 -20 3172 -17 3187 -17 ct 3203 -17 3212 -20 3217 -27 ct
3220 -32 3222 -43 3222 -60 ct 3222 -60 3222 -60 3222 -85 ct 3222 -101 3220 -112 3217 -117 ct
3212 -124 3203 -128 3187 -128 ct 3172 -128 3161 -124 3154 -117 ct 3146 -111 3143 -99 3143 -84 ct
3143 -84 3143 -84 3143 -60 ct p
3122 -145 m 3122 -145 3122 -145 3142 -145 ct 3142 -145 3142 -145 3142 -122 ct
3149 -139 3164 -147 3188 -147 ct 3209 -147 3223 -143 3232 -134 ct 3240 -125 3245 -110 3245 -90 ct
3245 -90 3245 -90 3245 -55 ct 3245 -34 3240 -19 3232 -11 ct 3223 -2 3209 2 3188 2 ct
3166 2 3151 -5 3143 -20 ct 3143 -20 3143 -20 3143 56 ct 3143 56 3143 56 3122 56 ct
3122 56 3122 56 3122 -145 ct p ef
3296 0 m 3296 -30 l 3320 -30 l 3320 0 l 3296 0 l p
3296 -115 m 3296 -145 l 3320 -145 l 3320 -115 l 3296 -115 l p ef
3373 26 m 3355 26 l 3427 -208 l 3447 -208 l 3373 26 l p ef
3449 26 m 3431 26 l 3503 -208 l 3523 -208 l 3449 26 l p ef
3522 -145 m 3542 -145 l 3575 -20 l 3609 -145 l 3638 -145 l 3672 -20 l
3705 -145 l 3726 -145 l 3687 0 l 3657 0 l 3624 -124 l 3590 0 l 3561 0 l
3522 -145 l p ef
3742 -145 m 3762 -145 l 3795 -20 l 3829 -145 l 3858 -145 l 3892 -20 l
3925 -145 l 3946 -145 l 3907 0 l 3877 0 l 3844 -124 l 3810 0 l 3781 0 l
3742 -145 l p ef
3962 -145 m 3982 -145 l 4015 -20 l 4049 -145 l 4078 -145 l 4112 -20 l
4145 -145 l 4166 -145 l 4127 0 l 4097 0 l 4064 -124 l 4030 0 l 4001 0 l
3962 -145 l p ef
4192 0 m 4192 -30 l 4216 -30 l 4216 0 l 4192 0 l p ef
4298 0 m 4298 0 4298 0 4298 -205 ct 4298 -205 4298 -205 4319 -205 ct 4319 -205 4319 -205 4319 -125 ct
4326 -140 4341 -147 4366 -147 ct 4385 -147 4399 -143 4406 -135 ct 4414 -128 4418 -114 4418 -95 ct
4418 -95 4418 -95 4418 0 ct 4418 0 4418 0 4396 0 ct 4396 0 4396 0 4396 -90 ct 4396 -105 4394 -114 4390 -119 ct
4386 -125 4377 -128 4363 -128 ct 4348 -128 4337 -124 4330 -117 ct 4323 -110 4320 -99 4320 -84 ct
4320 -84 4320 -84 4320 0 ct 4320 0 4320 0 4298 0 ct p ef
4558 -37 m 4558 -37 4558 -37 4558 -52 ct 4558 -66 4543 -72 4514 -72 ct 4502 -72 4493 -71 4489 -69 ct
4482 -65 4479 -58 4479 -47 ct 4479 -34 4482 -26 4489 -22 ct 4493 -19 4503 -18 4516 -18 ct
4544 -18 4558 -24 4558 -37 ct p
4559 -15 m 4553 -4 4538 2 4513 2 ct 4493 2 4479 -1 4471 -6 ct 4461 -12 4456 -25 4456 -44 ct
4456 -63 4460 -75 4468 -82 ct 4474 -87 4489 -90 4512 -90 ct 4536 -90 4552 -85 4558 -76 ct
4558 -76 4558 -76 4558 -101 ct 4558 -114 4554 -123 4547 -126 ct 4543 -128 4533 -129 4517 -129 ct
4505 -129 4498 -128 4494 -127 ct 4487 -124 4483 -118 4483 -109 ct 4483 -109 4483 -109 4462 -109 ct
4462 -109 4462 -109 4462 -113 ct 4462 -127 4467 -137 4479 -142 ct 4486 -145 4499 -147 4515 -147 ct
4543 -147 4561 -144 4568 -139 ct 4573 -135 4577 -129 4578 -122 ct 4579 -118 4580 -111 4580 -102 ct
4580 -102 4580 -102 4580 0 ct 4580 0 4580 0 4560 0 ct 4560 0 4560 0 4559 -15 ct
p ef
4619 -43 m 4619 -43 4619 -43 4641 -43 ct 4641 -43 4641 -43 4641 -39 ct 4641 -29 4645 -22 4654 -19 ct
4659 -17 4669 -16 4682 -16 ct 4697 -16 4707 -17 4711 -19 ct 4719 -22 4723 -29 4723 -41 ct
4723 -52 4720 -58 4715 -62 ct 4711 -65 4704 -66 4691 -66 ct 4685 -66 4678 -66 4670 -66 ct
4651 -66 4639 -68 4635 -71 ct 4625 -76 4620 -88 4620 -106 ct 4620 -125 4627 -137 4640 -142 ct
4648 -145 4663 -147 4686 -147 ct 4705 -147 4717 -145 4725 -142 ct 4736 -137 4742 -126 4742 -111 ct
4742 -111 4742 -111 4720 -111 ct 4720 -111 4720 -111 4720 -112 ct 4720 -120 4715 -125 4704 -127 ct
4700 -128 4692 -129 4679 -129 ct 4665 -129 4656 -128 4653 -126 ct 4645 -124 4642 -117 4642 -106 ct
4642 -96 4643 -90 4647 -88 ct 4651 -86 4661 -84 4676 -84 ct 4679 -84 4682 -84 4684 -84 ct
4694 -84 4702 -84 4706 -82 ct 4717 -82 4724 -81 4728 -79 ct 4740 -74 4745 -62 4745 -42 ct
4745 -33 4744 -25 4742 -20 ct 4740 -14 4735 -8 4727 -4 ct 4721 0 4706 2 4682 2 ct
4661 2 4646 0 4638 -3 ct 4625 -9 4619 -21 4619 -39 ct 4619 -39 4619 -39 4619 -43 ct
p ef
4789 0 m 4789 0 4789 0 4789 -205 ct 4789 -205 4789 -205 4810 -205 ct 4810 -205 4810 -205 4810 -125 ct
4817 -140 4832 -147 4857 -147 ct 4876 -147 4890 -143 4897 -135 ct 4905 -128 4909 -114 4909 -95 ct
4909 -95 4909 -95 4909 0 ct 4909 0 4909 0 4887 0 ct 4887 0 4887 0 4887 -90 ct 4887 -105 4885 -114 4881 -119 ct
4877 -125 4868 -128 4854 -128 ct 4839 -128 4828 -124 4821 -117 ct 4814 -110 4811 -99 4811 -84 ct
4811 -84 4811 -84 4811 0 ct 4811 0 4811 0 4789 0 ct p ef
5007 2 m 4985 2 4970 -2 4962 -11 ct 4953 -19 4948 -34 4948 -55 ct 4948 -55 4948 -55 4948 -90 ct
4948 -111 4953 -126 4961 -134 ct 4970 -143 4985 -147 5007 -147 ct 5007 -147 5007 -147 5017 -147 ct
5036 -147 5050 -143 5059 -136 ct 5069 -129 5075 -115 5075 -96 ct 5075 -96 5075 -96 5053 -96 ct
5052 -109 5049 -117 5044 -122 ct 5039 -125 5030 -127 5017 -127 ct 5017 -127 5017 -127 5007 -127 ct
4991 -127 4981 -124 4976 -118 ct 4972 -113 4971 -102 4971 -85 ct 4971 -85 4971 -85 4971 -60 ct
4971 -43 4973 -32 4976 -27 ct 4981 -21 4991 -17 5007 -17 ct 5007 -17 5007 -17 5017 -17 ct
5030 -17 5039 -20 5045 -24 ct 5050 -29 5053 -38 5053 -51 ct 5053 -51 5053 -51 5053 -53 ct
5053 -53 5053 -53 5075 -53 ct 5075 -53 5075 -53 5075 -51 ct 5075 -31 5070 -17 5060 -9 ct
5051 -2 5037 2 5017 2 ct 5017 2 5017 2 5007 2 ct p ef
5214 -60 m 5214 -60 5214 -60 5214 -85 ct 5214 -102 5212 -113 5208 -118 ct 5204 -124 5193 -127 5178 -127 ct
5178 -127 5178 -127 5168 -127 ct 5152 -127 5142 -124 5137 -118 ct 5133 -113 5132 -102 5132 -85 ct
5132 -85 5132 -85 5132 -60 ct 5132 -43 5134 -32 5137 -27 ct 5142 -21 5152 -17 5168 -17 ct
5168 -17 5168 -17 5178 -17 ct 5193 -17 5203 -21 5208 -27 ct 5212 -32 5214 -43 5214 -60 ct
p
5168 2 m 5146 2 5131 -2 5123 -11 ct 5114 -19 5109 -34 5109 -55 ct 5109 -55 5109 -55 5109 -90 ct
5109 -111 5114 -126 5122 -134 ct 5131 -143 5146 -147 5168 -147 ct 5168 -147 5168 -147 5178 -147 ct
5199 -147 5214 -143 5223 -134 ct 5232 -126 5236 -111 5236 -90 ct 5236 -90 5236 -90 5236 -55 ct
5236 -34 5232 -19 5223 -11 ct 5214 -2 5199 2 5178 2 ct 5178 2 5178 2 5168 2 ct
p ef
5372 -61 m 5372 -61 5372 -61 5372 -84 ct 5372 -100 5368 -111 5361 -117 ct 5354 -124 5343 -128 5328 -128 ct
5312 -128 5303 -124 5298 -118 ct 5294 -112 5293 -101 5293 -85 ct 5293 -85 5293 -85 5293 -60 ct
5293 -43 5294 -33 5298 -27 ct 5303 -21 5312 -17 5328 -17 ct 5343 -17 5354 -21 5361 -28 ct
5368 -34 5372 -45 5372 -61 ct p
5373 -22 m 5366 -6 5351 2 5327 2 ct 5306 2 5292 -2 5283 -11 ct 5275 -20 5270 -34 5270 -55 ct
5270 -55 5270 -55 5270 -90 ct 5270 -110 5275 -125 5283 -134 ct 5292 -143 5306 -147 5327 -147 ct
5349 -147 5364 -139 5372 -124 ct 5372 -124 5372 -124 5372 -205 ct 5372 -205 5372 -205 5393 -205 ct
5393 -205 5393 -205 5393 0 ct 5393 0 5393 0 5373 0 ct 5373 0 5373 0 5373 -22 ct
p ef
5453 -87 m 5453 -87 5453 -87 5535 -87 ct 5535 -87 5535 -87 5535 -93 ct 5535 -106 5532 -115 5527 -120 ct
5522 -125 5513 -127 5499 -127 ct 5499 -127 5499 -127 5489 -127 ct 5475 -127 5465 -125 5460 -120 ct
5455 -115 5453 -106 5453 -93 ct 5453 -93 5453 -93 5453 -87 ct p
5489 2 m 5467 2 5452 -2 5444 -11 ct 5435 -19 5430 -34 5430 -55 ct 5430 -55 5430 -55 5430 -90 ct
5430 -111 5435 -126 5443 -134 ct 5452 -143 5467 -147 5489 -147 ct 5489 -147 5489 -147 5499 -147 ct
5520 -147 5535 -143 5544 -134 ct 5553 -126 5557 -111 5557 -90 ct 5557 -90 5557 -90 5557 -68 ct
5557 -68 5557 -68 5453 -68 ct 5453 -65 5452 -61 5452 -55 ct 5452 -41 5455 -31 5460 -25 ct
5464 -20 5474 -17 5489 -17 ct 5489 -17 5489 -17 5499 -17 ct 5510 -17 5518 -19 5523 -22 ct
5530 -25 5533 -32 5534 -42 ct 5534 -42 5534 -42 5557 -42 ct 5555 -26 5550 -14 5539 -7 ct
5530 -1 5517 2 5499 2 ct 5499 2 5499 2 5489 2 ct p ef
5593 0 m 5593 -30 l 5617 -30 l 5617 0 l 5593 0 l p ef
5716 -87 m 5716 -87 5716 -87 5798 -87 ct 5798 -87 5798 -87 5798 -93 ct 5798 -106 5795 -115 5790 -120 ct
5785 -125 5776 -127 5762 -127 ct 5762 -127 5762 -127 5752 -127 ct 5738 -127 5728 -125 5723 -120 ct
5718 -115 5716 -106 5716 -93 ct 5716 -93 5716 -93 5716 -87 ct p
5752 2 m 5730 2 5715 -2 5707 -11 ct 5698 -19 5693 -34 5693 -55 ct 5693 -55 5693 -55 5693 -90 ct
5693 -111 5698 -126 5706 -134 ct 5715 -143 5730 -147 5752 -147 ct 5752 -147 5752 -147 5762 -147 ct
5783 -147 5798 -143 5807 -134 ct 5816 -126 5820 -111 5820 -90 ct 5820 -90 5820 -90 5820 -68 ct
5820 -68 5820 -68 5716 -68 ct 5716 -65 5715 -61 5715 -55 ct 5715 -41 5718 -31 5723 -25 ct
5727 -20 5737 -17 5752 -17 ct 5752 -17 5752 -17 5762 -17 ct 5773 -17 5781 -19 5786 -22 ct
5793 -25 5796 -32 5797 -42 ct 5797 -42 5797 -42 5820 -42 ct 5818 -26 5813 -14 5802 -7 ct
5793 -1 5780 2 5762 2 ct 5762 2 5762 2 5752 2 ct p ef
5846 -127 m 5846 -127 5846 -127 5846 -145 ct 5846 -145 5846 -145 5864 -145 ct
5864 -145 5864 -145 5864 -178 ct 5864 -178 5864 -178 5885 -178 ct 5885 -178 5885 -178 5885 -145 ct
5885 -145 5885 -145 5956 -145 ct 5956 -145 5956 -145 5956 -127 ct 5956 -127 5956 -127 5885 -127 ct
5885 -127 5885 -127 5885 -47 ct 5885 -36 5887 -28 5890 -24 ct 5894 -20 5901 -17 5912 -17 ct
5923 -17 5930 -20 5934 -24 ct 5937 -28 5938 -36 5938 -47 ct 5938 -47 5938 -47 5938 -51 ct
5938 -51 5938 -51 5960 -51 ct 5960 -51 5960 -51 5960 -50 ct 5960 -29 5957 -15 5950 -8 ct
5943 -1 5929 2 5908 2 ct 5891 2 5879 -2 5872 -11 ct 5866 -19 5864 -31 5864 -50 ct
5864 -50 5864 -50 5864 -127 ct 5864 -127 5864 -127 5846 -127 ct p ef
6004 -181 m 6004 -205 l 6026 -205 l 6026 -181 l 6004 -181 l p
6004 0 m 6004 -145 l 6026 -145 l 6026 0 l 6004 0 l p ef
6067 0 m 6067 -30 l 6091 -30 l 6091 0 l 6067 0 l p ef
6195 -84 m 6195 -84 6195 -84 6195 -61 ct 6195 -45 6199 -34 6206 -27 ct 6213 -21 6224 -17 6239 -17 ct
6255 -17 6264 -21 6269 -27 ct 6272 -33 6274 -43 6274 -60 ct 6274 -60 6274 -60 6274 -85 ct
6274 -101 6272 -112 6269 -118 ct 6264 -124 6255 -128 6239 -128 ct 6224 -128 6213 -124 6206 -117 ct
6198 -111 6195 -100 6195 -84 ct p
6174 0 m 6174 0 6174 0 6174 -205 ct 6174 -205 6174 -205 6195 -205 ct 6195 -205 6195 -205 6195 -124 ct
6203 -139 6218 -147 6240 -147 ct 6261 -147 6275 -143 6284 -134 ct 6292 -125 6297 -111 6297 -90 ct
6297 -90 6297 -90 6297 -55 ct 6297 -34 6292 -20 6284 -11 ct 6275 -2 6261 2 6240 2 ct
6216 2 6201 -6 6194 -22 ct 6194 -22 6194 -22 6194 0 ct 6194 0 6194 0 6174 0 ct
p ef
6334 0 m 6334 0 6334 0 6334 -145 ct 6334 -145 6334 -145 6355 -145 ct 6355 -145 6355 -145 6355 -125 ct
6361 -140 6374 -147 6395 -147 ct 6412 -147 6423 -142 6429 -133 ct 6435 -126 6437 -113 6437 -95 ct
6437 -95 6437 -95 6437 -94 ct 6437 -94 6437 -94 6416 -94 ct 6416 -94 6416 -94 6416 -98 ct
6416 -109 6414 -117 6411 -121 ct 6407 -125 6400 -128 6390 -128 ct 6376 -128 6367 -123 6362 -115 ct
6358 -108 6356 -98 6356 -84 ct 6356 -84 6356 -84 6356 0 ct 6356 0 6356 0 6334 0 ct
p ef
pom
gr
gr
gr
gr
0 29700 t
pom
count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_inc_state restore
%%PageTrailer
%%Trailer
%%EOF
ruby-rghost-0.9.9/lib/rghost/ps/row.ps 0000775 0000000 0000000 00000000123 14573150434 0017674 0 ustar 00root root 0000000 0000000 /row_height 0.4 unit def
/row_padding 0.1 unit def
/row 1 def
/current_row 0 def
ruby-rghost-0.9.9/lib/rghost/ps/show.ps 0000775 0000000 0000000 00000000761 14573150434 0020055 0 ustar 00root root 0000000 0000000 /show_center{ dup stringwidth pop 2 div neg 0 rmoveto show } def
/show_right{ dup stringwidth pop neg 0 rmoveto show } def
/show_left{ show }def
%%TODO: page_(center & left & right)
/page_center{
area_x 2 div margin /left get add current_row moveto
dup stringwidth pop 2 div neg 0 rmoveto show
} def
/page_right{
area_x margin /left get add current_row moveto
dup stringwidth pop neg 0 rmoveto show
} def
/page_left{
limit_left current_row moveto
%dup stringwidth pop neg 0 rmoveto
show
} def ruby-rghost-0.9.9/lib/rghost/ps/table_callbacks.ps 0000775 0000000 0000000 00000003470 14573150434 0022163 0 ustar 00root root 0000000 0000000 %%TABLE
/before_table_create {} def
/after_table_create{} def
%%%%%%TABLE ROW---------------------
/row_odd_or_even {
current_table_row odd? {odd_row}{even_row} ifelse
}def
/before_row_create 3 dict def before_row_create begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/odd_row 3 dict def odd_row begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/even_row 3 dict def even_row begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
%column
/col_odd_or_even {
col odd? {odd_column}{even_column} ifelse
}def
/before_column 3 dict def before_column begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/after_column 3 dict def after_column begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/odd_column 3 dict def odd_column begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/even_column 3 dict def even_column begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
%%HEADER----------------------
/before_header_create {} def
/after_header_create {} def
/before_column_header 3 dict def before_column_header begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
/after_column_header 3 dict def after_column_header begin
/proc { } bind def
/except [ ] def
/only [ ] def
end
%%ROW CALLBACKS
/callback_row{
dup dup
/except get length 0 ne { /except get current_table_row include? not}{
dup /only get length 0 ne { /only get current_table_row include?}{
pop true
}ifelse
}ifelse
{ /proc get exec }{
pop
}ifelse
} bind def
%%COLUMN CALLBACKS
/callback_col{
dup dup
/except get length 0 ne { /except get col include? not}{
dup /only get length 0 ne { /only get col include?}{
pop true
}ifelse
}ifelse
{ /proc get exec }{
pop
}ifelse
} bind def
ruby-rghost-0.9.9/lib/rghost/ps/text.ps 0000775 0000000 0000000 00000002536 14573150434 0020063 0 ustar 00root root 0000000 0000000 /:rh{ row_height } def
/append{
dup cvx exec 3 -1 roll _concat ( ) _concat def
} def
/_concat { exch dup length
2 index length add string
dup dup 4 2 roll copy length
4 -1 roll putinterval
} def
/:text{
/:space ( ) def
/:nw{ search false eq { /:last true def } if strlen :this_or_next }def
/:last false def
/:this_or_next{ X add limit_right le { show }{ nrdp show} ifelse :space show } def
} def
/:text_area {
/:nbw{ currentpoint :rh sub exch pop 0 exch moveto } def
/:space ( ) def
/:this_or_next{ X add :bw le { show }{ :nbw show } ifelse :space show } def
/:nw{ search false eq { /:last true def } if strlen :this_or_next }def
/:last false def
} def
/:text_proc{:space { :nw :last {exit} if } loop /:last false def } def
/:last false def
/:nbw{ 0 Y :rh sub moveto } def
/text_disp {
text_align /center eq {
:bw 2 div Y moveto
strlen 2 div neg 0 rmoveto show
%show
}{
:bw Y moveto
strlen neg 0 rmoveto show
}ifelse
} def
/:text_proc_cr {
/curstr () def
{
( ) search false eq /:last exch def
:last false eq {
exch pop curstr stringwidth pop ( ) stringwidth pop sub :bw le {
/curstr append
}{
curstr text_disp ( ) _concat /curstr exch def
:nbw
} ifelse
}{
/curstr append curstr text_disp :nbw
exit
} ifelse
} loop
/:last false def
}def
ruby-rghost-0.9.9/lib/rghost/ps/textarea.ps 0000775 0000000 0000000 00000000754 14573150434 0020714 0 ustar 00root root 0000000 0000000 /textarea_defaults {
/space ( ) def
/spacecount { 0 exch ( ) { search { pop 3 -1 roll 1 add 3 1 roll } { pop exit } ifelse } loop } def
/ssp { space search pop } def
/dsp { dup stringwidth pop } def
/cpp { currentpoint pop } def
/S { dup spacecount {ssp dsp cpp add rm gt { L s s }{ s s } ifelse } repeat pop } def
/n { show newline } def /s { show } def /L { newline} def
/centre { dup stringwidth pop 2 div rm 2 div exch sub lm add tm moveto } def
/c{ centre n} def
} def ruby-rghost-0.9.9/lib/rghost/ps/type.ps 0000775 0000000 0000000 00000000003 14573150434 0020043 0 ustar 00root root 0000000 0000000 %!
ruby-rghost-0.9.9/lib/rghost/ps/unit.ps 0000775 0000000 0000000 00000000101 14573150434 0020040 0 ustar 00root root 0000000 0000000 /cm { 72 mul 2.545 div } def
/inch{ 72 mul } def
/unit{ cm } def ruby-rghost-0.9.9/lib/rghost/ps/vertical_line.ps 0000775 0000000 0000000 00000000351 14573150434 0021710 0 ustar 00root root 0000000 0000000 /vertical_line{ exch current_row moveto 0 exch neg rlineto stroke } def
/vlr {
gsave
0 row_height rlineto
stroke
grestore
} def
/vlrf {
X Y row_padding sub moveto
0 row_height row_padding add rlineto
stroke
} def ruby-rghost-0.9.9/lib/rghost/ps/virtual_pages.ps 0000775 0000000 0000000 00000002424 14573150434 0021740 0 ustar 00root root 0000000 0000000
%vp = virtual_page
/current_vp 1 def
/has_vp? false def
/col_size 18 cm def
/vp_params [ [1 10] [1 20] [1 30]] def
/vp_count vp_params length def
/source_limit_left limit_left def
/source_limit_right limit_right def
/limit_right limit_left col_size add def
/col_margin 2 cm def
/next_page{
has_vp?{ (ok has virtual page, stopping) print
/row 1 def
/new_page? true def
current_vp 2 eq {
/current_vp 0 def
showpage
/limit_left source_limit_left def
/limit_right limit_left col_size add def
}{
/limit_left col_size col_margin add def
/limit_right limit_left col_size add def
} ifelse
/current_vp inc
/current_row limit_top row row_height mul sub def
new_current_row_point
default_point
}{
after_page_create callback
%(Page: ) print current_page 8 string cvs print (\n) print
showpage
/new_page? true def
/current_page inc
/current_row limit_top row row_height mul sub def
%before_page_create callback
%odd_or_even callback
current_page count_pages eq { last_page } if
new_current_row_point
default_point
before_page_create callback
odd_or_even callback
}ifelse
} def
ruby-rghost-0.9.9/lib/rghost/ps_facade.rb 0000664 0000000 0000000 00000013131 14573150434 0020331 0 ustar 00root root 0000000 0000000 [:ps_object, :dynamic_document_callback, :static_document_callback, :paper, :load,
:cursor, :show, :color, :graphic, :newpath, :line, :parse_text, :line_width, :textarea,
:variable, :eps, :jpeg, :gif, :text_in, :text_link_in, :ruby_ghost_engine, :convert,
:text, :dash, :border, :shape_content, :vertical_line, :horizontal_line,
:frame, :polygon, :circle, :how_to, :rectangle_link].each { |lib| require "rghost/#{lib}" }
# PsFacade is just a big facade involving an instance of most postscript objects.
class RGhost::PsFacade < RGhost::PsObject
attr_reader :rows
def initialize # (&block)
super("") {}
@rows = 0
yield self if block_given?
# instance_eval(&block) if block
end
# A facade for the method Cursor.next_row
def next_row
@rows += 1
set RGhost::Cursor.next_row
end
# Close path of the graphic state
def closepath
call :closepath
end
# A facade for the method Cursor.next_page
def next_page
set RGhost::Cursor.next_page
end
# A facade for the class Graphic
def graphic(&block)
psfc = RGhost::PsFacade.new
yield psfc
raw :gsave
set psfc
raw :grestore
end
# A facade for the class NewPath
def newpath(&block)
psfc = RGhost::PsFacade.new
yield psfc
raw :newpath
set psfc
raw :closepath
# set RGhost::NewPath.new(&block)
end
# A facade for the method Cursor.showpage
def showpage
set RGhost::Cursor.showpage
end
# A facade for the class LineWidth
def line_width(value = nil)
set RGhost::LineWidth.new(value)
end
# A facade for the method Cursor.goto_row
def goto_row(row)
set RGhost::Cursor.goto_row(row)
end
# A facade for the method Cursor.jump_rows
def jump_rows(row)
@rows += row
set RGhost::Cursor.jump_rows(row)
end
# A facade for the method Cursor.rotate
def rotate(angle)
set RGhost::Cursor.rotate(angle)
end
# A facade for the method Cursor.moveto
def moveto(point = {})
set RGhost::Cursor.moveto(point)
end
# A facade for the method Cursor.rmoveto
def rmoveto(point = {})
set RGhost::Cursor.rmoveto(point)
end
# A facade for the method Cursor.translate
def translate(point = {})
set RGhost::Cursor.translate(point)
end
# A facade for the class DSCEntry
def dsc_entry(&)
set RGhost::DSCEntry.new(&)
end
# Use tag after defined in define_tags
def use_tag(tag_name)
raw "_#{tag_name}"
end
# A facade for the class Image.for
def image(path, options = {})
set RGhost::Image.for(path, options)
end
# alias horizontal_line
def hl(valign = :middle, options = {})
set RGhost::HorizontalLine.new(valign, options)
end
# A facade for the class HorizontalLine
def horizontal_line(valign = :middle, options = {})
hl(valign, options)
end
# A facade for the method Frame.background_row
def background_row(options = {})
set RGhost::Frame.background_row(options)
end
# A facade for the class Scale
def scale(sx, sy)
set RGhost::Scale.new(sx, sy)
end
# A facade for the method Scale.zoom
def zoom(percent)
set RGhost::Scale.zoom(percent)
end
# A facade for the class TextIn
def text_in(options = {})
set RGhost::TextIn.new(options)
end
# A facade for the class TextLinkIn
def text_link(label, options = {})
options[:label] = label
set RGhost::TextLinkIn.new(options)
end
# A facade for the class Text
def text(text, tag_parse = true)
set RGhost::Text.new(text.to_s, tag_parse)
end
# A facade for the class Show
def show(text, align = {align: :show_left})
set RGhost::Show.new(text.to_s, align)
end
def show_next_row(text, align = {align: :show_left})
next_row
show(text, align)
end
# Alias for show
def write(text, align = {align: :show_left})
show(text.to_s, align)
end
# Allows call template after it definition.
def use_template(name)
call "_#{name}"
end
# Call internal function by name
def use_function(name)
call "_#{name}"
end
# A facade for the class TextArea
def text_area(text, options = {}, tag_parse = true)
ta = RGhost::TextArea.new(text, options, tag_parse)
raw ta.ps
ta
end
# A facade for the class VerticalLine
def vertical_line(options = {start_in: :limit_left, size: :area_y})
set RGhost::VerticalLine.new(options)
end
# A facade for the method VerticalLine.row
def vertical_line_row(border_options = RGhost::Border::DEFAULT_OPTIONS)
set RGhost::VerticalLine.row(border_options)
end
# Forces draw shapes
def stroke
call :stroke
end
# A facade for the method Line.lineto
def lineto(point = {})
set RGhost::Line.make_command(:lineto, point)
end
# A facade for the method Line.rlineto
def rlineto(point = {})
set RGhost::Line.make_command(:rlineto, point)
end
# A facade for the class Dash
def dash(options = {})
set RGhost::Dash.new(options)
end
# A facade for the method Color.create
def color(options)
set RGhost::Color.create(options)
end
# A facade for the class Border
def border(options = {})
set RGhost::Border.new(options)
end
# A facade for the class ShapeContent
def shape_content(options = {})
set RGhost::ShapeContent.new(options)
end
# A facade for the class Frame
def frame(options)
set RGhost::Frame.new(options)
end
# A facade for the class Polygon
def polygon(options = {}, &)
set RGhost::Polygon.new(options, &)
end
# A facade for the class Circle
def circle(options = {})
set RGhost::Circle.new(options)
end
# A facade for the class RectangleLink
def rectangle_link(options = {})
set RGhost::RectangleLink.new(options)
end
end
ruby-rghost-0.9.9/lib/rghost/ps_object.rb 0000664 0000000 0000000 00000002105 14573150434 0020373 0 ustar 00root root 0000000 0000000 # Postscript wrapper class
class RGhost::PsObject
# Creates new instance of PsObject. Example
# PsObject.new("/my_proc { 33 45 2 10 sub mul div} bind def")
# Or by block code
# PsObject.new do
# set PsObject.new("(A test) show")
# raw "(Other Test in raw) show "
# end
def initialize(body = "", &block)
@body = if body.is_a? RGhost::PsObject
body.ps
else
"#{body} "
end
instance_eval(&block) if block
end
# Alias for ps.
def to_s
ps
end
# Gets postscript code.
def ps
@body.to_s
end
# Pushes elements on the stack.
def raw(*value)
@body << "#{value.join(" ")} "
end
# Freezes graphic state
def graphic_scope
"beging #{self} endg "
end
# Sets PsObject into this object.
def set(value)
raise TypeError.new("can't convert #{value.class} into PsObject") unless value.is_a? RGhost::PsObject
@body << "#{value.ps} "
value
end
# Alias for set
def <<(value)
set value
end
# Call operator in the stack
def call(name)
set RGhost::PsObject.new(name)
end
end
ruby-rghost-0.9.9/lib/rghost/rectangle_link.rb 0000664 0000000 0000000 00000003732 14573150434 0021413 0 ustar 00root root 0000000 0000000 # Creates one rectangle or one shape with rounded corners.
#===Options
#
# * :x and :y - Coordinates to position.
# * :corners - Value for rounded corners. Use 0 to straight angle.
# * :width and :height - Size of frame
# * :content - facade to ShapeContent with same parameters.
# * :border - facade to Border with same parameters.
#===Examples using facade frame method inside of Document
# d=Document.new
# d.frame :x => 3, :width => 7, :height => 5, :content => {:fill => false}
#
# link:images/frame01.png
# d=Document.new
# d.frame :x => 3, :width => 7, :height => 5, :content => {:color => '#35F6A3' }
#
# link:images/frame02.png
#
# d=Document.new
# d.frame :x => 3, :width => 7, :height => 5, :content => {:color => '#35F6A3' }, :border =>{:width => 5, :dash => [1,3,10]}
#
# link:images/frame03.png
#
# d=Document.new
# d.frame :x => 3, :width => 7, :height => 5, :content => {:color => '#35F6A3' }, :corners => 20
#
# link:images/frame04.png
#
# d=Document.new
# d.frame :x => 3, :width => 7, :height => 5, :content => {:color => :yellow }, :border => {:color => :red, :width => 4}, :corners => 20
#
# link:images/frame05.png
class RGhost::RectangleLink < RGhost::PsObject
include RGhost::RubyToPs
DEFAULT_OPTIONS = {
x: :limit_left,
y: :current_row,
width: 5,
height: 3.5,
url: "http://rghost.rubyforge.org",
border_color: RGhost::Border::DEFAULT_OPTIONS[:color]
}
def initialize(options = {})
@options = DEFAULT_OPTIONS.dup.merge(options)
end
def ps
x = RGhost::Units.parse(@options[:x])
y = RGhost::Units.parse(@options[:y])
h = RGhost::Units.parse(@options[:height])
w = RGhost::Units.parse(@options[:width])
url = @options[:url]
scolor = RGhost::Color.create(@options[:border_color]).ps.gsub("setrgbcolor", "")
"/:rect_color [#{scolor}] def /:rect_x #{x} def /:rect_y #{y} def /:rect_w #{w} def /:rect_h #{h} def /:rect_uri #{to_string(url)} def :rect_link"
end
end
ruby-rghost-0.9.9/lib/rghost/ruby_ghost_config.rb 0000664 0000000 0000000 00000021206 14573150434 0022140 0 ustar 00root root 0000000 0000000 require "rghost/font_map"
require "rghost/ps_object"
require "rghost/which"
# Rghost setup with Ghostscript.
# Ghostscript runs on a variety of platforms, this is why we recommend the non coupled install for non *nix environments.
# The gem already comes with a set of defaults but you can change the settings using the Hash RGhost::Config::GS before each use of the API. Listed below are the keys of the said hash.
#===RGhost::Config::GS[:mode]
# Operating mode
# * :gsparams In this mode RGhost just pass parameters to the Ghostscript framework.
# * :gsapi based on the exchange of data between Ruby and Ghostscript via rgengine.so using gslib.so.8 or gslib-esp.so.8.
#
#===RGhost::Config::GS[:path]
# Path to the ghostscript executable.
#====Example on windows
# RGhost::Config::GS[:path] = "C:\\gs\\bin\\gswin32c.exe"
#====Example on Linux
# RGhost::Config::GS[:path] = "/usr/bin/gs"
#
#===RGhost::Config::GS[:tmpdir]
# Temporary directory
#====Example
# RGhost::Config::GS[:tmpdir] = "/tmp"
#
#===RGhost::Config::GS[:default_params]
# Allows you to add/remove options. (use with caution!)
#====Example
# RGhost::Config::GS[:default_params] << "-dSAFER"
#
#===RGhost::Config::GS[:stack_elements]
# Defines the maximum number of elements for each matrix inside postscript's internal stack, avoiding a stack overflow error..
#====Example
# RGhost::Config::GS[:stack_elements]=5000
#
#===RGhost::Config::GS[:unit]
# Set the measure units. See Units::Unit for available units.
#====Example
# RGhost::Config::GS[:unit]=Units::Cm
#
#===RGhost::Config::GS[:charset_convert]
# Ruby to PS character conversion proxy. Necessary when the source code isn't on the same encoding of the document.
# Params is a block that returns a String. The default setting is nil.
#====Example
# RGhost::Config::GS[:charset_convert]= lambda {|text| Iconv::iconv("latin1","utf8", text).to_s}
#
#===RGhost::Config::GS[:font_encoding]
# Sets the Postscript font encoding. Default: :IsoLatin
#====Example
# RGhost::Config::GS[:font_encoding]= :IsoLatin
#
#===RGhost::Config::GS[:external_encoding]
# Sets the file-in external encoding (Ruby 1.9). Affects how data will be written and
# could help when dealing with encoding conversion errors. Default: nil
#====Example
# RGhost::Config::GS[:external_encoding]= 'ascii-8bit'
module RGhost
module Config
DEFAULT_PORTRAIT_TEMPLATE = File.join(File.dirname(__FILE__), "ps", "rghost_default_template.eps")
GS = {
mode: :gsparams,
raise_on_error: true,
plugin: nil,
path: nil,
tmpdir: ENV["TMP"] || ENV["TMPDIR"] || ENV["TEMPDIR"] || ENV["TEMP"] || "/tmp",
pslibdir: File.join(File.dirname(__FILE__), "ps"),
extensions: [],
preload: [],
default_params: %w[gs -dNOPAUSE -dBATCH -dQUIET -dNOPAGEPROMPT],
stack_elements: 5000,
font_encoding: :IsoLatin,
external_encoding: "ascii-8bit",
charset_convert: nil,
fontsize: 8,
unit: RGhost::Units::Cm
}
def self.config_platform(which: Which, config_options: GS) # :nodoc:
config_options[:path] = which.call("gs")
raise GS_NOT_FOUND_MSG unless config_options[:path]
end
GS_NOT_FOUND_MSG = <<~MSG
Ghostscript not found on your $PATH.
Install it and set RGhost::Config::GS[:path] with the path to the executable.
Example: RGhost::Config::GS[:path] = '/path/to/my/gs' # unix-style
RGhost::Config::GS[:path] = 'C:\\gs\\bin\\gswin32c.exe' # windows-style
MSG
private_constant :GS_NOT_FOUND_MSG
# Test if your environment is ready to works. If yes the page below will show.
#
# link:images/is_ok.png
#
# You can generate this page with the code.
# RGhost::Config.is_ok?.render :pdf, :filename => "/tmp/mytest.pdf"
#
def self.is_ok?
d = RGhost::Document.new margin_left: 2.3, margin_bottom: 2.3
d.benchmark(:start)
d.before_page_create do |b|
b.image RGhost::Config::DEFAULT_PORTRAIT_TEMPLATE
end
d.define_tags do
new :bigger, size: 150, color: "#AAFF33"
end
d.text_in x: 6, y: 15, write: "Yes!", with: :bigger
d.text_in x: 10, y: 14, write: "Your environment is ready!"
d.text_in x: 10, y: 13, write: "RGhost Version " + RGhost::VERSION::STRING
d.text_in x: 10, y: 12, write: "Now " + Time.now.to_s
d.benchmark(:stop)
d.done
d
end
# Generate the UTF-8 encoding mapping
#
# RGhost::Config.utf8_encodings.render :pdf, :filename => "/tmp/encoding_map.pdf"
#
def self.utf8_encodings
doc = RGhost::Document.new paper: [20, 10], margin_left: 2.3, margin_bottom: 2.3
doc.virtual_pages do
7.times do
new_page width: 2, margin_left: 1
end
end
RGhost::RubyToPs::UTF8_ENCODINGS.each do |k, v|
doc.show "#{k} = #{v}"
doc.next_row
end
doc
end
# This method is a helper to gets the best encoding.
#
# link:images/encode_test.png
#
# You can generate this page with the code.
# RGhost::Config.encode_teste("Fiancé").render :pdf, :filename => "/tmp/mytest.pdf"
#
# The encode will use on Document class.
# doc=Document.new :font_encoding => 'IsoLatin'
#
def self.encode_test(value)
d = RGhost::Document.new paper: :A4, margin_left: 2 # , :landscape => true
d.before_page_create do |b|
b.image RGhost::Config::DEFAULT_PORTRAIT_TEMPLATE
end
exp = File.join(File.dirname(__FILE__), "ps", "*.enc")
d.show "String (Using Helvetica Font)", with: :b
d.moveto x: 16
d.show "Encode Name", with: :b
d.horizontal_line :bottom
d.next_row
Dir.glob(exp).sort.each do |f|
name = File.basename(f)
name.gsub!(".enc", "")
d.set RGhost::Load.library(name, :enc)
d.set RGhost::Variable.new(:default_encoding, name)
d.set RGhost::FontMap.new {
new(:font_test, name: "Helvetica", size: 8, color: "#FF0000", encoding: true)
}
d.show "#{value}", with: :font_test
d.moveto x: 16
d.show "#{name}", with: :i
d.next_row
end
d
end
# Generates font catalog to use into method define_tags on Document
# RGhost::Config.enviroment_fonts.render :pdf, :filename => "mycatalog.pdf"
# link:images/environment_fonts.png
#
def self.environment_fonts(text = "The quick brown fox jumps over the lazy dog")
d = RGhost::Document.new margin_left: 2.3, margin_bottom: 2.3
d.before_page_create do |b|
b.image RGhost::Config::DEFAULT_PORTRAIT_TEMPLATE
end
d.show "Search Path"
d.horizontal_line :bottom
d.next_row
d.raw :default_font
d.raw %(
LIBPATH{
limit_left current_row moveto show
nrdp
} forall
)
d.next_row
d.show "Example"
d.moveto x: 13
d.show "Font Name"
d.horizontal_line :bottom
d.next_row
#=begin
d.raw %{
Fontmap{
50 string cvs pop dup findfont 10 scalefont setfont
limit_left current_row moveto (#{text}) show
13 cm current_row moveto default_font 0 setgray
50 string cvs show
nrdp
} forall
}
#=end
d.done
d
end
# .
#
#
# Preseted tags
#
#
#
# FONTMAP=RGhost::FontMap.new :name => "Helvetica", :size => 8, :encoding => false do
# new :span
# new :b, :name => "Helvetica-Bold"
# new :bold, :name => "Helvetica-Bold"
# new :normal, :name => "Helvetica"
# new :i, :name => "Helvetica-Oblique", :size => 8
# new :bi, :name => "Helvetica-BoldOblique"
# new :big, :size => 10
# new :small, :size => 7
# new :h1, :name => "Helvetica", :size => 14
# new :h2, :name => "Helvetica", :size => 13
# new :h3, :name => "Helvetica", :size => 12
# new :h4, :name => "Helvetica", :size => 11
# new :h5, :name => "Helvetica", :size => 10
# new :title, :name => "Helvetica", :size => 20
# new :pre, :name => "Courier"
# end
#
FONTMAP = RGhost::FontMap.new name: "Helvetica", size: 8, encoding: true do
new :span
new :b, name: "Helvetica-Bold"
new :bold, name: "Helvetica-Bold"
new :normal, name: "Helvetica"
new :i, name: "Helvetica-Oblique", size: 8
new :bi, name: "Helvetica-BoldOblique"
new :big, size: 10
new :small, size: 7
new :h1, name: "Helvetica", size: 14
new :h2, name: "Helvetica", size: 13
new :h3, name: "Helvetica", size: 12
new :h4, name: "Helvetica", size: 11
new :h5, name: "Helvetica", size: 10
new :title, name: "Helvetica", size: 20
new :pre, name: "Courier"
end
end
end
ruby-rghost-0.9.9/lib/rghost/ruby_ghost_engine.rb 0000664 0000000 0000000 00000011377 14573150434 0022150 0 ustar 00root root 0000000 0000000 require "rghost/ruby_ghost_config"
require "rghost/constants"
class RGhost::Engine
attr_reader :errors, :error, :output
DEFAULT_OPTIONS = {device: :pdf}
include RGhost::Constants::Devices
def initialize(document, options = {})
@document = document
@options = DEFAULT_OPTIONS.merge(options)
@errors = []
@error = false
@output = nil
@delete_input = true
end
def render(device = nil)
device ||= @options[:device]
tmp_filename = @options[:filename]
if tmp_filename
file_out = tmp_filename
else
tmp_filename ||= File.join(RGhost::Config::GS[:tmpdir], "#{object_id.abs}-#{rand(999999)}-#{Time.now.to_i}")
file_out = "#{tmp_filename}.#{device}"
end
external_encoding = RGhost::Config::GS[:external_encoding]
file_err = "#{tmp_filename}.rgerr"
multipage = @options[:multipage]
file_out.gsub!(/^(.*)\./, '\1_%04d.') if multipage
params = RGhost::Config::GS[:default_params].dup # default parameters gs engine
params << @document.additional_params.join(" ") unless @options[:convert]
params << "-I#{RGhost::Config::GS[:pslibdir]}"
params << "-dPDFSETTINGS=/#{@options[:quality]}" if @options[:device] == :pdf && @options[:quality]
params << "-I#{RGhost::Config::GS[:extensions].join(" -I")}" unless RGhost::Config::GS[:extensions].empty?
params << "-sDEVICE=#{device_for(device)}"
params.concat format_params(@options[:d], "-d") if @options[:d]
params.concat format_params(@options[:s], "-s") if @options[:s]
params << "-r#{@options[:resolution]}" if @options[:resolution]
params << "-g#{@options[:size]}" if @options[:size]
if @options[:range]
params << "-dFirstPage=#{@options[:range].first}"
params << "-dLastPage=#{@options[:range].last}"
end
params << "-sstdout=#{shellescape(file_err)}"
params << "-sOutputFile=#{shellescape(file_out)}"
params << @options[:raw] if @options[:raw]
case @document
when RGhost::Document
file_in = "#{tmp_filename}.rgin"
params.concat @document.gs_paper
mode = external_encoding.nil? ? "w" : "w:#{external_encoding}"
fi = File.open(file_in, mode)
fi.puts @document.ps
fi.close
when File
file_in = @document.path
# @delete_input=false unless @options[:debug]
when String
file_in = @document
else
raise "Cannot convert #{@document.class}. Supported classes are RGhost::Document or File or String."
end
params << shellescape(file_in)
if RGhost::Config::GS[:mode] == :gslib
require "rghost/rgengine"
gs = RGEngine.new
@error = !gs.render(params, params.size)
else
require "rghost/gs_alone"
gs = RGhost::GSAlone.new(params, @options[:debug])
@error = !gs.run
end
if @error # if error
@errors = File.open(file_err).readlines if File.exist?(file_err)
raise RGhost::RenderException.new(@errors.join(" ")) if RGhost::Config::GS[:raise_on_error]
elsif multipage
file_out.gsub!("_%04d", "_*")
@output = Dir.glob(file_out).map { |f| f }
else
@output = File.open(file_out)
end
begin
File.delete(file_err)
File.delete(file_in) unless @options[:debug] || @options[:convert]
rescue
end
log(params) if @options[:logfile]
@output
end
def clear_output
case @output
when File
@output.close
File.delete(@output.path)
when Array
@output.each do |f|
f.close
File.delete(f.path)
end
end
end
def error?
@error
end
private
def log(gp)
id = object_id.abs
flog = File.open(@options[:logfile], File::WRONLY | File::APPEND | File::CREAT)
flog.puts "[ID #{id}] created on #{Time.now}"
flog.puts "[#{id}] RUBY GS OPTIONS: #{@options.inspect}"
flog.puts "[#{id}] GS OPTIONS: #{gp.join(" ")}"
if @error
flog.puts "[#{id}] EXIT STATUS: ERROR"
flog.puts @errors.uniq.map { |m| "[#{id}] #{m}" }.to_s
else
flog.puts "[#{id}] EXIT STATUS: OK"
end
end
def format_params(v, pre = "-d")
r = []
case v
when Symbol
r << "#{pre}#{v}"
when Array
v.each do |av|
r << format_params(av, pre).to_s
end
when Hash
v.each do |k, v|
r << "#{pre}#{k}=#{v.to_s.delete(" ")}"
end
else
return ""
end
r
end
def shellescape(str)
# An empty argument will be skipped, so return empty quotes.
return "''" if str.empty?
str = str.dup
# Process as a single byte sequence because not all shell
# implementations are multibyte aware.
str.gsub!(/([^A-Za-z0-9_\-.,:\/@\n])/n, "\\\\\\1")
# A LF cannot be escaped with a backslash because a backslash + LF
# combo is regarded as line continuation and simply ignored.
str.gsub!("\n", "'\n'")
str
end
end
ruby-rghost-0.9.9/lib/rghost/ruby_to_ps.rb 0000664 0000000 0000000 00000005525 14573150434 0020621 0 ustar 00root root 0000000 0000000 # Converts Ruby types to Postscript types
module RGhost::RubyToPs
UTF8_ENCODINGS = {
"¡" => 0xA1, "¢" => 0xA2, "£" => 0xA3, "€" => 0xA4, "¥" => 0xA5, "Š" => 0xA6, "§" => 0xA7,
"š" => 0xA8, "©" => 0xA9, "ª" => 0xAA, "«" => 0xAB, "¬" => 0xAC, "®" => 0xAE, "¯" => 0xAF,
"°" => 0xB0, "±" => 0xB1, "²" => 0xB2, "³" => 0xB3, "Ž" => 0xB4, "µ" => 0xB5, "¶" => 0xB6,
"·" => 0xB7, "ž" => 0xB8, "¹" => 0xB9, "º" => 0xBA, "»" => 0xBB, "Œ" => 0xBC, "œ" => 0xBD,
"Ÿ" => 0xBE, "¿" => 0xBF, "À" => 0xC0, "Á" => 0xC1, "Â" => 0xC2, "Ã" => 0xC3, "Ä" => 0xC4,
"Å" => 0xC5, "Æ" => 0xC6, "Ç" => 0xC7, "È" => 0xC8, "É" => 0xC9, "Ê" => 0xCA, "Ë" => 0xCB,
"Ì" => 0xCC, "Í" => 0xCD, "Î" => 0xCE, "Ï" => 0xCF, "Ð" => 0xD0, "Ñ" => 0xD1, "Ò" => 0xD2,
"Ó" => 0xD3, "Ô" => 0xD4, "Õ" => 0xD5, "Ö" => 0xD6, "×" => 0xD7, "Ø" => 0xD8, "Ù" => 0xD9,
"Ú" => 0xDA, "Û" => 0xDB, "Ü" => 0xDC, "Ý" => 0xDD, "Þ" => 0xDE, "ß" => 0xDF, "à" => 0xE0,
"á" => 0xE1, "â" => 0xE2, "ã" => 0xE3, "ä" => 0xE4, "å" => 0xE5, "æ" => 0xE6, "ç" => 0xE7,
"è" => 0xE8, "é" => 0xE9, "ê" => 0xEA, "ë" => 0xEB, "ì" => 0xEC, "í" => 0xED, "î" => 0xEE,
"ï" => 0xEF, "ð" => 0xF0, "ñ" => 0xF1, "ò" => 0xF2, "ó" => 0xF3, "ô" => 0xF4, "õ" => 0xF5,
"ö" => 0xF6, "÷" => 0xF7, "ø" => 0xF8, "ù" => 0xF9, "ú" => 0xFA, "û" => 0xFB, "ü" => 0xFC,
"ý" => 0xFD, "þ" => 0xFE, "ÿ" => 0xFF
}
def to_string(value)
# ps escape
value = pack_string(value)
ps_str = ps_escape(value)
"(#{ps_str}) "
end
def pack_string(s)
if RGhost::Config::GS[:charset_convert]
RGhost::Config::GS[:charset_convert].call(s.to_s).to_s
else
s
end
end
def ps_escape(value)
value.to_s.gsub(/(\(|\)|\\)/, '\\\\\1').gsub(/./) do |char|
UTF8_ENCODINGS[char] ? "\\#{UTF8_ENCODINGS[char].to_s(8)}" : char
end
end
def to_bool(value)
value ? "true" : "false"
end
def to_string_array(arr)
"[#{arr.map { |a| to_string(a.to_s) }}] "
end
def to_array(arr)
return "[ ]" unless arr
ps_arr = []
arr.each do |a|
ps_arr << case a
when TrueClass, FalseClass then to_bool(a)
when Numeric then a
when Proc then a.to_s
when Array then to_array(a)
else
to_string(a.to_s)
end
end
"[#{ps_arr.join(" ")}] "
end
def hash_to_array(hash)
to_string_array(hash.values)
end
def array_to_stack(arr)
"#{arr.join(" ")} "
end
def string_eval(str)
str = pack_string(str)
return "(#{ps_escape(str)}) show " unless /%/.match?(str)
s = str.scan(/([^%][a-z]*[^%]|\d+%?)|(%[^\s%]+%)/).flatten.compact
# puts s
tudo = ""
s.each do |v|
tudo << case v
when /^%/ then "#{v.delete("%")} to_s show "
else
"(#{ps_escape(v)}) show "
end
end
tudo
end
end
ruby-rghost-0.9.9/lib/rghost/scale.rb 0000664 0000000 0000000 00000001052 14573150434 0017512 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
# Scales objects
class RGhost::Scale < RGhost::PsObject
#===Examples
# doc.scale(1,1) #default document scale
#
# link:images/scale01.png
#
# doc.scale(1,3)
#
# link:images/scale02.png
#
# doc.scale(3,3)
#
# link:images/scale03.png
def initialize(sx, sy)
super("#{sx} #{sy} scale")
end
# Scale proportionally by value in percent
#===Example
# doc.zoom(300) # 300% the same that scale(3,3)
def self.zoom(value = 100)
RGhost::Scale.new(value / 100.0, value / 100.0)
end
end
ruby-rghost-0.9.9/lib/rghost/shape_content.rb 0000664 0000000 0000000 00000001016 14573150434 0021255 0 ustar 00root root 0000000 0000000 # Responsible for fill shapes
class RGhost::ShapeContent < RGhost::PsObject
DEFAULT_OPTIONS = {
fill: true, color: "#F0FFFF"
}
# You can use parameter :color(facade for Color.create) or disable using :fill => false
def initialize(options = {})
super("") {}
@options = DEFAULT_OPTIONS.dup.merge(options)
end
def ps
p = RGhost::PsObject.new
p.raw :gsave
p.set RGhost::Color.create(@options[:color]) if @options[:color]
p.raw :fill if @options[:fill]
p.raw :grestore
p
end
end
ruby-rghost-0.9.9/lib/rghost/show.rb 0000664 0000000 0000000 00000005006 14573150434 0017406 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/ruby_to_ps" # to_string
# Writes a text on the current row or point with align.
class RGhost::Show < RGhost::PsObject
attr_accessor :text, :align, :tag
DEFAULT_OPTIONS = {tag: :default_font, align: :show_left}
include RGhost::RubyToPs
#===Options
#
# * :tag or :with - Use predefined tag
# * :color - Override color of the tag
# * :align - Align of the text
#===Examples
# The vertical line is the current point. For align by point
# doc.moveto :x => 3, :y => 4
# doc.show "Foo Bar Baz", :align => :show_left #default
# link:images/show01.png
#
# doc.moveto :x => 3, :y => 4
# doc.show "Foo Bar Baz", :align => :show_center
# link:images/show02.png
#
# doc.moveto :x => 3, :y => 4
# doc.show "Foo Bar Baz", :align => :show_right
# link:images/show03.png
#
# For the the current row it's not necessary positioned using moveto. Like below
# doc.show "Foo Bar Baz", :align => :show_right
# Now justification in page
#
# doc.show "Foo Bar Baz", :align => :page_left
#
# link:images/show04.png
#
# doc.show "Foo Bar Baz", :align => :page_center
#
# link:images/show05.png
#
# doc.show "Foo Bar Baz", :align => :page_right
#
# link:images/show06.png
#
#====Overrinding tag's color
#
# doc.show "Foo Bar Baz", :with => :my_italic, :align => :page_center, :color => :red
#
# link:images/show07.png
#
# Many tags per row
# doc=Document.new
# doc.define_tags do
# tag :font1, :name => 'Helvetica', :size => 10, :color => '#F34811'
# tag :font2, :name => 'Times', :size => 14, :color => '#A4297A'
# tag :font3, :name => 'TimesBold', :size => 18, :color => '#AA3903'
# end
#
# doc.show "foo bar baz ", :with => :font1
# doc.show "qux quux ", :with => :font2
# doc.show "corge ", :with => :font3
# doc.show "grault garply ",:with => :font2
# doc.show "qux quux", :with => :font1
#
# link:images/show08.png
def initialize(text, options = {align: :show_left, tag: :default_font, color: 0})
@text = text
@options = DEFAULT_OPTIONS.dup.merge(options)
end
def ps
rtext = RGhost::PsObject.new
# rtext.raw Color.create(@options[:color] || 0)
if @options[:with] || @options[:tag]
f = "_#{@options[:with] || @options[:tag]}"
rtext.raw f
end
rtext.raw RGhost::Color.create(@options[:color]) if @options[:color]
rtext.raw to_string(@text)
rtext.raw @options[:align]
rtext.graphic_scope
end
end
ruby-rghost-0.9.9/lib/rghost/static_document_callback.rb 0000664 0000000 0000000 00000000566 14573150434 0023435 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/function"
class RGhost::StaticDocumentCallback < RGhost::Function # :nodoc:
ACCEPT = [:before_document_create,
:first_page,
:last_page,
:after_document_create]
def initialize(name, &block)
raise NameError.new("#{name} no accept in #{self.class}") unless ACCEPT.include? name
super(name, &block)
end
end
ruby-rghost-0.9.9/lib/rghost/text.rb 0000664 0000000 0000000 00000002543 14573150434 0017415 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/units"
require "rghost/font"
require "rghost/ruby_to_ps"
# Wraps the text so as the it fits on the page(:area_x). Wrapping happens at whitespace characters without hyphenation.
# Additionally you can make use of predefined tag and the special tag
to break row. You can disable the parse with second parameter tag_parse=false.
#===Examples
# doc=Document.new
# doc.define_tags do
# tag :font1, :name => 'Helvetica', :size => 10, :color => '#F34811'
# tag :font2, :name => 'Times', :size => 11, :color => '#A4297A'
# tag :font3, :name => 'TimesBold', :size => 12, :color => '#AA3903'
# end
# my_text="foo, bar, baz,qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy,
thud, bing"
# doc.text my_text
#
# link:images/text01.png
#
#===Without parse
# text="foo, bar, baz,qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy,
thud, bing"
# doc.text text,false
#
# link:images/text02.png
class RGhost::Text < RGhost::PsObject
include RGhost::RubyToPs
include RGhost::ParseText
attr_reader :rows
def initialize(text, tag_parse = true)
super("")
@text = text
@tag_parse = tag_parse
@options = {text_align: :left}
end
def ps
text_to_ps # from RGhost::ParseText
end
end
ruby-rghost-0.9.9/lib/rghost/text_in.rb 0000664 0000000 0000000 00000003314 14573150434 0020100 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/cursor"
require "rghost/ruby_to_ps"
# TextIn is a helper to combine the cursor positioning and text output into one step.
class RGhost::TextIn < RGhost::PsObject
include RGhost::RubyToPs
DEFAULT_OPTIONS = {x: :limit_left, y: :current_row, tag: :default_font, write: "Ruby Ghost API - current_row = %row% "}
#===Options
# * :x and :y - Initial position.
# * :tag or :with - Use predefined tag.
# * :color - Override color of the tag.
# * :text or :write - The text.
#===Examples
# doc=RGhost::Document.new
# doc.text_in :x => 3, :y => 4, :write => "Foo Bar Baz", :tag => :h1
#====Rotating
# doc.newpath do
# translate :x => 3, :y=> 4
# rotate 45
# text_in :x => 0, :y => 0, :write => "Foo Bar Baz1", :tag => :font2
# end
#====Eval postscript internal
# TextIn will eval postscript internal variables you pass in between % signs. Sounds complex, huh? Let's see an example:
# doc.text_in :x=> 3.5, :y=> 5.5, :text => "this is %row% row and current page %current_page%"
def initialize(options = {})
@options = DEFAULT_OPTIONS.dup.merge(options)
end
def ps
text = RGhost::PsObject.new
text.set RGhost::Cursor.moveto(@options)
# text.raw "currentfont"
# text.raw "currentrgbcolor"
text.raw RGhost::Color.create(@options[:color]) if @options[:color]
f = "_#{@options[:with] || @options[:tag] || :default_font}"
text.raw f
# text.call @options[:with] || @options[:tag] || :default_font
text.raw string_eval(@options[:text] || @options[:write])
# text.raw "setrgbcolor"
# text.raw "setfont"
text.graphic_scope
# text.set PsObject.new(@options[:text])
end
end
ruby-rghost-0.9.9/lib/rghost/text_link_in.rb 0000664 0000000 0000000 00000002731 14573150434 0021117 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/cursor"
require "rghost/ruby_to_ps"
# TextLinkIn is a helper to combine the cursor positioning and text with hyperlink output into one step as TextIn.
# It works only PDF format
class RGhost::TextLinkIn < RGhost::PsObject
include RGhost::RubyToPs
DEFAULT_OPTIONS = {x: :limit_left, y: :current_row, tag: :default_font, color: :blue, label: "RGhost API", url: "http://rghost.rubyforge.org"}
#===Options
# * :x and :y - Initial position.
# * :tag or :with - Use predefined tag.
# * :color - Override color of the tag.
# * :label - The text.
# * :url - Hyperlink.
#===Examples
# doc=RGhost::Document.new
# doc.text_link "Shairon at Hashcode", :url => "http://www.hashcode.eti.br", :color => :blue, :x => 3, :y => 4, :tag => :h1
#====Rotating
# doc.newpath do
# translate :x => 3, :y=> 4
# rotate 45
# text_link "RGhost website", :url => "http://rghost.rubyforge.org", :x => 0, :y => 0, :tag => :font2
# end
def initialize(options = {})
@options = DEFAULT_OPTIONS.dup.merge(options)
end
def ps
text = RGhost::PsObject.new
text.set RGhost::Cursor.moveto(@options)
text.raw RGhost::Color.create(@options[:color]) if @options[:color]
f = "_#{@options[:with] || @options[:tag] || :default_font}"
text.raw f
text.raw "/:link_str #{to_string(@options[:label])} def /:link_uri #{to_string(@options[:url])} def :link_make "
text.ps
end
end
ruby-rghost-0.9.9/lib/rghost/textarea.rb 0000664 0000000 0000000 00000004641 14573150434 0020247 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/units"
require "rghost/font"
require "rghost/ruby_to_ps"
require "rghost/parse_text"
# TextArea wraps the text so as the it fits in a box of a given width. Wrapping happens at whitespace characters without hyphenation.
# Additionally you can make use of predefined tag and the special tag
to break row.
# The alignment can be left, right and centered.
#
# PS: It not jumps pages.
class RGhost::TextArea < RGhost::PsObject
include RGhost::RubyToPs
include RGhost::ParseText
DEFAULT_OPTIONS = {
width: :area_x,
row_height: :row_height,
x: :limit_left,
y: :current_row,
text_align: :left
}
#===Options
# * :x and :y - Initial position.
# * :row_height - Row height :)
# * :with - Max wide of the text
# * :text_align - Align of the text in the virtual box using :left, :right and :center.
#===Examples
# doc=RGhost::Document.new
# my_text="foo, bar, bazqux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy,
thud, bing"
# doc.text_area my_text
#
# link:images/text_area01.png
#
# doc.text_area my_text, :width =>3
#
# link:images/text_area02.png
#
# doc.text_area my_text, :width =>3, :text_align => :center
#
# link:images/text_area03.png
#
# doc.text_area my_text, :width =>3, :text_align => :right
#
# link:images/text_area04.png
#
# doc.text_area my_text, :width =>3, :text_align => :right, :x => 3
#
# link:images/text_area05.png
#
# doc.text_area my_text, :width =>3, :text_align => :right, :x => 3, :row_height => 0.6
#
# link:images/text_area06.png
def initialize(text, options = {}, tag_parse = true)
super("")
@text = text
@tag_parse = tag_parse
options ||= {}
@options = DEFAULT_OPTIONS.dup.merge(options)
end
def ps
bw = RGhost::Units.parse(@options[:width])
ta = @options[:text_align]
rh = RGhost::Units.parse(@options[:row_height])
graph = RGhost::Graphic.new do
set RGhost::Variable.new(":bw", bw)
set RGhost::Variable.new("text_align", "/#{ta}")
# set Variable.new(':rp',rp)
set RGhost::Variable.new(":rh", rh)
end
graph.set RGhost::Cursor.translate(@options)
graph.set RGhost::Cursor.moveto(x: 0, y: 0)
# graph.raw ":text_area #{text_to_ps} :text_proc"
graph.raw text_to_ps
graph
# final_text=text_to_ps
end
end
ruby-rghost-0.9.9/lib/rghost/units.rb 0000664 0000000 0000000 00000003550 14573150434 0017572 0 ustar 00root root 0000000 0000000 require "rghost/function"
require "rghost/ps_object"
# The postscript default unit is the 1/72th inch. RGhost uses the centimeters (cm) as it's default, mainly for positioning coordinates and numeric object sizes (if the size is a String, it won't be parsed to the default unit). This setting can be changed setting the value of RGhost::Config::GS[:unit] before the document is created using any of the Units child classes.
#===Example:
#
#====Setting to inches.
# RGhost::Config::GS[:unit]=Units::Inch
# doc.moveto :x => 1, :y => 2 #=> 1 inch x 2 inches
#====Explicitly setting to Cm.
# doc.moveto :x => '1 cm' , :y => '2 cm'
#====Using the Postscript unit
# doc.moveto :x => '100' , :y => '200'
module RGhost::Units
class Unit < RGhost::PsObject
attr_accessor :value
def initialize(value = 0)
@value = value
end
def ps
"#{@value} #{self.class.to_s.gsub("RGhost::Units::", "").downcase} "
end
def self.define
""
end
end
# n/72 * 2.545
class Cm < Unit
def self.define
Function.new("cm", "72 div 2.545 mul")
end
end
# n*72
class Inch < Unit
def self.define
RGhost::Function.new("inch", "72 mul")
end
end
class PSUnit < Unit
def ps
"#{@value} "
end
end
# Parses units
# Units::DEFAULT=Utits::Cm
# Units.parse(2) #=> "2 cm"
# Units.parse(:current_row) #=> "current_row"
# Units.parse("3 inch") #=> "3 inch"
# Units.parse("2") #=> "2"
#
# Using US metric
# Units::DEFAULT=Utits::Inch
# Units.parse(2) #=> "2 inch"
# Units.parse(:current_row) #=> "current_row"
# Units.parse("3 cm") #=> "3 cm"
# Units.parse("5") #=> "5"
def self.parse(value)
if value.is_a? Numeric
RGhost::Config::GS[:unit].new(value)
else
RGhost::PsObject.new(value)
end
end
end
ruby-rghost-0.9.9/lib/rghost/variable.rb 0000664 0000000 0000000 00000000401 14573150434 0020205 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
# Creates Postscript variable
class RGhost::Variable < RGhost::PsObject
#===Example
# v=Variable.new(:mytext, Show.new("Fooo Barrr") )
# doc.set v
def initialize(name, value)
super("/#{name} #{value} def")
end
end
ruby-rghost-0.9.9/lib/rghost/version.rb 0000664 0000000 0000000 00000000210 14573150434 0020103 0 ustar 00root root 0000000 0000000 module RGhost
module VERSION # :nodoc:
MAJOR = 0
MINOR = 9
TINY = 9
STRING = [MAJOR, MINOR, TINY].join(".")
end
end
ruby-rghost-0.9.9/lib/rghost/vertical_line.rb 0000664 0000000 0000000 00000002212 14573150434 0021242 0 ustar 00root root 0000000 0000000 require "rghost/ps_object"
require "rghost/units"
require "rghost/load"
# Creates vertical line starting from current row.
class RGhost::VerticalLine < RGhost::PsObject
DEFAULT_OPTIONS = {
start_in: :limit_left, size: :area_y,
border: RGhost::Border::DEFAULT_OPTIONS
}
# Draws a vertical line where :start_in => y position and :size => size of line.
#===Example
# doc=Document.new
# doc.vertical_line :start_in => 1, :size => 2, :border => {:color => :red}
def initialize(options = RGhost::Border::DEFAULT_OPTIONS)
super("") {}
options = DEFAULT_OPTIONS.dup.merge(options)
start_in = RGhost::Units.parse(options[:start_in] || :limit_left)
size = RGhost::Units.parse(options[:size] || :area_y)
g = RGhost::Graphic.new
g.set RGhost::Border.new(options[:border]) if options[:border]
g.raw "#{start_in} #{size} vertical_line "
set g
end
# Draws a vertical line with size or :row_height of the document.
# doc=Document.new
# doc.vertical_line_row
def self.row(border = RGhost::Border::DEFAULT_OPTIONS)
g = RGhost::Graphic.new
g.set RGhost::Border.new(border)
g.raw :vlrf
g
end
end
ruby-rghost-0.9.9/lib/rghost/virtual_pages.rb 0000664 0000000 0000000 00000001561 14573150434 0021275 0 ustar 00root root 0000000 0000000 # Defines virtual pages for the Document by method virtual_pages
class RGhost::VirtualPages < RGhost::PsObject
DEFAULT_OPTIONS = {width: 5, margin_left: 0}
include RGhost::RubyToPs
def initialize(&block)
super("") {}
@pages = []
instance_eval(&block) if block
end
def new_page(options = RGhost::VirtualPages::DEFAULT_OPTIONS)
options.merge(RGhost::VirtualPages::DEFAULT_OPTIONS)
@pages << options
end
def ps
first = true
all_pages = @pages.map do |p|
w = RGhost::Units.parse(p[:width])
if first
first = false
"[#{w}]"
else
m = RGhost::Units.parse(p[:margin_left])
"[#{w} #{m}]"
end
# "[#{m} #{w}]"
end
o = RGhost::PsObject.new
o.set RGhost::Variable.new(:has_vp?, true)
o.raw "/vp_params [ #{all_pages.join("")} ] def "
o.call :vp_proc
o
end
end
ruby-rghost-0.9.9/lib/rghost/which.rb 0000664 0000000 0000000 00000002011 14573150434 0017521 0 ustar 00root root 0000000 0000000 module RGhost
# A cross-platform way of finding an executable in the $PATH.
#
# RGhost::Which.('ruby') #=> /usr/bin/ruby
class Which
def self.call(cmd)
new.call(cmd)
end
def initialize(env: ENV)
@env = env
end
def call(cmd)
cmd_path = Pathname(cmd)
return cmd_path.to_path if cmd_path.absolute? && cmd_path.executable?
extensions = fetch_executable_extensions
env.fetch("PATH", "").split(File::PATH_SEPARATOR).each do |path|
path = Pathname(path)
extensions.each do |ext|
exe = path.join("#{cmd}#{ext}")
return exe.to_path if exe.executable?
end
end
nil
end
private
attr_reader :env
def fetch_executable_extensions
# Get list of executable extensions on Windows
env.fetch("PATHEXT", "").split(";").tap do |extensions|
# On non-Windows this is empty; add ""to search for extension-less files
extensions.push("") if extensions.empty?
end
end
end
end
ruby-rghost-0.9.9/rghost.gemspec 0000664 0000000 0000000 00000002266 14573150434 0016705 0 ustar 00root root 0000000 0000000 # shairon.toledo@gmail.com
# 14 de Dezembro de 2007
require_relative "lib/rghost/version"
Gem::Specification.new do |s|
s.name = "rghost"
s.version = RGhost::VERSION::STRING
s.authors = ["Shairon Toledo"]
s.email = "shairon.toledo@gmail.com"
s.homepage = "https://github.com/shairontoledo/rghost"
s.platform = Gem::Platform::RUBY
s.licenses = ["MIT"]
s.summary = "Ruby Ghostscript Engine is a document creation and conversion API, supporting PDF, PS, GIF, TIF, PNG, JPG…"
s.description = "#{s.summary} It uses the GhostScript framework for format conversion, utilizes EPS templates, and is optimized to work with larger documents."
s.metadata = {
"changelog_uri" => "#{s.homepage}/master/CHANGELOG.md",
"documentation_uri" => "https://rubydoc.info/gems/rghost",
"source_code_uri" => s.homepage
}
s.required_ruby_version = ">= 2.7.0"
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
s.files = Dir.chdir(__dir__) do
`git ls-files -z`.split("\x0").reject do |f|
(File.expand_path(f) == __FILE__) ||
f.start_with?(*%w[bin/ spec/ features/ .git .github Gemfile])
end
end
s.require_paths = ["lib"]
end
ruby-rghost-0.9.9/spec/ 0000775 0000000 0000000 00000000000 14573150434 0014756 5 ustar 00root root 0000000 0000000 ruby-rghost-0.9.9/spec/assets/ 0000775 0000000 0000000 00000000000 14573150434 0016260 5 ustar 00root root 0000000 0000000 ruby-rghost-0.9.9/spec/assets/doc.pdf 0000664 0000000 0000000 00000170374 14573150434 0017534 0 ustar 00root root 0000000 0000000 %PDF-1.3
%
4 0 obj
<< /Length 5 0 R /Filter /FlateDecode >>
stream
xˎ+K]>x1HAiPh,UmA@ hmgqNeE70vXxyퟷynzM۾<~~O.~oǸJ\mnO>Vt5_"Ρ.|7o?$QkOwcu
:4}w1iެNﺞђВA-ّ~$ZrH|%81-鐆:CZr$ukZr$ާTHK![H.ut*?=RrG缼>ƿ#mq,ߌxܟ+ e@/]~t[?DL}u/΄Y-c'^
Y뮿CO/t|'׃g,?W)M鋞[ѓwN+M h):Av[v]KOWF xGhÅP9Foc7"F7w7ZK]7}2-|֢"H6xRwy1ׇ,Նhĵ֦Yܾzi%𬴆&r֫;}
\'k=_ЂIHN0HzŰ(ֹ_ioa%}Ű/