<%= project.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
- <%= link_to project, settings_project_path(project), :title => project.short_description %>
- <%= checked_image project.is_public? %>
- <%= format_date(project.created_on) %>
+ <%= link_to project, settings_project_path(project), :title => project.short_description %>
+ <%= checked_image project.is_public? %>
+ <%= format_date(project.created_on) %>
<%= link_to(l(:button_archive),
archive_project_path(project, :status => params[:status]),
diff --git a/app/views/api/v3/work_packages/index.api.rabl b/app/views/api/v3/work_packages/index.api.rabl
index 43dca73ba4..6ac49aa547 100644
--- a/app/views/api/v3/work_packages/index.api.rabl
+++ b/app/views/api/v3/work_packages/index.api.rabl
@@ -45,7 +45,7 @@ child @work_packages => :work_packages do
when Version
wp.send(column_name).as_json(only: [:id, :name])
when WorkPackage
- wp.send(column_name).as_json(only: [:id, :name])
+ wp.send(column_name).as_json(only: [:id, :subject])
else
wp.send(column_name)
end
diff --git a/app/views/auth_sources/edit.html.erb b/app/views/auth_sources/edit.html.erb
index 828158449d..02dceb8ec5 100644
--- a/app/views/auth_sources/edit.html.erb
+++ b/app/views/auth_sources/edit.html.erb
@@ -35,4 +35,3 @@ See doc/COPYRIGHT.rdoc for more details.
<%= render :partial => 'form', :locals => { :f => f } %>
<%= submit_tag l(:button_save) %>
<% end %>
-
diff --git a/app/views/auth_sources/index.html.erb b/app/views/auth_sources/index.html.erb
index e19f6d7335..9946815d74 100644
--- a/app/views/auth_sources/index.html.erb
+++ b/app/views/auth_sources/index.html.erb
@@ -39,11 +39,11 @@ See doc/COPYRIGHT.rdoc for more details.
- <%= AuthSource.human_attribute_name(:name) %>
- <%= AuthSource.human_attribute_name(:type) %>
- <%= AuthSource.human_attribute_name(:host) %>
- <%= l(:label_user_plural)%>
-
+ <%= AuthSource.human_attribute_name(:name) %>
+ <%= AuthSource.human_attribute_name(:type) %>
+ <%= AuthSource.human_attribute_name(:host) %>
+ <%= l(:label_user_plural)%>
+
<% for source in @auth_sources %>
diff --git a/app/views/common/list_attachments.json.erb b/app/views/common/list_attachments.json.erb
index 58edf7a1e6..ff2c5c1451 100644
--- a/app/views/common/list_attachments.json.erb
+++ b/app/views/common/list_attachments.json.erb
@@ -34,4 +34,4 @@ See doc/COPYRIGHT.rdoc for more details.
:url => url_for(:controller => '/attachments', :action => 'show', :id => a, :filename => a.filename),
:is_image => !!a.image? # doing the !! as image? for whatever reason returns null or a number
}
- }.to_json.html_safe %>
\ No newline at end of file
+ }.to_json.html_safe %>
diff --git a/app/views/copy_projects/copy_settings/_block_checkbox.html.erb b/app/views/copy_projects/copy_settings/_block_checkbox.html.erb
index 1efa383266..da3d7259f4 100644
--- a/app/views/copy_projects/copy_settings/_block_checkbox.html.erb
+++ b/app/views/copy_projects/copy_settings/_block_checkbox.html.erb
@@ -31,4 +31,4 @@ See doc/COPYRIGHT.rdoc for more details.
<%= check_box_tag 'only[]', name, checked, :id => "only_#{name}" %>
<%= "#{label} (#{count})" %>
-<% end %>
\ No newline at end of file
+<% end %>
diff --git a/app/views/custom_fields/_form.html.erb b/app/views/custom_fields/_form.html.erb
index 558726ec01..9379a8a459 100644
--- a/app/views/custom_fields/_form.html.erb
+++ b/app/views/custom_fields/_form.html.erb
@@ -95,14 +95,14 @@ function toggle_custom_field_format() {
if (p_searchable) Element.hide(p_searchable.parentNode);
hide_and_disable(p_values);
break;
- case "user":
+ case "user":
case "version":
Element.hide(p_length.parentNode);
Element.hide(p_regexp.parentNode);
if (p_searchable) Element.hide(p_searchable.parentNode);
hide_and_disable(p_values);
Element.hide(p_default_value);
- break;
+ break;
default:
Element.show(p_length.parentNode);
Element.show(p_regexp.parentNode);
@@ -206,7 +206,7 @@ jQuery(".locale_selector").each(function (index) {
<%= check_box_tag "custom_field[type_ids][]", type.id, (@custom_field.types.include? type), :id => "custom_field_type_ids_#{type.id}" %>
<%= content_tag :label, (type.is_standard) ? l(:label_custom_field_default_type) : h(type), :class => "no-css", :for => "custom_field_type_ids_#{type.id}" %>
<% end %>
- <%= hidden_field_tag "custom_field[type_ids][]", '' %>
+ <%= hidden_field_tag "custom_field[type_ids][]", '' %>
<%= f.check_box :is_required %>
diff --git a/app/views/groups/_memberships.html.erb b/app/views/groups/_memberships.html.erb
index d2f48c01cb..8f5ac45b0a 100644
--- a/app/views/groups/_memberships.html.erb
+++ b/app/views/groups/_memberships.html.erb
@@ -33,16 +33,16 @@ See doc/COPYRIGHT.rdoc for more details.
<% if @group.memberships.any? %>
-
- <%= Project.model_name.human %>
- <%= l(:label_role_plural) %>
-
-
-
- <% @group.memberships.each do |membership| %>
- <% next if membership.new_record? %>
-
- <%=h membership.project %>
+
+ <%= Project.model_name.human %>
+ <%= l(:label_role_plural) %>
+
+
+
+ <% @group.memberships.each do |membership| %>
+ <% next if membership.new_record? %>
+
+ <%=h membership.project %>
<%=h membership.roles.sort.collect(&:to_s).join(', ') %>
<%= form_tag(membership_of_group_path(@group, membership),
@@ -50,7 +50,7 @@ See doc/COPYRIGHT.rdoc for more details.
:remote => true,
:id => "member-#{membership.id}-roles-form",
:style => 'display:none;') do %>
- <% roles.each do |role| %>
+
<% roles.each do |role| %>
<%= check_box_tag 'membership[role_ids][]', role.id, membership.roles.include?(role) %> <%=h role %>
<% end %>
<%= submit_tag l(:button_change) %>
@@ -64,8 +64,8 @@ See doc/COPYRIGHT.rdoc for more details.
:remote => true,
:class => 'icon icon-delete' %>
-
-
+
+
<% end; reset_cycle %>
<% else %>
diff --git a/app/views/groups/_users.html.erb b/app/views/groups/_users.html.erb
index 0cb667785c..5b3ed2d5ce 100644
--- a/app/views/groups/_users.html.erb
+++ b/app/views/groups/_users.html.erb
@@ -29,28 +29,28 @@ See doc/COPYRIGHT.rdoc for more details.
<% if @group.users.any? %>
-
-
- <%= User.model_name.human %>
-
-
-
- <% @group.users.sort.each do |user| %>
-
- <%= link_to_user user %>
-
+
+
+ <%= User.model_name.human %>
+
+
+
+ <% @group.users.sort.each do |user| %>
+
+ <%= link_to_user user %>
+
<%= link_to l(:button_delete), member_of_group_path(@group, user),
:method => :delete,
:remote => :true,
:class => 'icon icon-delete' %>
-
-
- <% end %>
-
-
+
+
+ <% end %>
+
+
<% else %>
-
<%= l(:label_no_data) %>
+
<%= l(:label_no_data) %>
<% end %>
@@ -60,8 +60,8 @@ See doc/COPYRIGHT.rdoc for more details.
<%= form_tag(members_of_group_path(@group), :method => :post, :remote => true) do |f| %>
<%=l(:label_user_new)%>
- <%= label_tag "user_search", l(:label_user_search) %><%= text_field_tag 'user_search', nil %>
- <%= observe_field(:user_search,
+ <%= label_tag "user_search", l(:label_user_search) %><%= text_field_tag 'user_search', nil %>
+ <%= observe_field(:user_search,
:frequency => 0.5,
:update => :users,
:url => { :controller => '/groups', :action => 'autocomplete_for_user', :id => @group },
@@ -69,12 +69,12 @@ See doc/COPYRIGHT.rdoc for more details.
:method => :get)
%>
-
- <%= principals_check_box_tags 'user_ids[]', users %>
-
+
+ <%= principals_check_box_tags 'user_ids[]', users %>
+
<%= submit_tag l(:button_add) %>
-
+
<% end %>
<% end %>
diff --git a/app/views/layouts/admin.html.erb b/app/views/layouts/admin.html.erb
index bc4154af2d..20cb25b238 100644
--- a/app/views/layouts/admin.html.erb
+++ b/app/views/layouts/admin.html.erb
@@ -31,7 +31,7 @@ See doc/COPYRIGHT.rdoc for more details.
default_breadcrumb) %>
<% @page_header_title = l(:label_administration) %>
<% content_for :main_menu do %>
- <%= render :partial => 'admin/menu' %>
+ <%= render :partial => 'admin/menu' %>
<% end %>
<%= render :file => "layouts/base" %>
diff --git a/app/views/members/_autocomplete_for_member.html.erb b/app/views/members/_autocomplete_for_member.html.erb
index 598f8419e3..67cf0863b4 100644
--- a/app/views/members/_autocomplete_for_member.html.erb
+++ b/app/views/members/_autocomplete_for_member.html.erb
@@ -56,4 +56,3 @@ See doc/COPYRIGHT.rdoc for more details.
<%= submit_tag l(:button_add), :id => 'member-add-submit' %>
<% end %>
-
diff --git a/app/views/members/autocomplete_for_member.json.erb b/app/views/members/autocomplete_for_member.json.erb
index 86340318bc..54b7846a44 100644
--- a/app/views/members/autocomplete_for_member.json.erb
+++ b/app/views/members/autocomplete_for_member.json.erb
@@ -31,12 +31,12 @@ See doc/COPYRIGHT.rdoc for more details.
"results":
{
"items":[
- <% @principals.each_with_index do |principal, ix| %>
+ <% @principals.each_with_index do |principal, ix| %>
{
"id": <%= principal.id.to_json.html_safe %>,
"name": <%= principal.name.to_json.html_safe %>
- } <%= "," unless ix == @principals.length - 1 %>
- <% end %> ],
+ } <%= "," unless ix == @principals.length - 1 %>
+ <% end %> ],
"total": <%= @total ? @total : @principals.size %>,
"more": <%= @more ? @more : 0 %>
}
diff --git a/app/views/messages/_form.html.erb b/app/views/messages/_form.html.erb
index 56b89abc7b..c64756450b 100644
--- a/app/views/messages/_form.html.erb
+++ b/app/views/messages/_form.html.erb
@@ -46,7 +46,7 @@ See doc/COPYRIGHT.rdoc for more details.
<% if !replying && !@message.new_record? && User.current.allowed_to?(:edit_messages, @project) %>
- <%= Board.name.humanize %>
+
<%= Board.name.humanize %>
<%= f.select :board_id, @project.boards.collect {|b| [b.name, b.id]} %>
<% end %>
diff --git a/app/views/my/page_layout.html.erb b/app/views/my/page_layout.html.erb
index c74d111e9b..8da1b4b6d1 100644
--- a/app/views/my/page_layout.html.erb
+++ b/app/views/my/page_layout.html.erb
@@ -34,9 +34,9 @@ function recreateSortables() {
Sortable.destroy('list-left');
Sortable.destroy('list-right');
- Sortable.create("list-top", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => '/my', :action => 'order_blocks', :group => 'top') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-top")})}, only:'mypage-box', tag:'div'})
- Sortable.create("list-left", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => '/my', :action => 'order_blocks', :group => 'left') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-left")})}, only:'mypage-box', tag:'div'})
- Sortable.create("list-right", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => '/my', :action => 'order_blocks', :group => 'right') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-right")})}, only:'mypage-box', tag:'div'})
+ Sortable.create("list-top", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => '/my', :action => 'order_blocks', :group => 'top') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-top")})}, only:'mypage-box', tag:'div'})
+ Sortable.create("list-left", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => '/my', :action => 'order_blocks', :group => 'left') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-left")})}, only:'mypage-box', tag:'div'})
+ Sortable.create("list-right", {constraint:false, containment:['list-top','list-left','list-right'], dropOnEmpty:true, handle:'handle', onUpdate:function(){new Ajax.Request('<%= url_for(:controller => '/my', :action => 'order_blocks', :group => 'right') %>', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize("list-right")})}, only:'mypage-box', tag:'div'})
}
function updateSelect() {
@@ -87,24 +87,24 @@ function removeBlock(block) {
<%= render :partial => 'layouts/action_menu_specific' %>
- <% @blocks['top'].each do |b|
- next unless MyController.available_blocks.keys.include? b %>
- <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
- <% end if @blocks['top'] %>
+ <% @blocks['top'].each do |b|
+ next unless MyController.available_blocks.keys.include? b %>
+ <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
+ <% end if @blocks['top'] %>
- <% @blocks['left'].each do |b|
- next unless MyController.available_blocks.keys.include? b %>
- <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
- <% end if @blocks['left'] %>
+ <% @blocks['left'].each do |b|
+ next unless MyController.available_blocks.keys.include? b %>
+ <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
+ <% end if @blocks['left'] %>
- <% @blocks['right'].each do |b|
- next unless MyController.available_blocks.keys.include? b %>
- <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
- <% end if @blocks['right'] %>
+ <% @blocks['right'].each do |b|
+ next unless MyController.available_blocks.keys.include? b %>
+ <%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
+ <% end if @blocks['right'] %>
<%= sortable_element 'list-top',
diff --git a/app/views/projects/form/attributes/_project_type_id.html.erb b/app/views/projects/form/attributes/_project_type_id.html.erb
index 984fc7222c..91cb1f18fe 100644
--- a/app/views/projects/form/attributes/_project_type_id.html.erb
+++ b/app/views/projects/form/attributes/_project_type_id.html.erb
@@ -27,4 +27,4 @@ See doc/COPYRIGHT.rdoc for more details.
++#%>
-<%= form.select :project_type_id, options_for_project_types, :include_blank => true %>
\ No newline at end of file
+<%= form.select :project_type_id, options_for_project_types, :include_blank => true %>
diff --git a/app/views/projects/settings/_boards.html.erb b/app/views/projects/settings/_boards.html.erb
index eb8d29cd64..8b8b3c1833 100644
--- a/app/views/projects/settings/_boards.html.erb
+++ b/app/views/projects/settings/_boards.html.erb
@@ -29,16 +29,16 @@ See doc/COPYRIGHT.rdoc for more details.
<% if @project.boards.any? %>
-
- <%= Board.model_name.human %>
- <%= Board.human_attribute_name(:description) %>
-
-
-
-
+
+ <%= Board.model_name.human %>
+ <%= Board.human_attribute_name(:description) %>
+
+
+
+
<% @project.boards.each do |board|
- next if board.new_record? %>
-
+ next if board.new_record? %>
+
<%=h board.name %>
<%=h board.description %>
@@ -50,9 +50,9 @@ See doc/COPYRIGHT.rdoc for more details.
<%= link_to_if_authorized l(:button_edit), {:controller => '/boards', :action => 'edit', :project_id => @project, :id => board}, :class => 'icon icon-edit' %>
<%= link_to_if_authorized l(:button_delete), {:controller => '/boards', :action => 'destroy', :project_id => @project, :id => board}, :confirm => l(:text_are_you_sure), :method => :delete, :class => 'icon icon-delete' %>
-
+
<% end %>
-
+
<% else %>
<%= l(:label_no_data) %>
diff --git a/app/views/projects/settings/_categories.html.erb b/app/views/projects/settings/_categories.html.erb
index e451c254f2..86121d36a3 100644
--- a/app/views/projects/settings/_categories.html.erb
+++ b/app/views/projects/settings/_categories.html.erb
@@ -29,15 +29,15 @@ See doc/COPYRIGHT.rdoc for more details.
<% if @project.categories.any? %>
-
- <%= Category.model_name.human %>
- <%= Category.human_attribute_name(:assigned_to) %>
-
-
-
+
+ <%= Category.model_name.human %>
+ <%= Category.human_attribute_name(:assigned_to) %>
+
+
+
<% for category in @project.categories %>
- <% unless category.new_record? %>
-
+ <% unless category.new_record? %>
+
<%=h(category.name) %>
<%=h(category.assigned_to.name) if category.assigned_to %>
@@ -50,8 +50,8 @@ See doc/COPYRIGHT.rdoc for more details.
:confirm => l(:text_are_you_sure),
:class => 'icon icon-delete' %>
-
- <% end %>
+
+ <% end %>
<% end %>
diff --git a/app/views/queries/_filters.html.erb b/app/views/queries/_filters.html.erb
index ea0351afb7..151fc3870f 100644
--- a/app/views/queries/_filters.html.erb
+++ b/app/views/queries/_filters.html.erb
@@ -52,7 +52,7 @@ function toggle_filter(field) {
if (check_box.checked) {
Element.show("operators_" + field);
- Form.Element.enable("operators_" + field);
+ Form.Element.enable("operators_" + field);
Form.Element.enable("values_" + field);
toggle_operator(field);
} else {
diff --git a/app/views/repositories/committers.html.erb b/app/views/repositories/committers.html.erb
index f9415b58ce..fdea77b4d0 100644
--- a/app/views/repositories/committers.html.erb
+++ b/app/views/repositories/committers.html.erb
@@ -38,26 +38,26 @@ See doc/COPYRIGHT.rdoc for more details.
<%= form_tag({}) do %>
-
- <%= User.human_attribute_name(:login) %>
- <%= User.model_name.human %>
-
+
+ <%= User.human_attribute_name(:login) %>
+ <%= User.model_name.human %>
+
<% i = 0 -%>
<% @committers.each do |committer, user_id| -%>
-
- <%=h committer %>
-
- <%= hidden_field_tag "committers[#{i}][]", committer %>
- <%= select_tag "committers[#{i}][]", content_tag('option', "-- #{l :actionview_instancetag_blank_option} --", :value => '') + options_from_collection_for_select(@users, 'id', 'name', user_id.to_i) %>
-
-
- <% i += 1 -%>
+
+ <%=h committer %>
+
+ <%= hidden_field_tag "committers[#{i}][]", committer %>
+ <%= select_tag "committers[#{i}][]", content_tag('option', "-- #{l :actionview_instancetag_blank_option} --", :value => '') + options_from_collection_for_select(@users, 'id', 'name', user_id.to_i) %>
+
+
+ <% i += 1 -%>
<% end -%>
<%= submit_tag(l(:button_update)) %>
<% end %>
-<% end %>
\ No newline at end of file
+<% end %>
diff --git a/app/views/settings/_mail_handler.html.erb b/app/views/settings/_mail_handler.html.erb
index e87a9df651..905d5636b3 100644
--- a/app/views/settings/_mail_handler.html.erb
+++ b/app/views/settings/_mail_handler.html.erb
@@ -38,11 +38,11 @@ See doc/COPYRIGHT.rdoc for more details.
<%= setting_check_box :mail_handler_api_enabled,
- :onclick => "if (this.checked) { Form.Element.enable('settings_mail_handler_api_key'); } else { Form.Element.disable('settings_mail_handler_api_key'); }"%>
+ :onclick => "if (this.checked) { Form.Element.enable('settings_mail_handler_api_key'); } else { Form.Element.disable('settings_mail_handler_api_key'); }"%>
<%= setting_text_field :mail_handler_api_key, :size => 30,
- :id => 'settings_mail_handler_api_key',
- :disabled => !Setting.mail_handler_api_enabled? %>
+ :id => 'settings_mail_handler_api_key',
+ :disabled => !Setting.mail_handler_api_enabled? %>
<%= link_to_function l(:label_generate_key), "if ($('settings_mail_handler_api_key').disabled == false) { $('settings_mail_handler_api_key').value = randomKey(20) }" %>
diff --git a/app/views/settings/_projects.html.erb b/app/views/settings/_projects.html.erb
index 75ad4b4ddd..edff44224d 100644
--- a/app/views/settings/_projects.html.erb
+++ b/app/views/settings/_projects.html.erb
@@ -38,8 +38,8 @@ See doc/COPYRIGHT.rdoc for more details.
<%= setting_check_box :sequential_project_identifiers %>
<%= setting_select :new_project_user_role_id,
- Role.find_all_givable.collect {|r| [r.name, r.id.to_s]},
- :blank => "--- #{l(:actionview_instancetag_blank_option)} ---" %>
+ Role.find_all_givable.collect {|r| [r.name, r.id.to_s]},
+ :blank => "--- #{l(:actionview_instancetag_blank_option)} ---" %>
<%= submit_tag l(:button_save) %>
diff --git a/app/views/settings/_repositories.html.erb b/app/views/settings/_repositories.html.erb
index 58962ec3c4..73a1d3d60c 100644
--- a/app/views/settings/_repositories.html.erb
+++ b/app/views/settings/_repositories.html.erb
@@ -33,12 +33,12 @@ See doc/COPYRIGHT.rdoc for more details.
<%= setting_check_box :autofetch_changesets %>
<%= setting_check_box :sys_api_enabled,
- :onclick => "if (this.checked) { Form.Element.enable('settings_sys_api_key'); } else { Form.Element.disable('settings_sys_api_key'); }" %>
+ :onclick => "if (this.checked) { Form.Element.enable('settings_sys_api_key'); } else { Form.Element.disable('settings_sys_api_key'); }" %>
<%= setting_text_field :sys_api_key, :size => 30,
- :id => 'settings_sys_api_key',
- :disabled => !Setting.sys_api_enabled?,
- :label => :setting_mail_handler_api_key %>
+ :id => 'settings_sys_api_key',
+ :disabled => !Setting.sys_api_enabled?,
+ :label => :setting_mail_handler_api_key %>
<%= link_to_function l(:label_generate_key), "if ($('settings_sys_api_key').disabled == false) { $('settings_sys_api_key').value = randomKey(20) }" %>
diff --git a/app/views/time_entries/reports/show.html.erb b/app/views/time_entries/reports/show.html.erb
index 23006d9749..6d760a50d4 100644
--- a/app/views/time_entries/reports/show.html.erb
+++ b/app/views/time_entries/reports/show.html.erb
@@ -102,4 +102,3 @@ See doc/COPYRIGHT.rdoc for more details.
<% end %>
<% html_title l(:label_spent_time), l(:label_report) %>
-
diff --git a/app/views/timelines/_custom_fields.html.erb b/app/views/timelines/_custom_fields.html.erb
index 27fea9517d..541c405942 100644
--- a/app/views/timelines/_custom_fields.html.erb
+++ b/app/views/timelines/_custom_fields.html.erb
@@ -60,4 +60,4 @@ custom_fields.each do |custom_field|
<%
end
end
-%>
\ No newline at end of file
+%>
diff --git a/app/views/timelines/_timeline.html.erb b/app/views/timelines/_timeline.html.erb
index e690ef5375..9305d05b6c 100644
--- a/app/views/timelines/_timeline.html.erb
+++ b/app/views/timelines/_timeline.html.erb
@@ -67,4 +67,3 @@ See doc/COPYRIGHT.rdoc for more details.
<% @timeline_header_included = true %>
<% end %>
<% end %>
-
diff --git a/app/views/timelog/edit.html.erb b/app/views/timelog/edit.html.erb
index 0006ac300f..d31905bd75 100644
--- a/app/views/timelog/edit.html.erb
+++ b/app/views/timelog/edit.html.erb
@@ -40,7 +40,7 @@ See doc/COPYRIGHT.rdoc for more details.
<%= f.text_field :comments, :size => 100 %>
<%= f.select :activity_id, activity_collection_for_select_options(@time_entry), :required => true %>
<% @time_entry.custom_field_values.each do |value| %>
- <%= custom_field_tag_with_label :time_entry, value %>
+ <%= custom_field_tag_with_label :time_entry, value %>
<% end %>
<%= call_hook(:view_timelog_edit_form_bottom, { :time_entry => @time_entry, :form => f }) %>
diff --git a/app/views/types/_form.html.erb b/app/views/types/_form.html.erb
index 7787faf6f1..c3152f4738 100644
--- a/app/views/types/_form.html.erb
+++ b/app/views/types/_form.html.erb
@@ -41,13 +41,13 @@ See doc/COPYRIGHT.rdoc for more details.
<% if WorkPackageCustomField.all.any? %>
- <%= l(:label_custom_field_plural) %>
- <% WorkPackageCustomField.all.each do |field| %>
-
- <%= check_box_tag 'type[custom_field_ids][]',field.id, @type.custom_fields.include?(field) %>
- <%= field.name %>
-
- <% end %>
+ <%= l(:label_custom_field_plural) %>
+ <% WorkPackageCustomField.all.each do |field| %>
+
+ <%= check_box_tag 'type[custom_field_ids][]',field.id, @type.custom_fields.include?(field) %>
+ <%= field.name %>
+
+ <% end %>
<%= hidden_field_tag 'type[custom_field_ids][]', '' %>
<% end %>
diff --git a/app/views/user_mailer/work_package_added.html.erb b/app/views/user_mailer/work_package_added.html.erb
index 7621f629d8..20b58f208f 100644
--- a/app/views/user_mailer/work_package_added.html.erb
+++ b/app/views/user_mailer/work_package_added.html.erb
@@ -30,5 +30,3 @@ See doc/COPYRIGHT.rdoc for more details.
<%= t(:text_work_package_added, :id => "##{@issue.id}", :author => @issue.author) %>
<%= render :partial => 'issue_details', :locals => { :issue => @issue } %>
-
-
diff --git a/app/views/users/_mail_notifications.html.erb b/app/views/users/_mail_notifications.html.erb
index b492f2f69d..5602c7b697 100644
--- a/app/views/users/_mail_notifications.html.erb
+++ b/app/views/users/_mail_notifications.html.erb
@@ -39,4 +39,3 @@ See doc/COPYRIGHT.rdoc for more details.
<%= l(:text_user_mail_option) %>
<% end %>
<%= l(:label_user_mail_no_self_notified) %><%= check_box_tag 'no_self_notified', 1, @user.pref[:no_self_notified] %>
-
diff --git a/app/views/users/_memberships.html.erb b/app/views/users/_memberships.html.erb
index c88a5b9b1f..a21b2f9d2c 100644
--- a/app/views/users/_memberships.html.erb
+++ b/app/views/users/_memberships.html.erb
@@ -33,16 +33,16 @@ See doc/COPYRIGHT.rdoc for more details.
<% if @user.memberships.any? %>
-
- <%= Project.model_name.human %>
- <%= l(:label_role_plural) %>
-
+
+ <%= Project.model_name.human %>
+ <%= l(:label_role_plural) %>
+
<%= call_hook(:view_users_memberships_table_header, :user => @user )%>
-
-
- <% @user.memberships.each do |membership| %>
- <% next if membership.new_record? %>
-
+
+
+ <% @user.memberships.each do |membership| %>
+ <% next if membership.new_record? %>
+
<%= link_to_project membership.project %>
@@ -51,9 +51,9 @@ See doc/COPYRIGHT.rdoc for more details.
<%= form_for(:membership, :remote => true,
:url => { :action => 'edit_membership', :id => @user, :membership_id => membership },
:html => { :id => "member-#{membership.id}-roles-form", :style => 'display:none;'}) do %>
- <% roles.each do |role| %>
+
<% roles.each do |role| %>
<%= check_box_tag 'membership[role_ids][]', role.id, membership.roles.include?(role),
- :disabled => membership.member_roles.detect {|mr| mr.role_id == role.id && !mr.inherited_from.nil?} %> <%=h role %>
+ :disabled => membership.member_roles.detect {|mr| mr.role_id == role.id && !mr.inherited_from.nil?} %> <%=h role %>
<% end %>
<%= submit_tag l(:button_change) %>
<%= link_to_function l(:button_cancel), "$('member-#{membership.id}-roles').show(); $('member-#{membership.id}-roles-form').hide(); return false;" %>
@@ -70,9 +70,9 @@ See doc/COPYRIGHT.rdoc for more details.
:class => 'icon icon-delete') if membership.deletable? %>
<%= call_hook(:view_users_memberships_table_row, :user => @user, :membership => membership, :roles => roles, :projects => projects )%>
-
+
<% end; reset_cycle %>
-
+
<% else %>
<%= l(:label_no_data) %>
diff --git a/app/views/users/_preferences.html.erb b/app/views/users/_preferences.html.erb
index 65c84f1073..1f0a6310a5 100644
--- a/app/views/users/_preferences.html.erb
+++ b/app/views/users/_preferences.html.erb
@@ -36,4 +36,3 @@ See doc/COPYRIGHT.rdoc for more details.
<%= pref_fields.select :theme, OpenProject::Themes.all.map {|t| [t.name, t.identifier]}, :label => :label_theme %>
<% end %>
<% end %>
-
diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb
index 261bc12b0b..679239d486 100644
--- a/app/views/users/index.html.erb
+++ b/app/views/users/index.html.erb
@@ -65,10 +65,10 @@ See doc/COPYRIGHT.rdoc for more details.
- <%= sort_header_tag('login', :caption => User.human_attribute_name(:login)) %>
- <%= sort_header_tag('firstname', :caption => User.human_attribute_name(:firstname)) %>
- <%= sort_header_tag('lastname', :caption => User.human_attribute_name(:lastname)) %>
- <%= sort_header_tag('mail', :caption => User.human_attribute_name(:mail)) %>
+ <%= sort_header_tag('login', :caption => User.human_attribute_name(:login)) %>
+ <%= sort_header_tag('firstname', :caption => User.human_attribute_name(:firstname)) %>
+ <%= sort_header_tag('lastname', :caption => User.human_attribute_name(:lastname)) %>
+ <%= sort_header_tag('mail', :caption => User.human_attribute_name(:mail)) %>
<%= sort_header_tag('admin', :caption => User.human_attribute_name(:admin), :default_order => 'desc') %>
<%= sort_header_tag('created_on', :caption => User.human_attribute_name(:created_on), :default_order => 'desc') %>
<%= sort_header_tag('last_login_on', :caption => User.human_attribute_name(:last_login_on), :default_order => 'desc') %>
@@ -79,11 +79,11 @@ See doc/COPYRIGHT.rdoc for more details.
<% for user in @users -%>
<%= %w(anon active registered locked)[user.status] %> <%= 'blocked' if user.failed_too_many_recent_login_attempts? %>">
- <%= avatar(user, :size => "14") %><%= link_to h(user.login), edit_user_path(user) %>
- <%= h(user.firstname) %>
- <%= h(user.lastname) %>
- <%= mail_to(h(user.mail)) %>
- <%= checked_image user.admin? %>
+ <%= avatar(user, :size => "14") %><%= link_to h(user.login), edit_user_path(user) %>
+ <%= h(user.firstname) %>
+ <%= h(user.lastname) %>
+ <%= mail_to(h(user.mail)) %>
+ <%= checked_image user.admin? %>
<%= format_time(user.created_on) %>
<%= format_time(user.last_login_on) unless user.last_login_on.nil? %>
diff --git a/app/views/users/new.html.erb b/app/views/users/new.html.erb
index ca4dcd9590..39fceece0c 100644
--- a/app/views/users/new.html.erb
+++ b/app/views/users/new.html.erb
@@ -35,10 +35,10 @@ See doc/COPYRIGHT.rdoc for more details.
:url => { :action => "create" },
:html => { :class => nil, :autocomplete => 'off' },
:as => :user do |f| %>
- <%= render :partial => 'form', :locals => { :f => f } %>
- <%= check_box_tag 'send_information', 1, true %> <%= l(:label_send_information) %>
-
- <%= submit_tag l(:button_create) %>
- <%= submit_tag l(:button_create_and_continue), :name => 'continue' %>
-
+ <%= render :partial => 'form', :locals => { :f => f } %>
+ <%= check_box_tag 'send_information', 1, true %> <%= l(:label_send_information) %>
+
+ <%= submit_tag l(:button_create) %>
+ <%= submit_tag l(:button_create_and_continue), :name => 'continue' %>
+
<% end %>
diff --git a/app/views/versions/_form.html.erb b/app/views/versions/_form.html.erb
index a2514ca020..b2897e5d0a 100644
--- a/app/views/versions/_form.html.erb
+++ b/app/views/versions/_form.html.erb
@@ -41,7 +41,7 @@ See doc/COPYRIGHT.rdoc for more details.
<%= f.select :sharing, @version.allowed_sharings.collect {|v| [format_version_sharing(v), v]} %>
<% @version.custom_field_values.each do |value| %>
- <%= custom_field_tag_with_label :version, value %>
+ <%= custom_field_tag_with_label :version, value %>
<% end %>
diff --git a/app/views/versions/edit.html.erb b/app/views/versions/edit.html.erb
index e7221dfeb0..293b28dff2 100644
--- a/app/views/versions/edit.html.erb
+++ b/app/views/versions/edit.html.erb
@@ -35,4 +35,3 @@ See doc/COPYRIGHT.rdoc for more details.
<%= render :partial => 'form', :locals => { :f => f } %>
<%= submit_tag l(:button_save) %>
<% end %>
-
diff --git a/app/views/versions/index.html.erb b/app/views/versions/index.html.erb
index 1e86c9bb0f..f42d216806 100644
--- a/app/views/versions/index.html.erb
+++ b/app/views/versions/index.html.erb
@@ -68,7 +68,7 @@ See doc/COPYRIGHT.rdoc for more details.
<%= check_box_tag "completed", 1, params[:completed] %> <%= l(:label_show_completed_versions) %>
<% if @project.descendants.active.any? %>
- <%= hidden_field_tag 'with_subprojects', 0 %>
+ <%= hidden_field_tag 'with_subprojects', 0 %>
<%= check_box_tag 'with_subprojects', 1, @with_subprojects %> <%=l(:label_subproject_plural)%>
<% end %>
<%= submit_tag l(:button_apply), :class => 'button-small', :name => nil %>
diff --git a/app/views/watchers/replace_selectors.rjs b/app/views/watchers/replace_selectors.rjs
index 92245ea5e6..71f946b099 100644
--- a/app/views/watchers/replace_selectors.rjs
+++ b/app/views/watchers/replace_selectors.rjs
@@ -47,4 +47,3 @@
end
end
end
-
diff --git a/app/views/wiki/destroy.html.erb b/app/views/wiki/destroy.html.erb
index 566457a757..a6a7e1cd02 100644
--- a/app/views/wiki/destroy.html.erb
+++ b/app/views/wiki/destroy.html.erb
@@ -39,7 +39,7 @@ See doc/COPYRIGHT.rdoc for more details.
<%= radio_button_tag 'todo', 'reassign', false %> <%= l(:text_wiki_page_reassign_children) %> :
<%= label_tag "reassign_to_id", l(:description_wiki_subpages_reassign), :class => "hidden-for-sighted" %>
<%= select_tag 'reassign_to_id', wiki_page_options_for_select(@reassignable_to),
- :onclick => "$('todo_reassign').checked = true;" %>
+ :onclick => "$('todo_reassign').checked = true;" %>
<% end %>
diff --git a/app/views/wiki/new.html.erb b/app/views/wiki/new.html.erb
index 05dad4e342..21b4494452 100644
--- a/app/views/wiki/new.html.erb
+++ b/app/views/wiki/new.html.erb
@@ -84,4 +84,3 @@ See doc/COPYRIGHT.rdoc for more details.
<% end %>
<% html_title @page.pretty_title %>
-
diff --git a/app/views/work_package_relations/destroy.js.erb b/app/views/work_package_relations/destroy.js.erb
index c635646bda..c097c08a85 100644
--- a/app/views/work_package_relations/destroy.js.erb
+++ b/app/views/work_package_relations/destroy.js.erb
@@ -31,4 +31,3 @@ jQuery('#work_package_relation_<%= @relation.id %>').remove();
var relationsTable = jQuery('#work-package-relations-table');
if (relationsTable.find('tbody tr').length === 0) relationsTable.addClass('hidden');
-
diff --git a/app/views/work_packages/_action_menu_with_edit_container.html.erb b/app/views/work_packages/_action_menu_with_edit_container.html.erb
index fb24406c7f..6c5e17f925 100644
--- a/app/views/work_packages/_action_menu_with_edit_container.html.erb
+++ b/app/views/work_packages/_action_menu_with_edit_container.html.erb
@@ -36,4 +36,3 @@ See doc/COPYRIGHT.rdoc for more details.
<% end %>
-
diff --git a/app/views/work_packages/_form_update.html.erb b/app/views/work_packages/_form_update.html.erb
index d8bf15305e..1a98bd4c08 100644
--- a/app/views/work_packages/_form_update.html.erb
+++ b/app/views/work_packages/_form_update.html.erb
@@ -35,4 +35,3 @@ See doc/COPYRIGHT.rdoc for more details.
<%= render :partial => "two_column_attributes", :locals => { :attributes => attributes } %>
-
diff --git a/app/views/work_packages/bulk/edit.html.erb b/app/views/work_packages/bulk/edit.html.erb
index a188c02a79..795d526917 100644
--- a/app/views/work_packages/bulk/edit.html.erb
+++ b/app/views/work_packages/bulk/edit.html.erb
@@ -40,22 +40,22 @@ See doc/COPYRIGHT.rdoc for more details.
- <%= WorkPackage.human_attribute_name(:type) %>
- <%= select_tag('work_package[type_id]', "#{l(:label_no_change_option)} ".html_safe + options_from_collection_for_select(@types, :id, :name)) %>
+ <%= WorkPackage.human_attribute_name(:type) %>
+ <%= select_tag('work_package[type_id]', "#{l(:label_no_change_option)} ".html_safe + options_from_collection_for_select(@types, :id, :name)) %>
<% if @available_statuses.any? %>
- <%= WorkPackage.human_attribute_name(:status) %>
- <%= select_tag('work_package[status_id]', "#{l(:label_no_change_option)} ".html_safe + options_from_collection_for_select(@available_statuses, :id, :name)) %>
+ <%= WorkPackage.human_attribute_name(:status) %>
+ <%= select_tag('work_package[status_id]', "#{l(:label_no_change_option)} ".html_safe + options_from_collection_for_select(@available_statuses, :id, :name)) %>
<% end %>
- <%= WorkPackage.human_attribute_name(:priority) %>
- <%= select_tag('work_package[priority_id]', "#{l(:label_no_change_option)} ".html_safe + options_from_collection_for_select(IssuePriority.all, :id, :name)) %>
+ <%= WorkPackage.human_attribute_name(:priority) %>
+ <%= select_tag('work_package[priority_id]', "#{l(:label_no_change_option)} ".html_safe + options_from_collection_for_select(IssuePriority.all, :id, :name)) %>
- <%= WorkPackage.human_attribute_name(:assigned_to) %>
- <%= select_tag('work_package[assigned_to_id]', content_tag('option', l(:label_no_change_option), :value => '') +
+ <%= WorkPackage.human_attribute_name(:assigned_to) %>
+ <%= select_tag('work_package[assigned_to_id]', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_nobody), :value => 'none') +
options_from_collection_for_select(@assignables, :id, :name)) %>
@@ -67,8 +67,8 @@ See doc/COPYRIGHT.rdoc for more details.
<% if @project %>
- <%= WorkPackage.human_attribute_name(:category) %>
- <%= select_tag('work_package[category_id]', content_tag('option', l(:label_no_change_option), :value => '') +
+ <%= WorkPackage.human_attribute_name(:category) %>
+ <%= select_tag('work_package[category_id]', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_none), :value => 'none') +
options_from_collection_for_select(@project.categories, :id, :name)) %>
@@ -76,8 +76,8 @@ See doc/COPYRIGHT.rdoc for more details.
<% #TODO: allow editing versions when multiple projects %>
<% if @project %>
- <%= WorkPackage.human_attribute_name(:fixed_version) %>
- <%= select_tag('work_package[fixed_version_id]', content_tag('option', l(:label_no_change_option), :value => '') +
+ <%= WorkPackage.human_attribute_name(:fixed_version) %>
+ <%= select_tag('work_package[fixed_version_id]', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_none), :value => 'none') +
version_options_for_select(@project.shared_versions.open.sort)) %>
@@ -96,24 +96,24 @@ See doc/COPYRIGHT.rdoc for more details.
<% if @project && User.current.allowed_to?(:manage_subtasks, @project) %>
- <%= WorkPackage.human_attribute_name(:parent) %>
- <%= text_field_tag 'work_package[parent_id]', '', :size => 10 %>
+ <%= WorkPackage.human_attribute_name(:parent) %>
+ <%= text_field_tag 'work_package[parent_id]', '', :size => 10 %>
<%= javascript_tag "observeParentIssueField('#{work_packages_auto_complete_path(project_id: @project.id)}')" %>
<% end %>
- <%= WorkPackage.human_attribute_name(:start_date) %>
- <%= text_field_tag 'work_package[start_date]', '', :size => 10 %><%= calendar_for('work_package_start_date') %>
+ <%= WorkPackage.human_attribute_name(:start_date) %>
+ <%= text_field_tag 'work_package[start_date]', '', :size => 10 %><%= calendar_for('work_package_start_date') %>
- <%= WorkPackage.human_attribute_name(:due_date) %>
- <%= text_field_tag 'work_package[due_date]', '', :size => 10 %><%= calendar_for('work_package_due_date') %>
+ <%= WorkPackage.human_attribute_name(:due_date) %>
+ <%= text_field_tag 'work_package[due_date]', '', :size => 10 %><%= calendar_for('work_package_due_date') %>
<% if WorkPackage.use_field_for_done_ratio? %>
- <%= WorkPackage.human_attribute_name(:done_ratio) %>
- <%= select_tag 'work_package[done_ratio]', options_for_select([[l(:label_no_change_option), '']] + (0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %>
+ <%= WorkPackage.human_attribute_name(:done_ratio) %>
+ <%= select_tag 'work_package[done_ratio]', options_for_select([[l(:label_no_change_option), '']] + (0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %>
<% end %>
diff --git a/app/views/work_packages/calendars/index.html.erb b/app/views/work_packages/calendars/index.html.erb
index b263118e90..20c52982c2 100644
--- a/app/views/work_packages/calendars/index.html.erb
+++ b/app/views/work_packages/calendars/index.html.erb
@@ -68,9 +68,9 @@ See doc/COPYRIGHT.rdoc for more details.
<%= render :partial => 'common/calendar', :locals => {:calendar => @calendar} %>
- <%= l(:text_tip_work_package_begin_day) %>
- <%= l(:text_tip_work_package_end_day) %>
- <%= l(:text_tip_work_package_begin_end_day) %>
+ <%= l(:text_tip_work_package_begin_day) %>
+ <%= l(:text_tip_work_package_end_day) %>
+ <%= l(:text_tip_work_package_begin_end_day) %>
<% end %>
diff --git a/app/views/work_packages/moves/new.html.erb b/app/views/work_packages/moves/new.html.erb
index 01c7d56b3f..9dc7068843 100644
--- a/app/views/work_packages/moves/new.html.erb
+++ b/app/views/work_packages/moves/new.html.erb
@@ -33,7 +33,7 @@ See doc/COPYRIGHT.rdoc for more details.
<% @work_packages.each do |work_package| -%>
- <%= link_to_work_package work_package %>
+ <%= link_to_work_package work_package %>
<% end -%>
@@ -115,12 +115,12 @@ See doc/COPYRIGHT.rdoc for more details.
<% if @copy %>
- <%= hidden_field_tag("copy") %>
- <%= submit_tag l(:button_copy) %>
- <%= submit_tag l(:button_copy_and_follow), :name => 'follow' %>
+ <%= hidden_field_tag("copy") %>
+ <%= submit_tag l(:button_copy) %>
+ <%= submit_tag l(:button_copy_and_follow), :name => 'follow' %>
<% else %>
- <%= submit_tag l(:button_move) %>
- <%= submit_tag l(:button_move_and_follow), :name => 'follow' %>
+ <%= submit_tag l(:button_move) %>
+ <%= submit_tag l(:button_move_and_follow), :name => 'follow' %>
<% end %>
<% end %>
<% content_for :header_tags do %>
diff --git a/app/views/work_packages/reports/report.html.erb b/app/views/work_packages/reports/report.html.erb
index 5f6951dac2..a72b3bbf33 100644
--- a/app/views/work_packages/reports/report.html.erb
+++ b/app/views/work_packages/reports/report.html.erb
@@ -52,4 +52,3 @@ additional_reports << @category_report
<% end %>
<%= call_hook(:view_reports_issue_report_split_content_right, :project => @project) %>
-
diff --git a/app/views/work_packages/reports/report_details.html.erb b/app/views/work_packages/reports/report_details.html.erb
index 5314b8fee4..67625e8f3d 100644
--- a/app/views/work_packages/reports/report_details.html.erb
+++ b/app/views/work_packages/reports/report_details.html.erb
@@ -39,4 +39,3 @@ See doc/COPYRIGHT.rdoc for more details.
<%= link_to l(:button_back), report_project_work_packages_path(@project) %>
-
diff --git a/app/views/workflows/edit.html.erb b/app/views/workflows/edit.html.erb
index 2c09dee62a..dfceb559dc 100644
--- a/app/views/workflows/edit.html.erb
+++ b/app/views/workflows/edit.html.erb
@@ -37,11 +37,11 @@ See doc/COPYRIGHT.rdoc for more details.
<%= form_tag({}, :method => 'get') do %>
- <%= Role.model_name.human %>:
- <%= select_tag 'role_id', options_from_collection_for_select(@roles, "id", "name", @role && @role.id) %>
+ <%= Role.model_name.human %>:
+ <%= select_tag 'role_id', options_from_collection_for_select(@roles, "id", "name", @role && @role.id) %>
<%= Type.model_name.human %>:
- <%= select_tag 'type_id', options_from_collection_for_select(@types, "id", "name", @type && @type.id) %>
+ <%= select_tag 'type_id', options_from_collection_for_select(@types, "id", "name", @type && @type.id) %>
<%= hidden_field_tag 'used_statuses_only', '0' %>
<%= check_box_tag 'used_statuses_only', '1', @used_statuses_only %> <%= l(:label_display_used_statuses_only) %>
diff --git a/bower.json b/bower.json
index 6ab415ba01..92c712fc6d 100644
--- a/bower.json
+++ b/bower.json
@@ -28,7 +28,8 @@
"mocha": "~1.14.0",
"angular-mocks": "~1.2.14",
"angular-scenario": "~1.2.14",
- "chai": "~1.9.0"
+ "chai": "~1.9.0",
+ "jquery-mockjax": "~1.5.3"
},
"resolutions": {
"select2": "3.3.2"
diff --git a/config/environments/demo.rb b/config/environments/demo.rb
index f30f1b19f8..bd0d32809e 100644
--- a/config/environments/demo.rb
+++ b/config/environments/demo.rb
@@ -47,4 +47,3 @@ config.action_controller.perform_caching = true
# Disable mail delivery
config.action_mailer.perform_deliveries = false
config.action_mailer.raise_delivery_errors = false
-
diff --git a/config/initializers/time_with_zone_as_json.rb b/config/initializers/time_with_zone_as_json.rb
index dd4b29b745..924462459d 100644
--- a/config/initializers/time_with_zone_as_json.rb
+++ b/config/initializers/time_with_zone_as_json.rb
@@ -2,4 +2,4 @@ class ActiveSupport::TimeWithZone
def as_json(options = {})
%(#{time.strftime("%m/%d/%Y/ %H:%M %p")})
end
-end
\ No newline at end of file
+end
diff --git a/db/migrate/000_aggregated_migrations.rb b/db/migrate/000_aggregated_migrations.rb
index 42357de886..ab3d3c45cb 100644
--- a/db/migrate/000_aggregated_migrations.rb
+++ b/db/migrate/000_aggregated_migrations.rb
@@ -893,4 +893,3 @@ class AggregatedMigrations < ActiveRecord::Migration
end
end
-
diff --git a/db/migrate/20120319095930_localize_email_header_and_footer.rb b/db/migrate/20120319095930_localize_email_header_and_footer.rb
index af54bff922..a97d376ea7 100644
--- a/db/migrate/20120319095930_localize_email_header_and_footer.rb
+++ b/db/migrate/20120319095930_localize_email_header_and_footer.rb
@@ -32,10 +32,10 @@ class LocalizeEmailHeaderAndFooter < ActiveRecord::Migration
def self.up
emails_header = Setting.find_by_name 'emails_header'
emails_footer = Setting.find_by_name 'emails_footer'
-
+
default_language = Setting.default_language
default_language = 'en' if default_language.blank?
-
+
if emails_header
translation = { default_language => emails_header.read_attribute(:value) }
emails_header.write_attribute(:value, translation.to_yaml.to_s)
@@ -52,10 +52,10 @@ class LocalizeEmailHeaderAndFooter < ActiveRecord::Migration
def self.down
emails_header = Setting.find_by_name 'emails_header'
emails_footer = Setting.find_by_name 'emails_footer'
-
+
default_language = Setting.default_language
default_language = 'en' if default_language.blank?
-
+
if emails_header
translations = YAML::load(emails_header.read_attribute(:value))
text = translations[default_language]
@@ -73,5 +73,5 @@ class LocalizeEmailHeaderAndFooter < ActiveRecord::Migration
emails_footer.write_attribute(:value, text)
emails_footer.save!
end
- end
+ end
end
diff --git a/db/migrate/20120529090411_create_delayed_jobs.rb b/db/migrate/20120529090411_create_delayed_jobs.rb
index 9982256a35..cfb06e4c1f 100644
--- a/db/migrate/20120529090411_create_delayed_jobs.rb
+++ b/db/migrate/20120529090411_create_delayed_jobs.rb
@@ -40,11 +40,11 @@ class CreateDelayedJobs < ActiveRecord::Migration
table.string :locked_by # Who is working on this object (if locked)
table.timestamps
end
-
+
add_index :delayed_jobs, [:priority, :run_at], :name => 'delayed_jobs_priority'
end
-
+
def self.down
- drop_table :delayed_jobs
+ drop_table :delayed_jobs
end
-end
\ No newline at end of file
+end
diff --git a/db/migrate/20131004141959_generalize_wiki_menu_items.rb b/db/migrate/20131004141959_generalize_wiki_menu_items.rb
index 9192ec3e42..d997819280 100644
--- a/db/migrate/20131004141959_generalize_wiki_menu_items.rb
+++ b/db/migrate/20131004141959_generalize_wiki_menu_items.rb
@@ -29,23 +29,23 @@
class GeneralizeWikiMenuItems < ActiveRecord::Migration
def up
- rename_table :wiki_menu_items, :menu_items
- add_column :menu_items, :type, :string
- rename_column :menu_items, :wiki_id, :navigatable_id
+ rename_table :wiki_menu_items, :menu_items
+ add_column :menu_items, :type, :string
+ rename_column :menu_items, :wiki_id, :navigatable_id
rename_index :menu_items, 'index_wiki_menu_items_on_parent_id', 'index_menu_items_on_parent_id'
rename_index :menu_items, 'index_wiki_menu_items_on_wiki_id_and_title', 'index_menu_items_on_navigatable_id_and_title'
- MenuItem.find_each do |menu_item|
- menu_item.update_attribute :type, 'MenuItems::WikiMenuItem'
- end
+ MenuItem.find_each do |menu_item|
+ menu_item.update_attribute :type, 'MenuItems::WikiMenuItem'
+ end
- # TODO rename indexes
+ # TODO rename indexes
end
def down
- rename_table :menu_items, :wiki_menu_items
- remove_column :wiki_menu_items, :type
- rename_column :wiki_menu_items, :navigatable_id, :wiki_id
+ rename_table :menu_items, :wiki_menu_items
+ remove_column :wiki_menu_items, :type
+ rename_column :wiki_menu_items, :navigatable_id, :wiki_id
rename_index :wiki_menu_items, 'index_menu_items_on_parent_id', 'index_wiki_menu_items_on_parent_id'
rename_index :wiki_menu_items, 'index_menu_items_on_navigatable_id_and_title', 'index_wiki_menu_items_on_wiki_id_and_title'
end
diff --git a/db/migrate/20140127134733_fix_issue_in_notifications.rb b/db/migrate/20140127134733_fix_issue_in_notifications.rb
index ce0012ec20..4dd86044c8 100644
--- a/db/migrate/20140127134733_fix_issue_in_notifications.rb
+++ b/db/migrate/20140127134733_fix_issue_in_notifications.rb
@@ -41,7 +41,7 @@ class FixIssueInNotifications < ActiveRecord::Migration
def down
Setting['notified_events'] = replace(Setting['notified_events'], REPLACED.invert)
end
-
+
private
def replace(value,mapping)
diff --git a/db/migrate/migration_utils/migration_squasher.rb b/db/migrate/migration_utils/migration_squasher.rb
index b88f0ffa4d..ce2aea8bc3 100644
--- a/db/migrate/migration_utils/migration_squasher.rb
+++ b/db/migrate/migration_utils/migration_squasher.rb
@@ -108,4 +108,3 @@ module Migration
end
end
end
-
diff --git a/db/migrate/migration_utils/setting_renamer.rb b/db/migrate/migration_utils/setting_renamer.rb
index b911a0fecf..59cd802949 100644
--- a/db/migrate/migration_utils/setting_renamer.rb
+++ b/db/migrate/migration_utils/setting_renamer.rb
@@ -55,4 +55,3 @@ module Migration
end
end
end
-
diff --git a/db/seeds/test.rb b/db/seeds/test.rb
index 79169d3ca6..aca28d4ee0 100644
--- a/db/seeds/test.rb
+++ b/db/seeds/test.rb
@@ -27,4 +27,4 @@
# See doc/COPYRIGHT.rdoc for more details.
#++
-# add seeds specific for the test-environment here
\ No newline at end of file
+# add seeds specific for the test-environment here
diff --git a/features/step_definitions/admin_steps.rb b/features/step_definitions/admin_steps.rb
index 86bfeb5160..14492de248 100644
--- a/features/step_definitions/admin_steps.rb
+++ b/features/step_definitions/admin_steps.rb
@@ -38,7 +38,7 @@ end
Then /^I should not see membership to the project "(.+)"$/ do |project|
project = Project.like(project).first
- begin
+ begin
page.find(:css, "#tab-content-memberships .memberships")
steps %Q{ Then I should not see "#{project.name}" within "#tab-content-memberships .memberships" }
rescue Capybara::ElementNotFound
diff --git a/features/step_definitions/api_steps.rb b/features/step_definitions/api_steps.rb
index f1ed00ff23..b9e4b17e19 100644
--- a/features/step_definitions/api_steps.rb
+++ b/features/step_definitions/api_steps.rb
@@ -184,4 +184,3 @@ def get_filtered_json(params)
at_time: params[:at_time])
end
end
-
diff --git a/features/step_definitions/common_steps.rb b/features/step_definitions/common_steps.rb
index caf53eae25..461291dbe0 100644
--- a/features/step_definitions/common_steps.rb
+++ b/features/step_definitions/common_steps.rb
@@ -77,4 +77,4 @@ end
Then(/^"([^"]*)" should be the first row in table$/) do |name|
should have_selector("table.list tbody tr td", :text => Regexp.new("#{name}"))
-end
\ No newline at end of file
+end
diff --git a/features/step_definitions/diff_steps.rb b/features/step_definitions/diff_steps.rb
index 9f86c3c523..7a78c5a519 100644
--- a/features/step_definitions/diff_steps.rb
+++ b/features/step_definitions/diff_steps.rb
@@ -52,4 +52,3 @@ When(/^I should see the following inline diff(?: on (.+?)):$/) do |page, table|
end
end
end
-
diff --git a/features/step_definitions/image_steps.rb b/features/step_definitions/image_steps.rb
index 07f106dd51..6a9032b398 100644
--- a/features/step_definitions/image_steps.rb
+++ b/features/step_definitions/image_steps.rb
@@ -42,4 +42,3 @@ Then /^I should see an image$/ do
img.should be_present
img.should be_visible
end
-
diff --git a/features/step_definitions/menu_steps.rb b/features/step_definitions/menu_steps.rb
index 54f7d986ee..f5381c62af 100644
--- a/features/step_definitions/menu_steps.rb
+++ b/features/step_definitions/menu_steps.rb
@@ -45,7 +45,7 @@ end
# opens a menu item in the main menu
When /^I open the "([^"]+)" (?:sub)?menu$/ do |menu_name|
-
+
nodes = all(:css, ".menu_root a[title=\"#{menu_name}\"]")
# w/o javascript, all menu elements are expanded by default. So the toggler
diff --git a/features/step_definitions/project_member_steps.rb b/features/step_definitions/project_member_steps.rb
index 43dcf43a00..e2c60c9f7f 100644
--- a/features/step_definitions/project_member_steps.rb
+++ b/features/step_definitions/project_member_steps.rb
@@ -161,4 +161,3 @@ def member_for_login(principal_name)
#the assumption here is, that there is only one project
principal.members.first
end
-
diff --git a/features/step_definitions/project_type_steps.rb b/features/step_definitions/project_type_steps.rb
index 6bc57ccc17..79390ad109 100644
--- a/features/step_definitions/project_type_steps.rb
+++ b/features/step_definitions/project_type_steps.rb
@@ -47,4 +47,3 @@ When /^I follow the edit link of the project type "([^"]*)"$/ do |project_type_n
click_link(type.name, :href => href)
end
-
diff --git a/features/step_definitions/query_steps.rb b/features/step_definitions/query_steps.rb
index 5b20ae65c4..70c73dd8dd 100644
--- a/features/step_definitions/query_steps.rb
+++ b/features/step_definitions/query_steps.rb
@@ -42,4 +42,4 @@ Given /^the [Pp]roject "([^\"]*)" has (\d+) [wW]ork [pP]ackage [qQ]uer(?:ies|y)?
i = FactoryGirl.build(:query, :project => p)
i.save
end
-end
\ No newline at end of file
+end
diff --git a/features/step_definitions/repository_steps.rb b/features/step_definitions/repository_steps.rb
index ad2e060c82..590b6e622a 100644
--- a/features/step_definitions/repository_steps.rb
+++ b/features/step_definitions/repository_steps.rb
@@ -38,5 +38,3 @@ Given(/^the project "(.*?)" has a repository$/) do |project_name|
repo.save!
end
-
-
diff --git a/features/step_definitions/role_steps.rb b/features/step_definitions/role_steps.rb
index 3e654441db..440e241ffb 100644
--- a/features/step_definitions/role_steps.rb
+++ b/features/step_definitions/role_steps.rb
@@ -87,4 +87,3 @@ end
Given /^the user "(.*?)" is a "([^\"]*?)"$/ do |user, role|
step %Q{the user "#{user}" is a "#{role}" in the project "#{get_project.name}"}
end
-
diff --git a/features/step_definitions/time_entry_steps.rb b/features/step_definitions/time_entry_steps.rb
index 7adf7b71bb..1965c3660d 100644
--- a/features/step_definitions/time_entry_steps.rb
+++ b/features/step_definitions/time_entry_steps.rb
@@ -71,4 +71,3 @@ When(/^I update the first time entry with (\d+) hours and the comment "(.*?)"$/)
fill_in TimeEntry.human_attribute_name(:comment), with: comment
click_button "Save"
end
-
diff --git a/features/step_definitions/type_steps.rb b/features/step_definitions/type_steps.rb
index 8703144660..e6a3433bc2 100644
--- a/features/step_definitions/type_steps.rb
+++ b/features/step_definitions/type_steps.rb
@@ -45,4 +45,4 @@ end
Then /^I should not see the "([^"]*)" type$/ do |name|
page.all(:css, '.timelines-pet-name', :text => name).should be_empty
-end
\ No newline at end of file
+end
diff --git a/features/support/cleanup.rb b/features/support/cleanup.rb
index 43b71606c7..5c067cb404 100644
--- a/features/support/cleanup.rb
+++ b/features/support/cleanup.rb
@@ -56,6 +56,3 @@ end
After do
Support::Cleanup.cleanup
end
-
-
-
diff --git a/features/support/object_daddy.rb b/features/support/object_daddy.rb
index b1f350cc33..86fc8e89b1 100644
--- a/features/support/object_daddy.rb
+++ b/features/support/object_daddy.rb
@@ -28,4 +28,4 @@
#++
require File.expand_path('../../../test/object_daddy_helpers', __FILE__)
-World(ObjectDaddyHelpers)
\ No newline at end of file
+World(ObjectDaddyHelpers)
diff --git a/features/support/paths.rb b/features/support/paths.rb
index 3825997395..3eaf60d3c0 100644
--- a/features/support/paths.rb
+++ b/features/support/paths.rb
@@ -67,7 +67,7 @@ module NavigationHelpers
project = Project.find_by_name(project_identifier)
project_identifier = project.identifier.gsub(' ', '%20')
"/projects/#{project_identifier}/wiki/#{wiki_page}"
-
+
when /^the lost password page$/
'/account/lost_password'
diff --git a/features/support/selectors.rb b/features/support/selectors.rb
index be4fe19e63..f474c9c831 100644
--- a/features/support/selectors.rb
+++ b/features/support/selectors.rb
@@ -44,7 +44,7 @@ module HtmlSelectorsHelpers
when "the page"
"html > body"
-
+
# Add more mappings here.
# Here is an example that pulls values out of the Regexp:
#
diff --git a/features/support/selenium_with_firebug.rb b/features/support/selenium_with_firebug.rb
index 563ccae1ff..c8162e9e00 100644
--- a/features/support/selenium_with_firebug.rb
+++ b/features/support/selenium_with_firebug.rb
@@ -54,4 +54,3 @@ end
Before '@firebug' do
Capybara.current_driver = :selenium_with_firebug
end
-
diff --git a/karma.conf.js b/karma.conf.js
index 2eb254e290..f11d4fdd40 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -29,6 +29,7 @@ module.exports = function(config) {
"vendor/assets/components/angular-truncate/src/truncate.js",
"vendor/assets/components/angular-sanitize/angular-sanitize.js",
"vendor/assets/components/momentjs/moment.js",
+ 'vendor/assets/components/select2/select2.js',
"vendor/assets/components/ng-context-menu/dist/ng-context-menu.js",
"vendor/assets/components/openproject-ui_components/app/assets/javascripts/angular/ui-components-app.js",
@@ -101,6 +102,10 @@ module.exports = function(config) {
"app/assets/javascripts/angular/controllers/dialogs/share.js",
"app/assets/javascripts/angular/controllers/dialogs/sorting.js",
+ 'app/assets/javascripts/autocompleter.js',
+ 'app/assets/javascripts/members_select_boxes.js',
+ 'app/assets/javascripts/openproject.js',
+ 'app/assets/javascripts/timelines_select_boxes.js',
'app/assets/javascripts/date-en-US.js',
@@ -108,9 +113,12 @@ module.exports = function(config) {
'karma/lib/rosie.js',
'karma/tests/test-helper.js',
'karma/factories/*factory.js',
+
+ 'vendor/assets/components/jquery-mockjax/jquery.mockjax.js',
'karma/tests/asset_functions.js',
'karma/tests/**/*test.js',
+ 'karma/tests/legacy-tests.js',
'public/templates/**/*.html'
],
@@ -125,6 +133,7 @@ module.exports = function(config) {
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
+ 'app/assets/javascripts/*.js': ['coverage'],
'app/assets/javascripts/angular/**/*.js': ['coverage'],
'public/templates/**/*.html': ['ng-html2js']
},
diff --git a/lib/assets/javascripts/qunit/mocks/projects.json b/karma/mocks/projects.json
similarity index 100%
rename from lib/assets/javascripts/qunit/mocks/projects.json
rename to karma/mocks/projects.json
diff --git a/karma/tests/controllers/work-packages-controller-test.js b/karma/tests/controllers/work-packages-controller-test.js
index 7c3ab5b307..94964d9398 100644
--- a/karma/tests/controllers/work-packages-controller-test.js
+++ b/karma/tests/controllers/work-packages-controller-test.js
@@ -112,6 +112,10 @@ describe('WorkPackagesController', function() {
setTotalEntries: function() {
return 10;
+ },
+
+ resetAll: function() {
+ return null;
}
};
testPaginationService = {
diff --git a/karma/tests/helpers/components/work-packages-helper-test.js b/karma/tests/helpers/components/work-packages-helper-test.js
index b36d3b76be..0a4c3e5685 100644
--- a/karma/tests/helpers/components/work-packages-helper-test.js
+++ b/karma/tests/helpers/components/work-packages-helper-test.js
@@ -118,6 +118,20 @@ describe('Work packages helper', function() {
expect(formatValue(20.99, 'currency')).to.equal("EURÂ 20.99");
expect(formatValue("20", 'currency')).to.equal("EURÂ 20.00");
});
+
+ it('should display empty strings for empty/undefined dates', function() {
+ expect(formatValue("", 'datetime')).to.equal("");
+ expect(formatValue(undefined, 'datetime')).to.equal("");
+ expect(formatValue(null, 'datetime')).to.equal("");
+ expect(formatValue("", 'date')).to.equal("");
+ expect(formatValue(undefined, 'date')).to.equal("");
+ expect(formatValue(null, 'date')).to.equal("");
+ });
+
+ it('should display parsed dates and datetimes', function(){
+ expect(formatValue("01/01/2014", 'date')).to.equal("Jan 1, 2014");
+ expect(formatValue("01/01/2014 08:19 AM", 'datetime')).to.equal("Jan 1, 2014 12:00:00 AM");
+ })
});
});
diff --git a/karma/tests/legacy-tests.js b/karma/tests/legacy-tests.js
new file mode 100644
index 0000000000..70a8b65c4b
--- /dev/null
+++ b/karma/tests/legacy-tests.js
@@ -0,0 +1,374 @@
+/**
+ * OpenProject instance methods
+ */
+describe("OpenProject instance `getFullUrl`", function() {
+ it("with undefined urlRoot", function() {
+ var op = new OpenProject({});
+
+ assert.strictEqual(op.getFullUrl('/foo'), '/foo', "works w/ leading slash");
+ assert.strictEqual(op.getFullUrl('foo'), '/foo', "works w/o leading slash");
+ assert.strictEqual(op.getFullUrl(''), '/', "works w/ empty string");
+ assert.strictEqual(op.getFullUrl(), '/', "works w/o parameter");
+ });
+
+ it("with empty string urlRoot", function() {
+ var op = new OpenProject({urlRoot : ''});
+
+ assert.strictEqual(op.getFullUrl('/foo'), '/foo', "works w/ leading slash");
+ assert.strictEqual(op.getFullUrl('foo'), '/foo', "works w/o leading slash");
+ assert.strictEqual(op.getFullUrl(''), '/', "works w/ empty string");
+ assert.strictEqual(op.getFullUrl(), '/', "works w/o parameter");
+ });
+
+ it("with '/' urlRoot", function() {
+ var op = new OpenProject({urlRoot : '/'});
+
+ assert.strictEqual(op.getFullUrl('/foo'), '/foo', "works w/ leading slash");
+ assert.strictEqual(op.getFullUrl('foo'), '/foo', "works w/o leading slash");
+ assert.strictEqual(op.getFullUrl(''), '/', "works w/ empty string");
+ assert.strictEqual(op.getFullUrl(), '/', "works w/o parameter");
+ });
+
+ it("with urlRoot w/ trailing slash", function() {
+ var op = new OpenProject({urlRoot : '/op/'});
+
+ assert.strictEqual(op.getFullUrl('/foo'), '/op/foo', "works w/ leading slash");
+ assert.strictEqual(op.getFullUrl('foo'), '/op/foo', "works w/o leading slash");
+ assert.strictEqual(op.getFullUrl(''), '/op/', "works w/ empty string");
+ assert.strictEqual(op.getFullUrl(), '/op/', "works w/o parameter");
+ });
+
+ it("with urlRoot w/o trailing slash", function() {
+ var op = new OpenProject({urlRoot : '/op'});
+
+ assert.strictEqual(op.getFullUrl('/foo'), '/op/foo', "works w/ leading slash");
+ assert.strictEqual(op.getFullUrl('foo'), '/op/foo', "works w/o leading slash");
+ assert.strictEqual(op.getFullUrl(''), '/op/', "works w/ empty string");
+ assert.strictEqual(op.getFullUrl(), '/op/', "works w/o parameter");
+ });
+});
+
+describe("OpenProject instance `fetchProjects`", function() {
+
+ var defaultOptions = {
+ url : new RegExp('.*/projects/level_list\\.json'),
+ responseTime : 0
+ };
+
+ beforeEach(function() {
+ if (false) {
+ jQuery.mockjax(jQuery.extend(defaultOptions, {
+ proxy : 'mocks/projects.json'
+ }));
+ } else {
+ jQuery.mockjax(jQuery.extend(defaultOptions, {
+ responseText: '{"projects":[{"identifier":"bums","created_on":"2012-12-18T07:00:17Z","level":0,"updated_on":"2012-12-18T09:09:10Z","name":"Bums zzz","id":3},{"identifier":"things","created_on":"2012-12-14T14:01:27Z","level":0,"updated_on":"2012-12-14T14:01:27Z","name":"Things","id":1},{"identifier":"things-bums","created_on":"2012-12-18T06:59:50Z","level":1,"updated_on":"2012-12-18T14:26:05Z","name":"Thingsb-Bums","id":2},{"identifier":"bums-bums","created_on":"2012-12-18T08:57:46Z","level":2,"updated_on":"2012-12-18T08:57:46Z","name":"Bums Bums","id":5},{"identifier":"zzz","created_on":"2012-12-18T08:57:14Z","level":0,"updated_on":"2012-12-18T08:57:14Z","name":"ZZZ","id":4}],"size":5}'
+ }));
+ }
+ });
+
+ afterEach(function() {
+ jQuery.mockjaxClear();
+ });
+
+
+ it("calls /projects/level_list.json to fetch results", function() {
+ var op = new OpenProject();
+
+ op.fetchProjects(function (projects) {
+ assert.strictEqual(projects.length, 5);
+ });
+ });
+
+ it("adds hname to projects", function() {
+ var op = new OpenProject(),
+ hname = OpenProject.Helpers.hname;
+
+ op.fetchProjects(function (projects) {
+ assert.deepEqual(projects[0].hname, "Bums zzz");
+ assert.deepEqual(projects[1].hname, "Things");
+ assert.deepEqual(projects[2].hname, hname("Thingsb-Bums", 1));
+ assert.deepEqual(projects[3].hname, hname("Bums Bums", 2));
+ assert.deepEqual(projects[4].hname, "ZZZ");
+ });
+ });
+
+ it("adds parents array to projects", function() {
+ var op = new OpenProject();
+
+ op.fetchProjects(function (projects) {
+ assert.deepEqual(projects[0].parents, []);
+ assert.deepEqual(projects[1].parents, []);
+ assert.deepEqual(projects[2].parents, [projects[1]]);
+ assert.deepEqual(projects[3].parents, [projects[1], projects[2]]);
+ assert.deepEqual(projects[4].parents, []);
+ });
+ });
+
+ it("adds tokens to projects", function() {
+ var op = new OpenProject();
+
+ op.fetchProjects(function (projects) {
+ assert.deepEqual(projects[0].tokens, ["Bums", "zzz"]);
+ assert.deepEqual(projects[1].tokens, ["Things"]);
+ assert.deepEqual(projects[2].tokens, ["Thingsb", "Bums"]);
+ assert.deepEqual(projects[3].tokens, ["Bums", "Bums"]);
+ assert.deepEqual(projects[4].tokens, ["ZZZ"]);
+ });
+ });
+
+ it("adds url to projects", function() {
+ var op = new OpenProject();
+
+ op.fetchProjects(function (projects) {
+ assert.deepEqual(projects[0].url, "/projects/bums");
+ assert.deepEqual(projects[1].url, "/projects/things");
+ assert.deepEqual(projects[2].url, "/projects/things-bums");
+ assert.deepEqual(projects[3].url, "/projects/bums-bums");
+ assert.deepEqual(projects[4].url, "/projects/zzz");
+ });
+ });
+
+ it("adds url to projects with different urlRoot", function() {
+ var op = new OpenProject({urlRoot : "/foo"});
+
+ op.fetchProjects(function (projects) {
+ assert.deepEqual(projects[0].url, "/foo/projects/bums");
+ assert.deepEqual(projects[1].url, "/foo/projects/things");
+ assert.deepEqual(projects[2].url, "/foo/projects/things-bums");
+ assert.deepEqual(projects[3].url, "/foo/projects/bums-bums");
+ assert.deepEqual(projects[4].url, "/foo/projects/zzz");
+ });
+ });
+
+ it("caches result", function() {
+ var op = new OpenProject();
+ op.projects = 'something';
+
+ op.fetchProjects(function (projects) {
+ assert.strictEqual(projects, 'something');
+ });
+ });
+});
+
+
+/**
+ * OpenProject.Helpers
+ */
+describe("OpenProject.Helpers `hname`", function() {
+ it("adds spaces and arrows to names when level > 0", function() {
+ var hname = OpenProject.Helpers.hname;
+
+ assert.strictEqual(hname("a", -1), "a");
+ assert.strictEqual(hname("a", 0), "a");
+ assert.strictEqual(hname("a", 1), "\u00A0\u00A0\u00A0\u00BB\u00A0a");
+ assert.strictEqual(hname("a", 2), "\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00BB\u00A0a");
+ });
+});
+
+
+describe("OpenProject.Helpers `regexpEscape`", function() {
+ it("adds leading \\ to regexp special characters", function() {
+ var esc = OpenProject.Helpers.regexpEscape;
+
+ assert.strictEqual(esc("."), "\\.");
+ assert.strictEqual(esc("?"), "\\?");
+ assert.strictEqual(esc("["), "\\[");
+ assert.strictEqual(esc("+"), "\\+");
+
+ assert.strictEqual(esc("a"), "a");
+ });
+});
+
+
+describe("OpenProject.Helpers `replace`", function() {
+ it("replaces wrong with right in text once ignoring case", function() {
+ var replace = OpenProject.Helpers.replace;
+
+ // Basic functionality
+ assert.strictEqual(replace("abc", "a", "b"), "bbc");
+ assert.strictEqual(replace("aaa", "a", "b"), "baa");
+ assert.strictEqual(replace("aaa", "d", "b"), "aaa");
+
+ // Empty parameters
+ assert.strictEqual(replace("aaa", "", "b"), "aaa");
+ assert.strictEqual(replace("aaa", "a", ""), "aa");
+ assert.strictEqual(replace("", "a", "b"), "");
+ assert.strictEqual(replace("", "", ""), "");
+
+ // Different lengths
+ assert.strictEqual(replace("aaa", "a", "bb"), "bbaa");
+ assert.strictEqual(replace("aaa", "aa", "b"), "ba");
+
+ // Ignore case
+ assert.strictEqual(replace("Aaa", "a", "b"), "baa");
+ assert.strictEqual(replace("aaa", "A", "b"), "baa");
+ });
+});
+
+
+describe("OpenProject.Helpers `withoutOnce`", function() {
+ it("removes given element once from array", function() {
+ var withoutOnce = OpenProject.Helpers.withoutOnce;
+
+ assert.deepEqual(withoutOnce([1, 2, 3, 2, 1], 1), [2, 3, 2, 1]);
+ assert.deepEqual(withoutOnce([1, 2, 3, 2, 1], 2), [1, 3, 2, 1]);
+ assert.deepEqual(withoutOnce([1, 2, 3, 2, 1], 4), [1, 2, 3, 2, 1]);
+ });
+});
+
+
+describe("OpenProject.Helpers `hname`", function() {
+ it("adds spaces and arrows to names when level > 0", function() {
+ var hname = OpenProject.Helpers.hname;
+
+ assert.strictEqual(hname("a", -1), "a");
+ assert.strictEqual(hname("a", 0), "a");
+ assert.strictEqual(hname("a", 1), "\u00A0\u00A0\u00A0\u00BB\u00A0a");
+ assert.strictEqual(hname("a", 2), "\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00BB\u00A0a");
+ });
+});
+
+
+/**
+ * OpenProject.Helpers.Search
+ */
+describe("OpenProject.Helpers.Search `tokenize`", function() {
+ it("with one parameter", function() {
+ var t = OpenProject.Helpers.Search.tokenize;
+
+ assert.deepEqual(t("abc"), ["abc"]);
+ assert.deepEqual(t("abc def"), ["abc", "def"]);
+ assert.deepEqual(t("abc def"), ["abc", "def"]);
+ assert.deepEqual(t(" abc def"), ["abc", "def"]);
+ assert.deepEqual(t("abc/def-"), ["abc", "def"]);
+ assert.deepEqual(t("/abc-def/"), ["abc", "def"]);
+ });
+
+ it("with array parameter", function() {
+ var t = OpenProject.Helpers.Search.tokenize;
+
+ assert.deepEqual(t("abc", ["b"]), ["a", "c"]);
+ assert.deepEqual(t("abbc", ["b"]), ["a", "c"]);
+ assert.deepEqual(t("abc ", ["b"]), ["a", "c "]);
+ });
+
+ it("with RegExp parameter", function() {
+ var t = OpenProject.Helpers.Search.tokenize;
+
+ assert.deepEqual(t("abc", /b/), ["a", "c"]);
+ assert.deepEqual(t("abbc", /b/), ["a", "c"]);
+ assert.deepEqual(t("abc ", /b/), ["a", "c "]);
+ });
+});
+
+
+describe("OpenProject.Helpers.Search `formatter`", function() {
+ it("w/o result.matches", function() {
+ var formatter = OpenProject.Helpers.Search.formatter,
+ a = "",
+ o = " ";
+
+ assert.deepEqual(formatter({text: "abc"}, undefined, {term: ''}),
+ "abc");
+ assert.deepEqual(formatter({text: "abc"}, undefined, {term: 'b'}),
+ "a" + a + "b" + o + "c");
+ assert.deepEqual(formatter({text: "abc"}, undefined, {term: 'c'}),
+ "ab" + a + "c" + o);
+ assert.deepEqual(formatter({text: "abbc"}, undefined, {term: 'b'}),
+ "a" + a + "b" + o + "bc");
+ });
+
+ it("w/ empty query.term", function() {
+ var formatter = OpenProject.Helpers.Search.formatter;
+
+ assert.deepEqual(formatter({text: "abc", matches: [["abc", ""]]}, undefined, {term: ''}),
+ "abc");
+
+ assert.deepEqual(formatter({text: "abc", matches: [["abc", ""]]}, undefined, {term: " "}),
+ "abc");
+ });
+
+ it("w/ single match", function() {
+ var formatter = OpenProject.Helpers.Search.formatter,
+ a = "",
+ o = " ";
+
+ assert.deepEqual(formatter({text: "abc", matches: [["abc", "b"]]}, undefined, {term: "b"}),
+ "a" + a + "b" + o + "c");
+
+ assert.deepEqual(formatter({text: "abc", matches: [["abc", ""]]}, undefined, {term: ' '}),
+ "abc");
+ });
+
+ it("w/ multi match", function() {
+ var formatter = OpenProject.Helpers.Search.formatter,
+ a = "",
+ o = " ";
+
+ assert.deepEqual(formatter({text: "abc-def", matches: [["def", "e"], ["abc", "b"]]}, undefined, {term: "e b"}),
+ "a" + a + "b" + o + "c-d" + a + "e" + o + "f");
+
+ assert.deepEqual(formatter({text: "abc-def", matches: [["abc", "b"], ["def", "e"]]}, undefined, {term: "b e"}),
+ "a" + a + "b" + o + "c-d" + a + "e" + o + "f");
+
+ assert.deepEqual(formatter({text: "abc-abc", matches: [["abc", "b"], ["abc", "bc"]]}, undefined, {term: "b bc"}),
+ "a" + a + "bc" + o + "-a" + a + "b" + o + "c");
+
+ });
+});
+
+
+describe("OpenProject.Helpers.Search `matcher`", function() {
+ it("w/o token parameter", function() {
+ var matcher = OpenProject.Helpers.Search.matcher;
+
+ // Basic search
+ assert.ok(matcher("", "abc"), "matches when looking for empty string");
+ assert.ok(matcher("ab", "abc"), "matches on sub strings");
+ assert.ok(matcher("abc", "abc"), "matches on whole matches");
+ assert.ok(matcher("AbC", "aBc"), "matches case insensitive");
+ assert.ok(matcher("b", "abc"), "matches within words");
+ assert.ok(matcher("ä", "äbc"), "matches umlauts");
+ assert.ok(matcher("bc de", "abc def"), "matches including spaces");
+
+ assert.notOk(matcher("abc", "def"), "no match when string not contained");
+
+ // Token search
+ assert.notOk(matcher("b c", "ab-cd"), "no match based on token");
+ });
+
+ it("w/ token parameter", function() {
+ var matcher = OpenProject.Helpers.Search.matcher,
+ token_match = function(term, name) {
+ return matcher(term, name, OpenProject.Helpers.Search.tokenize(name));
+ };
+
+ // Basic match
+ assert.ok(token_match("", "abc"), "matches when looking for empty string");
+ assert.ok(token_match("ab", "abc"), "matches on sub strings");
+ assert.ok(token_match("abc", "abc"), "matches on whole matches");
+ assert.ok(token_match("AbC", "aBc"), "matches case insensitive");
+ assert.ok(token_match("b", "abc"), "matches within words");
+ assert.ok(token_match("ä", "äbc"), "matches umlauts");
+ assert.ok(token_match("bc de", "abc def"), "matches including spaces");
+
+
+ assert.notOk(token_match("abc", "def"), "no match when string not contained");
+
+ // Token match
+ assert.ok(token_match("b c", "ab c"), "match when all token contained I");
+ assert.ok(token_match("a a", "ab a"), "match when all token contained II");
+ assert.ok(token_match("a b", "ab b"), "match when all token contained III");
+ assert.ok(token_match("a b", "b ab"), "match when all token contained IV");
+ assert.ok(token_match("a a", "a a"), "match when all token contained V");
+ assert.ok(token_match("bc de", "abc def"), "matches including spaces");
+
+ assert.notOk(token_match("a-a", "a a"), "tokenizes term at white space only");
+ });
+});
+
+
+describe("OpenProject.Helpers.Search `projectQueryWithHierarchy`", function() {
+ it("needs testing");
+});
diff --git a/karma/tests/test-helper.js b/karma/tests/test-helper.js
index ff3cd63ecf..d84e3b9a6e 100644
--- a/karma/tests/test-helper.js
+++ b/karma/tests/test-helper.js
@@ -1 +1,6 @@
+window.openProject = new OpenProject({
+ urlRoot : '/',
+ loginUrl: '/fake-login'
+});
+
window.$injector = angular.injector(['ng', 'ngMock', 'openproject.uiComponents', 'openproject.timelines.models', 'openproject.models', 'openproject.services']);
diff --git a/lib/assets/javascripts/qunit/index.html b/lib/assets/javascripts/qunit/index.html
deleted file mode 100644
index 2143caf83e..0000000000
--- a/lib/assets/javascripts/qunit/index.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- OpenProject QUnit tests
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/lib/assets/javascripts/qunit/jquery.mockjax.js b/lib/assets/javascripts/qunit/jquery.mockjax.js
deleted file mode 100644
index 39309042f2..0000000000
--- a/lib/assets/javascripts/qunit/jquery.mockjax.js
+++ /dev/null
@@ -1,523 +0,0 @@
-/*!
- * MockJax - jQuery Plugin to Mock Ajax requests
- *
- * Version: 1.5.1
- * Released:
- * Home: http://github.com/appendto/jquery-mockjax
- * Author: Jonathan Sharp (http://jdsharp.com)
- * License: MIT,GPL
- *
- * Copyright (c) 2011 appendTo LLC.
- * Dual licensed under the MIT or GPL licenses.
- * http://appendto.com/open-source-licenses
- */
-(function($) {
- var _ajax = $.ajax,
- mockHandlers = [],
- CALLBACK_REGEX = /=\?(&|$)/,
- jsc = (new Date()).getTime();
-
-
- // Parse the given XML string.
- function parseXML(xml) {
- if ( window['DOMParser'] == undefined && window.ActiveXObject ) {
- DOMParser = function() { };
- DOMParser.prototype.parseFromString = function( xmlString ) {
- var doc = new ActiveXObject('Microsoft.XMLDOM');
- doc.async = 'false';
- doc.loadXML( xmlString );
- return doc;
- };
- }
-
- try {
- var xmlDoc = ( new DOMParser() ).parseFromString( xml, 'text/xml' );
- if ( $.isXMLDoc( xmlDoc ) ) {
- var err = $('parsererror', xmlDoc);
- if ( err.length == 1 ) {
- throw('Error: ' + $(xmlDoc).text() );
- }
- } else {
- throw('Unable to parse XML');
- }
- } catch( e ) {
- var msg = ( e.name == undefined ? e : e.name + ': ' + e.message );
- $(document).trigger('xmlParseError', [ msg ]);
- return undefined;
- }
- return xmlDoc;
- }
-
- // Trigger a jQuery event
- function trigger(s, type, args) {
- (s.context ? $(s.context) : $.event).trigger(type, args);
- }
-
- // Check if the data field on the mock handler and the request match. This
- // can be used to restrict a mock handler to being used only when a certain
- // set of data is passed to it.
- function isMockDataEqual( mock, live ) {
- var identical = false;
- // Test for situations where the data is a querystring (not an object)
- if (typeof live === 'string') {
- // Querystring may be a regex
- return $.isFunction( mock.test ) ? mock.test(live) : mock == live;
- }
- $.each(mock, function(k, v) {
- if ( live[k] === undefined ) {
- identical = false;
- return identical;
- } else {
- identical = true;
- if ( typeof live[k] == 'object' ) {
- return isMockDataEqual(mock[k], live[k]);
- } else {
- if ( $.isFunction( mock[k].test ) ) {
- identical = mock[k].test(live[k]);
- } else {
- identical = ( mock[k] == live[k] );
- }
- return identical;
- }
- }
- });
-
- return identical;
- }
-
- // Check the given handler should mock the given request
- function getMockForRequest( handler, requestSettings ) {
- // If the mock was registered with a function, let the function decide if we
- // want to mock this request
- if ( $.isFunction(handler) ) {
- return handler( requestSettings );
- }
-
- // Inspect the URL of the request and check if the mock handler's url
- // matches the url for this ajax request
- if ( $.isFunction(handler.url.test) ) {
- // The user provided a regex for the url, test it
- if ( !handler.url.test( requestSettings.url ) ) {
- return null;
- }
- } else {
- // Look for a simple wildcard '*' or a direct URL match
- var star = handler.url.indexOf('*');
- if (handler.url !== requestSettings.url && star === -1 ||
- !new RegExp(handler.url.replace(/[-[\]{}()+?.,\\^$|#\s]/g, "\\$&").replace('*', '.+')).test(requestSettings.url)) {
- return null;
- }
- }
-
- // Inspect the data submitted in the request (either POST body or GET query string)
- if ( handler.data && requestSettings.data ) {
- if ( !isMockDataEqual(handler.data, requestSettings.data) ) {
- // They're not identical, do not mock this request
- return null;
- }
- }
- // Inspect the request type
- if ( handler && handler.type &&
- handler.type.toLowerCase() != requestSettings.type.toLowerCase() ) {
- // The request type doesn't match (GET vs. POST)
- return null;
- }
-
- return handler;
- }
-
- // If logging is enabled, log the mock to the console
- function logMock( mockHandler, requestSettings ) {
- var c = $.extend({}, $.mockjaxSettings, mockHandler);
- if ( c.log && $.isFunction(c.log) ) {
- c.log('MOCK ' + requestSettings.type.toUpperCase() + ': ' + requestSettings.url, $.extend({}, requestSettings));
- }
- }
-
- // Process the xhr objects send operation
- function _xhrSend(mockHandler, requestSettings, origSettings) {
-
- // This is a substitute for < 1.4 which lacks $.proxy
- var process = (function(that) {
- return function() {
- return (function() {
- // The request has returned
- this.status = mockHandler.status;
- this.statusText = mockHandler.statusText;
- this.readyState = 4;
-
- // We have an executable function, call it to give
- // the mock handler a chance to update it's data
- if ( $.isFunction(mockHandler.response) ) {
- mockHandler.response(origSettings);
- }
- // Copy over our mock to our xhr object before passing control back to
- // jQuery's onreadystatechange callback
- if ( requestSettings.dataType == 'json' && ( typeof mockHandler.responseText == 'object' ) ) {
- this.responseText = JSON.stringify(mockHandler.responseText);
- } else if ( requestSettings.dataType == 'xml' ) {
- if ( typeof mockHandler.responseXML == 'string' ) {
- this.responseXML = parseXML(mockHandler.responseXML);
- } else {
- this.responseXML = mockHandler.responseXML;
- }
- } else {
- this.responseText = mockHandler.responseText;
- }
- if( typeof mockHandler.status == 'number' || typeof mockHandler.status == 'string' ) {
- this.status = mockHandler.status;
- }
- if( typeof mockHandler.statusText === "string") {
- this.statusText = mockHandler.statusText;
- }
- // jQuery < 1.4 doesn't have onreadystate change for xhr
- if ( $.isFunction(this.onreadystatechange) ) {
- if( mockHandler.isTimeout) {
- this.status = -1;
- }
- this.onreadystatechange( mockHandler.isTimeout ? 'timeout' : undefined );
- } else if ( mockHandler.isTimeout ) {
- // Fix for 1.3.2 timeout to keep success from firing.
- this.status = -1;
- }
- }).apply(that);
- };
- })(this);
-
- if ( mockHandler.proxy ) {
- // We're proxying this request and loading in an external file instead
- _ajax({
- global: false,
- url: mockHandler.proxy,
- type: mockHandler.proxyType,
- data: mockHandler.data,
- dataType: requestSettings.dataType === "script" ? "text/plain" : requestSettings.dataType,
- complete: function(xhr, txt) {
- mockHandler.responseXML = xhr.responseXML;
- mockHandler.responseText = xhr.responseText;
- mockHandler.status = xhr.status;
- mockHandler.statusText = xhr.statusText;
- this.responseTimer = setTimeout(process, mockHandler.responseTime || 0);
- }
- });
- } else {
- // type == 'POST' || 'GET' || 'DELETE'
- if ( requestSettings.async === false ) {
- // TODO: Blocking delay
- process();
- } else {
- this.responseTimer = setTimeout(process, mockHandler.responseTime || 50);
- }
- }
- }
-
- // Construct a mocked XHR Object
- function xhr(mockHandler, requestSettings, origSettings, origHandler) {
- // Extend with our default mockjax settings
- mockHandler = $.extend(true, {}, $.mockjaxSettings, mockHandler);
-
- if (typeof mockHandler.headers === 'undefined') {
- mockHandler.headers = {};
- }
- if ( mockHandler.contentType ) {
- mockHandler.headers['content-type'] = mockHandler.contentType;
- }
-
- return {
- status: mockHandler.status,
- statusText: mockHandler.statusText,
- readyState: 1,
- open: function() { },
- send: function() {
- origHandler.fired = true;
- _xhrSend.call(this, mockHandler, requestSettings, origSettings);
- },
- abort: function() {
- clearTimeout(this.responseTimer);
- },
- setRequestHeader: function(header, value) {
- mockHandler.headers[header] = value;
- },
- getResponseHeader: function(header) {
- // 'Last-modified', 'Etag', 'content-type' are all checked by jQuery
- if ( mockHandler.headers && mockHandler.headers[header] ) {
- // Return arbitrary headers
- return mockHandler.headers[header];
- } else if ( header.toLowerCase() == 'last-modified' ) {
- return mockHandler.lastModified || (new Date()).toString();
- } else if ( header.toLowerCase() == 'etag' ) {
- return mockHandler.etag || '';
- } else if ( header.toLowerCase() == 'content-type' ) {
- return mockHandler.contentType || 'text/plain';
- }
- },
- getAllResponseHeaders: function() {
- var headers = '';
- $.each(mockHandler.headers, function(k, v) {
- headers += k + ': ' + v + "\n";
- });
- return headers;
- }
- };
- }
-
- // Process a JSONP mock request.
- function processJsonpMock( requestSettings, mockHandler, origSettings ) {
- // Handle JSONP Parameter Callbacks, we need to replicate some of the jQuery core here
- // because there isn't an easy hook for the cross domain script tag of jsonp
-
- processJsonpUrl( requestSettings );
-
- requestSettings.dataType = "json";
- if(requestSettings.data && CALLBACK_REGEX.test(requestSettings.data) || CALLBACK_REGEX.test(requestSettings.url)) {
- createJsonpCallback(requestSettings, mockHandler);
-
- // We need to make sure
- // that a JSONP style response is executed properly
-
- var rurl = /^(\w+:)?\/\/([^\/?#]+)/,
- parts = rurl.exec( requestSettings.url ),
- remote = parts && (parts[1] && parts[1] !== location.protocol || parts[2] !== location.host);
-
- requestSettings.dataType = "script";
- if(requestSettings.type.toUpperCase() === "GET" && remote ) {
- var newMockReturn = processJsonpRequest( requestSettings, mockHandler, origSettings );
-
- // Check if we are supposed to return a Deferred back to the mock call, or just
- // signal success
- if(newMockReturn) {
- return newMockReturn;
- } else {
- return true;
- }
- }
- }
- return null;
- }
-
- // Append the required callback parameter to the end of the request URL, for a JSONP request
- function processJsonpUrl( requestSettings ) {
- if ( requestSettings.type.toUpperCase() === "GET" ) {
- if ( !CALLBACK_REGEX.test( requestSettings.url ) ) {
- requestSettings.url += (/\?/.test( requestSettings.url ) ? "&" : "?") +
- (requestSettings.jsonp || "callback") + "=?";
- }
- } else if ( !requestSettings.data || !CALLBACK_REGEX.test(requestSettings.data) ) {
- requestSettings.data = (requestSettings.data ? requestSettings.data + "&" : "") + (requestSettings.jsonp || "callback") + "=?";
- }
- }
-
- // Process a JSONP request by evaluating the mocked response text
- function processJsonpRequest( requestSettings, mockHandler, origSettings ) {
- // Synthesize the mock request for adding a script tag
- var callbackContext = origSettings && origSettings.context || requestSettings,
- newMock = null;
-
-
- // If the response handler on the moock is a function, call it
- if ( mockHandler.response && $.isFunction(mockHandler.response) ) {
- mockHandler.response(origSettings);
- } else {
-
- // Evaluate the responseText javascript in a global context
- if( typeof mockHandler.responseText === 'object' ) {
- $.globalEval( '(' + JSON.stringify( mockHandler.responseText ) + ')');
- } else {
- $.globalEval( '(' + mockHandler.responseText + ')');
- }
- }
-
- // Successful response
- jsonpSuccess( requestSettings, mockHandler );
- jsonpComplete( requestSettings, mockHandler );
-
- // If we are running under jQuery 1.5+, return a deferred object
- if($.Deferred){
- newMock = new $.Deferred();
- if(typeof mockHandler.responseText == "object"){
- newMock.resolveWith( callbackContext, [mockHandler.responseText] );
- }
- else{
- newMock.resolveWith( callbackContext, [$.parseJSON( mockHandler.responseText )] );
- }
- }
- return newMock;
- }
-
-
- // Create the required JSONP callback function for the request
- function createJsonpCallback( requestSettings, mockHandler ) {
- jsonp = requestSettings.jsonpCallback || ("jsonp" + jsc++);
-
- // Replace the =? sequence both in the query string and the data
- if ( requestSettings.data ) {
- requestSettings.data = (requestSettings.data + "").replace(CALLBACK_REGEX, "=" + jsonp + "$1");
- }
-
- requestSettings.url = requestSettings.url.replace(CALLBACK_REGEX, "=" + jsonp + "$1");
-
-
- // Handle JSONP-style loading
- window[ jsonp ] = window[ jsonp ] || function( tmp ) {
- data = tmp;
- jsonpSuccess( requestSettings, mockHandler );
- jsonpComplete( requestSettings, mockHandler );
- // Garbage collect
- window[ jsonp ] = undefined;
-
- try {
- delete window[ jsonp ];
- } catch(e) {}
-
- if ( head ) {
- head.removeChild( script );
- }
- };
- }
-
- // The JSONP request was successful
- function jsonpSuccess(requestSettings, mockHandler) {
- // If a local callback was specified, fire it and pass it the data
- if ( requestSettings.success ) {
- requestSettings.success.call( callbackContext, ( mockHandler.response ? mockHandler.response.toString() : mockHandler.responseText || ''), status, {} );
- }
-
- // Fire the global callback
- if ( requestSettings.global ) {
- trigger(requestSettings, "ajaxSuccess", [{}, requestSettings] );
- }
- }
-
- // The JSONP request was completed
- function jsonpComplete(requestSettings, mockHandler) {
- // Process result
- if ( requestSettings.complete ) {
- requestSettings.complete.call( callbackContext, {} , status );
- }
-
- // The request was completed
- if ( requestSettings.global ) {
- trigger( "ajaxComplete", [{}, requestSettings] );
- }
-
- // Handle the global AJAX counter
- if ( requestSettings.global && ! --$.active ) {
- $.event.trigger( "ajaxStop" );
- }
- }
-
-
- // The core $.ajax replacement.
- function handleAjax( url, origSettings ) {
- var mockRequest, requestSettings, mockHandler;
-
- // If url is an object, simulate pre-1.5 signature
- if ( typeof url === "object" ) {
- origSettings = url;
- url = undefined;
- } else {
- // work around to support 1.5 signature
- origSettings.url = url;
- }
-
- // Extend the original settings for the request
- requestSettings = $.extend(true, {}, $.ajaxSettings, origSettings);
-
- // Iterate over our mock handlers (in registration order) until we find
- // one that is willing to intercept the request
- for(var k = 0; k < mockHandlers.length; k++) {
- if ( !mockHandlers[k] ) {
- continue;
- }
-
- mockHandler = getMockForRequest( mockHandlers[k], requestSettings );
- if(!mockHandler) {
- // No valid mock found for this request
- continue;
- }
-
- // Handle console logging
- logMock( mockHandler, requestSettings );
-
-
- if ( requestSettings.dataType === "jsonp" ) {
- if ((mockRequest = processJsonpMock( requestSettings, mockHandler, origSettings ))) {
- // This mock will handle the JSONP request
- return mockRequest;
- }
- }
-
-
- // Removed to fix #54 - keep the mocking data object intact
- //mockHandler.data = requestSettings.data;
-
- mockHandler.cache = requestSettings.cache;
- mockHandler.timeout = requestSettings.timeout;
- mockHandler.global = requestSettings.global;
-
- (function(mockHandler, requestSettings, origSettings, origHandler) {
- mockRequest = _ajax.call($, $.extend(true, {}, origSettings, {
- // Mock the XHR object
- xhr: function() { return xhr( mockHandler, requestSettings, origSettings, origHandler ) }
- }));
- })(mockHandler, requestSettings, origSettings, mockHandlers[k]);
-
- return mockRequest;
- }
-
- // We don't have a mock request, trigger a normal request
- return _ajax.apply($, [origSettings]);
- }
-
-
- // Public
-
- $.extend({
- ajax: handleAjax
- });
-
- $.mockjaxSettings = {
- //url: null,
- //type: 'GET',
- log: function( msg ) {
- if ( window[ 'console' ] && window.console.log ) {
- window.console.log.apply( console, arguments );
- }
- },
- status: 200,
- statusText: "OK",
- responseTime: 500,
- isTimeout: false,
- contentType: 'text/plain',
- response: '',
- responseText: '',
- responseXML: '',
- proxy: '',
- proxyType: 'GET',
-
- lastModified: null,
- etag: '',
- headers: {
- etag: 'IJF@H#@923uf8023hFO@I#H#',
- 'content-type' : 'text/plain'
- }
- };
-
- $.mockjax = function(settings) {
- var i = mockHandlers.length;
- mockHandlers[i] = settings;
- return i;
- };
- $.mockjaxClear = function(i) {
- if ( arguments.length == 1 ) {
- mockHandlers[i] = null;
- } else {
- mockHandlers = [];
- }
- };
- $.mockjax.handler = function(i) {
- if ( arguments.length == 1 ) {
- return mockHandlers[i];
- }
- };
-})(jQuery);
\ No newline at end of file
diff --git a/lib/assets/javascripts/qunit/qunit.css b/lib/assets/javascripts/qunit/qunit.css
deleted file mode 100644
index 55970e0065..0000000000
--- a/lib/assets/javascripts/qunit/qunit.css
+++ /dev/null
@@ -1,235 +0,0 @@
-/**
- * QUnit v1.10.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-/** Font Family and Sizes */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
- font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
-}
-
-#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
-#qunit-tests { font-size: smaller; }
-
-
-/** Resets */
-
-#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
- margin: 0;
- padding: 0;
-}
-
-
-/** Header */
-
-#qunit-header {
- padding: 0.5em 0 0.5em 1em;
-
- color: #8699a4;
- background-color: #0d3349;
-
- font-size: 1.5em;
- line-height: 1em;
- font-weight: normal;
-
- border-radius: 5px 5px 0 0;
- -moz-border-radius: 5px 5px 0 0;
- -webkit-border-top-right-radius: 5px;
- -webkit-border-top-left-radius: 5px;
-}
-
-#qunit-header a {
- text-decoration: none;
- color: #c2ccd1;
-}
-
-#qunit-header a:hover,
-#qunit-header a:focus {
- color: #fff;
-}
-
-#qunit-testrunner-toolbar label {
- display: inline-block;
- padding: 0 .5em 0 .1em;
-}
-
-#qunit-banner {
- height: 5px;
-}
-
-#qunit-testrunner-toolbar {
- padding: 0.5em 0 0.5em 2em;
- color: #5E740B;
- background-color: #eee;
- overflow: hidden;
-}
-
-#qunit-userAgent {
- padding: 0.5em 0 0.5em 2.5em;
- background-color: #2b81af;
- color: #fff;
- text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
-}
-
-#qunit-modulefilter-container {
- float: right;
-}
-
-/** Tests: Pass/Fail */
-
-#qunit-tests {
- list-style-position: inside;
-}
-
-#qunit-tests li {
- padding: 0.4em 0.5em 0.4em 2.5em;
- border-bottom: 1px solid #fff;
- list-style-position: inside;
-}
-
-#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
- display: none;
-}
-
-#qunit-tests li strong {
- cursor: pointer;
-}
-
-#qunit-tests li a {
- padding: 0.5em;
- color: #c2ccd1;
- text-decoration: none;
-}
-#qunit-tests li a:hover,
-#qunit-tests li a:focus {
- color: #000;
-}
-
-#qunit-tests ol {
- margin-top: 0.5em;
- padding: 0.5em;
-
- background-color: #fff;
-
- border-radius: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
-}
-
-#qunit-tests table {
- border-collapse: collapse;
- margin-top: .2em;
-}
-
-#qunit-tests th {
- text-align: right;
- vertical-align: top;
- padding: 0 .5em 0 0;
-}
-
-#qunit-tests td {
- vertical-align: top;
-}
-
-#qunit-tests pre {
- margin: 0;
- white-space: pre-wrap;
- word-wrap: break-word;
-}
-
-#qunit-tests del {
- background-color: #e0f2be;
- color: #374e0c;
- text-decoration: none;
-}
-
-#qunit-tests ins {
- background-color: #ffcaca;
- color: #500;
- text-decoration: none;
-}
-
-/*** Test Counts */
-
-#qunit-tests b.counts { color: black; }
-#qunit-tests b.passed { color: #5E740B; }
-#qunit-tests b.failed { color: #710909; }
-
-#qunit-tests li li {
- padding: 5px;
- background-color: #fff;
- border-bottom: none;
- list-style-position: inside;
-}
-
-/*** Passing Styles */
-
-#qunit-tests li li.pass {
- color: #3c510c;
- background-color: #fff;
- border-left: 10px solid #C6E746;
-}
-
-#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
-#qunit-tests .pass .test-name { color: #366097; }
-
-#qunit-tests .pass .test-actual,
-#qunit-tests .pass .test-expected { color: #999999; }
-
-#qunit-banner.qunit-pass { background-color: #C6E746; }
-
-/*** Failing Styles */
-
-#qunit-tests li li.fail {
- color: #710909;
- background-color: #fff;
- border-left: 10px solid #EE5757;
- white-space: pre;
-}
-
-#qunit-tests > li:last-child {
- border-radius: 0 0 5px 5px;
- -moz-border-radius: 0 0 5px 5px;
- -webkit-border-bottom-right-radius: 5px;
- -webkit-border-bottom-left-radius: 5px;
-}
-
-#qunit-tests .fail { color: #000000; background-color: #EE5757; }
-#qunit-tests .fail .test-name,
-#qunit-tests .fail .module-name { color: #000000; }
-
-#qunit-tests .fail .test-actual { color: #EE5757; }
-#qunit-tests .fail .test-expected { color: green; }
-
-#qunit-banner.qunit-fail { background-color: #EE5757; }
-
-
-/** Result */
-
-#qunit-testresult {
- padding: 0.5em 0.5em 0.5em 2.5em;
-
- color: #2b81af;
- background-color: #D2E0E6;
-
- border-bottom: 1px solid white;
-}
-#qunit-testresult .module-name {
- font-weight: bold;
-}
-
-/** Fixture */
-
-#qunit-fixture {
- position: absolute;
- top: -10000px;
- left: -10000px;
- width: 1000px;
- height: 1000px;
-}
diff --git a/lib/assets/javascripts/qunit/qunit.js b/lib/assets/javascripts/qunit/qunit.js
deleted file mode 100644
index d4f17b5ae5..0000000000
--- a/lib/assets/javascripts/qunit/qunit.js
+++ /dev/null
@@ -1,1977 +0,0 @@
-/**
- * QUnit v1.10.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-(function( window ) {
-
-var QUnit,
- config,
- onErrorFnPrev,
- testId = 0,
- fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
- toString = Object.prototype.toString,
- hasOwn = Object.prototype.hasOwnProperty,
- // Keep a local reference to Date (GH-283)
- Date = window.Date,
- defined = {
- setTimeout: typeof window.setTimeout !== "undefined",
- sessionStorage: (function() {
- var x = "qunit-test-string";
- try {
- sessionStorage.setItem( x, x );
- sessionStorage.removeItem( x );
- return true;
- } catch( e ) {
- return false;
- }
- }())
-};
-
-function Test( settings ) {
- extend( this, settings );
- this.assertions = [];
- this.testNumber = ++Test.count;
-}
-
-Test.count = 0;
-
-Test.prototype = {
- init: function() {
- var a, b, li,
- tests = id( "qunit-tests" );
-
- if ( tests ) {
- b = document.createElement( "strong" );
- b.innerHTML = this.name;
-
- // `a` initialized at top of scope
- a = document.createElement( "a" );
- a.innerHTML = "Rerun";
- a.href = QUnit.url({ testNumber: this.testNumber });
-
- li = document.createElement( "li" );
- li.appendChild( b );
- li.appendChild( a );
- li.className = "running";
- li.id = this.id = "qunit-test-output" + testId++;
-
- tests.appendChild( li );
- }
- },
- setup: function() {
- if ( this.module !== config.previousModule ) {
- if ( config.previousModule ) {
- runLoggingCallbacks( "moduleDone", QUnit, {
- name: config.previousModule,
- failed: config.moduleStats.bad,
- passed: config.moduleStats.all - config.moduleStats.bad,
- total: config.moduleStats.all
- });
- }
- config.previousModule = this.module;
- config.moduleStats = { all: 0, bad: 0 };
- runLoggingCallbacks( "moduleStart", QUnit, {
- name: this.module
- });
- } else if ( config.autorun ) {
- runLoggingCallbacks( "moduleStart", QUnit, {
- name: this.module
- });
- }
-
- config.current = this;
-
- this.testEnvironment = extend({
- setup: function() {},
- teardown: function() {}
- }, this.moduleTestEnvironment );
-
- runLoggingCallbacks( "testStart", QUnit, {
- name: this.testName,
- module: this.module
- });
-
- // allow utility functions to access the current test environment
- // TODO why??
- QUnit.current_testEnvironment = this.testEnvironment;
-
- if ( !config.pollution ) {
- saveGlobal();
- }
- if ( config.notrycatch ) {
- this.testEnvironment.setup.call( this.testEnvironment );
- return;
- }
- try {
- this.testEnvironment.setup.call( this.testEnvironment );
- } catch( e ) {
- QUnit.pushFailure( "Setup failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) );
- }
- },
- run: function() {
- config.current = this;
-
- var running = id( "qunit-testresult" );
-
- if ( running ) {
- running.innerHTML = "Running: " + this.name;
- }
-
- if ( this.async ) {
- QUnit.stop();
- }
-
- if ( config.notrycatch ) {
- this.callback.call( this.testEnvironment, QUnit.assert );
- return;
- }
-
- try {
- this.callback.call( this.testEnvironment, QUnit.assert );
- } catch( e ) {
- QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + e.message, extractStacktrace( e, 0 ) );
- // else next test will carry the responsibility
- saveGlobal();
-
- // Restart the tests if they're blocking
- if ( config.blocking ) {
- QUnit.start();
- }
- }
- },
- teardown: function() {
- config.current = this;
- if ( config.notrycatch ) {
- this.testEnvironment.teardown.call( this.testEnvironment );
- return;
- } else {
- try {
- this.testEnvironment.teardown.call( this.testEnvironment );
- } catch( e ) {
- QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) );
- }
- }
- checkPollution();
- },
- finish: function() {
- config.current = this;
- if ( config.requireExpects && this.expected == null ) {
- QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
- } else if ( this.expected != null && this.expected != this.assertions.length ) {
- QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
- } else if ( this.expected == null && !this.assertions.length ) {
- QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
- }
-
- var assertion, a, b, i, li, ol,
- test = this,
- good = 0,
- bad = 0,
- tests = id( "qunit-tests" );
-
- config.stats.all += this.assertions.length;
- config.moduleStats.all += this.assertions.length;
-
- if ( tests ) {
- ol = document.createElement( "ol" );
-
- for ( i = 0; i < this.assertions.length; i++ ) {
- assertion = this.assertions[i];
-
- li = document.createElement( "li" );
- li.className = assertion.result ? "pass" : "fail";
- li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
- ol.appendChild( li );
-
- if ( assertion.result ) {
- good++;
- } else {
- bad++;
- config.stats.bad++;
- config.moduleStats.bad++;
- }
- }
-
- // store result when possible
- if ( QUnit.config.reorder && defined.sessionStorage ) {
- if ( bad ) {
- sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
- } else {
- sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
- }
- }
-
- if ( bad === 0 ) {
- ol.style.display = "none";
- }
-
- // `b` initialized at top of scope
- b = document.createElement( "strong" );
- b.innerHTML = this.name + " (" + bad + " , " + good + " , " + this.assertions.length + ") ";
-
- addEvent(b, "click", function() {
- var next = b.nextSibling.nextSibling,
- display = next.style.display;
- next.style.display = display === "none" ? "block" : "none";
- });
-
- addEvent(b, "dblclick", function( e ) {
- var target = e && e.target ? e.target : window.event.srcElement;
- if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) {
- target = target.parentNode;
- }
- if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
- window.location = QUnit.url({ testNumber: test.testNumber });
- }
- });
-
- // `li` initialized at top of scope
- li = id( this.id );
- li.className = bad ? "fail" : "pass";
- li.removeChild( li.firstChild );
- a = li.firstChild;
- li.appendChild( b );
- li.appendChild ( a );
- li.appendChild( ol );
-
- } else {
- for ( i = 0; i < this.assertions.length; i++ ) {
- if ( !this.assertions[i].result ) {
- bad++;
- config.stats.bad++;
- config.moduleStats.bad++;
- }
- }
- }
-
- runLoggingCallbacks( "testDone", QUnit, {
- name: this.testName,
- module: this.module,
- failed: bad,
- passed: this.assertions.length - bad,
- total: this.assertions.length
- });
-
- QUnit.reset();
-
- config.current = undefined;
- },
-
- queue: function() {
- var bad,
- test = this;
-
- synchronize(function() {
- test.init();
- });
- function run() {
- // each of these can by async
- synchronize(function() {
- test.setup();
- });
- synchronize(function() {
- test.run();
- });
- synchronize(function() {
- test.teardown();
- });
- synchronize(function() {
- test.finish();
- });
- }
-
- // `bad` initialized at top of scope
- // defer when previous test run passed, if storage is available
- bad = QUnit.config.reorder && defined.sessionStorage &&
- +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
-
- if ( bad ) {
- run();
- } else {
- synchronize( run, true );
- }
- }
-};
-
-// Root QUnit object.
-// `QUnit` initialized at top of scope
-QUnit = {
-
- // call on start of module test to prepend name to all tests
- module: function( name, testEnvironment ) {
- config.currentModule = name;
- config.currentModuleTestEnvironment = testEnvironment;
- config.modules[name] = true;
- },
-
- asyncTest: function( testName, expected, callback ) {
- if ( arguments.length === 2 ) {
- callback = expected;
- expected = null;
- }
-
- QUnit.test( testName, expected, callback, true );
- },
-
- test: function( testName, expected, callback, async ) {
- var test,
- name = "" + escapeInnerText( testName ) + " ";
-
- if ( arguments.length === 2 ) {
- callback = expected;
- expected = null;
- }
-
- if ( config.currentModule ) {
- name = "" + config.currentModule + " : " + name;
- }
-
- test = new Test({
- name: name,
- testName: testName,
- expected: expected,
- async: async,
- callback: callback,
- module: config.currentModule,
- moduleTestEnvironment: config.currentModuleTestEnvironment,
- stack: sourceFromStacktrace( 2 )
- });
-
- if ( !validTest( test ) ) {
- return;
- }
-
- test.queue();
- },
-
- // Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
- expect: function( asserts ) {
- if (arguments.length === 1) {
- config.current.expected = asserts;
- } else {
- return config.current.expected;
- }
- },
-
- start: function( count ) {
- config.semaphore -= count || 1;
- // don't start until equal number of stop-calls
- if ( config.semaphore > 0 ) {
- return;
- }
- // ignore if start is called more often then stop
- if ( config.semaphore < 0 ) {
- config.semaphore = 0;
- }
- // A slight delay, to avoid any current callbacks
- if ( defined.setTimeout ) {
- window.setTimeout(function() {
- if ( config.semaphore > 0 ) {
- return;
- }
- if ( config.timeout ) {
- clearTimeout( config.timeout );
- }
-
- config.blocking = false;
- process( true );
- }, 13);
- } else {
- config.blocking = false;
- process( true );
- }
- },
-
- stop: function( count ) {
- config.semaphore += count || 1;
- config.blocking = true;
-
- if ( config.testTimeout && defined.setTimeout ) {
- clearTimeout( config.timeout );
- config.timeout = window.setTimeout(function() {
- QUnit.ok( false, "Test timed out" );
- config.semaphore = 1;
- QUnit.start();
- }, config.testTimeout );
- }
- }
-};
-
-// Asssert helpers
-// All of these must call either QUnit.push() or manually do:
-// - runLoggingCallbacks( "log", .. );
-// - config.current.assertions.push({ .. });
-QUnit.assert = {
- /**
- * Asserts rough true-ish result.
- * @name ok
- * @function
- * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
- */
- ok: function( result, msg ) {
- if ( !config.current ) {
- throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
- }
- result = !!result;
-
- var source,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: result,
- message: msg
- };
-
- msg = escapeInnerText( msg || (result ? "okay" : "failed" ) );
- msg = "" + msg + " ";
-
- if ( !result ) {
- source = sourceFromStacktrace( 2 );
- if ( source ) {
- details.source = source;
- msg += "Source: " + escapeInnerText( source ) + "
";
- }
- }
- runLoggingCallbacks( "log", QUnit, details );
- config.current.assertions.push({
- result: result,
- message: msg
- });
- },
-
- /**
- * Assert that the first two arguments are equal, with an optional message.
- * Prints out both actual and expected values.
- * @name equal
- * @function
- * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
- */
- equal: function( actual, expected, message ) {
- QUnit.push( expected == actual, actual, expected, message );
- },
-
- /**
- * @name notEqual
- * @function
- */
- notEqual: function( actual, expected, message ) {
- QUnit.push( expected != actual, actual, expected, message );
- },
-
- /**
- * @name deepEqual
- * @function
- */
- deepEqual: function( actual, expected, message ) {
- QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name notDeepEqual
- * @function
- */
- notDeepEqual: function( actual, expected, message ) {
- QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name strictEqual
- * @function
- */
- strictEqual: function( actual, expected, message ) {
- QUnit.push( expected === actual, actual, expected, message );
- },
-
- /**
- * @name notStrictEqual
- * @function
- */
- notStrictEqual: function( actual, expected, message ) {
- QUnit.push( expected !== actual, actual, expected, message );
- },
-
- throws: function( block, expected, message ) {
- var actual,
- ok = false;
-
- // 'expected' is optional
- if ( typeof expected === "string" ) {
- message = expected;
- expected = null;
- }
-
- config.current.ignoreGlobalErrors = true;
- try {
- block.call( config.current.testEnvironment );
- } catch (e) {
- actual = e;
- }
- config.current.ignoreGlobalErrors = false;
-
- if ( actual ) {
- // we don't want to validate thrown error
- if ( !expected ) {
- ok = true;
- // expected is a regexp
- } else if ( QUnit.objectType( expected ) === "regexp" ) {
- ok = expected.test( actual );
- // expected is a constructor
- } else if ( actual instanceof expected ) {
- ok = true;
- // expected is a validation function which returns true is validation passed
- } else if ( expected.call( {}, actual ) === true ) {
- ok = true;
- }
-
- QUnit.push( ok, actual, null, message );
- } else {
- QUnit.pushFailure( message, null, 'No exception was thrown.' );
- }
- }
-};
-
-/**
- * @deprecate since 1.8.0
- * Kept assertion helpers in root for backwards compatibility
- */
-extend( QUnit, QUnit.assert );
-
-/**
- * @deprecated since 1.9.0
- * Kept global "raises()" for backwards compatibility
- */
-QUnit.raises = QUnit.assert.throws;
-
-/**
- * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
- * Kept to avoid TypeErrors for undefined methods.
- */
-QUnit.equals = function() {
- QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
-};
-QUnit.same = function() {
- QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
-};
-
-// We want access to the constructor's prototype
-(function() {
- function F() {}
- F.prototype = QUnit;
- QUnit = new F();
- // Make F QUnit's constructor so that we can add to the prototype later
- QUnit.constructor = F;
-}());
-
-/**
- * Config object: Maintain internal state
- * Later exposed as QUnit.config
- * `config` initialized at top of scope
- */
-config = {
- // The queue of tests to run
- queue: [],
-
- // block until document ready
- blocking: true,
-
- // when enabled, show only failing tests
- // gets persisted through sessionStorage and can be changed in UI via checkbox
- hidepassed: false,
-
- // by default, run previously failed tests first
- // very useful in combination with "Hide passed tests" checked
- reorder: true,
-
- // by default, modify document.title when suite is done
- altertitle: true,
-
- // when enabled, all tests must call expect()
- requireExpects: false,
-
- // add checkboxes that are persisted in the query-string
- // when enabled, the id is set to `true` as a `QUnit.config` property
- urlConfig: [
- {
- id: "noglobals",
- label: "Check for Globals",
- tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
- },
- {
- id: "notrycatch",
- label: "No try-catch",
- tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
- }
- ],
-
- // Set of all modules.
- modules: {},
-
- // logging callback queues
- begin: [],
- done: [],
- log: [],
- testStart: [],
- testDone: [],
- moduleStart: [],
- moduleDone: []
-};
-
-// Initialize more QUnit.config and QUnit.urlParams
-(function() {
- var i,
- location = window.location || { search: "", protocol: "file:" },
- params = location.search.slice( 1 ).split( "&" ),
- length = params.length,
- urlParams = {},
- current;
-
- if ( params[ 0 ] ) {
- for ( i = 0; i < length; i++ ) {
- current = params[ i ].split( "=" );
- current[ 0 ] = decodeURIComponent( current[ 0 ] );
- // allow just a key to turn on a flag, e.g., test.html?noglobals
- current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
- urlParams[ current[ 0 ] ] = current[ 1 ];
- }
- }
-
- QUnit.urlParams = urlParams;
-
- // String search anywhere in moduleName+testName
- config.filter = urlParams.filter;
-
- // Exact match of the module name
- config.module = urlParams.module;
-
- config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
-
- // Figure out if we're running the tests from a server or not
- QUnit.isLocal = location.protocol === "file:";
-}());
-
-// Export global variables, unless an 'exports' object exists,
-// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
-if ( typeof exports === "undefined" ) {
- extend( window, QUnit );
-
- // Expose QUnit object
- window.QUnit = QUnit;
-}
-
-// Extend QUnit object,
-// these after set here because they should not be exposed as global functions
-extend( QUnit, {
- config: config,
-
- // Initialize the configuration options
- init: function() {
- extend( config, {
- stats: { all: 0, bad: 0 },
- moduleStats: { all: 0, bad: 0 },
- started: +new Date(),
- updateRate: 1000,
- blocking: false,
- autostart: true,
- autorun: false,
- filter: "",
- queue: [],
- semaphore: 0
- });
-
- var tests, banner, result,
- qunit = id( "qunit" );
-
- if ( qunit ) {
- qunit.innerHTML =
- "" +
- " " +
- "
" +
- " " +
- " ";
- }
-
- tests = id( "qunit-tests" );
- banner = id( "qunit-banner" );
- result = id( "qunit-testresult" );
-
- if ( tests ) {
- tests.innerHTML = "";
- }
-
- if ( banner ) {
- banner.className = "";
- }
-
- if ( result ) {
- result.parentNode.removeChild( result );
- }
-
- if ( tests ) {
- result = document.createElement( "p" );
- result.id = "qunit-testresult";
- result.className = "result";
- tests.parentNode.insertBefore( result, tests );
- result.innerHTML = "Running... ";
- }
- },
-
- // Resets the test setup. Useful for tests that modify the DOM.
- reset: function() {
- var fixture = id( "qunit-fixture" );
- if ( fixture ) {
- fixture.innerHTML = config.fixture;
- }
- },
-
- // Trigger an event on an element.
- // @example triggerEvent( document.body, "click" );
- triggerEvent: function( elem, type, event ) {
- if ( document.createEvent ) {
- event = document.createEvent( "MouseEvents" );
- event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
- 0, 0, 0, 0, 0, false, false, false, false, 0, null);
-
- elem.dispatchEvent( event );
- } else if ( elem.fireEvent ) {
- elem.fireEvent( "on" + type );
- }
- },
-
- // Safe object type checking
- is: function( type, obj ) {
- return QUnit.objectType( obj ) == type;
- },
-
- objectType: function( obj ) {
- if ( typeof obj === "undefined" ) {
- return "undefined";
- // consider: typeof null === object
- }
- if ( obj === null ) {
- return "null";
- }
-
- var type = toString.call( obj ).match(/^\[object\s(.*)\]$/)[1] || "";
-
- switch ( type ) {
- case "Number":
- if ( isNaN(obj) ) {
- return "nan";
- }
- return "number";
- case "String":
- case "Boolean":
- case "Array":
- case "Date":
- case "RegExp":
- case "Function":
- return type.toLowerCase();
- }
- if ( typeof obj === "object" ) {
- return "object";
- }
- return undefined;
- },
-
- push: function( result, actual, expected, message ) {
- if ( !config.current ) {
- throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
- }
-
- var output, source,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: result,
- message: message,
- actual: actual,
- expected: expected
- };
-
- message = escapeInnerText( message ) || ( result ? "okay" : "failed" );
- message = "" + message + " ";
- output = message;
-
- if ( !result ) {
- expected = escapeInnerText( QUnit.jsDump.parse(expected) );
- actual = escapeInnerText( QUnit.jsDump.parse(actual) );
- output += "Expected: " + expected + " ";
-
- if ( actual != expected ) {
- output += "Result: " + actual + " ";
- output += "Diff: " + QUnit.diff( expected, actual ) + " ";
- }
-
- source = sourceFromStacktrace();
-
- if ( source ) {
- details.source = source;
- output += "Source: " + escapeInnerText( source ) + " ";
- }
-
- output += "
";
- }
-
- runLoggingCallbacks( "log", QUnit, details );
-
- config.current.assertions.push({
- result: !!result,
- message: output
- });
- },
-
- pushFailure: function( message, source, actual ) {
- if ( !config.current ) {
- throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
- }
-
- var output,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: false,
- message: message
- };
-
- message = escapeInnerText( message ) || "error";
- message = "" + message + " ";
- output = message;
-
- output += "";
-
- if ( actual ) {
- output += "Result: " + escapeInnerText( actual ) + " ";
- }
-
- if ( source ) {
- details.source = source;
- output += "Source: " + escapeInnerText( source ) + " ";
- }
-
- output += "
";
-
- runLoggingCallbacks( "log", QUnit, details );
-
- config.current.assertions.push({
- result: false,
- message: output
- });
- },
-
- url: function( params ) {
- params = extend( extend( {}, QUnit.urlParams ), params );
- var key,
- querystring = "?";
-
- for ( key in params ) {
- if ( !hasOwn.call( params, key ) ) {
- continue;
- }
- querystring += encodeURIComponent( key ) + "=" +
- encodeURIComponent( params[ key ] ) + "&";
- }
- return window.location.pathname + querystring.slice( 0, -1 );
- },
-
- extend: extend,
- id: id,
- addEvent: addEvent
- // load, equiv, jsDump, diff: Attached later
-});
-
-/**
- * @deprecated: Created for backwards compatibility with test runner that set the hook function
- * into QUnit.{hook}, instead of invoking it and passing the hook function.
- * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
- * Doing this allows us to tell if the following methods have been overwritten on the actual
- * QUnit object.
- */
-extend( QUnit.constructor.prototype, {
-
- // Logging callbacks; all receive a single argument with the listed properties
- // run test/logs.html for any related changes
- begin: registerLoggingCallback( "begin" ),
-
- // done: { failed, passed, total, runtime }
- done: registerLoggingCallback( "done" ),
-
- // log: { result, actual, expected, message }
- log: registerLoggingCallback( "log" ),
-
- // testStart: { name }
- testStart: registerLoggingCallback( "testStart" ),
-
- // testDone: { name, failed, passed, total }
- testDone: registerLoggingCallback( "testDone" ),
-
- // moduleStart: { name }
- moduleStart: registerLoggingCallback( "moduleStart" ),
-
- // moduleDone: { name, failed, passed, total }
- moduleDone: registerLoggingCallback( "moduleDone" )
-});
-
-if ( typeof document === "undefined" || document.readyState === "complete" ) {
- config.autorun = true;
-}
-
-QUnit.load = function() {
- runLoggingCallbacks( "begin", QUnit, {} );
-
- // Initialize the config, saving the execution queue
- var banner, filter, i, label, len, main, ol, toolbar, userAgent, val, urlConfigCheckboxes, moduleFilter,
- numModules = 0,
- moduleFilterHtml = "",
- urlConfigHtml = "",
- oldconfig = extend( {}, config );
-
- QUnit.init();
- extend(config, oldconfig);
-
- config.blocking = false;
-
- len = config.urlConfig.length;
-
- for ( i = 0; i < len; i++ ) {
- val = config.urlConfig[i];
- if ( typeof val === "string" ) {
- val = {
- id: val,
- label: val,
- tooltip: "[no tooltip available]"
- };
- }
- config[ val.id ] = QUnit.urlParams[ val.id ];
- urlConfigHtml += "" + val.label + " ";
- }
-
- moduleFilterHtml += "Module: < All Modules > ";
- for ( i in config.modules ) {
- if ( config.modules.hasOwnProperty( i ) ) {
- numModules += 1;
- moduleFilterHtml += "" + i + " ";
- }
- }
- moduleFilterHtml += " ";
-
- // `userAgent` initialized at top of scope
- userAgent = id( "qunit-userAgent" );
- if ( userAgent ) {
- userAgent.innerHTML = navigator.userAgent;
- }
-
- // `banner` initialized at top of scope
- banner = id( "qunit-header" );
- if ( banner ) {
- banner.innerHTML = "" + banner.innerHTML + " ";
- }
-
- // `toolbar` initialized at top of scope
- toolbar = id( "qunit-testrunner-toolbar" );
- if ( toolbar ) {
- // `filter` initialized at top of scope
- filter = document.createElement( "input" );
- filter.type = "checkbox";
- filter.id = "qunit-filter-pass";
-
- addEvent( filter, "click", function() {
- var tmp,
- ol = document.getElementById( "qunit-tests" );
-
- if ( filter.checked ) {
- ol.className = ol.className + " hidepass";
- } else {
- tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
- ol.className = tmp.replace( / hidepass /, " " );
- }
- if ( defined.sessionStorage ) {
- if (filter.checked) {
- sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
- } else {
- sessionStorage.removeItem( "qunit-filter-passed-tests" );
- }
- }
- });
-
- if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
- filter.checked = true;
- // `ol` initialized at top of scope
- ol = document.getElementById( "qunit-tests" );
- ol.className = ol.className + " hidepass";
- }
- toolbar.appendChild( filter );
-
- // `label` initialized at top of scope
- label = document.createElement( "label" );
- label.setAttribute( "for", "qunit-filter-pass" );
- label.setAttribute( "title", "Only show tests and assertons that fail. Stored in sessionStorage." );
- label.innerHTML = "Hide passed tests";
- toolbar.appendChild( label );
-
- urlConfigCheckboxes = document.createElement( 'span' );
- urlConfigCheckboxes.innerHTML = urlConfigHtml;
- addEvent( urlConfigCheckboxes, "change", function( event ) {
- var params = {};
- params[ event.target.name ] = event.target.checked ? true : undefined;
- window.location = QUnit.url( params );
- });
- toolbar.appendChild( urlConfigCheckboxes );
-
- if (numModules > 1) {
- moduleFilter = document.createElement( 'span' );
- moduleFilter.setAttribute( 'id', 'qunit-modulefilter-container' );
- moduleFilter.innerHTML = moduleFilterHtml;
- addEvent( moduleFilter, "change", function() {
- var selectBox = moduleFilter.getElementsByTagName("select")[0],
- selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value);
-
- window.location = QUnit.url( { module: ( selectedModule === "" ) ? undefined : selectedModule } );
- });
- toolbar.appendChild(moduleFilter);
- }
- }
-
- // `main` initialized at top of scope
- main = id( "qunit-fixture" );
- if ( main ) {
- config.fixture = main.innerHTML;
- }
-
- if ( config.autostart ) {
- QUnit.start();
- }
-};
-
-addEvent( window, "load", QUnit.load );
-
-// `onErrorFnPrev` initialized at top of scope
-// Preserve other handlers
-onErrorFnPrev = window.onerror;
-
-// Cover uncaught exceptions
-// Returning true will surpress the default browser handler,
-// returning false will let it run.
-window.onerror = function ( error, filePath, linerNr ) {
- var ret = false;
- if ( onErrorFnPrev ) {
- ret = onErrorFnPrev( error, filePath, linerNr );
- }
-
- // Treat return value as window.onerror itself does,
- // Only do our handling if not surpressed.
- if ( ret !== true ) {
- if ( QUnit.config.current ) {
- if ( QUnit.config.current.ignoreGlobalErrors ) {
- return true;
- }
- QUnit.pushFailure( error, filePath + ":" + linerNr );
- } else {
- QUnit.test( "global failure", extend( function() {
- QUnit.pushFailure( error, filePath + ":" + linerNr );
- }, { validTest: validTest } ) );
- }
- return false;
- }
-
- return ret;
-};
-
-function done() {
- config.autorun = true;
-
- // Log the last module results
- if ( config.currentModule ) {
- runLoggingCallbacks( "moduleDone", QUnit, {
- name: config.currentModule,
- failed: config.moduleStats.bad,
- passed: config.moduleStats.all - config.moduleStats.bad,
- total: config.moduleStats.all
- });
- }
-
- var i, key,
- banner = id( "qunit-banner" ),
- tests = id( "qunit-tests" ),
- runtime = +new Date() - config.started,
- passed = config.stats.all - config.stats.bad,
- html = [
- "Tests completed in ",
- runtime,
- " milliseconds. ",
- "",
- passed,
- " tests of ",
- config.stats.all,
- " passed, ",
- config.stats.bad,
- " failed."
- ].join( "" );
-
- if ( banner ) {
- banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
- }
-
- if ( tests ) {
- id( "qunit-testresult" ).innerHTML = html;
- }
-
- if ( config.altertitle && typeof document !== "undefined" && document.title ) {
- // show ✖ for good, ✔ for bad suite result in title
- // use escape sequences in case file gets loaded with non-utf-8-charset
- document.title = [
- ( config.stats.bad ? "\u2716" : "\u2714" ),
- document.title.replace( /^[\u2714\u2716] /i, "" )
- ].join( " " );
- }
-
- // clear own sessionStorage items if all tests passed
- if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
- // `key` & `i` initialized at top of scope
- for ( i = 0; i < sessionStorage.length; i++ ) {
- key = sessionStorage.key( i++ );
- if ( key.indexOf( "qunit-test-" ) === 0 ) {
- sessionStorage.removeItem( key );
- }
- }
- }
-
- // scroll back to top to show results
- if ( window.scrollTo ) {
- window.scrollTo(0, 0);
- }
-
- runLoggingCallbacks( "done", QUnit, {
- failed: config.stats.bad,
- passed: passed,
- total: config.stats.all,
- runtime: runtime
- });
-}
-
-/** @return Boolean: true if this test should be ran */
-function validTest( test ) {
- var include,
- filter = config.filter && config.filter.toLowerCase(),
- module = config.module && config.module.toLowerCase(),
- fullName = (test.module + ": " + test.testName).toLowerCase();
-
- // Internally-generated tests are always valid
- if ( test.callback && test.callback.validTest === validTest ) {
- delete test.callback.validTest;
- return true;
- }
-
- if ( config.testNumber ) {
- return test.testNumber === config.testNumber;
- }
-
- if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
- return false;
- }
-
- if ( !filter ) {
- return true;
- }
-
- include = filter.charAt( 0 ) !== "!";
- if ( !include ) {
- filter = filter.slice( 1 );
- }
-
- // If the filter matches, we need to honour include
- if ( fullName.indexOf( filter ) !== -1 ) {
- return include;
- }
-
- // Otherwise, do the opposite
- return !include;
-}
-
-// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
-// Later Safari and IE10 are supposed to support error.stack as well
-// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
-function extractStacktrace( e, offset ) {
- offset = offset === undefined ? 3 : offset;
-
- var stack, include, i, regex;
-
- if ( e.stacktrace ) {
- // Opera
- return e.stacktrace.split( "\n" )[ offset + 3 ];
- } else if ( e.stack ) {
- // Firefox, Chrome
- stack = e.stack.split( "\n" );
- if (/^error$/i.test( stack[0] ) ) {
- stack.shift();
- }
- if ( fileName ) {
- include = [];
- for ( i = offset; i < stack.length; i++ ) {
- if ( stack[ i ].indexOf( fileName ) != -1 ) {
- break;
- }
- include.push( stack[ i ] );
- }
- if ( include.length ) {
- return include.join( "\n" );
- }
- }
- return stack[ offset ];
- } else if ( e.sourceURL ) {
- // Safari, PhantomJS
- // hopefully one day Safari provides actual stacktraces
- // exclude useless self-reference for generated Error objects
- if ( /qunit.js$/.test( e.sourceURL ) ) {
- return;
- }
- // for actual exceptions, this is useful
- return e.sourceURL + ":" + e.line;
- }
-}
-function sourceFromStacktrace( offset ) {
- try {
- throw new Error();
- } catch ( e ) {
- return extractStacktrace( e, offset );
- }
-}
-
-function escapeInnerText( s ) {
- if ( !s ) {
- return "";
- }
- s = s + "";
- return s.replace( /[\&<>]/g, function( s ) {
- switch( s ) {
- case "&": return "&";
- case "<": return "<";
- case ">": return ">";
- default: return s;
- }
- });
-}
-
-function synchronize( callback, last ) {
- config.queue.push( callback );
-
- if ( config.autorun && !config.blocking ) {
- process( last );
- }
-}
-
-function process( last ) {
- function next() {
- process( last );
- }
- var start = new Date().getTime();
- config.depth = config.depth ? config.depth + 1 : 1;
-
- while ( config.queue.length && !config.blocking ) {
- if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
- config.queue.shift()();
- } else {
- window.setTimeout( next, 13 );
- break;
- }
- }
- config.depth--;
- if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
- done();
- }
-}
-
-function saveGlobal() {
- config.pollution = [];
-
- if ( config.noglobals ) {
- for ( var key in window ) {
- // in Opera sometimes DOM element ids show up here, ignore them
- if ( !hasOwn.call( window, key ) || /^qunit-test-output/.test( key ) ) {
- continue;
- }
- config.pollution.push( key );
- }
- }
-}
-
-function checkPollution( name ) {
- var newGlobals,
- deletedGlobals,
- old = config.pollution;
-
- saveGlobal();
-
- newGlobals = diff( config.pollution, old );
- if ( newGlobals.length > 0 ) {
- QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
- }
-
- deletedGlobals = diff( old, config.pollution );
- if ( deletedGlobals.length > 0 ) {
- QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
- }
-}
-
-// returns a new Array with the elements that are in a but not in b
-function diff( a, b ) {
- var i, j,
- result = a.slice();
-
- for ( i = 0; i < result.length; i++ ) {
- for ( j = 0; j < b.length; j++ ) {
- if ( result[i] === b[j] ) {
- result.splice( i, 1 );
- i--;
- break;
- }
- }
- }
- return result;
-}
-
-function extend( a, b ) {
- for ( var prop in b ) {
- if ( b[ prop ] === undefined ) {
- delete a[ prop ];
-
- // Avoid "Member not found" error in IE8 caused by setting window.constructor
- } else if ( prop !== "constructor" || a !== window ) {
- a[ prop ] = b[ prop ];
- }
- }
-
- return a;
-}
-
-function addEvent( elem, type, fn ) {
- if ( elem.addEventListener ) {
- elem.addEventListener( type, fn, false );
- } else if ( elem.attachEvent ) {
- elem.attachEvent( "on" + type, fn );
- } else {
- fn();
- }
-}
-
-function id( name ) {
- return !!( typeof document !== "undefined" && document && document.getElementById ) &&
- document.getElementById( name );
-}
-
-function registerLoggingCallback( key ) {
- return function( callback ) {
- config[key].push( callback );
- };
-}
-
-// Supports deprecated method of completely overwriting logging callbacks
-function runLoggingCallbacks( key, scope, args ) {
- //debugger;
- var i, callbacks;
- if ( QUnit.hasOwnProperty( key ) ) {
- QUnit[ key ].call(scope, args );
- } else {
- callbacks = config[ key ];
- for ( i = 0; i < callbacks.length; i++ ) {
- callbacks[ i ].call( scope, args );
- }
- }
-}
-
-// Test for equality any JavaScript type.
-// Author: Philippe Rathé
-QUnit.equiv = (function() {
-
- // Call the o related callback with the given arguments.
- function bindCallbacks( o, callbacks, args ) {
- var prop = QUnit.objectType( o );
- if ( prop ) {
- if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
- return callbacks[ prop ].apply( callbacks, args );
- } else {
- return callbacks[ prop ]; // or undefined
- }
- }
- }
-
- // the real equiv function
- var innerEquiv,
- // stack to decide between skip/abort functions
- callers = [],
- // stack to avoiding loops from circular referencing
- parents = [],
-
- getProto = Object.getPrototypeOf || function ( obj ) {
- return obj.__proto__;
- },
- callbacks = (function () {
-
- // for string, boolean, number and null
- function useStrictEquality( b, a ) {
- if ( b instanceof a.constructor || a instanceof b.constructor ) {
- // to catch short annotaion VS 'new' annotation of a
- // declaration
- // e.g. var i = 1;
- // var j = new Number(1);
- return a == b;
- } else {
- return a === b;
- }
- }
-
- return {
- "string": useStrictEquality,
- "boolean": useStrictEquality,
- "number": useStrictEquality,
- "null": useStrictEquality,
- "undefined": useStrictEquality,
-
- "nan": function( b ) {
- return isNaN( b );
- },
-
- "date": function( b, a ) {
- return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
- },
-
- "regexp": function( b, a ) {
- return QUnit.objectType( b ) === "regexp" &&
- // the regex itself
- a.source === b.source &&
- // and its modifers
- a.global === b.global &&
- // (gmi) ...
- a.ignoreCase === b.ignoreCase &&
- a.multiline === b.multiline &&
- a.sticky === b.sticky;
- },
-
- // - skip when the property is a method of an instance (OOP)
- // - abort otherwise,
- // initial === would have catch identical references anyway
- "function": function() {
- var caller = callers[callers.length - 1];
- return caller !== Object && typeof caller !== "undefined";
- },
-
- "array": function( b, a ) {
- var i, j, len, loop;
-
- // b could be an object literal here
- if ( QUnit.objectType( b ) !== "array" ) {
- return false;
- }
-
- len = a.length;
- if ( len !== b.length ) {
- // safe and faster
- return false;
- }
-
- // track reference to avoid circular references
- parents.push( a );
- for ( i = 0; i < len; i++ ) {
- loop = false;
- for ( j = 0; j < parents.length; j++ ) {
- if ( parents[j] === a[i] ) {
- loop = true;// dont rewalk array
- }
- }
- if ( !loop && !innerEquiv(a[i], b[i]) ) {
- parents.pop();
- return false;
- }
- }
- parents.pop();
- return true;
- },
-
- "object": function( b, a ) {
- var i, j, loop,
- // Default to true
- eq = true,
- aProperties = [],
- bProperties = [];
-
- // comparing constructors is more strict than using
- // instanceof
- if ( a.constructor !== b.constructor ) {
- // Allow objects with no prototype to be equivalent to
- // objects with Object as their constructor.
- if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
- ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
- return false;
- }
- }
-
- // stack constructor before traversing properties
- callers.push( a.constructor );
- // track reference to avoid circular references
- parents.push( a );
-
- for ( i in a ) { // be strict: don't ensures hasOwnProperty
- // and go deep
- loop = false;
- for ( j = 0; j < parents.length; j++ ) {
- if ( parents[j] === a[i] ) {
- // don't go down the same path twice
- loop = true;
- }
- }
- aProperties.push(i); // collect a's properties
-
- if (!loop && !innerEquiv( a[i], b[i] ) ) {
- eq = false;
- break;
- }
- }
-
- callers.pop(); // unstack, we are done
- parents.pop();
-
- for ( i in b ) {
- bProperties.push( i ); // collect b's properties
- }
-
- // Ensures identical properties name
- return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
- }
- };
- }());
-
- innerEquiv = function() { // can take multiple arguments
- var args = [].slice.apply( arguments );
- if ( args.length < 2 ) {
- return true; // end transition
- }
-
- return (function( a, b ) {
- if ( a === b ) {
- return true; // catch the most you can
- } else if ( a === null || b === null || typeof a === "undefined" ||
- typeof b === "undefined" ||
- QUnit.objectType(a) !== QUnit.objectType(b) ) {
- return false; // don't lose time with error prone cases
- } else {
- return bindCallbacks(a, callbacks, [ b, a ]);
- }
-
- // apply transition with (1..n) arguments
- }( args[0], args[1] ) && arguments.callee.apply( this, args.splice(1, args.length - 1 )) );
- };
-
- return innerEquiv;
-}());
-
-/**
- * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
- * http://flesler.blogspot.com Licensed under BSD
- * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
- *
- * @projectDescription Advanced and extensible data dumping for Javascript.
- * @version 1.0.0
- * @author Ariel Flesler
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
- */
-QUnit.jsDump = (function() {
- function quote( str ) {
- return '"' + str.toString().replace( /"/g, '\\"' ) + '"';
- }
- function literal( o ) {
- return o + "";
- }
- function join( pre, arr, post ) {
- var s = jsDump.separator(),
- base = jsDump.indent(),
- inner = jsDump.indent(1);
- if ( arr.join ) {
- arr = arr.join( "," + s + inner );
- }
- if ( !arr ) {
- return pre + post;
- }
- return [ pre, inner + arr, base + post ].join(s);
- }
- function array( arr, stack ) {
- var i = arr.length, ret = new Array(i);
- this.up();
- while ( i-- ) {
- ret[i] = this.parse( arr[i] , undefined , stack);
- }
- this.down();
- return join( "[", ret, "]" );
- }
-
- var reName = /^function (\w+)/,
- jsDump = {
- parse: function( obj, type, stack ) { //type is used mostly internally, you can fix a (custom)type in advance
- stack = stack || [ ];
- var inStack, res,
- parser = this.parsers[ type || this.typeOf(obj) ];
-
- type = typeof parser;
- inStack = inArray( obj, stack );
-
- if ( inStack != -1 ) {
- return "recursion(" + (inStack - stack.length) + ")";
- }
- //else
- if ( type == "function" ) {
- stack.push( obj );
- res = parser.call( this, obj, stack );
- stack.pop();
- return res;
- }
- // else
- return ( type == "string" ) ? parser : this.parsers.error;
- },
- typeOf: function( obj ) {
- var type;
- if ( obj === null ) {
- type = "null";
- } else if ( typeof obj === "undefined" ) {
- type = "undefined";
- } else if ( QUnit.is( "regexp", obj) ) {
- type = "regexp";
- } else if ( QUnit.is( "date", obj) ) {
- type = "date";
- } else if ( QUnit.is( "function", obj) ) {
- type = "function";
- } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
- type = "window";
- } else if ( obj.nodeType === 9 ) {
- type = "document";
- } else if ( obj.nodeType ) {
- type = "node";
- } else if (
- // native arrays
- toString.call( obj ) === "[object Array]" ||
- // NodeList objects
- ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
- ) {
- type = "array";
- } else {
- type = typeof obj;
- }
- return type;
- },
- separator: function() {
- return this.multiline ? this.HTML ? " " : "\n" : this.HTML ? " " : " ";
- },
- indent: function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing
- if ( !this.multiline ) {
- return "";
- }
- var chr = this.indentChar;
- if ( this.HTML ) {
- chr = chr.replace( /\t/g, " " ).replace( / /g, " " );
- }
- return new Array( this._depth_ + (extra||0) ).join(chr);
- },
- up: function( a ) {
- this._depth_ += a || 1;
- },
- down: function( a ) {
- this._depth_ -= a || 1;
- },
- setParser: function( name, parser ) {
- this.parsers[name] = parser;
- },
- // The next 3 are exposed so you can use them
- quote: quote,
- literal: literal,
- join: join,
- //
- _depth_: 1,
- // This is the list of parsers, to modify them, use jsDump.setParser
- parsers: {
- window: "[Window]",
- document: "[Document]",
- error: "[ERROR]", //when no parser is found, shouldn"t happen
- unknown: "[Unknown]",
- "null": "null",
- "undefined": "undefined",
- "function": function( fn ) {
- var ret = "function",
- name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];//functions never have name in IE
-
- if ( name ) {
- ret += " " + name;
- }
- ret += "( ";
-
- ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
- return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
- },
- array: array,
- nodelist: array,
- "arguments": array,
- object: function( map, stack ) {
- var ret = [ ], keys, key, val, i;
- QUnit.jsDump.up();
- if ( Object.keys ) {
- keys = Object.keys( map );
- } else {
- keys = [];
- for ( key in map ) {
- keys.push( key );
- }
- }
- keys.sort();
- for ( i = 0; i < keys.length; i++ ) {
- key = keys[ i ];
- val = map[ key ];
- ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
- }
- QUnit.jsDump.down();
- return join( "{", ret, "}" );
- },
- node: function( node ) {
- var a, val,
- open = QUnit.jsDump.HTML ? "<" : "<",
- close = QUnit.jsDump.HTML ? ">" : ">",
- tag = node.nodeName.toLowerCase(),
- ret = open + tag;
-
- for ( a in QUnit.jsDump.DOMAttrs ) {
- val = node[ QUnit.jsDump.DOMAttrs[a] ];
- if ( val ) {
- ret += " " + a + "=" + QUnit.jsDump.parse( val, "attribute" );
- }
- }
- return ret + close + open + "/" + tag + close;
- },
- functionArgs: function( fn ) {//function calls it internally, it's the arguments part of the function
- var args,
- l = fn.length;
-
- if ( !l ) {
- return "";
- }
-
- args = new Array(l);
- while ( l-- ) {
- args[l] = String.fromCharCode(97+l);//97 is 'a'
- }
- return " " + args.join( ", " ) + " ";
- },
- key: quote, //object calls it internally, the key part of an item in a map
- functionCode: "[code]", //function calls it internally, it's the content of the function
- attribute: quote, //node calls it internally, it's an html attribute value
- string: quote,
- date: quote,
- regexp: literal, //regex
- number: literal,
- "boolean": literal
- },
- DOMAttrs: {
- //attributes to dump from nodes, name=>realName
- id: "id",
- name: "name",
- "class": "className"
- },
- HTML: false,//if true, entities are escaped ( <, >, \t, space and \n )
- indentChar: " ",//indentation unit
- multiline: true //if true, items in a collection, are separated by a \n, else just a space.
- };
-
- return jsDump;
-}());
-
-// from Sizzle.js
-function getText( elems ) {
- var i, elem,
- ret = "";
-
- for ( i = 0; elems[i]; i++ ) {
- elem = elems[i];
-
- // Get the text from text nodes and CDATA nodes
- if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
- ret += elem.nodeValue;
-
- // Traverse everything else, except comment nodes
- } else if ( elem.nodeType !== 8 ) {
- ret += getText( elem.childNodes );
- }
- }
-
- return ret;
-}
-
-// from jquery.js
-function inArray( elem, array ) {
- if ( array.indexOf ) {
- return array.indexOf( elem );
- }
-
- for ( var i = 0, length = array.length; i < length; i++ ) {
- if ( array[ i ] === elem ) {
- return i;
- }
- }
-
- return -1;
-}
-
-/*
- * Javascript Diff Algorithm
- * By John Resig (http://ejohn.org/)
- * Modified by Chu Alan "sprite"
- *
- * Released under the MIT license.
- *
- * More Info:
- * http://ejohn.org/projects/javascript-diff-algorithm/
- *
- * Usage: QUnit.diff(expected, actual)
- *
- * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the quick brown fox jumped jumps over"
- */
-QUnit.diff = (function() {
- function diff( o, n ) {
- var i,
- ns = {},
- os = {};
-
- for ( i = 0; i < n.length; i++ ) {
- if ( ns[ n[i] ] == null ) {
- ns[ n[i] ] = {
- rows: [],
- o: null
- };
- }
- ns[ n[i] ].rows.push( i );
- }
-
- for ( i = 0; i < o.length; i++ ) {
- if ( os[ o[i] ] == null ) {
- os[ o[i] ] = {
- rows: [],
- n: null
- };
- }
- os[ o[i] ].rows.push( i );
- }
-
- for ( i in ns ) {
- if ( !hasOwn.call( ns, i ) ) {
- continue;
- }
- if ( ns[i].rows.length == 1 && typeof os[i] != "undefined" && os[i].rows.length == 1 ) {
- n[ ns[i].rows[0] ] = {
- text: n[ ns[i].rows[0] ],
- row: os[i].rows[0]
- };
- o[ os[i].rows[0] ] = {
- text: o[ os[i].rows[0] ],
- row: ns[i].rows[0]
- };
- }
- }
-
- for ( i = 0; i < n.length - 1; i++ ) {
- if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
- n[ i + 1 ] == o[ n[i].row + 1 ] ) {
-
- n[ i + 1 ] = {
- text: n[ i + 1 ],
- row: n[i].row + 1
- };
- o[ n[i].row + 1 ] = {
- text: o[ n[i].row + 1 ],
- row: i + 1
- };
- }
- }
-
- for ( i = n.length - 1; i > 0; i-- ) {
- if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
- n[ i - 1 ] == o[ n[i].row - 1 ]) {
-
- n[ i - 1 ] = {
- text: n[ i - 1 ],
- row: n[i].row - 1
- };
- o[ n[i].row - 1 ] = {
- text: o[ n[i].row - 1 ],
- row: i - 1
- };
- }
- }
-
- return {
- o: o,
- n: n
- };
- }
-
- return function( o, n ) {
- o = o.replace( /\s+$/, "" );
- n = n.replace( /\s+$/, "" );
-
- var i, pre,
- str = "",
- out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
- oSpace = o.match(/\s+/g),
- nSpace = n.match(/\s+/g);
-
- if ( oSpace == null ) {
- oSpace = [ " " ];
- }
- else {
- oSpace.push( " " );
- }
-
- if ( nSpace == null ) {
- nSpace = [ " " ];
- }
- else {
- nSpace.push( " " );
- }
-
- if ( out.n.length === 0 ) {
- for ( i = 0; i < out.o.length; i++ ) {
- str += "" + out.o[i] + oSpace[i] + "";
- }
- }
- else {
- if ( out.n[0].text == null ) {
- for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
- str += "" + out.o[n] + oSpace[n] + "";
- }
- }
-
- for ( i = 0; i < out.n.length; i++ ) {
- if (out.n[i].text == null) {
- str += "" + out.n[i] + nSpace[i] + " ";
- }
- else {
- // `pre` initialized at top of scope
- pre = "";
-
- for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
- pre += "" + out.o[n] + oSpace[n] + "";
- }
- str += " " + out.n[i].text + nSpace[i] + pre;
- }
- }
- }
-
- return str;
- };
-}());
-
-// for CommonJS enviroments, export everything
-if ( typeof exports !== "undefined" ) {
- extend(exports, QUnit);
-}
-
-// get at whatever the global object is, like window in browsers
-}( (function() {return this;}.call()) ));
diff --git a/lib/assets/javascripts/qunit/tests.js b/lib/assets/javascripts/qunit/tests.js
deleted file mode 100644
index e15e304f74..0000000000
--- a/lib/assets/javascripts/qunit/tests.js
+++ /dev/null
@@ -1,418 +0,0 @@
-/**
- * Custom assertions
- *
- * Somehow, the same approach, that may be seen in other QUnit plugins -
- * extending QUnit itself and not QUnit.assert, does not work as expected. Also,
- * the patch below does not expose `not` to the test method, instead the assert
- * parameter passed to the test function must be used.
- */
-
-QUnit.extend(QUnit.assert, {
- no: function (expected, message) {
- QUnit.ok(!expected, message);
- },
- stringEqual: function (actual, expected, message) {
- QUnit.push(actual.toString() == expected.toString(), actual, expected, message);
- }
-});
-
-
-/**
- * OpenProject instance methods
- */
-QUnit.module("OpenProject instance `getFullUrl`");
-
-QUnit.test("with undefined urlRoot", function (assert) {
- var op = new OpenProject({});
-
- assert.strictEqual(op.getFullUrl('/foo'), '/foo', "works w/ leading slash");
- assert.strictEqual(op.getFullUrl('foo'), '/foo', "works w/o leading slash");
- assert.strictEqual(op.getFullUrl(''), '/', "works w/ empty string");
- assert.strictEqual(op.getFullUrl(), '/', "works w/o parameter");
-});
-
-QUnit.test("with empty string urlRoot", function (assert) {
- var op = new OpenProject({urlRoot : ''});
-
- assert.strictEqual(op.getFullUrl('/foo'), '/foo', "works w/ leading slash");
- assert.strictEqual(op.getFullUrl('foo'), '/foo', "works w/o leading slash");
- assert.strictEqual(op.getFullUrl(''), '/', "works w/ empty string");
- assert.strictEqual(op.getFullUrl(), '/', "works w/o parameter");
-});
-
-QUnit.test("with '/' urlRoot", function (assert) {
- var op = new OpenProject({urlRoot : '/'});
-
- assert.strictEqual(op.getFullUrl('/foo'), '/foo', "works w/ leading slash");
- assert.strictEqual(op.getFullUrl('foo'), '/foo', "works w/o leading slash");
- assert.strictEqual(op.getFullUrl(''), '/', "works w/ empty string");
- assert.strictEqual(op.getFullUrl(), '/', "works w/o parameter");
-});
-
-QUnit.test("with urlRoot w/ trailing slash", function (assert) {
- var op = new OpenProject({urlRoot : '/op/'});
-
- assert.strictEqual(op.getFullUrl('/foo'), '/op/foo', "works w/ leading slash");
- assert.strictEqual(op.getFullUrl('foo'), '/op/foo', "works w/o leading slash");
- assert.strictEqual(op.getFullUrl(''), '/op/', "works w/ empty string");
- assert.strictEqual(op.getFullUrl(), '/op/', "works w/o parameter");
-});
-
-QUnit.test("with urlRoot w/o trailing slash", function (assert) {
- var op = new OpenProject({urlRoot : '/op'});
-
- assert.strictEqual(op.getFullUrl('/foo'), '/op/foo', "works w/ leading slash");
- assert.strictEqual(op.getFullUrl('foo'), '/op/foo', "works w/o leading slash");
- assert.strictEqual(op.getFullUrl(''), '/op/', "works w/ empty string");
- assert.strictEqual(op.getFullUrl(), '/op/', "works w/o parameter");
-});
-
-QUnit.module("OpenProject instance `fetchProjects`", {
- setup: function () {
- var defaultOptions = {
- url : new RegExp('.*/projects/level_list\\.json'),
- responseTime : 0
- };
-
- if (false) {
- jQuery.mockjax(jQuery.extend(defaultOptions, {
- proxy : 'mocks/projects.json'
- }));
- }
- else {
- jQuery.mockjax(jQuery.extend(defaultOptions, {
- responseText : '{"projects":[{"identifier":"bums","created_on":"2012-12-18T07:00:17Z","level":0,"updated_on":"2012-12-18T09:09:10Z","name":"Bums zzz","id":3},{"identifier":"things","created_on":"2012-12-14T14:01:27Z","level":0,"updated_on":"2012-12-14T14:01:27Z","name":"Things","id":1},{"identifier":"things-bums","created_on":"2012-12-18T06:59:50Z","level":1,"updated_on":"2012-12-18T14:26:05Z","name":"Thingsb-Bums","id":2},{"identifier":"bums-bums","created_on":"2012-12-18T08:57:46Z","level":2,"updated_on":"2012-12-18T08:57:46Z","name":"Bums Bums","id":5},{"identifier":"zzz","created_on":"2012-12-18T08:57:14Z","level":0,"updated_on":"2012-12-18T08:57:14Z","name":"ZZZ","id":4}],"size":5}'
- }));
- }
- },
- teardown: function () {
- jQuery.mockjaxClear();
- }
-});
-
-QUnit.asyncTest("calls /projects/level_list.json to fetch results", 1, function (assert) {
- var op = new OpenProject();
-
- op.fetchProjects(function (projects) {
- assert.strictEqual(projects.length, 5);
- QUnit.start();
- });
-});
-
-QUnit.asyncTest("adds hname to projects", 5, function (assert) {
- var op = new OpenProject(),
- hname = OpenProject.Helpers.hname;
-
- op.fetchProjects(function (projects) {
- assert.deepEqual(projects[0].hname, "Bums zzz");
- assert.deepEqual(projects[1].hname, "Things");
- assert.deepEqual(projects[2].hname, hname("Thingsb-Bums", 1));
- assert.deepEqual(projects[3].hname, hname("Bums Bums", 2));
- assert.deepEqual(projects[4].hname, "ZZZ");
- QUnit.start();
- });
-});
-
-QUnit.asyncTest("adds parents array to projects", 5, function (assert) {
- var op = new OpenProject();
-
- op.fetchProjects(function (projects) {
- assert.deepEqual(projects[0].parents, []);
- assert.deepEqual(projects[1].parents, []);
- assert.deepEqual(projects[2].parents, [projects[1]]);
- assert.deepEqual(projects[3].parents, [projects[1], projects[2]]);
- assert.deepEqual(projects[4].parents, []);
- QUnit.start();
- });
-});
-
-QUnit.asyncTest("adds tokens to projects", 5, function (assert) {
- var op = new OpenProject();
-
- op.fetchProjects(function (projects) {
- assert.deepEqual(projects[0].tokens, ["Bums", "zzz"]);
- assert.deepEqual(projects[1].tokens, ["Things"]);
- assert.deepEqual(projects[2].tokens, ["Thingsb", "Bums"]);
- assert.deepEqual(projects[3].tokens, ["Bums", "Bums"]);
- assert.deepEqual(projects[4].tokens, ["ZZZ"]);
- QUnit.start();
- });
-});
-
-QUnit.asyncTest("adds url to projects", 5, function (assert) {
- var op = new OpenProject();
-
- op.fetchProjects(function (projects) {
- assert.deepEqual(projects[0].url, "/projects/bums");
- assert.deepEqual(projects[1].url, "/projects/things");
- assert.deepEqual(projects[2].url, "/projects/things-bums");
- assert.deepEqual(projects[3].url, "/projects/bums-bums");
- assert.deepEqual(projects[4].url, "/projects/zzz");
- QUnit.start();
- });
-});
-
-QUnit.asyncTest("adds url to projects with different urlRoot", 5, function (assert) {
- var op = new OpenProject({urlRoot : "/foo"});
-
- op.fetchProjects(function (projects) {
- assert.deepEqual(projects[0].url, "/foo/projects/bums");
- assert.deepEqual(projects[1].url, "/foo/projects/things");
- assert.deepEqual(projects[2].url, "/foo/projects/things-bums");
- assert.deepEqual(projects[3].url, "/foo/projects/bums-bums");
- assert.deepEqual(projects[4].url, "/foo/projects/zzz");
- QUnit.start();
- });
-});
-
-QUnit.asyncTest("caches result", 1, function (assert) {
- var op = new OpenProject();
- op.projects = 'something';
-
- op.fetchProjects(function (projects) {
- assert.strictEqual(projects, 'something');
- QUnit.start();
- });
-});
-
-
-
-
-
-
-/**
- * OpenProject.Helpers
- */
-QUnit.module("OpenProject.Helpers `hname`");
-
-QUnit.test("adds spaces and arrows to names when level > 0", function (assert) {
- var hname = OpenProject.Helpers.hname;
-
- assert.strictEqual(hname("a", -1), "a");
- assert.strictEqual(hname("a", 0), "a");
- assert.strictEqual(hname("a", 1), "\u00A0\u00A0\u00A0\u00BB\u00A0a");
- assert.strictEqual(hname("a", 2), "\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00BB\u00A0a");
-});
-
-
-
-QUnit.module("OpenProject.Helpers `regexpEscape`");
-
-QUnit.test("adds leading \\ to regexp special characters", function (assert) {
- var esc = OpenProject.Helpers.regexpEscape;
-
- assert.strictEqual(esc("."), "\\.");
- assert.strictEqual(esc("?"), "\\?");
- assert.strictEqual(esc("["), "\\[");
- assert.strictEqual(esc("+"), "\\+");
-
- assert.strictEqual(esc("a"), "a");
-});
-
-
-QUnit.module("OpenProject.Helpers `replace`");
-
-QUnit.test("replaces wrong with right in text once ignoring case", function (assert) {
- var replace = OpenProject.Helpers.replace;
-
- // Basic functionality
- assert.strictEqual(replace("abc", "a", "b"), "bbc");
- assert.strictEqual(replace("aaa", "a", "b"), "baa");
- assert.strictEqual(replace("aaa", "d", "b"), "aaa");
-
- // Empty parameters
- assert.strictEqual(replace("aaa", "", "b"), "aaa");
- assert.strictEqual(replace("aaa", "a", ""), "aa");
- assert.strictEqual(replace("", "a", "b"), "");
- assert.strictEqual(replace("", "", ""), "");
-
- // Different lengths
- assert.strictEqual(replace("aaa", "a", "bb"), "bbaa");
- assert.strictEqual(replace("aaa", "aa", "b"), "ba");
-
- // Ignore case
- assert.strictEqual(replace("Aaa", "a", "b"), "baa");
- assert.strictEqual(replace("aaa", "A", "b"), "baa");
-});
-
-
-
-QUnit.module("OpenProject.Helpers `withoutOnce`");
-
-QUnit.test("removes given element once from array", function (assert) {
- var withoutOnce = OpenProject.Helpers.withoutOnce;
-
- assert.deepEqual(withoutOnce([1, 2, 3, 2, 1], 1), [2, 3, 2, 1]);
- assert.deepEqual(withoutOnce([1, 2, 3, 2, 1], 2), [1, 3, 2, 1]);
- assert.deepEqual(withoutOnce([1, 2, 3, 2, 1], 4), [1, 2, 3, 2, 1]);
-});
-
-
-
-QUnit.module("OpenProject.Helpers `hname`");
-
-QUnit.test("adds spaces and arrows to names when level > 0", function (assert) {
- var hname = OpenProject.Helpers.hname;
-
- assert.strictEqual(hname("a", -1), "a");
- assert.strictEqual(hname("a", 0), "a");
- assert.strictEqual(hname("a", 1), "\u00A0\u00A0\u00A0\u00BB\u00A0a");
- assert.strictEqual(hname("a", 2), "\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00BB\u00A0a");
-});
-
-
-
-
-/**
- * OpenProject.Helpers.Search
- */
-QUnit.module("OpenProject.Helpers.Search `tokenize`");
-
-QUnit.test("with one parameter", function (assert) {
- var t = OpenProject.Helpers.Search.tokenize;
-
- assert.deepEqual(t("abc"), ["abc"]);
- assert.deepEqual(t("abc def"), ["abc", "def"]);
- assert.deepEqual(t("abc def"), ["abc", "def"]);
- assert.deepEqual(t(" abc def"), ["abc", "def"]);
- assert.deepEqual(t("abc/def-"), ["abc", "def"]);
- assert.deepEqual(t("/abc-def/"), ["abc", "def"]);
-});
-
-QUnit.test("with array parameter", function (assert) {
- var t = OpenProject.Helpers.Search.tokenize;
-
- assert.deepEqual(t("abc", ["b"]), ["a", "c"]);
- assert.deepEqual(t("abbc", ["b"]), ["a", "c"]);
- assert.deepEqual(t("abc ", ["b"]), ["a", "c "]);
-});
-
-QUnit.test("with RegExp parameter", function (assert) {
- var t = OpenProject.Helpers.Search.tokenize;
-
- assert.deepEqual(t("abc", /b/), ["a", "c"]);
- assert.deepEqual(t("abbc", /b/), ["a", "c"]);
- assert.deepEqual(t("abc ", /b/), ["a", "c "]);
-});
-
-
-
-
-QUnit.module("OpenProject.Helpers.Search `formatter`");
-
-QUnit.test("w/o result.matches", function (assert) {
- var formatter = OpenProject.Helpers.Search.formatter,
- a = "",
- o = " ";
-
- assert.deepEqual(formatter({text: "abc"}, undefined, {term: ''}),
- "abc");
- assert.deepEqual(formatter({text: "abc"}, undefined, {term: 'b'}),
- "a" + a + "b" + o + "c");
- assert.deepEqual(formatter({text: "abc"}, undefined, {term: 'c'}),
- "ab" + a + "c" + o);
- assert.deepEqual(formatter({text: "abbc"}, undefined, {term: 'b'}),
- "a" + a + "b" + o + "bc");
-});
-
-QUnit.test("w/ empty query.term", function (assert) {
- var formatter = OpenProject.Helpers.Search.formatter;
-
- assert.deepEqual(formatter({text: "abc", matches: [["abc", ""]]}, undefined, {term: ''}),
- "abc");
-
- assert.deepEqual(formatter({text: "abc", matches: [["abc", ""]]}, undefined, {term: " "}),
- "abc");
-});
-
-QUnit.test("w/ single match", function (assert) {
- var formatter = OpenProject.Helpers.Search.formatter,
- a = "",
- o = " ";
-
- assert.deepEqual(formatter({text: "abc", matches: [["abc", "b"]]}, undefined, {term: "b"}),
- "a" + a + "b" + o + "c");
-
- assert.deepEqual(formatter({text: "abc", matches: [["abc", ""]]}, undefined, {term: ' '}),
- "abc");
-});
-
-QUnit.test("w/ multi match", function (assert) {
- var formatter = OpenProject.Helpers.Search.formatter,
- a = "",
- o = " ";
-
- assert.deepEqual(formatter({text: "abc-def", matches: [["def", "e"], ["abc", "b"]]}, undefined, {term: "e b"}),
- "a" + a + "b" + o + "c-d" + a + "e" + o + "f");
-
- assert.deepEqual(formatter({text: "abc-def", matches: [["abc", "b"], ["def", "e"]]}, undefined, {term: "b e"}),
- "a" + a + "b" + o + "c-d" + a + "e" + o + "f");
-
- assert.deepEqual(formatter({text: "abc-abc", matches: [["abc", "b"], ["abc", "bc"]]}, undefined, {term: "b bc"}),
- "a" + a + "bc" + o + "-a" + a + "b" + o + "c");
-
-});
-
-
-
-
-
-
-
-
-QUnit.module("OpenProject.Helpers.Search `matcher`");
-
-QUnit.test("w/o token parameter", function (assert) {
- var matcher = OpenProject.Helpers.Search.matcher;
-
- // Basic search
- assert.ok(matcher("", "abc"), "matches when looking for empty string");
- assert.ok(matcher("ab", "abc"), "matches on sub strings");
- assert.ok(matcher("abc", "abc"), "matches on whole matches");
- assert.ok(matcher("AbC", "aBc"), "matches case insensitive");
- assert.ok(matcher("b", "abc"), "matches within words");
- assert.ok(matcher("ä", "äbc"), "matches umlauts");
- assert.ok(matcher("bc de", "abc def"), "matches including spaces");
-
- assert.no(matcher("abc", "def"), "no match when string not contained");
-
- // Token search
- assert.no(matcher("b c", "ab-cd"), "no match based on token");
-});
-
-QUnit.test("w/ token parameter", function (assert) {
- var matcher = OpenProject.Helpers.Search.matcher,
- token_match = function(term, name) {
- return matcher(term, name, OpenProject.Helpers.Search.tokenize(name));
- };
-
- // Basic match
- assert.ok(token_match("", "abc"), "matches when looking for empty string");
- assert.ok(token_match("ab", "abc"), "matches on sub strings");
- assert.ok(token_match("abc", "abc"), "matches on whole matches");
- assert.ok(token_match("AbC", "aBc"), "matches case insensitive");
- assert.ok(token_match("b", "abc"), "matches within words");
- assert.ok(token_match("ä", "äbc"), "matches umlauts");
- assert.ok(token_match("bc de", "abc def"), "matches including spaces");
-
-
- assert.no(token_match("abc", "def"), "no match when string not contained");
-
- // Token match
- assert.ok(token_match("b c", "ab c"), "match when all token contained I");
- assert.ok(token_match("a a", "ab a"), "match when all token contained II");
- assert.ok(token_match("a b", "ab b"), "match when all token contained III");
- assert.ok(token_match("a b", "b ab"), "match when all token contained IV");
- assert.ok(token_match("a a", "a a"), "match when all token contained V");
- assert.ok(token_match("bc de", "abc def"), "matches including spaces");
-
- assert.no(token_match("a-a", "a a"), "tokenizes term at white space only");
-});
-
-
-
-
-QUnit.module("OpenProject.Helpers.Search `projectQueryWithHierarchy`");
-
-QUnit.test("needs testing", 0, function(assert) {
-});
diff --git a/lib/copy_model.rb b/lib/copy_model.rb
index f0693eca89..edf9c77996 100644
--- a/lib/copy_model.rb
+++ b/lib/copy_model.rb
@@ -45,7 +45,7 @@ module CopyModel
end
# Copies the instance's associations based on the +from_model+.
- # The associations CAN be copied when the instance responds to
+ # The associations CAN be copied when the instance responds to
# something called 'copy_association_name'.
#
# For example: If we have a method called #copy_work_packages,
diff --git a/lib/diff.rb b/lib/diff.rb
index d844f94423..f2420d891c 100644
--- a/lib/diff.rb
+++ b/lib/diff.rb
@@ -38,14 +38,14 @@ module RedmineDiff
afinish = a.length-1
bfinish = b.length-1
mvector = []
-
+
# First we prune off any common elements at the beginning
while (astart <= afinish && bstart <= afinish && a[astart] == b[bstart])
mvector[astart] = bstart
astart += 1
bstart += 1
end
-
+
# now the end
while (astart <= afinish && bstart <= bfinish && a[afinish] == b[bfinish])
mvector[afinish] = bfinish
@@ -56,7 +56,7 @@ module RedmineDiff
bmatches = b.reverse_hash(bstart..bfinish)
thresh = []
links = []
-
+
(astart..afinish).each { |aindex|
aelem = a[aindex]
next unless bmatches.has_key? aelem
@@ -147,7 +147,7 @@ module RedmineDiff
@difftype = diffs_or_a.class
end
end
-
+
def match(ai, bi)
@diffs.push @curdiffs unless @curdiffs.empty?
@curdiffs = []
diff --git a/lib/open_project/concerns/preview.rb b/lib/open_project/concerns/preview.rb
index 6cdfe646a1..c879b4f44e 100644
--- a/lib/open_project/concerns/preview.rb
+++ b/lib/open_project/concerns/preview.rb
@@ -30,7 +30,7 @@
################################################################################
# This concern provides a general implementation of preview functionality #
# found in different controllers. #
-# #
+# #
# Nevertheless, this concern expects the controller to implement the function #
# #parse_preview_data. #parse_preview_data must return a list of (wiki) texts, #
# attachments required to render the texts, and the object. Attachments and #
diff --git a/lib/open_project/file_command_content_type_detector.rb b/lib/open_project/file_command_content_type_detector.rb
index 593a9460b6..8db8536434 100644
--- a/lib/open_project/file_command_content_type_detector.rb
+++ b/lib/open_project/file_command_content_type_detector.rb
@@ -90,4 +90,3 @@ module OpenProject
end
end
-
diff --git a/lib/open_project/hooks/view_projects_form_hook.rb b/lib/open_project/hooks/view_projects_form_hook.rb
index beb4c23043..a4ef6bb169 100644
--- a/lib/open_project/hooks/view_projects_form_hook.rb
+++ b/lib/open_project/hooks/view_projects_form_hook.rb
@@ -30,6 +30,6 @@ module OpenProject
class Hooks::ViewProjectsFormHook < Redmine::Hook::ViewListener
render_on :view_projects_form,
:partial => 'hooks/timelines/view_projects_form'
-
+
end
end
diff --git a/lib/open_project/journal_formatter/diff.rb b/lib/open_project/journal_formatter/diff.rb
index c9200ddbe0..9d0e33ba79 100644
--- a/lib/open_project/journal_formatter/diff.rb
+++ b/lib/open_project/journal_formatter/diff.rb
@@ -99,4 +99,3 @@ class OpenProject::JournalFormatter::Diff < JournalFormatter::Base
end
end
end
-
diff --git a/lib/pagination/model.rb b/lib/pagination/model.rb
index a26587d1b5..54814839d0 100644
--- a/lib/pagination/model.rb
+++ b/lib/pagination/model.rb
@@ -50,7 +50,7 @@ module Pagination::Model
limit = options.fetch(:page_limit) || 10
page = options.fetch(:page) || 1
- scope.paginate({ :per_page => limit, :page => page })
+ scope.paginate({ :per_page => limit, :page => page })
end
# ignores options passed in from the controller, overwrite to use 'em
diff --git a/lib/plugins/acts_as_journalized/test/configuration_test.rb b/lib/plugins/acts_as_journalized/test/configuration_test.rb
index 687b45f8a6..b45fe83d60 100644
--- a/lib/plugins/acts_as_journalized/test/configuration_test.rb
+++ b/lib/plugins/acts_as_journalized/test/configuration_test.rb
@@ -33,13 +33,13 @@ class ConfigurationTest < Test::Unit::TestCase
context 'Global configuration options' do
setup do
module Extension; end
-
+
@options = {
'class_name' => 'CustomVersion',
:extend => Extension,
:as => :parent
}
-
+
VestalVersions.configure do |config|
@options.each do |key, value|
config.send("#{key}=", value)
diff --git a/lib/plugins/acts_as_tree/test/acts_as_tree_test.rb b/lib/plugins/acts_as_tree/test/acts_as_tree_test.rb
index beda93b224..c1c92b0e67 100644
--- a/lib/plugins/acts_as_tree/test/acts_as_tree_test.rb
+++ b/lib/plugins/acts_as_tree/test/acts_as_tree_test.rb
@@ -44,7 +44,7 @@ end
class Mixin < ActiveRecord::Base
end
-class TreeMixin < Mixin
+class TreeMixin < Mixin
acts_as_tree :foreign_key => "parent_id", :order => "id"
end
@@ -58,7 +58,7 @@ class RecursivelyCascadedTreeMixin < Mixin
end
class TreeTest < Test::Unit::TestCase
-
+
def setup
setup_db
@root1 = TreeMixin.create!
@@ -147,12 +147,12 @@ class TreeTest < Test::Unit::TestCase
assert_equal [@root_child1, @root_child2], @root_child2.self_and_siblings
assert_equal [@root1, @root2, @root3], @root2.self_and_siblings
assert_equal [@root1, @root2, @root3], @root3.self_and_siblings
- end
+ end
end
class TreeTestWithEagerLoading < Test::Unit::TestCase
-
- def setup
+
+ def setup
teardown_db
setup_db
@root1 = TreeMixin.create!
@@ -161,9 +161,9 @@ class TreeTestWithEagerLoading < Test::Unit::TestCase
@root_child2 = TreeMixin.create! :parent_id => @root1.id
@root2 = TreeMixin.create!
@root3 = TreeMixin.create!
-
+
@rc1 = RecursivelyCascadedTreeMixin.create!
- @rc2 = RecursivelyCascadedTreeMixin.create! :parent_id => @rc1.id
+ @rc2 = RecursivelyCascadedTreeMixin.create! :parent_id => @rc1.id
@rc3 = RecursivelyCascadedTreeMixin.create! :parent_id => @rc2.id
@rc4 = RecursivelyCascadedTreeMixin.create! :parent_id => @rc3.id
end
@@ -171,36 +171,36 @@ class TreeTestWithEagerLoading < Test::Unit::TestCase
def teardown
teardown_db
end
-
+
def test_eager_association_loading
roots = TreeMixin.find(:all, :include => :children, :conditions => "mixins.parent_id IS NULL", :order => "mixins.id")
- assert_equal [@root1, @root2, @root3], roots
+ assert_equal [@root1, @root2, @root3], roots
assert_no_queries do
assert_equal 2, roots[0].children.size
assert_equal 0, roots[1].children.size
assert_equal 0, roots[2].children.size
- end
+ end
end
-
+
def test_eager_association_loading_with_recursive_cascading_three_levels_has_many
root_node = RecursivelyCascadedTreeMixin.find(:first, :include => { :children => { :children => :children } }, :order => 'mixins.id')
assert_equal @rc4, assert_no_queries { root_node.children.first.children.first.children.first }
end
-
+
def test_eager_association_loading_with_recursive_cascading_three_levels_has_one
root_node = RecursivelyCascadedTreeMixin.find(:first, :include => { :first_child => { :first_child => :first_child } }, :order => 'mixins.id')
assert_equal @rc4, assert_no_queries { root_node.first_child.first_child.first_child }
end
-
+
def test_eager_association_loading_with_recursive_cascading_three_levels_belongs_to
leaf_node = RecursivelyCascadedTreeMixin.find(:first, :include => { :parent => { :parent => :parent } }, :order => 'mixins.id DESC')
assert_equal @rc1, assert_no_queries { leaf_node.parent.parent.parent }
- end
+ end
end
class TreeTestWithoutOrder < Test::Unit::TestCase
-
- def setup
+
+ def setup
setup_db
@root1 = TreeMixinWithoutOrder.create!
@root2 = TreeMixinWithoutOrder.create!
@@ -213,8 +213,8 @@ class TreeTestWithoutOrder < Test::Unit::TestCase
def test_root
assert [@root1, @root2].include?(TreeMixinWithoutOrder.root)
end
-
+
def test_roots
assert_equal [], [@root1, @root2] - TreeMixinWithoutOrder.roots
end
-end
+end
diff --git a/lib/plugins/gravatar/spec/gravatar_spec.rb b/lib/plugins/gravatar/spec/gravatar_spec.rb
index 9f81648ff5..5e6af43f10 100644
--- a/lib/plugins/gravatar/spec/gravatar_spec.rb
+++ b/lib/plugins/gravatar/spec/gravatar_spec.rb
@@ -11,30 +11,30 @@ describe "gravatar_url with a custom default URL" do
DEFAULT_OPTIONS[:default] = "no_avatar.png"
@url = gravatar_url("somewhere")
end
-
+
it "should include the \"default\" argument in the result" do
expect(@url).to match(/&default=no_avatar.png/)
end
-
+
after(:each) do
DEFAULT_OPTIONS.merge!(@original_options)
end
-
+
end
describe "gravatar_url with default settings" do
before(:each) do
@url = gravatar_url("somewhere")
end
-
+
it "should have a nil default URL" do
expect(DEFAULT_OPTIONS[:default]).to be_nil
end
-
+
it "should not include the \"default\" argument in the result" do
expect(@url).not_to match(/&default=/)
- end
-
+ end
+
end
describe "gravatar with a custom title option" do
diff --git a/lib/plugins/rfpdf/init.rb b/lib/plugins/rfpdf/init.rb
index 17011c80ca..c02fdc4544 100644
--- a/lib/plugins/rfpdf/init.rb
+++ b/lib/plugins/rfpdf/init.rb
@@ -1,6 +1,6 @@
#-- encoding: UTF-8
begin
- require('htmlentities')
+ require('htmlentities')
rescue LoadError
# This gem is not required - just nice to have.
end
@@ -9,4 +9,3 @@ require 'rfpdf'
# Mime::Type.register "application/pdf", :pdf
# ActionView::Template::register_template_handler 'rfpdf', RFPDF::TemplateHandlers::Base
-
diff --git a/lib/plugins/rfpdf/lib/config/lang/eng.rb b/lib/plugins/rfpdf/lib/config/lang/eng.rb
index 7c2016f13a..6a127b803e 100755
--- a/lib/plugins/rfpdf/lib/config/lang/eng.rb
+++ b/lib/plugins/rfpdf/lib/config/lang/eng.rb
@@ -1,22 +1,22 @@
#-- encoding: UTF-8
#============================================================+
-# File name : eng.rb
-# Begin : 2004-03-03
-# Last Update : 2005-03-19
-#
-# Description : Language module for TCPDF
-# (contains translated texts)
-#
-#
-# Author: Nicola Asuni
-#
-# (c) Copyright:
-# Tecnick.com S.r.l.
-# Via Ugo Foscolo n.19
-# 09045 Quartu Sant'Elena (CA)
-# ITALY
-# www.tecnick.com
-# info@tecnick.com
+# File name : eng.rb
+# Begin : 2004-03-03
+# Last Update : 2005-03-19
+#
+# Description : Language module for TCPDF
+# (contains translated texts)
+#
+#
+# Author: Nicola Asuni
+#
+# (c) Copyright:
+# Tecnick.com S.r.l.
+# Via Ugo Foscolo n.19
+# 09045 Quartu Sant'Elena (CA)
+# ITALY
+# www.tecnick.com
+# info@tecnick.com
#============================================================+
#
@@ -29,7 +29,7 @@
# @license http://www.gnu.org/copyleft/lesser.html LGPL
# @since 2004-03-03
#
-
+
# ENGLISH
@l = []
@@ -44,6 +44,5 @@
@l['w_page'] = "page";
#============================================================+
-# END OF FILE
+# END OF FILE
#============================================================+
-
diff --git a/lib/plugins/rfpdf/lib/core/image_science.rb b/lib/plugins/rfpdf/lib/core/image_science.rb
index dc77a70b29..4ff967a146 100644
--- a/lib/plugins/rfpdf/lib/core/image_science.rb
+++ b/lib/plugins/rfpdf/lib/core/image_science.rb
@@ -28,11 +28,11 @@ module RFPDF
def getimagesize(filename)
out = Hash.new
out[2] = ImageScience.image_type(filename)
-
+
image = ImageScience.with_image(filename) do |img|
out[0] = image.width
out[1] = image.height
-
+
# These are actually meant to return integer values But I couldn't seem to find anything saying what those values are.
# So for now they return strings. The only place that uses this at the moment is the parsejpeg method, so I've changed that too.
case out[2]
@@ -48,18 +48,18 @@ module RFPDF
out['mime'] = "image/x-xpixmap"
end
out[3] = "height=\"#{image.height}\" width=\"#{image.width}\""
-
+
if image.colorspace == "CMYK" || image.colorspace == "RGBA"
out['channels'] = 4
elsif image.colorspace == "RGB"
out['channels'] = 3
end
-
+
out['bits'] = image.depth
out['bits'] /= out['channels'] if out['channels']
end
-
+
out
end
-
-end
\ No newline at end of file
+
+end
diff --git a/lib/plugins/rfpdf/lib/core/rfpdf.rb b/lib/plugins/rfpdf/lib/core/rfpdf.rb
index 1c01e89647..8e76faf992 100644
--- a/lib/plugins/rfpdf/lib/core/rfpdf.rb
+++ b/lib/plugins/rfpdf/lib/core/rfpdf.rb
@@ -6,7 +6,7 @@ module Core::RFPDF
}.freeze
# Draw a circle at (mid_x, mid_y ) with radius .
- #
+ #
# Options are:
# * :border - Draw a border, 0 = no, 1 = yes? Default value is 1 .
# * :border_color - Default value is COLOR_PALETTE[:black] .
@@ -17,8 +17,8 @@ module Core::RFPDF
#
# Example:
#
- # draw_circle(x, y, radius, :border_color => ReportHelper::COLOR_PALETTE[:dark_blue], :border_width => 1)
- #
+ # draw_circle(x, y, radius, :border_color => ReportHelper::COLOR_PALETTE[:dark_blue], :border_width => 1)
+ #
def draw_circle(mid_x, mid_y, radius, options = {})
options[:border] ||= 1
options[:border_color] ||= Core::RFPDF::COLOR_PALETTE[:black]
@@ -36,15 +36,15 @@ module Core::RFPDF
end
# Draw a line from (x1, y1 ) to (x2, y2 ).
- #
+ #
# Options are:
# * :line_color - Default value is COLOR_PALETTE[:black] .
# * :line_width - Default value is 0.5 .
#
# Example:
#
- # draw_line(x1, y1, x1, y1+h, :line_color => ReportHelper::COLOR_PALETTE[:dark_blue], :line_width => 1)
- #
+ # draw_line(x1, y1, x1, y1+h, :line_color => ReportHelper::COLOR_PALETTE[:dark_blue], :line_width => 1)
+ #
def draw_line(x1, y1, x2, y2, options = {})
options[:line_color] ||= Core::RFPDF::COLOR_PALETTE[:black]
options[:line_width] ||= 0.5
@@ -54,7 +54,7 @@ module Core::RFPDF
end
# Draw a string of text at (x, y ).
- #
+ #
# Options are:
# * :font_color - Default value is COLOR_PALETTE[:black] .
# * :font_size - Default value is 10 .
@@ -63,8 +63,8 @@ module Core::RFPDF
#
# Example:
#
- # draw_text(x, y, header_left, :font_size => 10)
- #
+ # draw_text(x, y, header_left, :font_size => 10)
+ #
def draw_text(x, y, text, options = {})
options[:font_color] ||= Core::RFPDF::COLOR_PALETTE[:black]
options[:font] ||= default_font
@@ -78,7 +78,7 @@ module Core::RFPDF
# Draw a block of text at (x, y ) bounded by left_margin and right_margin_from_right_edge . Both
# margins are measured from their corresponding edge.
- #
+ #
# Options are:
# * :font_color - Default value is COLOR_PALETTE[:black] .
# * :font_size - Default value is 10 .
@@ -87,11 +87,11 @@ module Core::RFPDF
#
# Example:
#
- # draw_text_block(left_margin, 85, "question", left_margin, 280,
+ # draw_text_block(left_margin, 85, "question", left_margin, 280,
# :font_color => ReportHelper::COLOR_PALETTE[:dark_blue],
# :font_size => 12,
# :font_style => 'I')
- #
+ #
def draw_text_block(x, y, text, left_margin, right_margin_from_right_edge, options = {})
options[:font] ||= default_font
options[:font_color] ||= Core::RFPDF::COLOR_PALETTE[:black]
@@ -107,7 +107,7 @@ module Core::RFPDF
end
# Draw a box at (x, y ), w wide and h high.
- #
+ #
# Options are:
# * :border - Draw a border, 0 = no, 1 = yes? Default value is 1 .
# * :border_color - Default value is COLOR_PALETTE[:black] .
@@ -118,8 +118,8 @@ module Core::RFPDF
#
# Example:
#
- # draw_box(x, y - 1, 38, 22)
- #
+ # draw_box(x, y - 1, 38, 22)
+ #
def draw_box(x, y, w, h, options = {})
options[:border] ||= 1
options[:border_color] ||= Core::RFPDF::COLOR_PALETTE[:black]
@@ -135,9 +135,9 @@ module Core::RFPDF
fd += "F" if options[:fill] == 1
Rect(x, y, w, h, fd)
end
-
+
# Draw a string of text at (x, y ) in a box w wide and h high.
- #
+ #
# Options are:
# * :align - Vertical alignment 'C' = center, 'L' = left, 'R' = right. Default value is 'C' .
# * :border - Draw a border, 0 = no, 1 = yes? Default value is 0 .
@@ -155,14 +155,14 @@ module Core::RFPDF
#
# Example:
#
- # draw_text_box(x, y - 1, 38, 22,
- # "your_score_title",
+ # draw_text_box(x, y - 1, 38, 22,
+ # "your_score_title",
# :fill => 0,
- # :font_color => ReportHelper::COLOR_PALETTE[:blue],
+ # :font_color => ReportHelper::COLOR_PALETTE[:blue],
# :font_line_spacing => 0,
# :font_style => "B",
# :valign => "M")
- #
+ #
def draw_text_box(x, y, w, h, text, options = {})
options[:align] ||= 'C'
options[:border] ||= 0
@@ -178,30 +178,30 @@ module Core::RFPDF
options[:padding] ||= 2
options[:x_padding] ||= 0
options[:valign] ||= "M"
- if options[:fill] == 1 or options[:border] == 1
+ if options[:fill] == 1 or options[:border] == 1
draw_box(x, y, w, h, options)
- end
+ end
SetMargins(0,0,0)
set_text_color_a(options[:font_color], options[:colorspace])
- font_size = options[:font_size]
+ font_size = options[:font_size]
SetFont(options[:font], options[:font_style], font_size)
- font_size += options[:font_line_spacing]
- case options[:valign]
- when "B", "bottom"
- y -= options[:padding]
- when "T", "top"
- y += options[:padding]
- end
- case options[:align]
- when "L", "left"
- x += options[:x_padding]
- w -= options[:x_padding]
- w -= options[:x_padding]
- when "R", "right"
- x += options[:x_padding]
- w -= options[:x_padding]
- w -= options[:x_padding]
- end
+ font_size += options[:font_line_spacing]
+ case options[:valign]
+ when "B", "bottom"
+ y -= options[:padding]
+ when "T", "top"
+ y += options[:padding]
+ end
+ case options[:align]
+ when "L", "left"
+ x += options[:x_padding]
+ w -= options[:x_padding]
+ w -= options[:x_padding]
+ when "R", "right"
+ x += options[:x_padding]
+ w -= options[:x_padding]
+ w -= options[:x_padding]
+ end
SetXY(x, y)
if GetStringWidth(text) < w or not text["\n"].nil? and (options[:valign] == "T" || options[:valign] == "top")
text = text + "\n"
@@ -215,9 +215,9 @@ module Core::RFPDF
Cell(w, h, text, 0, 0, options[:align])
end
end
-
+
# Draw a string of text at (x, y ) as a title.
- #
+ #
# Options are:
# * :font_color - Default value is COLOR_PALETTE[:black] .
# * :font_size - Default value is 18 .
@@ -226,10 +226,10 @@ module Core::RFPDF
#
# Example:
#
- # draw_title(left_margin, 60,
- # "title:",
- # :font_color => ReportHelper::COLOR_PALETTE[:dark_blue])
- #
+ # draw_title(left_margin, 60,
+ # "title:",
+ # :font_color => ReportHelper::COLOR_PALETTE[:dark_blue])
+ #
def draw_title(x, y, title, options = {})
options[:font_color] ||= Core::RFPDF::COLOR_PALETTE[:black]
options[:font] ||= default_font
@@ -237,16 +237,16 @@ module Core::RFPDF
options[:font_style] ||= ''
set_text_color_a(options[:font_color], options[:colorspace])
SetFont(options[:font], options[:font_style], options[:font_size])
- SetXY(x, y)
- Write(options[:font_size] + 2, title)
+ SetXY(x, y)
+ Write(options[:font_size] + 2, title)
end
# Set the draw color. Default value is COLOR_PALETTE[:black] .
#
# Example:
#
- # set_draw_color_a(ReportHelper::COLOR_PALETTE[:dark_blue])
- #
+ # set_draw_color_a(ReportHelper::COLOR_PALETTE[:dark_blue])
+ #
def set_draw_color_a(color = Core::RFPDF::COLOR_PALETTE[:black])
SetDrawColor(color[0], color[1], color[2])
end
@@ -255,8 +255,8 @@ module Core::RFPDF
#
# Example:
#
- # set_fill_color_a(ReportHelper::COLOR_PALETTE[:dark_blue])
- #
+ # set_fill_color_a(ReportHelper::COLOR_PALETTE[:dark_blue])
+ #
def set_fill_color_a(color = Core::RFPDF::COLOR_PALETTE[:white], colorspace = :rgb)
if colorspace == :cmyk
SetCmykFillColor(color[0], color[1], color[2], color[3])
@@ -269,8 +269,8 @@ module Core::RFPDF
#
# Example:
#
- # set_text_color_a(ReportHelper::COLOR_PALETTE[:dark_blue])
- #
+ # set_text_color_a(ReportHelper::COLOR_PALETTE[:dark_blue])
+ #
def set_text_color_a(color = Core::RFPDF::COLOR_PALETTE[:black], colorspace = :rgb)
if colorspace == :cmyk
SetCmykTextColor(color[0], color[1], color[2], color[3])
@@ -278,7 +278,7 @@ module Core::RFPDF
SetTextColor(color[0], color[1], color[2])
end
end
-
+
# Write a string containing html characters. Default value is COLOR_PALETTE[:white] .
#
# Options are:
@@ -286,14 +286,14 @@ module Core::RFPDF
#
# Example:
#
- # write_html_with_options(html, :height => 12)
- #
- #FIXME 2007-08-07 (EJM) Level=0 - This needs to call the TCPDF version.
+ # write_html_with_options(html, :height => 12)
+ #
+ #FIXME 2007-08-07 (EJM) Level=0 - This needs to call the TCPDF version.
def write_html_with_options(html, options = {})
options[:fill] ||= 0
options[:height] ||= 20
options[:new_line_after] ||= false
write_html(html, options[:new_line_after], options[:fill], options[:height])
return
- end
-end
\ No newline at end of file
+ end
+end
diff --git a/lib/plugins/rfpdf/lib/core/rmagick.rb b/lib/plugins/rfpdf/lib/core/rmagick.rb
index 70de7161d2..b2a059da3c 100644
--- a/lib/plugins/rfpdf/lib/core/rmagick.rb
+++ b/lib/plugins/rfpdf/lib/core/rmagick.rb
@@ -27,11 +27,11 @@ module RFPDF
# http://uk2.php.net/getimagesize
def getimagesize(filename)
image = Magick::ImageList.new(filename)
-
+
out = Hash.new
out[0] = image.columns
out[1] = image.rows
-
+
# These are actually meant to return integer values But I couldn't seem to find anything saying what those values are.
# So for now they return strings. The only place that uses this at the moment is the parsejpeg method, so I've changed that too.
case image.mime_type
@@ -41,14 +41,14 @@ module RFPDF
out[2] = "JPEG"
when "image/png"
out[2] = "PNG"
- when " image/vnd.wap.wbmp"
+ when " image/vnd.wap.wbmp"
out[2] = "WBMP"
when "image/x-xpixmap"
out[2] = "XPM"
end
out[3] = "height=\"#{image.rows}\" width=\"#{image.columns}\""
out['mime'] = image.mime_type
-
+
# This needs work to cover more situations
# I can't see how to just list the number of channels with ImageMagick / rmagick
if image.colorspace.to_s == "CMYKColorspace"
@@ -58,8 +58,8 @@ module RFPDF
end
out['bits'] = image.channel_depth
-
+
out
end
-
-end
\ No newline at end of file
+
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/courier.rb b/lib/plugins/rfpdf/lib/fonts/courier.rb
index e5df5a0b8d..cd86fae899 100755
--- a/lib/plugins/rfpdf/lib/fonts/courier.rb
+++ b/lib/plugins/rfpdf/lib/fonts/courier.rb
@@ -2,25 +2,24 @@
TCPDFFontDescriptor.define('courier') do |font|
font[:cw] = {}
0.upto(255) do |i|
- font[:cw][i]=600
- end
+ font[:cw][i]=600
+ end
end
TCPDFFontDescriptor.define('courierb') do |font|
font[:cw] = {}
0.upto(255) do |i|
- font[:cw][i]=600
- end
+ font[:cw][i]=600
+ end
end
TCPDFFontDescriptor.define('courierbi') do |font|
font[:cw] = {}
0.upto(255) do |i|
- font[:cw][i]=600
- end
+ font[:cw][i]=600
+ end
end
TCPDFFontDescriptor.define('courieri') do |font|
font[:cw] = {}
0.upto(255) do |i|
- font[:cw][i]=600
- end
+ font[:cw][i]=600
+ end
end
-
diff --git a/lib/plugins/rfpdf/lib/fonts/freemono.rb b/lib/plugins/rfpdf/lib/fonts/freemono.rb
index 76e49deaa7..89cea060a8 100755
--- a/lib/plugins/rfpdf/lib/fonts/freemono.rb
+++ b/lib/plugins/rfpdf/lib/fonts/freemono.rb
@@ -6,167 +6,167 @@ TCPDFFontDescriptor.define('freemono') do |font|
font[:up]=-100;
font[:ut]=50;
font[:cw]={
- 13=>333, 32=>600, 33=>600, 34=>600, 35=>600, 36=>600, 37=>600, 38=>600, 39=>600, 40=>600, 41=>600, 42=>600, 43=>600, 44=>600, 45=>600, 46=>600,
- 47=>600, 48=>600, 49=>600, 50=>600, 51=>600, 52=>600, 53=>600, 54=>600, 55=>600, 56=>600, 57=>600, 58=>600, 59=>600, 60=>600, 61=>600, 62=>600,
- 63=>600, 64=>600, 65=>600, 66=>600, 67=>600, 68=>600, 69=>600, 70=>600, 71=>600, 72=>600, 73=>600, 74=>600, 75=>600, 76=>600, 77=>600, 78=>600,
- 79=>600, 80=>600, 81=>600, 82=>600, 83=>600, 84=>600, 85=>600, 86=>600, 87=>600, 88=>600, 89=>600, 90=>600, 91=>600, 92=>600, 93=>600, 94=>600,
- 95=>600, 96=>600, 97=>600, 98=>600, 99=>600, 100=>600, 101=>600, 102=>600, 103=>600, 104=>600, 105=>600, 106=>600, 107=>600, 108=>600, 109=>600, 110=>600,
- 111=>600, 112=>600, 113=>600, 114=>600, 115=>600, 116=>600, 117=>600, 118=>600, 119=>600, 120=>600, 121=>600, 122=>600, 123=>600, 124=>600, 125=>600, 126=>600,
- 8364=>600, 1027=>600, 8218=>600, 402=>600, 8222=>600, 8230=>600, 8224=>600, 8225=>600, 710=>600, 8240=>600, 352=>600, 8249=>600, 338=>600, 1036=>600, 381=>600, 1039=>600,
- 8216=>600, 8217=>600, 8220=>600, 8221=>600, 8226=>600, 8211=>600, 8212=>600, 732=>600, 8482=>600, 353=>600, 8250=>600, 339=>600, 1116=>600, 382=>600, 376=>600, 160=>600,
- 161=>600, 162=>600, 163=>600, 164=>600, 165=>600, 166=>600, 167=>600, 168=>600, 169=>600, 170=>600, 171=>600, 172=>600, 173=>600, 174=>600, 175=>600, 176=>600,
- 177=>600, 178=>600, 179=>600, 180=>600, 181=>600, 182=>600, 183=>600, 184=>600, 185=>600, 186=>600, 187=>600, 188=>600, 189=>600, 190=>600, 191=>600, 192=>600,
- 193=>600, 194=>600, 195=>600, 196=>600, 197=>600, 198=>600, 199=>600, 200=>600, 201=>600, 202=>600, 203=>600, 204=>600, 205=>600, 206=>600, 207=>600, 208=>600,
- 209=>600, 210=>600, 211=>600, 212=>600, 213=>600, 214=>600, 215=>600, 216=>600, 217=>600, 218=>600, 219=>600, 220=>600, 221=>600, 222=>600, 223=>600, 224=>600,
- 225=>600, 226=>600, 227=>600, 228=>600, 229=>600, 230=>600, 231=>600, 232=>600, 233=>600, 234=>600, 235=>600, 236=>600, 237=>600, 238=>600, 239=>600, 240=>600,
- 241=>600, 242=>600, 243=>600, 244=>600, 245=>600, 246=>600, 247=>600, 248=>600, 249=>600, 250=>600, 251=>600, 252=>600, 253=>600, 254=>600, 255=>600, 256=>600,
- 257=>600, 258=>600, 259=>600, 260=>600, 261=>600, 262=>600, 263=>600, 264=>600, 265=>600, 266=>600, 267=>600, 268=>600, 269=>600, 270=>600, 271=>600, 272=>600,
- 273=>600, 274=>600, 275=>600, 276=>600, 277=>600, 278=>600, 279=>600, 280=>600, 281=>600, 282=>600, 283=>600, 284=>600, 285=>600, 286=>600, 287=>600, 288=>600,
- 289=>600, 290=>600, 291=>600, 292=>600, 293=>600, 294=>600, 295=>600, 296=>600, 297=>600, 298=>600, 299=>600, 300=>600, 301=>600, 302=>600, 303=>600, 304=>600,
- 305=>600, 306=>600, 307=>600, 308=>600, 309=>600, 310=>600, 311=>600, 312=>600, 313=>600, 314=>600, 315=>600, 316=>600, 317=>600, 318=>600, 319=>600, 320=>600,
- 321=>600, 322=>600, 323=>600, 324=>600, 325=>600, 326=>600, 327=>600, 328=>600, 329=>600, 330=>600, 331=>600, 332=>600, 333=>600, 334=>600, 335=>600, 336=>600,
- 337=>600, 340=>600, 341=>600, 342=>600, 343=>600, 344=>600, 345=>600, 346=>600, 347=>600, 348=>600, 349=>600, 350=>600, 351=>600, 354=>600, 355=>600, 356=>600,
- 357=>600, 358=>600, 359=>600, 360=>600, 361=>600, 362=>600, 363=>600, 364=>600, 365=>600, 366=>600, 367=>600, 368=>600, 369=>600, 370=>600, 371=>600, 372=>600,
- 373=>600, 374=>600, 375=>600, 377=>600, 378=>600, 379=>600, 380=>600, 383=>600, 384=>600, 385=>600, 386=>600, 387=>600, 388=>600, 389=>600, 390=>600, 391=>600,
- 392=>600, 393=>600, 394=>600, 395=>600, 396=>600, 397=>600, 398=>600, 399=>600, 400=>600, 401=>600, 403=>600, 404=>600, 405=>600, 406=>600, 407=>600, 408=>600,
- 409=>600, 410=>600, 411=>600, 412=>600, 413=>600, 414=>600, 415=>600, 416=>600, 417=>600, 418=>600, 419=>600, 420=>600, 421=>600, 422=>600, 423=>600, 424=>600,
- 425=>600, 426=>600, 427=>600, 428=>600, 429=>600, 430=>600, 431=>600, 432=>600, 433=>600, 434=>600, 435=>600, 436=>600, 437=>600, 438=>600, 439=>600, 440=>600,
- 441=>600, 442=>600, 443=>600, 444=>600, 445=>600, 446=>600, 447=>600, 448=>600, 449=>600, 450=>600, 451=>600, 452=>600, 453=>600, 454=>600, 455=>600, 456=>600,
- 457=>600, 458=>600, 459=>600, 460=>600, 461=>600, 462=>600, 463=>600, 464=>600, 465=>600, 466=>600, 467=>600, 468=>600, 469=>600, 470=>600, 471=>600, 472=>600,
- 473=>600, 474=>600, 475=>600, 476=>600, 477=>600, 478=>600, 479=>600, 480=>600, 481=>600, 482=>600, 483=>600, 484=>600, 485=>600, 486=>600, 487=>600, 488=>600,
- 489=>600, 490=>600, 491=>600, 492=>600, 493=>600, 494=>600, 495=>600, 496=>600, 497=>600, 498=>600, 499=>600, 500=>600, 501=>600, 502=>600, 503=>600, 504=>600,
- 505=>600, 506=>600, 507=>600, 508=>600, 509=>600, 510=>600, 511=>600, 512=>600, 513=>600, 514=>600, 515=>600, 516=>600, 517=>600, 518=>600, 519=>600, 520=>600,
- 521=>600, 522=>600, 523=>600, 524=>600, 525=>600, 526=>600, 527=>600, 528=>600, 529=>600, 530=>600, 531=>600, 532=>600, 533=>600, 534=>600, 535=>600, 536=>600,
- 537=>600, 538=>600, 539=>600, 540=>600, 541=>600, 542=>600, 543=>600, 548=>600, 549=>600, 550=>600, 551=>600, 552=>600, 553=>600, 554=>600, 555=>600, 556=>600,
- 557=>600, 558=>600, 559=>600, 560=>600, 561=>600, 562=>600, 563=>600, 577=>600, 578=>600, 592=>600, 593=>600, 594=>600, 595=>600, 596=>600, 597=>600, 598=>600,
- 599=>600, 600=>600, 601=>600, 602=>600, 603=>600, 604=>600, 607=>600, 608=>600, 609=>600, 610=>600, 611=>600, 612=>600, 613=>600, 614=>600, 615=>600, 616=>600,
- 617=>600, 618=>600, 619=>600, 620=>600, 621=>600, 623=>600, 624=>600, 625=>600, 626=>600, 627=>600, 628=>600, 629=>600, 630=>600, 632=>600, 633=>600, 634=>600,
- 635=>600, 636=>600, 637=>600, 638=>600, 639=>600, 640=>600, 641=>600, 642=>600, 643=>600, 644=>600, 645=>600, 646=>600, 647=>600, 648=>600, 649=>600, 652=>600,
- 653=>600, 654=>600, 655=>600, 656=>600, 657=>600, 658=>600, 660=>600, 661=>600, 662=>600, 663=>600, 665=>600, 667=>600, 668=>600, 669=>600, 670=>600, 671=>600,
- 672=>600, 673=>600, 674=>600, 675=>600, 676=>600, 678=>600, 679=>600, 699=>600, 700=>600, 701=>600, 702=>600, 703=>600, 711=>600, 712=>600, 713=>600, 714=>600,
- 715=>600, 720=>600, 721=>600, 722=>600, 723=>600, 724=>600, 725=>600, 726=>600, 727=>600, 728=>600, 729=>600, 730=>600, 731=>600, 733=>600, 735=>600, 750=>600,
- 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0, 780=>0, 781=>0, 782=>0, 783=>0,
- 784=>0, 785=>0, 795=>0, 801=>0, 802=>0, 807=>0, 808=>0, 819=>600, 821=>0, 822=>0, 823=>0, 824=>0, 834=>0, 836=>0, 890=>600, 900=>600,
- 901=>600, 902=>600, 903=>600, 904=>600, 905=>600, 906=>600, 908=>600, 910=>600, 911=>600, 912=>600, 913=>600, 914=>600, 915=>600, 916=>600, 917=>600, 918=>600,
- 919=>600, 920=>600, 921=>600, 922=>600, 923=>600, 924=>600, 925=>600, 926=>600, 927=>600, 928=>600, 929=>600, 930=>600, 931=>600, 932=>600, 933=>600, 934=>600,
- 935=>600, 936=>600, 937=>600, 938=>600, 939=>600, 940=>600, 941=>600, 942=>600, 943=>600, 944=>600, 945=>600, 946=>600, 947=>600, 948=>600, 949=>600, 950=>600,
- 951=>600, 952=>600, 953=>600, 954=>600, 955=>600, 956=>600, 957=>600, 958=>600, 959=>600, 960=>600, 961=>600, 962=>600, 963=>600, 964=>600, 965=>600, 966=>600,
- 967=>600, 968=>600, 969=>600, 970=>600, 971=>600, 972=>600, 973=>600, 974=>600, 976=>600, 977=>600, 978=>600, 979=>600, 981=>600, 986=>600, 987=>600, 988=>600,
- 1024=>600, 1025=>600, 1026=>600, 1028=>600, 1029=>600, 1030=>600, 1031=>600, 1032=>600, 1033=>600, 1034=>600, 1035=>600, 1037=>600, 1038=>600, 1040=>600, 1041=>600, 1042=>600,
- 1043=>600, 1044=>600, 1045=>600, 1046=>600, 1047=>600, 1048=>600, 1049=>600, 1050=>600, 1051=>600, 1052=>600, 1053=>600, 1054=>600, 1055=>600, 1056=>600, 1057=>600, 1058=>600,
- 1059=>600, 1060=>600, 1061=>600, 1062=>600, 1063=>600, 1064=>600, 1065=>600, 1066=>600, 1067=>600, 1068=>600, 1069=>600, 1070=>600, 1071=>600, 1072=>600, 1073=>600, 1074=>600,
- 1075=>600, 1076=>600, 1077=>600, 1078=>600, 1079=>600, 1080=>600, 1081=>600, 1082=>600, 1083=>600, 1084=>600, 1085=>600, 1086=>600, 1087=>600, 1088=>600, 1089=>600, 1090=>600,
- 1091=>600, 1092=>600, 1093=>600, 1094=>600, 1095=>600, 1096=>600, 1097=>600, 1098=>600, 1099=>600, 1100=>600, 1101=>600, 1102=>600, 1103=>600, 1104=>600, 1105=>600, 1106=>600,
- 1107=>600, 1108=>600, 1109=>600, 1110=>600, 1111=>600, 1112=>600, 1113=>600, 1114=>600, 1115=>600, 1117=>600, 1118=>600, 1119=>600, 1124=>600, 1130=>600, 1132=>600, 1136=>600,
- 1137=>600, 1164=>600, 1165=>600, 1166=>600, 1167=>600, 1168=>600, 1169=>600, 1170=>600, 1171=>600, 1172=>600, 1173=>600, 1174=>600, 1175=>600, 1176=>600, 1177=>600, 1178=>600,
- 1179=>600, 1180=>600, 1181=>600, 1182=>600, 1183=>600, 1184=>600, 1185=>600, 1186=>600, 1187=>600, 1188=>600, 1189=>600, 1190=>600, 1191=>600, 1192=>600, 1193=>600, 1194=>600,
- 1195=>600, 1196=>600, 1197=>600, 1198=>600, 1199=>600, 1200=>600, 1201=>600, 1202=>600, 1203=>600, 1204=>600, 1205=>600, 1206=>600, 1207=>600, 1208=>600, 1209=>600, 1210=>600,
- 1211=>600, 1212=>600, 1213=>600, 1214=>600, 1215=>600, 1216=>600, 1217=>600, 1218=>600, 1219=>600, 1220=>600, 1223=>600, 1224=>600, 1227=>600, 1228=>600, 1232=>600, 1233=>600,
- 1234=>600, 1235=>600, 1236=>600, 1237=>600, 1238=>600, 1239=>600, 1240=>600, 1241=>600, 1242=>600, 1243=>600, 1244=>600, 1245=>600, 1246=>600, 1247=>600, 1248=>600, 1249=>600,
- 1250=>600, 1251=>600, 1252=>600, 1253=>600, 1254=>600, 1255=>600, 1256=>600, 1257=>600, 1258=>600, 1259=>600, 1260=>600, 1261=>600, 1262=>600, 1263=>600, 1264=>600, 1265=>600,
- 1266=>600, 1267=>600, 1268=>600, 1269=>600, 1272=>600, 1273=>600, 1329=>600, 1330=>600, 1331=>600, 1332=>600, 1333=>600, 1334=>600, 1335=>600, 1336=>600, 1337=>600, 1338=>600,
- 1339=>600, 1340=>600, 1341=>600, 1342=>600, 1343=>600, 1344=>600, 1345=>600, 1346=>600, 1347=>600, 1348=>600, 1349=>600, 1350=>600, 1351=>600, 1352=>600, 1353=>600, 1354=>600,
- 1355=>600, 1356=>600, 1357=>600, 1358=>600, 1359=>600, 1360=>600, 1361=>600, 1362=>600, 1363=>600, 1364=>600, 1365=>600, 1366=>600, 1377=>600, 1378=>600, 1379=>600, 1380=>600,
- 1381=>600, 1382=>600, 1383=>600, 1384=>600, 1385=>600, 1386=>600, 1387=>600, 1388=>600, 1389=>600, 1390=>600, 1391=>600, 1392=>600, 1393=>600, 1394=>600, 1395=>600, 1396=>600,
- 1397=>600, 1398=>600, 1399=>600, 1400=>600, 1401=>600, 1402=>600, 1403=>600, 1404=>600, 1405=>600, 1406=>600, 1407=>600, 1408=>600, 1409=>600, 1410=>600, 1411=>600, 1412=>600,
- 1413=>600, 1414=>600, 1418=>600, 1456=>600, 1457=>600, 1458=>600, 1459=>600, 1460=>600, 1461=>600, 1462=>600, 1463=>600, 1464=>600, 1465=>600, 1467=>600, 1468=>600, 1469=>600,
- 1470=>600, 1471=>600, 1472=>600, 1473=>600, 1474=>600, 1475=>600, 1476=>600, 1488=>600, 1489=>600, 1490=>600, 1491=>600, 1492=>600, 1493=>600, 1494=>600, 1495=>600, 1496=>600,
- 1497=>600, 1498=>600, 1499=>600, 1500=>600, 1501=>600, 1502=>600, 1503=>600, 1504=>600, 1505=>600, 1506=>600, 1507=>600, 1508=>600, 1509=>600, 1510=>600, 1511=>600, 1512=>600,
- 1513=>600, 1514=>600, 1520=>600, 1521=>600, 1522=>600, 1523=>600, 1524=>600, 5792=>600, 5793=>600, 5794=>600, 5795=>600, 5796=>600, 5797=>600, 5798=>600, 5799=>600, 5800=>600,
- 5801=>600, 5802=>600, 5803=>600, 5804=>600, 5805=>600, 5806=>600, 5807=>600, 5808=>600, 5809=>600, 5810=>600, 5811=>600, 5812=>600, 5813=>600, 5814=>600, 5815=>600, 5816=>600,
- 5817=>600, 5818=>600, 5819=>600, 5820=>600, 5821=>600, 5822=>600, 5823=>600, 5824=>600, 5825=>600, 5826=>600, 5827=>600, 5828=>600, 5829=>600, 5830=>600, 5831=>600, 5832=>600,
- 5833=>600, 5834=>600, 5835=>600, 5836=>600, 5837=>600, 5838=>600, 5839=>600, 5840=>600, 5841=>600, 5842=>600, 5843=>600, 5844=>600, 5845=>600, 5846=>600, 5847=>600, 5848=>600,
- 5849=>600, 5850=>600, 5851=>600, 5852=>600, 5853=>600, 5854=>600, 5855=>600, 5856=>600, 5857=>600, 5858=>600, 5859=>600, 5860=>600, 5861=>600, 5862=>600, 5863=>600, 5864=>600,
- 5865=>600, 5866=>600, 5867=>600, 5868=>600, 5869=>600, 5870=>600, 5871=>600, 5872=>600, 7680=>600, 7681=>600, 7682=>600, 7683=>600, 7684=>600, 7685=>600, 7686=>600, 7687=>600,
- 7688=>600, 7689=>600, 7690=>600, 7691=>600, 7692=>600, 7693=>600, 7694=>600, 7695=>600, 7696=>600, 7697=>600, 7698=>600, 7699=>600, 7700=>600, 7701=>600, 7702=>600, 7703=>600,
- 7704=>600, 7705=>600, 7706=>600, 7707=>600, 7708=>600, 7709=>600, 7710=>600, 7711=>600, 7712=>600, 7713=>600, 7714=>600, 7715=>600, 7716=>600, 7717=>600, 7718=>600, 7719=>600,
- 7720=>600, 7721=>600, 7722=>600, 7723=>600, 7724=>600, 7725=>600, 7726=>600, 7727=>600, 7728=>600, 7729=>600, 7730=>600, 7731=>600, 7732=>600, 7733=>600, 7734=>600, 7735=>600,
- 7736=>600, 7737=>600, 7738=>600, 7739=>600, 7740=>600, 7741=>600, 7742=>600, 7743=>600, 7744=>600, 7745=>600, 7746=>600, 7747=>600, 7748=>600, 7749=>600, 7750=>600, 7751=>600,
- 7752=>600, 7753=>600, 7754=>600, 7755=>600, 7756=>600, 7757=>600, 7758=>600, 7759=>600, 7760=>600, 7761=>600, 7762=>600, 7763=>600, 7764=>600, 7765=>600, 7766=>600, 7767=>600,
- 7768=>600, 7769=>600, 7770=>600, 7771=>600, 7772=>600, 7773=>600, 7774=>600, 7775=>600, 7776=>600, 7777=>600, 7778=>600, 7779=>600, 7780=>600, 7781=>600, 7782=>600, 7783=>600,
- 7784=>600, 7785=>600, 7786=>600, 7787=>600, 7788=>600, 7789=>600, 7790=>600, 7791=>600, 7792=>600, 7793=>600, 7794=>600, 7795=>600, 7796=>600, 7797=>600, 7798=>600, 7799=>600,
- 7800=>600, 7801=>600, 7802=>600, 7803=>600, 7804=>600, 7805=>600, 7806=>600, 7807=>600, 7808=>600, 7809=>600, 7810=>600, 7811=>600, 7812=>600, 7813=>600, 7814=>600, 7815=>600,
- 7816=>600, 7817=>600, 7818=>600, 7819=>600, 7820=>600, 7821=>600, 7822=>600, 7823=>600, 7824=>600, 7825=>600, 7826=>600, 7827=>600, 7828=>600, 7829=>600, 7830=>600, 7831=>600,
- 7832=>600, 7833=>600, 7834=>600, 7835=>600, 7840=>600, 7841=>600, 7842=>600, 7843=>600, 7844=>600, 7845=>600, 7846=>600, 7847=>600, 7848=>600, 7849=>600, 7850=>600, 7851=>600,
- 7852=>600, 7853=>600, 7854=>600, 7855=>600, 7856=>600, 7857=>600, 7858=>600, 7859=>600, 7860=>600, 7861=>600, 7862=>600, 7863=>600, 7864=>600, 7865=>600, 7866=>600, 7867=>600,
- 7868=>600, 7869=>600, 7870=>600, 7871=>600, 7872=>600, 7873=>600, 7874=>600, 7875=>600, 7876=>600, 7877=>600, 7878=>600, 7879=>600, 7880=>600, 7881=>600, 7882=>600, 7883=>600,
- 7884=>600, 7885=>600, 7886=>600, 7887=>600, 7888=>600, 7889=>600, 7890=>600, 7891=>600, 7892=>600, 7893=>600, 7894=>600, 7895=>600, 7896=>600, 7897=>600, 7898=>600, 7899=>600,
- 7900=>600, 7901=>600, 7902=>600, 7903=>600, 7904=>600, 7905=>600, 7906=>600, 7907=>600, 7908=>600, 7909=>600, 7910=>600, 7911=>600, 7912=>600, 7913=>600, 7914=>600, 7915=>600,
- 7916=>600, 7917=>600, 7918=>600, 7919=>600, 7920=>600, 7921=>600, 7922=>600, 7923=>600, 7924=>600, 7925=>600, 7926=>600, 7927=>600, 7928=>600, 7929=>600, 7936=>600, 7937=>600,
- 7938=>600, 7939=>600, 7940=>600, 7941=>600, 7942=>600, 7943=>600, 7944=>600, 7945=>600, 7946=>600, 7947=>600, 7948=>600, 7949=>600, 7950=>600, 7951=>600, 7952=>600, 7953=>600,
- 7954=>600, 7955=>600, 7956=>600, 7957=>600, 7960=>600, 7961=>600, 7962=>600, 7963=>600, 7964=>600, 7965=>600, 7968=>600, 7969=>600, 7970=>600, 7971=>600, 7972=>600, 7973=>600,
- 7974=>600, 7975=>600, 7976=>600, 7977=>600, 7978=>600, 7979=>600, 7980=>600, 7981=>600, 7982=>600, 7983=>600, 7984=>600, 7985=>600, 7986=>600, 7987=>600, 7988=>600, 7989=>600,
- 7990=>600, 7991=>600, 7992=>600, 7993=>600, 7994=>600, 7995=>600, 7996=>600, 7997=>600, 7998=>600, 7999=>600, 8000=>600, 8001=>600, 8002=>600, 8003=>600, 8004=>600, 8005=>600,
- 8008=>600, 8009=>600, 8010=>600, 8011=>600, 8012=>600, 8013=>600, 8016=>600, 8017=>600, 8018=>600, 8019=>600, 8020=>600, 8021=>600, 8022=>600, 8023=>600, 8025=>600, 8027=>600,
- 8029=>600, 8031=>600, 8032=>600, 8033=>600, 8034=>600, 8035=>600, 8036=>600, 8037=>600, 8038=>600, 8039=>600, 8040=>600, 8041=>600, 8042=>600, 8043=>600, 8044=>600, 8045=>600,
- 8046=>600, 8047=>600, 8048=>600, 8049=>600, 8050=>600, 8051=>600, 8052=>600, 8053=>600, 8054=>600, 8055=>600, 8056=>600, 8057=>600, 8058=>600, 8059=>600, 8060=>600, 8061=>600,
- 8064=>600, 8065=>600, 8066=>600, 8067=>600, 8068=>600, 8069=>600, 8070=>600, 8071=>600, 8072=>600, 8073=>600, 8074=>600, 8075=>600, 8076=>600, 8077=>600, 8078=>600, 8079=>600,
- 8080=>600, 8081=>600, 8082=>600, 8083=>600, 8084=>600, 8085=>600, 8086=>600, 8087=>600, 8088=>600, 8089=>600, 8090=>600, 8091=>600, 8092=>600, 8093=>600, 8094=>600, 8095=>600,
- 8096=>600, 8097=>600, 8098=>600, 8099=>600, 8100=>600, 8101=>600, 8102=>600, 8103=>600, 8104=>600, 8105=>600, 8106=>600, 8107=>600, 8108=>600, 8109=>600, 8110=>600, 8111=>600,
- 8112=>600, 8113=>600, 8114=>600, 8115=>600, 8116=>600, 8118=>600, 8119=>600, 8120=>600, 8121=>600, 8122=>600, 8123=>600, 8124=>600, 8125=>600, 8126=>600, 8127=>600, 8128=>600,
- 8129=>600, 8130=>600, 8131=>600, 8132=>600, 8134=>600, 8135=>600, 8136=>600, 8137=>600, 8138=>600, 8139=>600, 8140=>600, 8141=>600, 8142=>600, 8143=>600, 8144=>600, 8145=>600,
- 8146=>600, 8147=>600, 8150=>600, 8151=>600, 8152=>600, 8153=>600, 8154=>600, 8155=>600, 8157=>600, 8158=>600, 8159=>600, 8160=>600, 8161=>600, 8162=>600, 8163=>600, 8164=>600,
- 8165=>600, 8166=>600, 8167=>600, 8168=>600, 8169=>600, 8170=>600, 8171=>600, 8172=>600, 8173=>600, 8175=>600, 8178=>600, 8179=>600, 8180=>600, 8182=>600, 8183=>600, 8184=>600,
- 8185=>600, 8186=>600, 8187=>600, 8188=>600, 8189=>600, 8190=>600, 8208=>600, 8213=>600, 8215=>600, 8219=>600, 8223=>600, 8229=>600, 8241=>600, 8242=>600, 8243=>600, 8244=>600,
- 8245=>600, 8246=>600, 8247=>600, 8252=>600, 8253=>600, 8254=>600, 8259=>600, 8260=>600, 8261=>600, 8262=>600, 8264=>600, 8265=>600, 8267=>600, 8304=>600, 8305=>600, 8306=>600,
- 8307=>600, 8308=>600, 8309=>600, 8310=>600, 8311=>600, 8312=>600, 8313=>600, 8314=>600, 8315=>600, 8316=>600, 8317=>600, 8318=>600, 8319=>600, 8320=>600, 8321=>600, 8322=>600,
- 8323=>600, 8324=>600, 8325=>600, 8326=>600, 8327=>600, 8328=>600, 8329=>600, 8330=>600, 8331=>600, 8332=>600, 8333=>600, 8334=>600, 8355=>600, 8356=>600, 8359=>600, 8362=>600,
- 8448=>600, 8449=>600, 8450=>600, 8451=>600, 8453=>600, 8454=>600, 8455=>600, 8461=>600, 8464=>600, 8465=>600, 8466=>600, 8467=>600, 8468=>600, 8469=>600, 8470=>600, 8471=>600,
- 8472=>600, 8473=>600, 8474=>600, 8477=>600, 8478=>600, 8484=>600, 8485=>600, 8486=>600, 8487=>600, 8490=>600, 8491=>600, 8498=>600, 8501=>600, 8531=>600, 8532=>600, 8533=>600,
- 8534=>600, 8535=>600, 8536=>600, 8537=>600, 8538=>600, 8539=>600, 8540=>600, 8541=>600, 8542=>600, 8543=>600, 8544=>600, 8545=>600, 8546=>600, 8547=>600, 8548=>600, 8549=>600,
- 8550=>600, 8551=>600, 8552=>600, 8553=>600, 8554=>600, 8555=>600, 8556=>600, 8557=>600, 8558=>600, 8559=>600, 8592=>600, 8593=>600, 8594=>600, 8595=>600, 8596=>600, 8597=>600,
- 8598=>600, 8599=>600, 8600=>600, 8601=>600, 8602=>600, 8603=>600, 8604=>600, 8605=>600, 8606=>600, 8607=>600, 8608=>600, 8609=>600, 8610=>600, 8611=>600, 8612=>600, 8613=>600,
- 8614=>600, 8615=>600, 8616=>600, 8617=>600, 8618=>600, 8619=>600, 8620=>600, 8621=>600, 8622=>600, 8623=>600, 8624=>600, 8625=>600, 8626=>600, 8627=>600, 8628=>600, 8629=>600,
- 8630=>600, 8631=>600, 8632=>600, 8633=>600, 8634=>600, 8635=>600, 8636=>600, 8637=>600, 8638=>600, 8639=>600, 8640=>600, 8641=>600, 8642=>600, 8643=>600, 8644=>600, 8645=>600,
- 8646=>600, 8647=>600, 8648=>600, 8649=>600, 8650=>600, 8651=>600, 8652=>600, 8653=>600, 8654=>600, 8655=>600, 8656=>600, 8657=>600, 8658=>600, 8659=>600, 8660=>600, 8661=>600,
- 8704=>600, 8705=>600, 8706=>600, 8707=>600, 8708=>600, 8709=>600, 8710=>600, 8711=>600, 8712=>600, 8713=>600, 8714=>600, 8715=>600, 8716=>600, 8717=>600, 8719=>600, 8721=>600,
- 8722=>600, 8723=>600, 8724=>600, 8725=>600, 8729=>600, 8730=>600, 8731=>600, 8732=>600, 8733=>600, 8734=>600, 8735=>600, 8743=>600, 8744=>600, 8745=>600, 8746=>600, 8747=>600,
- 8748=>600, 8749=>600, 8750=>600, 8751=>600, 8752=>600, 8756=>600, 8757=>600, 8759=>600, 8764=>600, 8765=>600, 8769=>600, 8770=>600, 8771=>600, 8772=>600, 8773=>600, 8776=>600,
- 8784=>600, 8785=>600, 8786=>600, 8787=>600, 8793=>600, 8794=>600, 8800=>600, 8801=>600, 8804=>600, 8805=>600, 8806=>600, 8807=>600, 8810=>600, 8811=>600, 8812=>600, 8814=>600,
- 8815=>600, 8822=>600, 8823=>600, 8834=>600, 8835=>600, 8838=>600, 8839=>600, 8853=>600, 8854=>600, 8855=>600, 8856=>600, 8857=>600, 8858=>600, 8859=>600, 8860=>600, 8861=>600,
- 8866=>600, 8867=>600, 8868=>600, 8869=>600, 8870=>600, 8871=>600, 8872=>600, 8873=>600, 8874=>600, 8875=>600, 8876=>600, 8877=>600, 8878=>600, 8879=>600, 8894=>600, 8901=>600,
- 8902=>600, 8960=>600, 8962=>600, 8963=>600, 8968=>600, 8969=>600, 8970=>600, 8971=>600, 8972=>600, 8973=>600, 8974=>600, 8975=>600, 8976=>600, 8981=>600, 8988=>600, 8989=>600,
- 8990=>600, 8991=>600, 9001=>600, 9002=>600, 9115=>600, 9116=>600, 9117=>600, 9118=>600, 9119=>600, 9120=>600, 9121=>600, 9122=>600, 9123=>600, 9124=>600, 9125=>600, 9126=>600,
- 9127=>600, 9128=>600, 9129=>600, 9130=>600, 9131=>600, 9132=>600, 9133=>600, 9134=>600, 9135=>600, 9136=>600, 9137=>600, 9138=>600, 9139=>600, 9140=>600, 9143=>600, 9146=>600,
- 9147=>600, 9148=>600, 9149=>600, 9472=>600, 9473=>600, 9474=>600, 9475=>600, 9476=>600, 9477=>600, 9478=>600, 9479=>600, 9480=>600, 9481=>600, 9482=>600, 9483=>600, 9484=>600,
- 9485=>600, 9486=>600, 9487=>600, 9488=>600, 9489=>600, 9490=>600, 9491=>600, 9492=>600, 9493=>600, 9494=>600, 9495=>600, 9496=>600, 9497=>600, 9498=>600, 9499=>600, 9500=>600,
- 9501=>600, 9502=>600, 9503=>600, 9504=>600, 9505=>600, 9506=>600, 9507=>600, 9508=>600, 9509=>600, 9510=>600, 9511=>600, 9512=>600, 9513=>600, 9514=>600, 9515=>600, 9516=>600,
- 9517=>600, 9518=>600, 9519=>600, 9520=>600, 9521=>600, 9522=>600, 9523=>600, 9524=>600, 9525=>600, 9526=>600, 9527=>600, 9528=>600, 9529=>600, 9530=>600, 9531=>600, 9532=>600,
- 9533=>600, 9534=>600, 9535=>600, 9536=>600, 9537=>600, 9538=>600, 9539=>600, 9540=>600, 9541=>600, 9542=>600, 9543=>600, 9544=>600, 9545=>600, 9546=>600, 9547=>600, 9548=>600,
- 9549=>600, 9550=>600, 9551=>600, 9552=>600, 9553=>600, 9554=>600, 9555=>600, 9556=>600, 9557=>600, 9558=>600, 9559=>600, 9560=>600, 9561=>600, 9562=>600, 9563=>600, 9564=>600,
- 9565=>600, 9566=>600, 9567=>600, 9568=>600, 9569=>600, 9570=>600, 9571=>600, 9572=>600, 9573=>600, 9574=>600, 9575=>600, 9576=>600, 9577=>600, 9578=>600, 9579=>600, 9580=>600,
- 9581=>600, 9582=>600, 9583=>600, 9584=>600, 9585=>600, 9586=>600, 9587=>600, 9588=>600, 9589=>600, 9590=>600, 9591=>600, 9592=>600, 9593=>600, 9594=>600, 9595=>600, 9596=>600,
- 9597=>600, 9598=>600, 9599=>600, 9600=>600, 9601=>600, 9602=>600, 9603=>600, 9604=>600, 9605=>600, 9606=>600, 9607=>600, 9608=>600, 9609=>600, 9610=>600, 9611=>600, 9612=>600,
- 9613=>600, 9614=>600, 9615=>600, 9616=>600, 9617=>600, 9618=>600, 9619=>600, 9620=>600, 9621=>600, 9622=>600, 9623=>600, 9624=>600, 9625=>600, 9626=>600, 9627=>600, 9628=>600,
- 9629=>600, 9630=>600, 9631=>600, 9632=>600, 9633=>600, 9634=>600, 9635=>600, 9636=>600, 9637=>600, 9638=>600, 9639=>600, 9640=>600, 9641=>600, 9642=>600, 9643=>600, 9644=>600,
- 9645=>600, 9646=>600, 9647=>600, 9648=>600, 9649=>600, 9650=>600, 9651=>600, 9652=>600, 9653=>600, 9654=>600, 9655=>600, 9656=>600, 9657=>600, 9658=>600, 9659=>600, 9660=>600,
- 9661=>600, 9662=>600, 9663=>600, 9664=>600, 9665=>600, 9666=>600, 9667=>600, 9668=>600, 9669=>600, 9670=>600, 9671=>600, 9672=>600, 9673=>600, 9674=>600, 9675=>600, 9676=>600,
- 9677=>600, 9678=>600, 9679=>600, 9680=>600, 9681=>600, 9682=>600, 9683=>600, 9684=>600, 9685=>600, 9686=>600, 9687=>600, 9688=>600, 9689=>600, 9690=>600, 9691=>600, 9692=>600,
- 9693=>600, 9694=>600, 9695=>600, 9696=>600, 9697=>600, 9698=>600, 9699=>600, 9700=>600, 9701=>600, 9702=>600, 9703=>600, 9704=>600, 9705=>600, 9706=>600, 9707=>600, 9708=>600,
- 9709=>600, 9710=>600, 9711=>600, 9712=>600, 9713=>600, 9714=>600, 9715=>600, 9716=>600, 9717=>600, 9718=>600, 9719=>600, 9720=>600, 9721=>600, 9722=>600, 9723=>600, 9724=>600,
- 9725=>600, 9726=>600, 9727=>600, 9728=>600, 9729=>600, 9730=>600, 9733=>600, 9734=>600, 9735=>600, 9736=>600, 9737=>600, 9744=>600, 9745=>600, 9746=>600, 9756=>600, 9758=>600,
- 9766=>600, 9768=>600, 9769=>600, 9774=>600, 9776=>600, 9777=>600, 9778=>600, 9779=>600, 9780=>600, 9781=>600, 9782=>600, 9783=>600, 9785=>600, 9786=>600, 9787=>600, 9788=>600,
- 9791=>600, 9792=>600, 9793=>600, 9794=>600, 9833=>600, 9834=>600, 9835=>600, 9836=>600, 9837=>600, 9838=>600, 9839=>600, 10214=>600, 10215=>600, 10216=>600, 10217=>600, 10218=>600,
- 10219=>600, 10240=>600, 10241=>600, 10242=>600, 10243=>600, 10244=>600, 10245=>600, 10246=>600, 10247=>600, 10248=>600, 10249=>600, 10250=>600, 10251=>600, 10252=>600, 10253=>600, 10254=>600,
- 10255=>600, 10256=>600, 10257=>600, 10258=>600, 10259=>600, 10260=>600, 10261=>600, 10262=>600, 10263=>600, 10264=>600, 10265=>600, 10266=>600, 10267=>600, 10268=>600, 10269=>600, 10270=>600,
- 10271=>600, 10272=>600, 10273=>600, 10274=>600, 10275=>600, 10276=>600, 10277=>600, 10278=>600, 10279=>600, 10280=>600, 10281=>600, 10282=>600, 10283=>600, 10284=>600, 10285=>600, 10286=>600,
- 10287=>600, 10288=>600, 10289=>600, 10290=>600, 10291=>600, 10292=>600, 10293=>600, 10294=>600, 10295=>600, 10296=>600, 10297=>600, 10298=>600, 10299=>600, 10300=>600, 10301=>600, 10302=>600,
- 10303=>600, 10304=>600, 10305=>600, 10306=>600, 10307=>600, 10308=>600, 10309=>600, 10310=>600, 10311=>600, 10312=>600, 10313=>600, 10314=>600, 10315=>600, 10316=>600, 10317=>600, 10318=>600,
- 10319=>600, 10320=>600, 10321=>600, 10322=>600, 10323=>600, 10324=>600, 10325=>600, 10326=>600, 10327=>600, 10328=>600, 10329=>600, 10330=>600, 10331=>600, 10332=>600, 10333=>600, 10334=>600,
- 10335=>600, 10336=>600, 10337=>600, 10338=>600, 10339=>600, 10340=>600, 10341=>600, 10342=>600, 10343=>600, 10344=>600, 10345=>600, 10346=>600, 10347=>600, 10348=>600, 10349=>600, 10350=>600,
- 10351=>600, 10352=>600, 10353=>600, 10354=>600, 10355=>600, 10356=>600, 10357=>600, 10358=>600, 10359=>600, 10360=>600, 10361=>600, 10362=>600, 10363=>600, 10364=>600, 10365=>600, 10366=>600,
- 10367=>600, 10368=>600, 10369=>600, 10370=>600, 10371=>600, 10372=>600, 10373=>600, 10374=>600, 10375=>600, 10376=>600, 10377=>600, 10378=>600, 10379=>600, 10380=>600, 10381=>600, 10382=>600,
- 10383=>600, 10384=>600, 10385=>600, 10386=>600, 10387=>600, 10388=>600, 10389=>600, 10390=>600, 10391=>600, 10392=>600, 10393=>600, 10394=>600, 10395=>600, 10396=>600, 10397=>600, 10398=>600,
- 10399=>600, 10400=>600, 10401=>600, 10402=>600, 10403=>600, 10404=>600, 10405=>600, 10406=>600, 10407=>600, 10408=>600, 10409=>600, 10410=>600, 10411=>600, 10412=>600, 10413=>600, 10414=>600,
- 10415=>600, 10416=>600, 10417=>600, 10418=>600, 10419=>600, 10420=>600, 10421=>600, 10422=>600, 10423=>600, 10424=>600, 10425=>600, 10426=>600, 10427=>600, 10428=>600, 10429=>600, 10430=>600,
- 10431=>600, 10432=>600, 10433=>600, 10434=>600, 10435=>600, 10436=>600, 10437=>600, 10438=>600, 10439=>600, 10440=>600, 10441=>600, 10442=>600, 10443=>600, 10444=>600, 10445=>600, 10446=>600,
- 10447=>600, 10448=>600, 10449=>600, 10450=>600, 10451=>600, 10452=>600, 10453=>600, 10454=>600, 10455=>600, 10456=>600, 10457=>600, 10458=>600, 10459=>600, 10460=>600, 10461=>600, 10462=>600,
- 10463=>600, 10464=>600, 10465=>600, 10466=>600, 10467=>600, 10468=>600, 10469=>600, 10470=>600, 10471=>600, 10472=>600, 10473=>600, 10474=>600, 10475=>600, 10476=>600, 10477=>600, 10478=>600,
- 10479=>600, 10480=>600, 10481=>600, 10482=>600, 10483=>600, 10484=>600, 10485=>600, 10486=>600, 10487=>600, 10488=>600, 10489=>600, 10490=>600, 10491=>600, 10492=>600, 10493=>600, 10494=>600,
- 10495=>600, 63171=>600, 64256=>600, 64257=>600, 64258=>600, 64261=>600, 64262=>600, 64285=>600, 64286=>600, 64287=>600, 64288=>600, 64289=>600, 64290=>600, 64291=>600, 64292=>600, 64293=>600,
- 64294=>600, 64295=>600, 64296=>600, 64297=>600, 64298=>600, 64299=>600, 64300=>600, 64301=>600, 64302=>600, 64303=>600, 64304=>600, 64305=>600, 64306=>600, 64307=>600, 64308=>600, 64309=>600,
- 64310=>600, 64312=>600, 64313=>600, 64314=>600, 64315=>600, 64316=>600, 64318=>600, 64320=>600, 64321=>600, 64323=>600, 64324=>600, 64326=>600, 64327=>600, 64328=>600, 64329=>600, 64330=>600,
- 64331=>600, 64332=>600, 64333=>600, 64334=>600, 64335=>600, 65533=>600, 8174=>600}
+ 13=>333, 32=>600, 33=>600, 34=>600, 35=>600, 36=>600, 37=>600, 38=>600, 39=>600, 40=>600, 41=>600, 42=>600, 43=>600, 44=>600, 45=>600, 46=>600,
+ 47=>600, 48=>600, 49=>600, 50=>600, 51=>600, 52=>600, 53=>600, 54=>600, 55=>600, 56=>600, 57=>600, 58=>600, 59=>600, 60=>600, 61=>600, 62=>600,
+ 63=>600, 64=>600, 65=>600, 66=>600, 67=>600, 68=>600, 69=>600, 70=>600, 71=>600, 72=>600, 73=>600, 74=>600, 75=>600, 76=>600, 77=>600, 78=>600,
+ 79=>600, 80=>600, 81=>600, 82=>600, 83=>600, 84=>600, 85=>600, 86=>600, 87=>600, 88=>600, 89=>600, 90=>600, 91=>600, 92=>600, 93=>600, 94=>600,
+ 95=>600, 96=>600, 97=>600, 98=>600, 99=>600, 100=>600, 101=>600, 102=>600, 103=>600, 104=>600, 105=>600, 106=>600, 107=>600, 108=>600, 109=>600, 110=>600,
+ 111=>600, 112=>600, 113=>600, 114=>600, 115=>600, 116=>600, 117=>600, 118=>600, 119=>600, 120=>600, 121=>600, 122=>600, 123=>600, 124=>600, 125=>600, 126=>600,
+ 8364=>600, 1027=>600, 8218=>600, 402=>600, 8222=>600, 8230=>600, 8224=>600, 8225=>600, 710=>600, 8240=>600, 352=>600, 8249=>600, 338=>600, 1036=>600, 381=>600, 1039=>600,
+ 8216=>600, 8217=>600, 8220=>600, 8221=>600, 8226=>600, 8211=>600, 8212=>600, 732=>600, 8482=>600, 353=>600, 8250=>600, 339=>600, 1116=>600, 382=>600, 376=>600, 160=>600,
+ 161=>600, 162=>600, 163=>600, 164=>600, 165=>600, 166=>600, 167=>600, 168=>600, 169=>600, 170=>600, 171=>600, 172=>600, 173=>600, 174=>600, 175=>600, 176=>600,
+ 177=>600, 178=>600, 179=>600, 180=>600, 181=>600, 182=>600, 183=>600, 184=>600, 185=>600, 186=>600, 187=>600, 188=>600, 189=>600, 190=>600, 191=>600, 192=>600,
+ 193=>600, 194=>600, 195=>600, 196=>600, 197=>600, 198=>600, 199=>600, 200=>600, 201=>600, 202=>600, 203=>600, 204=>600, 205=>600, 206=>600, 207=>600, 208=>600,
+ 209=>600, 210=>600, 211=>600, 212=>600, 213=>600, 214=>600, 215=>600, 216=>600, 217=>600, 218=>600, 219=>600, 220=>600, 221=>600, 222=>600, 223=>600, 224=>600,
+ 225=>600, 226=>600, 227=>600, 228=>600, 229=>600, 230=>600, 231=>600, 232=>600, 233=>600, 234=>600, 235=>600, 236=>600, 237=>600, 238=>600, 239=>600, 240=>600,
+ 241=>600, 242=>600, 243=>600, 244=>600, 245=>600, 246=>600, 247=>600, 248=>600, 249=>600, 250=>600, 251=>600, 252=>600, 253=>600, 254=>600, 255=>600, 256=>600,
+ 257=>600, 258=>600, 259=>600, 260=>600, 261=>600, 262=>600, 263=>600, 264=>600, 265=>600, 266=>600, 267=>600, 268=>600, 269=>600, 270=>600, 271=>600, 272=>600,
+ 273=>600, 274=>600, 275=>600, 276=>600, 277=>600, 278=>600, 279=>600, 280=>600, 281=>600, 282=>600, 283=>600, 284=>600, 285=>600, 286=>600, 287=>600, 288=>600,
+ 289=>600, 290=>600, 291=>600, 292=>600, 293=>600, 294=>600, 295=>600, 296=>600, 297=>600, 298=>600, 299=>600, 300=>600, 301=>600, 302=>600, 303=>600, 304=>600,
+ 305=>600, 306=>600, 307=>600, 308=>600, 309=>600, 310=>600, 311=>600, 312=>600, 313=>600, 314=>600, 315=>600, 316=>600, 317=>600, 318=>600, 319=>600, 320=>600,
+ 321=>600, 322=>600, 323=>600, 324=>600, 325=>600, 326=>600, 327=>600, 328=>600, 329=>600, 330=>600, 331=>600, 332=>600, 333=>600, 334=>600, 335=>600, 336=>600,
+ 337=>600, 340=>600, 341=>600, 342=>600, 343=>600, 344=>600, 345=>600, 346=>600, 347=>600, 348=>600, 349=>600, 350=>600, 351=>600, 354=>600, 355=>600, 356=>600,
+ 357=>600, 358=>600, 359=>600, 360=>600, 361=>600, 362=>600, 363=>600, 364=>600, 365=>600, 366=>600, 367=>600, 368=>600, 369=>600, 370=>600, 371=>600, 372=>600,
+ 373=>600, 374=>600, 375=>600, 377=>600, 378=>600, 379=>600, 380=>600, 383=>600, 384=>600, 385=>600, 386=>600, 387=>600, 388=>600, 389=>600, 390=>600, 391=>600,
+ 392=>600, 393=>600, 394=>600, 395=>600, 396=>600, 397=>600, 398=>600, 399=>600, 400=>600, 401=>600, 403=>600, 404=>600, 405=>600, 406=>600, 407=>600, 408=>600,
+ 409=>600, 410=>600, 411=>600, 412=>600, 413=>600, 414=>600, 415=>600, 416=>600, 417=>600, 418=>600, 419=>600, 420=>600, 421=>600, 422=>600, 423=>600, 424=>600,
+ 425=>600, 426=>600, 427=>600, 428=>600, 429=>600, 430=>600, 431=>600, 432=>600, 433=>600, 434=>600, 435=>600, 436=>600, 437=>600, 438=>600, 439=>600, 440=>600,
+ 441=>600, 442=>600, 443=>600, 444=>600, 445=>600, 446=>600, 447=>600, 448=>600, 449=>600, 450=>600, 451=>600, 452=>600, 453=>600, 454=>600, 455=>600, 456=>600,
+ 457=>600, 458=>600, 459=>600, 460=>600, 461=>600, 462=>600, 463=>600, 464=>600, 465=>600, 466=>600, 467=>600, 468=>600, 469=>600, 470=>600, 471=>600, 472=>600,
+ 473=>600, 474=>600, 475=>600, 476=>600, 477=>600, 478=>600, 479=>600, 480=>600, 481=>600, 482=>600, 483=>600, 484=>600, 485=>600, 486=>600, 487=>600, 488=>600,
+ 489=>600, 490=>600, 491=>600, 492=>600, 493=>600, 494=>600, 495=>600, 496=>600, 497=>600, 498=>600, 499=>600, 500=>600, 501=>600, 502=>600, 503=>600, 504=>600,
+ 505=>600, 506=>600, 507=>600, 508=>600, 509=>600, 510=>600, 511=>600, 512=>600, 513=>600, 514=>600, 515=>600, 516=>600, 517=>600, 518=>600, 519=>600, 520=>600,
+ 521=>600, 522=>600, 523=>600, 524=>600, 525=>600, 526=>600, 527=>600, 528=>600, 529=>600, 530=>600, 531=>600, 532=>600, 533=>600, 534=>600, 535=>600, 536=>600,
+ 537=>600, 538=>600, 539=>600, 540=>600, 541=>600, 542=>600, 543=>600, 548=>600, 549=>600, 550=>600, 551=>600, 552=>600, 553=>600, 554=>600, 555=>600, 556=>600,
+ 557=>600, 558=>600, 559=>600, 560=>600, 561=>600, 562=>600, 563=>600, 577=>600, 578=>600, 592=>600, 593=>600, 594=>600, 595=>600, 596=>600, 597=>600, 598=>600,
+ 599=>600, 600=>600, 601=>600, 602=>600, 603=>600, 604=>600, 607=>600, 608=>600, 609=>600, 610=>600, 611=>600, 612=>600, 613=>600, 614=>600, 615=>600, 616=>600,
+ 617=>600, 618=>600, 619=>600, 620=>600, 621=>600, 623=>600, 624=>600, 625=>600, 626=>600, 627=>600, 628=>600, 629=>600, 630=>600, 632=>600, 633=>600, 634=>600,
+ 635=>600, 636=>600, 637=>600, 638=>600, 639=>600, 640=>600, 641=>600, 642=>600, 643=>600, 644=>600, 645=>600, 646=>600, 647=>600, 648=>600, 649=>600, 652=>600,
+ 653=>600, 654=>600, 655=>600, 656=>600, 657=>600, 658=>600, 660=>600, 661=>600, 662=>600, 663=>600, 665=>600, 667=>600, 668=>600, 669=>600, 670=>600, 671=>600,
+ 672=>600, 673=>600, 674=>600, 675=>600, 676=>600, 678=>600, 679=>600, 699=>600, 700=>600, 701=>600, 702=>600, 703=>600, 711=>600, 712=>600, 713=>600, 714=>600,
+ 715=>600, 720=>600, 721=>600, 722=>600, 723=>600, 724=>600, 725=>600, 726=>600, 727=>600, 728=>600, 729=>600, 730=>600, 731=>600, 733=>600, 735=>600, 750=>600,
+ 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0, 780=>0, 781=>0, 782=>0, 783=>0,
+ 784=>0, 785=>0, 795=>0, 801=>0, 802=>0, 807=>0, 808=>0, 819=>600, 821=>0, 822=>0, 823=>0, 824=>0, 834=>0, 836=>0, 890=>600, 900=>600,
+ 901=>600, 902=>600, 903=>600, 904=>600, 905=>600, 906=>600, 908=>600, 910=>600, 911=>600, 912=>600, 913=>600, 914=>600, 915=>600, 916=>600, 917=>600, 918=>600,
+ 919=>600, 920=>600, 921=>600, 922=>600, 923=>600, 924=>600, 925=>600, 926=>600, 927=>600, 928=>600, 929=>600, 930=>600, 931=>600, 932=>600, 933=>600, 934=>600,
+ 935=>600, 936=>600, 937=>600, 938=>600, 939=>600, 940=>600, 941=>600, 942=>600, 943=>600, 944=>600, 945=>600, 946=>600, 947=>600, 948=>600, 949=>600, 950=>600,
+ 951=>600, 952=>600, 953=>600, 954=>600, 955=>600, 956=>600, 957=>600, 958=>600, 959=>600, 960=>600, 961=>600, 962=>600, 963=>600, 964=>600, 965=>600, 966=>600,
+ 967=>600, 968=>600, 969=>600, 970=>600, 971=>600, 972=>600, 973=>600, 974=>600, 976=>600, 977=>600, 978=>600, 979=>600, 981=>600, 986=>600, 987=>600, 988=>600,
+ 1024=>600, 1025=>600, 1026=>600, 1028=>600, 1029=>600, 1030=>600, 1031=>600, 1032=>600, 1033=>600, 1034=>600, 1035=>600, 1037=>600, 1038=>600, 1040=>600, 1041=>600, 1042=>600,
+ 1043=>600, 1044=>600, 1045=>600, 1046=>600, 1047=>600, 1048=>600, 1049=>600, 1050=>600, 1051=>600, 1052=>600, 1053=>600, 1054=>600, 1055=>600, 1056=>600, 1057=>600, 1058=>600,
+ 1059=>600, 1060=>600, 1061=>600, 1062=>600, 1063=>600, 1064=>600, 1065=>600, 1066=>600, 1067=>600, 1068=>600, 1069=>600, 1070=>600, 1071=>600, 1072=>600, 1073=>600, 1074=>600,
+ 1075=>600, 1076=>600, 1077=>600, 1078=>600, 1079=>600, 1080=>600, 1081=>600, 1082=>600, 1083=>600, 1084=>600, 1085=>600, 1086=>600, 1087=>600, 1088=>600, 1089=>600, 1090=>600,
+ 1091=>600, 1092=>600, 1093=>600, 1094=>600, 1095=>600, 1096=>600, 1097=>600, 1098=>600, 1099=>600, 1100=>600, 1101=>600, 1102=>600, 1103=>600, 1104=>600, 1105=>600, 1106=>600,
+ 1107=>600, 1108=>600, 1109=>600, 1110=>600, 1111=>600, 1112=>600, 1113=>600, 1114=>600, 1115=>600, 1117=>600, 1118=>600, 1119=>600, 1124=>600, 1130=>600, 1132=>600, 1136=>600,
+ 1137=>600, 1164=>600, 1165=>600, 1166=>600, 1167=>600, 1168=>600, 1169=>600, 1170=>600, 1171=>600, 1172=>600, 1173=>600, 1174=>600, 1175=>600, 1176=>600, 1177=>600, 1178=>600,
+ 1179=>600, 1180=>600, 1181=>600, 1182=>600, 1183=>600, 1184=>600, 1185=>600, 1186=>600, 1187=>600, 1188=>600, 1189=>600, 1190=>600, 1191=>600, 1192=>600, 1193=>600, 1194=>600,
+ 1195=>600, 1196=>600, 1197=>600, 1198=>600, 1199=>600, 1200=>600, 1201=>600, 1202=>600, 1203=>600, 1204=>600, 1205=>600, 1206=>600, 1207=>600, 1208=>600, 1209=>600, 1210=>600,
+ 1211=>600, 1212=>600, 1213=>600, 1214=>600, 1215=>600, 1216=>600, 1217=>600, 1218=>600, 1219=>600, 1220=>600, 1223=>600, 1224=>600, 1227=>600, 1228=>600, 1232=>600, 1233=>600,
+ 1234=>600, 1235=>600, 1236=>600, 1237=>600, 1238=>600, 1239=>600, 1240=>600, 1241=>600, 1242=>600, 1243=>600, 1244=>600, 1245=>600, 1246=>600, 1247=>600, 1248=>600, 1249=>600,
+ 1250=>600, 1251=>600, 1252=>600, 1253=>600, 1254=>600, 1255=>600, 1256=>600, 1257=>600, 1258=>600, 1259=>600, 1260=>600, 1261=>600, 1262=>600, 1263=>600, 1264=>600, 1265=>600,
+ 1266=>600, 1267=>600, 1268=>600, 1269=>600, 1272=>600, 1273=>600, 1329=>600, 1330=>600, 1331=>600, 1332=>600, 1333=>600, 1334=>600, 1335=>600, 1336=>600, 1337=>600, 1338=>600,
+ 1339=>600, 1340=>600, 1341=>600, 1342=>600, 1343=>600, 1344=>600, 1345=>600, 1346=>600, 1347=>600, 1348=>600, 1349=>600, 1350=>600, 1351=>600, 1352=>600, 1353=>600, 1354=>600,
+ 1355=>600, 1356=>600, 1357=>600, 1358=>600, 1359=>600, 1360=>600, 1361=>600, 1362=>600, 1363=>600, 1364=>600, 1365=>600, 1366=>600, 1377=>600, 1378=>600, 1379=>600, 1380=>600,
+ 1381=>600, 1382=>600, 1383=>600, 1384=>600, 1385=>600, 1386=>600, 1387=>600, 1388=>600, 1389=>600, 1390=>600, 1391=>600, 1392=>600, 1393=>600, 1394=>600, 1395=>600, 1396=>600,
+ 1397=>600, 1398=>600, 1399=>600, 1400=>600, 1401=>600, 1402=>600, 1403=>600, 1404=>600, 1405=>600, 1406=>600, 1407=>600, 1408=>600, 1409=>600, 1410=>600, 1411=>600, 1412=>600,
+ 1413=>600, 1414=>600, 1418=>600, 1456=>600, 1457=>600, 1458=>600, 1459=>600, 1460=>600, 1461=>600, 1462=>600, 1463=>600, 1464=>600, 1465=>600, 1467=>600, 1468=>600, 1469=>600,
+ 1470=>600, 1471=>600, 1472=>600, 1473=>600, 1474=>600, 1475=>600, 1476=>600, 1488=>600, 1489=>600, 1490=>600, 1491=>600, 1492=>600, 1493=>600, 1494=>600, 1495=>600, 1496=>600,
+ 1497=>600, 1498=>600, 1499=>600, 1500=>600, 1501=>600, 1502=>600, 1503=>600, 1504=>600, 1505=>600, 1506=>600, 1507=>600, 1508=>600, 1509=>600, 1510=>600, 1511=>600, 1512=>600,
+ 1513=>600, 1514=>600, 1520=>600, 1521=>600, 1522=>600, 1523=>600, 1524=>600, 5792=>600, 5793=>600, 5794=>600, 5795=>600, 5796=>600, 5797=>600, 5798=>600, 5799=>600, 5800=>600,
+ 5801=>600, 5802=>600, 5803=>600, 5804=>600, 5805=>600, 5806=>600, 5807=>600, 5808=>600, 5809=>600, 5810=>600, 5811=>600, 5812=>600, 5813=>600, 5814=>600, 5815=>600, 5816=>600,
+ 5817=>600, 5818=>600, 5819=>600, 5820=>600, 5821=>600, 5822=>600, 5823=>600, 5824=>600, 5825=>600, 5826=>600, 5827=>600, 5828=>600, 5829=>600, 5830=>600, 5831=>600, 5832=>600,
+ 5833=>600, 5834=>600, 5835=>600, 5836=>600, 5837=>600, 5838=>600, 5839=>600, 5840=>600, 5841=>600, 5842=>600, 5843=>600, 5844=>600, 5845=>600, 5846=>600, 5847=>600, 5848=>600,
+ 5849=>600, 5850=>600, 5851=>600, 5852=>600, 5853=>600, 5854=>600, 5855=>600, 5856=>600, 5857=>600, 5858=>600, 5859=>600, 5860=>600, 5861=>600, 5862=>600, 5863=>600, 5864=>600,
+ 5865=>600, 5866=>600, 5867=>600, 5868=>600, 5869=>600, 5870=>600, 5871=>600, 5872=>600, 7680=>600, 7681=>600, 7682=>600, 7683=>600, 7684=>600, 7685=>600, 7686=>600, 7687=>600,
+ 7688=>600, 7689=>600, 7690=>600, 7691=>600, 7692=>600, 7693=>600, 7694=>600, 7695=>600, 7696=>600, 7697=>600, 7698=>600, 7699=>600, 7700=>600, 7701=>600, 7702=>600, 7703=>600,
+ 7704=>600, 7705=>600, 7706=>600, 7707=>600, 7708=>600, 7709=>600, 7710=>600, 7711=>600, 7712=>600, 7713=>600, 7714=>600, 7715=>600, 7716=>600, 7717=>600, 7718=>600, 7719=>600,
+ 7720=>600, 7721=>600, 7722=>600, 7723=>600, 7724=>600, 7725=>600, 7726=>600, 7727=>600, 7728=>600, 7729=>600, 7730=>600, 7731=>600, 7732=>600, 7733=>600, 7734=>600, 7735=>600,
+ 7736=>600, 7737=>600, 7738=>600, 7739=>600, 7740=>600, 7741=>600, 7742=>600, 7743=>600, 7744=>600, 7745=>600, 7746=>600, 7747=>600, 7748=>600, 7749=>600, 7750=>600, 7751=>600,
+ 7752=>600, 7753=>600, 7754=>600, 7755=>600, 7756=>600, 7757=>600, 7758=>600, 7759=>600, 7760=>600, 7761=>600, 7762=>600, 7763=>600, 7764=>600, 7765=>600, 7766=>600, 7767=>600,
+ 7768=>600, 7769=>600, 7770=>600, 7771=>600, 7772=>600, 7773=>600, 7774=>600, 7775=>600, 7776=>600, 7777=>600, 7778=>600, 7779=>600, 7780=>600, 7781=>600, 7782=>600, 7783=>600,
+ 7784=>600, 7785=>600, 7786=>600, 7787=>600, 7788=>600, 7789=>600, 7790=>600, 7791=>600, 7792=>600, 7793=>600, 7794=>600, 7795=>600, 7796=>600, 7797=>600, 7798=>600, 7799=>600,
+ 7800=>600, 7801=>600, 7802=>600, 7803=>600, 7804=>600, 7805=>600, 7806=>600, 7807=>600, 7808=>600, 7809=>600, 7810=>600, 7811=>600, 7812=>600, 7813=>600, 7814=>600, 7815=>600,
+ 7816=>600, 7817=>600, 7818=>600, 7819=>600, 7820=>600, 7821=>600, 7822=>600, 7823=>600, 7824=>600, 7825=>600, 7826=>600, 7827=>600, 7828=>600, 7829=>600, 7830=>600, 7831=>600,
+ 7832=>600, 7833=>600, 7834=>600, 7835=>600, 7840=>600, 7841=>600, 7842=>600, 7843=>600, 7844=>600, 7845=>600, 7846=>600, 7847=>600, 7848=>600, 7849=>600, 7850=>600, 7851=>600,
+ 7852=>600, 7853=>600, 7854=>600, 7855=>600, 7856=>600, 7857=>600, 7858=>600, 7859=>600, 7860=>600, 7861=>600, 7862=>600, 7863=>600, 7864=>600, 7865=>600, 7866=>600, 7867=>600,
+ 7868=>600, 7869=>600, 7870=>600, 7871=>600, 7872=>600, 7873=>600, 7874=>600, 7875=>600, 7876=>600, 7877=>600, 7878=>600, 7879=>600, 7880=>600, 7881=>600, 7882=>600, 7883=>600,
+ 7884=>600, 7885=>600, 7886=>600, 7887=>600, 7888=>600, 7889=>600, 7890=>600, 7891=>600, 7892=>600, 7893=>600, 7894=>600, 7895=>600, 7896=>600, 7897=>600, 7898=>600, 7899=>600,
+ 7900=>600, 7901=>600, 7902=>600, 7903=>600, 7904=>600, 7905=>600, 7906=>600, 7907=>600, 7908=>600, 7909=>600, 7910=>600, 7911=>600, 7912=>600, 7913=>600, 7914=>600, 7915=>600,
+ 7916=>600, 7917=>600, 7918=>600, 7919=>600, 7920=>600, 7921=>600, 7922=>600, 7923=>600, 7924=>600, 7925=>600, 7926=>600, 7927=>600, 7928=>600, 7929=>600, 7936=>600, 7937=>600,
+ 7938=>600, 7939=>600, 7940=>600, 7941=>600, 7942=>600, 7943=>600, 7944=>600, 7945=>600, 7946=>600, 7947=>600, 7948=>600, 7949=>600, 7950=>600, 7951=>600, 7952=>600, 7953=>600,
+ 7954=>600, 7955=>600, 7956=>600, 7957=>600, 7960=>600, 7961=>600, 7962=>600, 7963=>600, 7964=>600, 7965=>600, 7968=>600, 7969=>600, 7970=>600, 7971=>600, 7972=>600, 7973=>600,
+ 7974=>600, 7975=>600, 7976=>600, 7977=>600, 7978=>600, 7979=>600, 7980=>600, 7981=>600, 7982=>600, 7983=>600, 7984=>600, 7985=>600, 7986=>600, 7987=>600, 7988=>600, 7989=>600,
+ 7990=>600, 7991=>600, 7992=>600, 7993=>600, 7994=>600, 7995=>600, 7996=>600, 7997=>600, 7998=>600, 7999=>600, 8000=>600, 8001=>600, 8002=>600, 8003=>600, 8004=>600, 8005=>600,
+ 8008=>600, 8009=>600, 8010=>600, 8011=>600, 8012=>600, 8013=>600, 8016=>600, 8017=>600, 8018=>600, 8019=>600, 8020=>600, 8021=>600, 8022=>600, 8023=>600, 8025=>600, 8027=>600,
+ 8029=>600, 8031=>600, 8032=>600, 8033=>600, 8034=>600, 8035=>600, 8036=>600, 8037=>600, 8038=>600, 8039=>600, 8040=>600, 8041=>600, 8042=>600, 8043=>600, 8044=>600, 8045=>600,
+ 8046=>600, 8047=>600, 8048=>600, 8049=>600, 8050=>600, 8051=>600, 8052=>600, 8053=>600, 8054=>600, 8055=>600, 8056=>600, 8057=>600, 8058=>600, 8059=>600, 8060=>600, 8061=>600,
+ 8064=>600, 8065=>600, 8066=>600, 8067=>600, 8068=>600, 8069=>600, 8070=>600, 8071=>600, 8072=>600, 8073=>600, 8074=>600, 8075=>600, 8076=>600, 8077=>600, 8078=>600, 8079=>600,
+ 8080=>600, 8081=>600, 8082=>600, 8083=>600, 8084=>600, 8085=>600, 8086=>600, 8087=>600, 8088=>600, 8089=>600, 8090=>600, 8091=>600, 8092=>600, 8093=>600, 8094=>600, 8095=>600,
+ 8096=>600, 8097=>600, 8098=>600, 8099=>600, 8100=>600, 8101=>600, 8102=>600, 8103=>600, 8104=>600, 8105=>600, 8106=>600, 8107=>600, 8108=>600, 8109=>600, 8110=>600, 8111=>600,
+ 8112=>600, 8113=>600, 8114=>600, 8115=>600, 8116=>600, 8118=>600, 8119=>600, 8120=>600, 8121=>600, 8122=>600, 8123=>600, 8124=>600, 8125=>600, 8126=>600, 8127=>600, 8128=>600,
+ 8129=>600, 8130=>600, 8131=>600, 8132=>600, 8134=>600, 8135=>600, 8136=>600, 8137=>600, 8138=>600, 8139=>600, 8140=>600, 8141=>600, 8142=>600, 8143=>600, 8144=>600, 8145=>600,
+ 8146=>600, 8147=>600, 8150=>600, 8151=>600, 8152=>600, 8153=>600, 8154=>600, 8155=>600, 8157=>600, 8158=>600, 8159=>600, 8160=>600, 8161=>600, 8162=>600, 8163=>600, 8164=>600,
+ 8165=>600, 8166=>600, 8167=>600, 8168=>600, 8169=>600, 8170=>600, 8171=>600, 8172=>600, 8173=>600, 8175=>600, 8178=>600, 8179=>600, 8180=>600, 8182=>600, 8183=>600, 8184=>600,
+ 8185=>600, 8186=>600, 8187=>600, 8188=>600, 8189=>600, 8190=>600, 8208=>600, 8213=>600, 8215=>600, 8219=>600, 8223=>600, 8229=>600, 8241=>600, 8242=>600, 8243=>600, 8244=>600,
+ 8245=>600, 8246=>600, 8247=>600, 8252=>600, 8253=>600, 8254=>600, 8259=>600, 8260=>600, 8261=>600, 8262=>600, 8264=>600, 8265=>600, 8267=>600, 8304=>600, 8305=>600, 8306=>600,
+ 8307=>600, 8308=>600, 8309=>600, 8310=>600, 8311=>600, 8312=>600, 8313=>600, 8314=>600, 8315=>600, 8316=>600, 8317=>600, 8318=>600, 8319=>600, 8320=>600, 8321=>600, 8322=>600,
+ 8323=>600, 8324=>600, 8325=>600, 8326=>600, 8327=>600, 8328=>600, 8329=>600, 8330=>600, 8331=>600, 8332=>600, 8333=>600, 8334=>600, 8355=>600, 8356=>600, 8359=>600, 8362=>600,
+ 8448=>600, 8449=>600, 8450=>600, 8451=>600, 8453=>600, 8454=>600, 8455=>600, 8461=>600, 8464=>600, 8465=>600, 8466=>600, 8467=>600, 8468=>600, 8469=>600, 8470=>600, 8471=>600,
+ 8472=>600, 8473=>600, 8474=>600, 8477=>600, 8478=>600, 8484=>600, 8485=>600, 8486=>600, 8487=>600, 8490=>600, 8491=>600, 8498=>600, 8501=>600, 8531=>600, 8532=>600, 8533=>600,
+ 8534=>600, 8535=>600, 8536=>600, 8537=>600, 8538=>600, 8539=>600, 8540=>600, 8541=>600, 8542=>600, 8543=>600, 8544=>600, 8545=>600, 8546=>600, 8547=>600, 8548=>600, 8549=>600,
+ 8550=>600, 8551=>600, 8552=>600, 8553=>600, 8554=>600, 8555=>600, 8556=>600, 8557=>600, 8558=>600, 8559=>600, 8592=>600, 8593=>600, 8594=>600, 8595=>600, 8596=>600, 8597=>600,
+ 8598=>600, 8599=>600, 8600=>600, 8601=>600, 8602=>600, 8603=>600, 8604=>600, 8605=>600, 8606=>600, 8607=>600, 8608=>600, 8609=>600, 8610=>600, 8611=>600, 8612=>600, 8613=>600,
+ 8614=>600, 8615=>600, 8616=>600, 8617=>600, 8618=>600, 8619=>600, 8620=>600, 8621=>600, 8622=>600, 8623=>600, 8624=>600, 8625=>600, 8626=>600, 8627=>600, 8628=>600, 8629=>600,
+ 8630=>600, 8631=>600, 8632=>600, 8633=>600, 8634=>600, 8635=>600, 8636=>600, 8637=>600, 8638=>600, 8639=>600, 8640=>600, 8641=>600, 8642=>600, 8643=>600, 8644=>600, 8645=>600,
+ 8646=>600, 8647=>600, 8648=>600, 8649=>600, 8650=>600, 8651=>600, 8652=>600, 8653=>600, 8654=>600, 8655=>600, 8656=>600, 8657=>600, 8658=>600, 8659=>600, 8660=>600, 8661=>600,
+ 8704=>600, 8705=>600, 8706=>600, 8707=>600, 8708=>600, 8709=>600, 8710=>600, 8711=>600, 8712=>600, 8713=>600, 8714=>600, 8715=>600, 8716=>600, 8717=>600, 8719=>600, 8721=>600,
+ 8722=>600, 8723=>600, 8724=>600, 8725=>600, 8729=>600, 8730=>600, 8731=>600, 8732=>600, 8733=>600, 8734=>600, 8735=>600, 8743=>600, 8744=>600, 8745=>600, 8746=>600, 8747=>600,
+ 8748=>600, 8749=>600, 8750=>600, 8751=>600, 8752=>600, 8756=>600, 8757=>600, 8759=>600, 8764=>600, 8765=>600, 8769=>600, 8770=>600, 8771=>600, 8772=>600, 8773=>600, 8776=>600,
+ 8784=>600, 8785=>600, 8786=>600, 8787=>600, 8793=>600, 8794=>600, 8800=>600, 8801=>600, 8804=>600, 8805=>600, 8806=>600, 8807=>600, 8810=>600, 8811=>600, 8812=>600, 8814=>600,
+ 8815=>600, 8822=>600, 8823=>600, 8834=>600, 8835=>600, 8838=>600, 8839=>600, 8853=>600, 8854=>600, 8855=>600, 8856=>600, 8857=>600, 8858=>600, 8859=>600, 8860=>600, 8861=>600,
+ 8866=>600, 8867=>600, 8868=>600, 8869=>600, 8870=>600, 8871=>600, 8872=>600, 8873=>600, 8874=>600, 8875=>600, 8876=>600, 8877=>600, 8878=>600, 8879=>600, 8894=>600, 8901=>600,
+ 8902=>600, 8960=>600, 8962=>600, 8963=>600, 8968=>600, 8969=>600, 8970=>600, 8971=>600, 8972=>600, 8973=>600, 8974=>600, 8975=>600, 8976=>600, 8981=>600, 8988=>600, 8989=>600,
+ 8990=>600, 8991=>600, 9001=>600, 9002=>600, 9115=>600, 9116=>600, 9117=>600, 9118=>600, 9119=>600, 9120=>600, 9121=>600, 9122=>600, 9123=>600, 9124=>600, 9125=>600, 9126=>600,
+ 9127=>600, 9128=>600, 9129=>600, 9130=>600, 9131=>600, 9132=>600, 9133=>600, 9134=>600, 9135=>600, 9136=>600, 9137=>600, 9138=>600, 9139=>600, 9140=>600, 9143=>600, 9146=>600,
+ 9147=>600, 9148=>600, 9149=>600, 9472=>600, 9473=>600, 9474=>600, 9475=>600, 9476=>600, 9477=>600, 9478=>600, 9479=>600, 9480=>600, 9481=>600, 9482=>600, 9483=>600, 9484=>600,
+ 9485=>600, 9486=>600, 9487=>600, 9488=>600, 9489=>600, 9490=>600, 9491=>600, 9492=>600, 9493=>600, 9494=>600, 9495=>600, 9496=>600, 9497=>600, 9498=>600, 9499=>600, 9500=>600,
+ 9501=>600, 9502=>600, 9503=>600, 9504=>600, 9505=>600, 9506=>600, 9507=>600, 9508=>600, 9509=>600, 9510=>600, 9511=>600, 9512=>600, 9513=>600, 9514=>600, 9515=>600, 9516=>600,
+ 9517=>600, 9518=>600, 9519=>600, 9520=>600, 9521=>600, 9522=>600, 9523=>600, 9524=>600, 9525=>600, 9526=>600, 9527=>600, 9528=>600, 9529=>600, 9530=>600, 9531=>600, 9532=>600,
+ 9533=>600, 9534=>600, 9535=>600, 9536=>600, 9537=>600, 9538=>600, 9539=>600, 9540=>600, 9541=>600, 9542=>600, 9543=>600, 9544=>600, 9545=>600, 9546=>600, 9547=>600, 9548=>600,
+ 9549=>600, 9550=>600, 9551=>600, 9552=>600, 9553=>600, 9554=>600, 9555=>600, 9556=>600, 9557=>600, 9558=>600, 9559=>600, 9560=>600, 9561=>600, 9562=>600, 9563=>600, 9564=>600,
+ 9565=>600, 9566=>600, 9567=>600, 9568=>600, 9569=>600, 9570=>600, 9571=>600, 9572=>600, 9573=>600, 9574=>600, 9575=>600, 9576=>600, 9577=>600, 9578=>600, 9579=>600, 9580=>600,
+ 9581=>600, 9582=>600, 9583=>600, 9584=>600, 9585=>600, 9586=>600, 9587=>600, 9588=>600, 9589=>600, 9590=>600, 9591=>600, 9592=>600, 9593=>600, 9594=>600, 9595=>600, 9596=>600,
+ 9597=>600, 9598=>600, 9599=>600, 9600=>600, 9601=>600, 9602=>600, 9603=>600, 9604=>600, 9605=>600, 9606=>600, 9607=>600, 9608=>600, 9609=>600, 9610=>600, 9611=>600, 9612=>600,
+ 9613=>600, 9614=>600, 9615=>600, 9616=>600, 9617=>600, 9618=>600, 9619=>600, 9620=>600, 9621=>600, 9622=>600, 9623=>600, 9624=>600, 9625=>600, 9626=>600, 9627=>600, 9628=>600,
+ 9629=>600, 9630=>600, 9631=>600, 9632=>600, 9633=>600, 9634=>600, 9635=>600, 9636=>600, 9637=>600, 9638=>600, 9639=>600, 9640=>600, 9641=>600, 9642=>600, 9643=>600, 9644=>600,
+ 9645=>600, 9646=>600, 9647=>600, 9648=>600, 9649=>600, 9650=>600, 9651=>600, 9652=>600, 9653=>600, 9654=>600, 9655=>600, 9656=>600, 9657=>600, 9658=>600, 9659=>600, 9660=>600,
+ 9661=>600, 9662=>600, 9663=>600, 9664=>600, 9665=>600, 9666=>600, 9667=>600, 9668=>600, 9669=>600, 9670=>600, 9671=>600, 9672=>600, 9673=>600, 9674=>600, 9675=>600, 9676=>600,
+ 9677=>600, 9678=>600, 9679=>600, 9680=>600, 9681=>600, 9682=>600, 9683=>600, 9684=>600, 9685=>600, 9686=>600, 9687=>600, 9688=>600, 9689=>600, 9690=>600, 9691=>600, 9692=>600,
+ 9693=>600, 9694=>600, 9695=>600, 9696=>600, 9697=>600, 9698=>600, 9699=>600, 9700=>600, 9701=>600, 9702=>600, 9703=>600, 9704=>600, 9705=>600, 9706=>600, 9707=>600, 9708=>600,
+ 9709=>600, 9710=>600, 9711=>600, 9712=>600, 9713=>600, 9714=>600, 9715=>600, 9716=>600, 9717=>600, 9718=>600, 9719=>600, 9720=>600, 9721=>600, 9722=>600, 9723=>600, 9724=>600,
+ 9725=>600, 9726=>600, 9727=>600, 9728=>600, 9729=>600, 9730=>600, 9733=>600, 9734=>600, 9735=>600, 9736=>600, 9737=>600, 9744=>600, 9745=>600, 9746=>600, 9756=>600, 9758=>600,
+ 9766=>600, 9768=>600, 9769=>600, 9774=>600, 9776=>600, 9777=>600, 9778=>600, 9779=>600, 9780=>600, 9781=>600, 9782=>600, 9783=>600, 9785=>600, 9786=>600, 9787=>600, 9788=>600,
+ 9791=>600, 9792=>600, 9793=>600, 9794=>600, 9833=>600, 9834=>600, 9835=>600, 9836=>600, 9837=>600, 9838=>600, 9839=>600, 10214=>600, 10215=>600, 10216=>600, 10217=>600, 10218=>600,
+ 10219=>600, 10240=>600, 10241=>600, 10242=>600, 10243=>600, 10244=>600, 10245=>600, 10246=>600, 10247=>600, 10248=>600, 10249=>600, 10250=>600, 10251=>600, 10252=>600, 10253=>600, 10254=>600,
+ 10255=>600, 10256=>600, 10257=>600, 10258=>600, 10259=>600, 10260=>600, 10261=>600, 10262=>600, 10263=>600, 10264=>600, 10265=>600, 10266=>600, 10267=>600, 10268=>600, 10269=>600, 10270=>600,
+ 10271=>600, 10272=>600, 10273=>600, 10274=>600, 10275=>600, 10276=>600, 10277=>600, 10278=>600, 10279=>600, 10280=>600, 10281=>600, 10282=>600, 10283=>600, 10284=>600, 10285=>600, 10286=>600,
+ 10287=>600, 10288=>600, 10289=>600, 10290=>600, 10291=>600, 10292=>600, 10293=>600, 10294=>600, 10295=>600, 10296=>600, 10297=>600, 10298=>600, 10299=>600, 10300=>600, 10301=>600, 10302=>600,
+ 10303=>600, 10304=>600, 10305=>600, 10306=>600, 10307=>600, 10308=>600, 10309=>600, 10310=>600, 10311=>600, 10312=>600, 10313=>600, 10314=>600, 10315=>600, 10316=>600, 10317=>600, 10318=>600,
+ 10319=>600, 10320=>600, 10321=>600, 10322=>600, 10323=>600, 10324=>600, 10325=>600, 10326=>600, 10327=>600, 10328=>600, 10329=>600, 10330=>600, 10331=>600, 10332=>600, 10333=>600, 10334=>600,
+ 10335=>600, 10336=>600, 10337=>600, 10338=>600, 10339=>600, 10340=>600, 10341=>600, 10342=>600, 10343=>600, 10344=>600, 10345=>600, 10346=>600, 10347=>600, 10348=>600, 10349=>600, 10350=>600,
+ 10351=>600, 10352=>600, 10353=>600, 10354=>600, 10355=>600, 10356=>600, 10357=>600, 10358=>600, 10359=>600, 10360=>600, 10361=>600, 10362=>600, 10363=>600, 10364=>600, 10365=>600, 10366=>600,
+ 10367=>600, 10368=>600, 10369=>600, 10370=>600, 10371=>600, 10372=>600, 10373=>600, 10374=>600, 10375=>600, 10376=>600, 10377=>600, 10378=>600, 10379=>600, 10380=>600, 10381=>600, 10382=>600,
+ 10383=>600, 10384=>600, 10385=>600, 10386=>600, 10387=>600, 10388=>600, 10389=>600, 10390=>600, 10391=>600, 10392=>600, 10393=>600, 10394=>600, 10395=>600, 10396=>600, 10397=>600, 10398=>600,
+ 10399=>600, 10400=>600, 10401=>600, 10402=>600, 10403=>600, 10404=>600, 10405=>600, 10406=>600, 10407=>600, 10408=>600, 10409=>600, 10410=>600, 10411=>600, 10412=>600, 10413=>600, 10414=>600,
+ 10415=>600, 10416=>600, 10417=>600, 10418=>600, 10419=>600, 10420=>600, 10421=>600, 10422=>600, 10423=>600, 10424=>600, 10425=>600, 10426=>600, 10427=>600, 10428=>600, 10429=>600, 10430=>600,
+ 10431=>600, 10432=>600, 10433=>600, 10434=>600, 10435=>600, 10436=>600, 10437=>600, 10438=>600, 10439=>600, 10440=>600, 10441=>600, 10442=>600, 10443=>600, 10444=>600, 10445=>600, 10446=>600,
+ 10447=>600, 10448=>600, 10449=>600, 10450=>600, 10451=>600, 10452=>600, 10453=>600, 10454=>600, 10455=>600, 10456=>600, 10457=>600, 10458=>600, 10459=>600, 10460=>600, 10461=>600, 10462=>600,
+ 10463=>600, 10464=>600, 10465=>600, 10466=>600, 10467=>600, 10468=>600, 10469=>600, 10470=>600, 10471=>600, 10472=>600, 10473=>600, 10474=>600, 10475=>600, 10476=>600, 10477=>600, 10478=>600,
+ 10479=>600, 10480=>600, 10481=>600, 10482=>600, 10483=>600, 10484=>600, 10485=>600, 10486=>600, 10487=>600, 10488=>600, 10489=>600, 10490=>600, 10491=>600, 10492=>600, 10493=>600, 10494=>600,
+ 10495=>600, 63171=>600, 64256=>600, 64257=>600, 64258=>600, 64261=>600, 64262=>600, 64285=>600, 64286=>600, 64287=>600, 64288=>600, 64289=>600, 64290=>600, 64291=>600, 64292=>600, 64293=>600,
+ 64294=>600, 64295=>600, 64296=>600, 64297=>600, 64298=>600, 64299=>600, 64300=>600, 64301=>600, 64302=>600, 64303=>600, 64304=>600, 64305=>600, 64306=>600, 64307=>600, 64308=>600, 64309=>600,
+ 64310=>600, 64312=>600, 64313=>600, 64314=>600, 64315=>600, 64316=>600, 64318=>600, 64320=>600, 64321=>600, 64323=>600, 64324=>600, 64326=>600, 64327=>600, 64328=>600, 64329=>600, 64330=>600,
+ 64331=>600, 64332=>600, 64333=>600, 64334=>600, 64335=>600, 65533=>600, 8174=>600}
font[:enc]='';
font[:diff]='';
font[:file]='FreeMono.z';
diff --git a/lib/plugins/rfpdf/lib/fonts/freemonob.rb b/lib/plugins/rfpdf/lib/fonts/freemonob.rb
index af65d6f2c9..d233761a92 100755
--- a/lib/plugins/rfpdf/lib/fonts/freemonob.rb
+++ b/lib/plugins/rfpdf/lib/fonts/freemonob.rb
@@ -6,100 +6,100 @@ TCPDFFontDescriptor.define('freemonob') do |font|
font[:up]=-100;
font[:ut]=50;
font[:cw]={
- 13=>333, 32=>600, 33=>600, 34=>600, 35=>600, 36=>600, 37=>600, 38=>600, 39=>600, 40=>600, 41=>600, 42=>600, 43=>600, 44=>600, 45=>600, 46=>600,
- 47=>600, 48=>600, 49=>600, 50=>600, 51=>600, 52=>600, 53=>600, 54=>600, 55=>600, 56=>600, 57=>600, 58=>600, 59=>600, 60=>600, 61=>600, 62=>600,
- 63=>600, 64=>600, 65=>600, 66=>600, 67=>600, 68=>600, 69=>600, 70=>600, 71=>600, 72=>600, 73=>600, 74=>600, 75=>600, 76=>600, 77=>600, 78=>600,
- 79=>600, 80=>600, 81=>600, 82=>600, 83=>600, 84=>600, 85=>600, 86=>600, 87=>600, 88=>600, 89=>600, 90=>600, 91=>600, 92=>600, 93=>600, 94=>600,
- 95=>600, 96=>600, 97=>600, 98=>600, 99=>600, 100=>600, 101=>600, 102=>600, 103=>600, 104=>600, 105=>600, 106=>600, 107=>600, 108=>600, 109=>600, 110=>600,
- 111=>600, 112=>600, 113=>600, 114=>600, 115=>600, 116=>600, 117=>600, 118=>600, 119=>600, 120=>600, 121=>600, 122=>600, 123=>600, 124=>600, 125=>600, 126=>600,
- 8364=>600, 1027=>600, 8218=>600, 402=>600, 8222=>600, 8230=>600, 8224=>600, 8225=>600, 710=>600, 8240=>600, 352=>600, 8249=>600, 338=>600, 1036=>600, 381=>600, 1039=>600,
- 8216=>600, 8217=>600, 8220=>600, 8221=>600, 8226=>600, 8211=>600, 8212=>600, 732=>600, 8482=>600, 353=>600, 8250=>600, 339=>600, 1116=>600, 382=>600, 376=>600, 160=>600,
- 161=>600, 162=>600, 163=>600, 164=>600, 165=>600, 166=>600, 167=>600, 168=>600, 169=>600, 170=>600, 171=>600, 172=>600, 173=>600, 174=>600, 175=>600, 176=>600,
- 177=>600, 178=>600, 179=>600, 180=>600, 181=>600, 182=>600, 183=>600, 184=>600, 185=>600, 186=>600, 187=>600, 188=>600, 189=>600, 190=>600, 191=>600, 192=>600,
- 193=>600, 194=>600, 195=>600, 196=>600, 197=>600, 198=>600, 199=>600, 200=>600, 201=>600, 202=>600, 203=>600, 204=>600, 205=>600, 206=>600, 207=>600, 208=>600,
- 209=>600, 210=>600, 211=>600, 212=>600, 213=>600, 214=>600, 215=>600, 216=>600, 217=>600, 218=>600, 219=>600, 220=>600, 221=>600, 222=>600, 223=>600, 224=>600,
- 225=>600, 226=>600, 227=>600, 228=>600, 229=>600, 230=>600, 231=>600, 232=>600, 233=>600, 234=>600, 235=>600, 236=>600, 237=>600, 238=>600, 239=>600, 240=>600,
- 241=>600, 242=>600, 243=>600, 244=>600, 245=>600, 246=>600, 247=>600, 248=>600, 249=>600, 250=>600, 251=>600, 252=>600, 253=>600, 254=>600, 255=>600, 256=>600,
- 257=>600, 258=>600, 259=>600, 260=>600, 261=>600, 262=>600, 263=>600, 264=>600, 265=>600, 266=>600, 267=>600, 268=>600, 269=>600, 270=>600, 271=>600, 272=>600,
- 273=>600, 274=>600, 275=>600, 276=>600, 277=>600, 278=>600, 279=>600, 280=>600, 281=>600, 282=>600, 283=>600, 284=>600, 285=>600, 286=>600, 287=>600, 288=>600,
- 289=>600, 290=>600, 291=>600, 292=>600, 293=>600, 294=>600, 295=>600, 296=>600, 297=>600, 298=>600, 299=>600, 300=>600, 301=>600, 302=>600, 303=>600, 304=>600,
- 305=>600, 306=>600, 307=>600, 308=>600, 309=>600, 310=>600, 311=>600, 312=>600, 313=>600, 314=>600, 315=>600, 316=>600, 317=>600, 318=>600, 319=>600, 320=>600,
- 321=>600, 322=>600, 323=>600, 324=>600, 325=>600, 326=>600, 327=>600, 328=>600, 329=>600, 330=>600, 331=>600, 332=>600, 333=>600, 334=>600, 335=>600, 336=>600,
- 337=>600, 340=>600, 341=>600, 342=>600, 343=>600, 344=>600, 345=>600, 346=>600, 347=>600, 348=>600, 349=>600, 350=>600, 351=>600, 354=>600, 355=>600, 356=>600,
- 357=>600, 358=>600, 359=>600, 360=>600, 361=>600, 362=>600, 363=>600, 364=>600, 365=>600, 366=>600, 367=>600, 368=>600, 369=>600, 370=>600, 371=>600, 372=>600,
- 373=>600, 374=>600, 375=>600, 377=>600, 378=>600, 379=>600, 380=>600, 383=>600, 384=>600, 385=>600, 386=>600, 387=>600, 390=>600, 391=>600, 392=>600, 393=>600,
- 394=>600, 395=>600, 396=>600, 397=>600, 398=>600, 400=>600, 401=>600, 403=>600, 405=>600, 406=>600, 407=>600, 409=>600, 410=>600, 411=>600, 412=>600, 413=>600,
- 414=>600, 415=>600, 416=>600, 417=>600, 418=>600, 419=>600, 420=>600, 421=>600, 422=>600, 423=>600, 424=>600, 425=>600, 427=>600, 428=>600, 429=>600, 430=>600,
- 431=>600, 432=>600, 435=>600, 436=>600, 437=>600, 438=>600, 439=>600, 440=>600, 443=>600, 448=>600, 449=>600, 451=>600, 455=>600, 456=>600, 457=>600, 459=>600,
- 460=>600, 461=>600, 462=>600, 463=>600, 464=>600, 465=>600, 466=>600, 467=>600, 468=>600, 469=>600, 470=>600, 471=>600, 472=>600, 473=>600, 474=>600, 475=>600,
- 476=>600, 477=>600, 478=>600, 479=>600, 480=>600, 481=>600, 482=>600, 483=>600, 484=>600, 485=>600, 486=>600, 487=>600, 488=>600, 489=>600, 490=>600, 491=>600,
- 492=>600, 493=>600, 494=>600, 496=>600, 500=>600, 501=>600, 502=>600, 504=>600, 505=>600, 506=>600, 507=>600, 508=>600, 509=>600, 510=>600, 511=>600, 512=>600,
- 513=>600, 514=>600, 515=>600, 516=>600, 517=>600, 518=>600, 519=>600, 520=>600, 521=>600, 522=>600, 523=>600, 524=>600, 525=>600, 526=>600, 527=>600, 528=>600,
- 529=>600, 530=>600, 531=>600, 532=>600, 533=>600, 534=>600, 535=>600, 536=>600, 537=>600, 538=>600, 539=>600, 542=>600, 543=>600, 548=>600, 549=>600, 550=>600,
- 551=>600, 552=>600, 553=>600, 554=>600, 555=>600, 556=>600, 557=>600, 558=>600, 559=>600, 560=>600, 561=>600, 562=>600, 563=>600, 592=>600, 593=>600, 594=>600,
- 595=>600, 596=>600, 598=>600, 599=>600, 600=>600, 601=>600, 603=>600, 604=>600, 607=>600, 608=>600, 609=>600, 613=>600, 614=>600, 615=>600, 616=>600, 617=>600,
- 618=>600, 619=>600, 621=>600, 623=>600, 624=>600, 625=>600, 626=>600, 627=>600, 628=>600, 629=>600, 633=>600, 634=>600, 635=>600, 636=>600, 637=>600, 638=>600,
- 639=>600, 640=>600, 641=>600, 642=>600, 643=>600, 644=>600, 645=>600, 647=>600, 648=>600, 649=>600, 652=>600, 653=>600, 654=>600, 656=>600, 660=>600, 661=>600,
- 662=>600, 663=>600, 664=>600, 668=>600, 670=>600, 671=>600, 672=>600, 673=>600, 674=>600, 711=>600, 720=>600, 721=>600, 728=>600, 729=>600, 730=>600, 731=>600,
- 733=>600, 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0, 780=>0, 781=>0, 782=>0,
- 783=>0, 784=>0, 785=>0, 795=>0, 801=>0, 802=>0, 807=>0, 808=>0, 823=>0, 884=>600, 885=>600, 890=>600, 894=>600, 900=>600, 901=>600, 902=>600,
- 903=>600, 904=>600, 905=>600, 906=>600, 908=>600, 910=>600, 911=>600, 912=>600, 913=>600, 914=>600, 915=>600, 916=>600, 917=>600, 918=>600, 919=>600, 920=>600,
- 921=>600, 922=>600, 923=>600, 924=>600, 925=>600, 926=>600, 927=>600, 928=>600, 929=>600, 931=>600, 932=>600, 933=>600, 934=>600, 935=>600, 936=>600, 937=>600,
- 938=>600, 939=>600, 940=>600, 941=>600, 942=>600, 943=>600, 944=>600, 945=>600, 946=>600, 947=>600, 948=>600, 949=>600, 950=>600, 951=>600, 952=>600, 953=>600,
- 954=>600, 955=>600, 956=>600, 957=>600, 958=>600, 959=>600, 960=>600, 961=>600, 962=>600, 963=>600, 964=>600, 965=>600, 966=>600, 967=>600, 968=>600, 969=>600,
- 970=>600, 971=>600, 972=>600, 973=>600, 974=>600, 976=>600, 977=>600, 981=>600, 1009=>600, 1024=>600, 1025=>600, 1026=>600, 1028=>600, 1029=>600, 1030=>600, 1031=>600,
- 1032=>600, 1033=>600, 1034=>600, 1035=>600, 1037=>600, 1038=>600, 1040=>600, 1041=>600, 1042=>600, 1043=>600, 1044=>600, 1045=>600, 1046=>600, 1047=>600, 1048=>600, 1049=>600,
- 1050=>600, 1051=>600, 1052=>600, 1053=>600, 1054=>600, 1055=>600, 1056=>600, 1057=>600, 1058=>600, 1059=>600, 1060=>600, 1061=>600, 1062=>600, 1063=>600, 1064=>600, 1065=>600,
- 1066=>600, 1067=>600, 1068=>600, 1069=>600, 1070=>600, 1071=>600, 1072=>600, 1073=>600, 1074=>600, 1075=>600, 1076=>600, 1077=>600, 1078=>600, 1079=>600, 1080=>600, 1081=>600,
- 1082=>600, 1083=>600, 1084=>600, 1085=>600, 1086=>600, 1087=>600, 1088=>600, 1089=>600, 1090=>600, 1091=>600, 1092=>600, 1093=>600, 1094=>600, 1095=>600, 1096=>600, 1097=>600,
- 1098=>600, 1099=>600, 1100=>600, 1101=>600, 1102=>600, 1103=>600, 1104=>600, 1105=>600, 1106=>600, 1107=>600, 1108=>600, 1109=>600, 1110=>600, 1111=>600, 1112=>600, 1113=>600,
- 1114=>600, 1115=>600, 1117=>600, 1118=>600, 1119=>600, 1164=>600, 1165=>600, 1166=>600, 1167=>600, 1168=>600, 1169=>600, 1170=>600, 1171=>600, 1172=>600, 1173=>600, 1174=>600,
- 1175=>600, 1176=>600, 1177=>600, 1178=>600, 1179=>600, 1180=>600, 1181=>600, 1182=>600, 1183=>600, 1184=>600, 1185=>600, 1186=>600, 1187=>600, 1188=>600, 1189=>600, 1190=>600,
- 1191=>600, 1192=>600, 1193=>600, 1194=>600, 1195=>600, 1196=>600, 1197=>600, 1198=>600, 1199=>600, 1200=>600, 1201=>600, 1202=>600, 1203=>600, 1204=>600, 1205=>600, 1206=>600,
- 1207=>600, 1208=>600, 1209=>600, 1210=>600, 1211=>600, 1212=>600, 1213=>600, 1214=>600, 1215=>600, 1216=>600, 1217=>600, 1218=>600, 1219=>600, 1220=>600, 1221=>600, 1222=>600,
- 1223=>600, 1224=>600, 1225=>600, 1226=>600, 1227=>600, 1228=>600, 1229=>600, 1230=>600, 1231=>600, 1232=>600, 1233=>600, 1234=>600, 1235=>600, 1236=>600, 1237=>600, 1238=>600,
- 1239=>600, 1240=>600, 1241=>600, 1242=>600, 1243=>600, 1244=>600, 1245=>600, 1246=>600, 1247=>600, 1248=>600, 1249=>600, 1250=>600, 1251=>600, 1252=>600, 1253=>600, 1254=>600,
- 1255=>600, 1256=>600, 1257=>600, 1258=>600, 1259=>600, 1260=>600, 1261=>600, 1262=>600, 1263=>600, 1264=>600, 1265=>600, 1266=>600, 1267=>600, 1268=>600, 1269=>600, 1270=>600,
- 1271=>600, 1272=>600, 1273=>600, 1456=>600, 1457=>600, 1458=>600, 1459=>600, 1460=>600, 1461=>600, 1462=>600, 1463=>600, 1464=>600, 1465=>600, 1467=>600, 1468=>600, 1469=>600,
- 1470=>600, 1471=>600, 1472=>600, 1473=>600, 1474=>600, 1475=>600, 1476=>600, 1488=>600, 1489=>600, 1490=>600, 1491=>600, 1492=>600, 1493=>600, 1494=>600, 1495=>600, 1496=>600,
- 1497=>600, 1498=>600, 1499=>600, 1500=>600, 1501=>600, 1502=>600, 1503=>600, 1504=>600, 1505=>600, 1506=>600, 1507=>600, 1508=>600, 1509=>600, 1510=>600, 1511=>600, 1512=>600,
- 1513=>600, 1514=>600, 1520=>600, 1521=>600, 1522=>600, 1523=>600, 1524=>600, 7680=>600, 7681=>600, 7682=>600, 7683=>600, 7684=>600, 7685=>600, 7686=>600, 7687=>600, 7688=>600,
- 7689=>600, 7690=>600, 7691=>600, 7692=>600, 7693=>600, 7694=>600, 7695=>600, 7696=>600, 7697=>600, 7698=>600, 7699=>600, 7700=>600, 7701=>600, 7702=>600, 7703=>600, 7704=>600,
- 7705=>600, 7706=>600, 7707=>600, 7708=>600, 7709=>600, 7710=>600, 7711=>600, 7712=>600, 7713=>600, 7714=>600, 7715=>600, 7716=>600, 7717=>600, 7718=>600, 7719=>600, 7720=>600,
- 7721=>600, 7722=>600, 7723=>600, 7724=>600, 7725=>600, 7726=>600, 7727=>600, 7728=>600, 7729=>600, 7730=>600, 7731=>600, 7732=>600, 7733=>600, 7734=>600, 7735=>600, 7736=>600,
- 7737=>600, 7738=>600, 7739=>600, 7740=>600, 7741=>600, 7742=>600, 7743=>600, 7744=>600, 7745=>600, 7746=>600, 7747=>600, 7748=>600, 7749=>600, 7750=>600, 7751=>600, 7752=>600,
- 7753=>600, 7754=>600, 7755=>600, 7756=>600, 7757=>600, 7758=>600, 7759=>600, 7760=>600, 7761=>600, 7762=>600, 7763=>600, 7764=>600, 7765=>600, 7766=>600, 7767=>600, 7768=>600,
- 7769=>600, 7770=>600, 7771=>600, 7772=>600, 7773=>600, 7774=>600, 7775=>600, 7776=>600, 7777=>600, 7778=>600, 7779=>600, 7780=>600, 7781=>600, 7782=>600, 7783=>600, 7784=>600,
- 7785=>600, 7786=>600, 7787=>600, 7788=>600, 7789=>600, 7790=>600, 7791=>600, 7792=>600, 7793=>600, 7794=>600, 7795=>600, 7796=>600, 7797=>600, 7798=>600, 7799=>600, 7800=>600,
- 7801=>600, 7802=>600, 7803=>600, 7804=>600, 7805=>600, 7806=>600, 7807=>600, 7808=>600, 7809=>600, 7810=>600, 7811=>600, 7812=>600, 7813=>600, 7814=>600, 7815=>600, 7816=>600,
- 7817=>600, 7818=>600, 7819=>600, 7820=>600, 7821=>600, 7822=>600, 7823=>600, 7824=>600, 7825=>600, 7826=>600, 7827=>600, 7828=>600, 7829=>600, 7830=>600, 7831=>600, 7832=>600,
- 7833=>600, 7835=>600, 7840=>600, 7841=>600, 7842=>600, 7843=>600, 7844=>600, 7845=>600, 7846=>600, 7847=>600, 7848=>600, 7849=>600, 7850=>600, 7851=>600, 7852=>600, 7853=>600,
- 7854=>600, 7855=>600, 7856=>600, 7857=>600, 7858=>600, 7859=>600, 7860=>600, 7861=>600, 7862=>600, 7863=>600, 7864=>600, 7865=>600, 7866=>600, 7867=>600, 7868=>600, 7869=>600,
- 7870=>600, 7871=>600, 7872=>600, 7873=>600, 7874=>600, 7875=>600, 7876=>600, 7877=>600, 7878=>600, 7879=>600, 7880=>600, 7881=>600, 7882=>600, 7883=>600, 7884=>600, 7885=>600,
- 7886=>600, 7887=>600, 7888=>600, 7889=>600, 7890=>600, 7891=>600, 7892=>600, 7893=>600, 7894=>600, 7895=>600, 7896=>600, 7897=>600, 7898=>600, 7899=>600, 7900=>600, 7901=>600,
- 7902=>600, 7903=>600, 7904=>600, 7905=>600, 7906=>600, 7907=>600, 7908=>600, 7909=>600, 7910=>600, 7911=>600, 7912=>600, 7913=>600, 7914=>600, 7915=>600, 7916=>600, 7917=>600,
- 7918=>600, 7919=>600, 7920=>600, 7921=>600, 7922=>600, 7923=>600, 7924=>600, 7925=>600, 7926=>600, 7927=>600, 7928=>600, 7929=>600, 8209=>600, 8213=>600, 8219=>600, 8223=>600,
- 8242=>600, 8243=>600, 8244=>600, 8245=>600, 8246=>600, 8247=>600, 8252=>600, 8260=>600, 8261=>600, 8262=>600, 8264=>600, 8265=>600, 8267=>600, 8292=>600, 8304=>600, 8305=>600,
- 8306=>600, 8307=>600, 8308=>600, 8309=>600, 8310=>600, 8311=>600, 8312=>600, 8313=>600, 8314=>600, 8315=>600, 8316=>600, 8317=>600, 8318=>600, 8319=>600, 8320=>600, 8321=>600,
- 8322=>600, 8323=>600, 8324=>600, 8325=>600, 8326=>600, 8327=>600, 8328=>600, 8329=>600, 8355=>600, 8356=>600, 8362=>600, 8466=>600, 8470=>600, 8486=>600, 8487=>600, 8490=>600,
- 8491=>600, 8531=>600, 8532=>600, 8533=>600, 8534=>600, 8535=>600, 8536=>600, 8537=>600, 8538=>600, 8539=>600, 8540=>600, 8541=>600, 8542=>600, 8543=>600, 8592=>600, 8593=>600,
- 8594=>600, 8595=>600, 8706=>600, 8709=>600, 8710=>600, 8711=>600, 8721=>600, 8722=>600, 8725=>600, 8730=>600, 8733=>600, 8734=>600, 8735=>600, 8800=>600, 8801=>600, 8804=>600,
- 8805=>600, 8976=>600, 9472=>600, 9473=>600, 9474=>600, 9475=>600, 9476=>600, 9477=>600, 9478=>600, 9479=>600, 9480=>600, 9481=>600, 9482=>600, 9483=>600, 9484=>600, 9485=>600,
- 9486=>600, 9487=>600, 9488=>600, 9489=>600, 9490=>600, 9491=>600, 9492=>600, 9493=>600, 9494=>600, 9495=>600, 9496=>600, 9497=>600, 9498=>600, 9499=>600, 9500=>600, 9501=>600,
- 9502=>600, 9503=>600, 9504=>600, 9505=>600, 9506=>600, 9507=>600, 9508=>600, 9509=>600, 9510=>600, 9511=>600, 9512=>600, 9513=>600, 9514=>600, 9515=>600, 9516=>600, 9517=>600,
- 9518=>600, 9519=>600, 9520=>600, 9521=>600, 9522=>600, 9523=>600, 9524=>600, 9525=>600, 9526=>600, 9527=>600, 9528=>600, 9529=>600, 9530=>600, 9531=>600, 9532=>600, 9533=>600,
- 9534=>600, 9535=>600, 9536=>600, 9537=>600, 9538=>600, 9539=>600, 9540=>600, 9541=>600, 9542=>600, 9543=>600, 9544=>600, 9545=>600, 9546=>600, 9547=>600, 9548=>600, 9549=>600,
- 9550=>600, 9551=>600, 9552=>600, 9553=>600, 9554=>600, 9555=>600, 9556=>600, 9557=>600, 9558=>600, 9559=>600, 9560=>600, 9561=>600, 9562=>600, 9563=>600, 9564=>600, 9565=>600,
- 9566=>600, 9567=>600, 9568=>600, 9569=>600, 9570=>600, 9571=>600, 9572=>600, 9573=>600, 9574=>600, 9575=>600, 9576=>600, 9577=>600, 9578=>600, 9579=>600, 9580=>600, 9581=>600,
- 9582=>600, 9583=>600, 9584=>600, 9585=>600, 9586=>600, 9587=>600, 9588=>600, 9589=>600, 9590=>600, 9591=>600, 9592=>600, 9593=>600, 9594=>600, 9595=>600, 9596=>600, 9597=>600,
- 9598=>600, 9599=>600, 9600=>600, 9601=>600, 9602=>600, 9603=>600, 9604=>600, 9605=>600, 9606=>600, 9607=>600, 9608=>600, 9609=>600, 9610=>600, 9611=>600, 9612=>600, 9613=>600,
- 9614=>600, 9615=>600, 9616=>600, 9617=>600, 9618=>600, 9619=>600, 9620=>600, 9621=>600, 9632=>600, 9633=>600, 9635=>600, 9636=>600, 9637=>600, 9638=>600, 9639=>600, 9640=>600,
- 9641=>600, 9642=>600, 9643=>600, 9644=>600, 9645=>600, 9646=>600, 9647=>600, 9648=>600, 9649=>600, 9650=>600, 9651=>600, 9652=>600, 9653=>600, 9654=>600, 9655=>600, 9656=>600,
- 9657=>600, 9658=>600, 9660=>600, 9661=>600, 9662=>600, 9663=>600, 9664=>600, 9665=>600, 9666=>600, 9667=>600, 9668=>600, 9669=>600, 9670=>600, 9671=>600, 9673=>600, 9674=>600,
- 9675=>600, 9677=>600, 9679=>600, 9680=>600, 9681=>600, 9682=>600, 9683=>600, 9684=>600, 9685=>600, 9686=>600, 9687=>600, 9688=>600, 9689=>600, 9698=>600, 9699=>600, 9700=>600,
- 9701=>600, 9702=>600, 9703=>600, 9704=>600, 9705=>600, 9706=>600, 9707=>600, 9708=>600, 9709=>600, 9710=>600, 9712=>600, 9713=>600, 9714=>600, 9715=>600, 9716=>600, 9717=>600,
- 9718=>600, 9719=>600, 9735=>600, 9736=>600, 9737=>600, 9776=>600, 9777=>600, 9778=>600, 9779=>600, 9780=>600, 9781=>600, 9782=>600, 9783=>600, 9785=>600, 9786=>600, 9787=>600,
- 9833=>600, 9834=>600, 9835=>600, 9836=>600, 63166=>600, 63171=>600, 64256=>600, 64257=>600, 64258=>600}
+ 13=>333, 32=>600, 33=>600, 34=>600, 35=>600, 36=>600, 37=>600, 38=>600, 39=>600, 40=>600, 41=>600, 42=>600, 43=>600, 44=>600, 45=>600, 46=>600,
+ 47=>600, 48=>600, 49=>600, 50=>600, 51=>600, 52=>600, 53=>600, 54=>600, 55=>600, 56=>600, 57=>600, 58=>600, 59=>600, 60=>600, 61=>600, 62=>600,
+ 63=>600, 64=>600, 65=>600, 66=>600, 67=>600, 68=>600, 69=>600, 70=>600, 71=>600, 72=>600, 73=>600, 74=>600, 75=>600, 76=>600, 77=>600, 78=>600,
+ 79=>600, 80=>600, 81=>600, 82=>600, 83=>600, 84=>600, 85=>600, 86=>600, 87=>600, 88=>600, 89=>600, 90=>600, 91=>600, 92=>600, 93=>600, 94=>600,
+ 95=>600, 96=>600, 97=>600, 98=>600, 99=>600, 100=>600, 101=>600, 102=>600, 103=>600, 104=>600, 105=>600, 106=>600, 107=>600, 108=>600, 109=>600, 110=>600,
+ 111=>600, 112=>600, 113=>600, 114=>600, 115=>600, 116=>600, 117=>600, 118=>600, 119=>600, 120=>600, 121=>600, 122=>600, 123=>600, 124=>600, 125=>600, 126=>600,
+ 8364=>600, 1027=>600, 8218=>600, 402=>600, 8222=>600, 8230=>600, 8224=>600, 8225=>600, 710=>600, 8240=>600, 352=>600, 8249=>600, 338=>600, 1036=>600, 381=>600, 1039=>600,
+ 8216=>600, 8217=>600, 8220=>600, 8221=>600, 8226=>600, 8211=>600, 8212=>600, 732=>600, 8482=>600, 353=>600, 8250=>600, 339=>600, 1116=>600, 382=>600, 376=>600, 160=>600,
+ 161=>600, 162=>600, 163=>600, 164=>600, 165=>600, 166=>600, 167=>600, 168=>600, 169=>600, 170=>600, 171=>600, 172=>600, 173=>600, 174=>600, 175=>600, 176=>600,
+ 177=>600, 178=>600, 179=>600, 180=>600, 181=>600, 182=>600, 183=>600, 184=>600, 185=>600, 186=>600, 187=>600, 188=>600, 189=>600, 190=>600, 191=>600, 192=>600,
+ 193=>600, 194=>600, 195=>600, 196=>600, 197=>600, 198=>600, 199=>600, 200=>600, 201=>600, 202=>600, 203=>600, 204=>600, 205=>600, 206=>600, 207=>600, 208=>600,
+ 209=>600, 210=>600, 211=>600, 212=>600, 213=>600, 214=>600, 215=>600, 216=>600, 217=>600, 218=>600, 219=>600, 220=>600, 221=>600, 222=>600, 223=>600, 224=>600,
+ 225=>600, 226=>600, 227=>600, 228=>600, 229=>600, 230=>600, 231=>600, 232=>600, 233=>600, 234=>600, 235=>600, 236=>600, 237=>600, 238=>600, 239=>600, 240=>600,
+ 241=>600, 242=>600, 243=>600, 244=>600, 245=>600, 246=>600, 247=>600, 248=>600, 249=>600, 250=>600, 251=>600, 252=>600, 253=>600, 254=>600, 255=>600, 256=>600,
+ 257=>600, 258=>600, 259=>600, 260=>600, 261=>600, 262=>600, 263=>600, 264=>600, 265=>600, 266=>600, 267=>600, 268=>600, 269=>600, 270=>600, 271=>600, 272=>600,
+ 273=>600, 274=>600, 275=>600, 276=>600, 277=>600, 278=>600, 279=>600, 280=>600, 281=>600, 282=>600, 283=>600, 284=>600, 285=>600, 286=>600, 287=>600, 288=>600,
+ 289=>600, 290=>600, 291=>600, 292=>600, 293=>600, 294=>600, 295=>600, 296=>600, 297=>600, 298=>600, 299=>600, 300=>600, 301=>600, 302=>600, 303=>600, 304=>600,
+ 305=>600, 306=>600, 307=>600, 308=>600, 309=>600, 310=>600, 311=>600, 312=>600, 313=>600, 314=>600, 315=>600, 316=>600, 317=>600, 318=>600, 319=>600, 320=>600,
+ 321=>600, 322=>600, 323=>600, 324=>600, 325=>600, 326=>600, 327=>600, 328=>600, 329=>600, 330=>600, 331=>600, 332=>600, 333=>600, 334=>600, 335=>600, 336=>600,
+ 337=>600, 340=>600, 341=>600, 342=>600, 343=>600, 344=>600, 345=>600, 346=>600, 347=>600, 348=>600, 349=>600, 350=>600, 351=>600, 354=>600, 355=>600, 356=>600,
+ 357=>600, 358=>600, 359=>600, 360=>600, 361=>600, 362=>600, 363=>600, 364=>600, 365=>600, 366=>600, 367=>600, 368=>600, 369=>600, 370=>600, 371=>600, 372=>600,
+ 373=>600, 374=>600, 375=>600, 377=>600, 378=>600, 379=>600, 380=>600, 383=>600, 384=>600, 385=>600, 386=>600, 387=>600, 390=>600, 391=>600, 392=>600, 393=>600,
+ 394=>600, 395=>600, 396=>600, 397=>600, 398=>600, 400=>600, 401=>600, 403=>600, 405=>600, 406=>600, 407=>600, 409=>600, 410=>600, 411=>600, 412=>600, 413=>600,
+ 414=>600, 415=>600, 416=>600, 417=>600, 418=>600, 419=>600, 420=>600, 421=>600, 422=>600, 423=>600, 424=>600, 425=>600, 427=>600, 428=>600, 429=>600, 430=>600,
+ 431=>600, 432=>600, 435=>600, 436=>600, 437=>600, 438=>600, 439=>600, 440=>600, 443=>600, 448=>600, 449=>600, 451=>600, 455=>600, 456=>600, 457=>600, 459=>600,
+ 460=>600, 461=>600, 462=>600, 463=>600, 464=>600, 465=>600, 466=>600, 467=>600, 468=>600, 469=>600, 470=>600, 471=>600, 472=>600, 473=>600, 474=>600, 475=>600,
+ 476=>600, 477=>600, 478=>600, 479=>600, 480=>600, 481=>600, 482=>600, 483=>600, 484=>600, 485=>600, 486=>600, 487=>600, 488=>600, 489=>600, 490=>600, 491=>600,
+ 492=>600, 493=>600, 494=>600, 496=>600, 500=>600, 501=>600, 502=>600, 504=>600, 505=>600, 506=>600, 507=>600, 508=>600, 509=>600, 510=>600, 511=>600, 512=>600,
+ 513=>600, 514=>600, 515=>600, 516=>600, 517=>600, 518=>600, 519=>600, 520=>600, 521=>600, 522=>600, 523=>600, 524=>600, 525=>600, 526=>600, 527=>600, 528=>600,
+ 529=>600, 530=>600, 531=>600, 532=>600, 533=>600, 534=>600, 535=>600, 536=>600, 537=>600, 538=>600, 539=>600, 542=>600, 543=>600, 548=>600, 549=>600, 550=>600,
+ 551=>600, 552=>600, 553=>600, 554=>600, 555=>600, 556=>600, 557=>600, 558=>600, 559=>600, 560=>600, 561=>600, 562=>600, 563=>600, 592=>600, 593=>600, 594=>600,
+ 595=>600, 596=>600, 598=>600, 599=>600, 600=>600, 601=>600, 603=>600, 604=>600, 607=>600, 608=>600, 609=>600, 613=>600, 614=>600, 615=>600, 616=>600, 617=>600,
+ 618=>600, 619=>600, 621=>600, 623=>600, 624=>600, 625=>600, 626=>600, 627=>600, 628=>600, 629=>600, 633=>600, 634=>600, 635=>600, 636=>600, 637=>600, 638=>600,
+ 639=>600, 640=>600, 641=>600, 642=>600, 643=>600, 644=>600, 645=>600, 647=>600, 648=>600, 649=>600, 652=>600, 653=>600, 654=>600, 656=>600, 660=>600, 661=>600,
+ 662=>600, 663=>600, 664=>600, 668=>600, 670=>600, 671=>600, 672=>600, 673=>600, 674=>600, 711=>600, 720=>600, 721=>600, 728=>600, 729=>600, 730=>600, 731=>600,
+ 733=>600, 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0, 780=>0, 781=>0, 782=>0,
+ 783=>0, 784=>0, 785=>0, 795=>0, 801=>0, 802=>0, 807=>0, 808=>0, 823=>0, 884=>600, 885=>600, 890=>600, 894=>600, 900=>600, 901=>600, 902=>600,
+ 903=>600, 904=>600, 905=>600, 906=>600, 908=>600, 910=>600, 911=>600, 912=>600, 913=>600, 914=>600, 915=>600, 916=>600, 917=>600, 918=>600, 919=>600, 920=>600,
+ 921=>600, 922=>600, 923=>600, 924=>600, 925=>600, 926=>600, 927=>600, 928=>600, 929=>600, 931=>600, 932=>600, 933=>600, 934=>600, 935=>600, 936=>600, 937=>600,
+ 938=>600, 939=>600, 940=>600, 941=>600, 942=>600, 943=>600, 944=>600, 945=>600, 946=>600, 947=>600, 948=>600, 949=>600, 950=>600, 951=>600, 952=>600, 953=>600,
+ 954=>600, 955=>600, 956=>600, 957=>600, 958=>600, 959=>600, 960=>600, 961=>600, 962=>600, 963=>600, 964=>600, 965=>600, 966=>600, 967=>600, 968=>600, 969=>600,
+ 970=>600, 971=>600, 972=>600, 973=>600, 974=>600, 976=>600, 977=>600, 981=>600, 1009=>600, 1024=>600, 1025=>600, 1026=>600, 1028=>600, 1029=>600, 1030=>600, 1031=>600,
+ 1032=>600, 1033=>600, 1034=>600, 1035=>600, 1037=>600, 1038=>600, 1040=>600, 1041=>600, 1042=>600, 1043=>600, 1044=>600, 1045=>600, 1046=>600, 1047=>600, 1048=>600, 1049=>600,
+ 1050=>600, 1051=>600, 1052=>600, 1053=>600, 1054=>600, 1055=>600, 1056=>600, 1057=>600, 1058=>600, 1059=>600, 1060=>600, 1061=>600, 1062=>600, 1063=>600, 1064=>600, 1065=>600,
+ 1066=>600, 1067=>600, 1068=>600, 1069=>600, 1070=>600, 1071=>600, 1072=>600, 1073=>600, 1074=>600, 1075=>600, 1076=>600, 1077=>600, 1078=>600, 1079=>600, 1080=>600, 1081=>600,
+ 1082=>600, 1083=>600, 1084=>600, 1085=>600, 1086=>600, 1087=>600, 1088=>600, 1089=>600, 1090=>600, 1091=>600, 1092=>600, 1093=>600, 1094=>600, 1095=>600, 1096=>600, 1097=>600,
+ 1098=>600, 1099=>600, 1100=>600, 1101=>600, 1102=>600, 1103=>600, 1104=>600, 1105=>600, 1106=>600, 1107=>600, 1108=>600, 1109=>600, 1110=>600, 1111=>600, 1112=>600, 1113=>600,
+ 1114=>600, 1115=>600, 1117=>600, 1118=>600, 1119=>600, 1164=>600, 1165=>600, 1166=>600, 1167=>600, 1168=>600, 1169=>600, 1170=>600, 1171=>600, 1172=>600, 1173=>600, 1174=>600,
+ 1175=>600, 1176=>600, 1177=>600, 1178=>600, 1179=>600, 1180=>600, 1181=>600, 1182=>600, 1183=>600, 1184=>600, 1185=>600, 1186=>600, 1187=>600, 1188=>600, 1189=>600, 1190=>600,
+ 1191=>600, 1192=>600, 1193=>600, 1194=>600, 1195=>600, 1196=>600, 1197=>600, 1198=>600, 1199=>600, 1200=>600, 1201=>600, 1202=>600, 1203=>600, 1204=>600, 1205=>600, 1206=>600,
+ 1207=>600, 1208=>600, 1209=>600, 1210=>600, 1211=>600, 1212=>600, 1213=>600, 1214=>600, 1215=>600, 1216=>600, 1217=>600, 1218=>600, 1219=>600, 1220=>600, 1221=>600, 1222=>600,
+ 1223=>600, 1224=>600, 1225=>600, 1226=>600, 1227=>600, 1228=>600, 1229=>600, 1230=>600, 1231=>600, 1232=>600, 1233=>600, 1234=>600, 1235=>600, 1236=>600, 1237=>600, 1238=>600,
+ 1239=>600, 1240=>600, 1241=>600, 1242=>600, 1243=>600, 1244=>600, 1245=>600, 1246=>600, 1247=>600, 1248=>600, 1249=>600, 1250=>600, 1251=>600, 1252=>600, 1253=>600, 1254=>600,
+ 1255=>600, 1256=>600, 1257=>600, 1258=>600, 1259=>600, 1260=>600, 1261=>600, 1262=>600, 1263=>600, 1264=>600, 1265=>600, 1266=>600, 1267=>600, 1268=>600, 1269=>600, 1270=>600,
+ 1271=>600, 1272=>600, 1273=>600, 1456=>600, 1457=>600, 1458=>600, 1459=>600, 1460=>600, 1461=>600, 1462=>600, 1463=>600, 1464=>600, 1465=>600, 1467=>600, 1468=>600, 1469=>600,
+ 1470=>600, 1471=>600, 1472=>600, 1473=>600, 1474=>600, 1475=>600, 1476=>600, 1488=>600, 1489=>600, 1490=>600, 1491=>600, 1492=>600, 1493=>600, 1494=>600, 1495=>600, 1496=>600,
+ 1497=>600, 1498=>600, 1499=>600, 1500=>600, 1501=>600, 1502=>600, 1503=>600, 1504=>600, 1505=>600, 1506=>600, 1507=>600, 1508=>600, 1509=>600, 1510=>600, 1511=>600, 1512=>600,
+ 1513=>600, 1514=>600, 1520=>600, 1521=>600, 1522=>600, 1523=>600, 1524=>600, 7680=>600, 7681=>600, 7682=>600, 7683=>600, 7684=>600, 7685=>600, 7686=>600, 7687=>600, 7688=>600,
+ 7689=>600, 7690=>600, 7691=>600, 7692=>600, 7693=>600, 7694=>600, 7695=>600, 7696=>600, 7697=>600, 7698=>600, 7699=>600, 7700=>600, 7701=>600, 7702=>600, 7703=>600, 7704=>600,
+ 7705=>600, 7706=>600, 7707=>600, 7708=>600, 7709=>600, 7710=>600, 7711=>600, 7712=>600, 7713=>600, 7714=>600, 7715=>600, 7716=>600, 7717=>600, 7718=>600, 7719=>600, 7720=>600,
+ 7721=>600, 7722=>600, 7723=>600, 7724=>600, 7725=>600, 7726=>600, 7727=>600, 7728=>600, 7729=>600, 7730=>600, 7731=>600, 7732=>600, 7733=>600, 7734=>600, 7735=>600, 7736=>600,
+ 7737=>600, 7738=>600, 7739=>600, 7740=>600, 7741=>600, 7742=>600, 7743=>600, 7744=>600, 7745=>600, 7746=>600, 7747=>600, 7748=>600, 7749=>600, 7750=>600, 7751=>600, 7752=>600,
+ 7753=>600, 7754=>600, 7755=>600, 7756=>600, 7757=>600, 7758=>600, 7759=>600, 7760=>600, 7761=>600, 7762=>600, 7763=>600, 7764=>600, 7765=>600, 7766=>600, 7767=>600, 7768=>600,
+ 7769=>600, 7770=>600, 7771=>600, 7772=>600, 7773=>600, 7774=>600, 7775=>600, 7776=>600, 7777=>600, 7778=>600, 7779=>600, 7780=>600, 7781=>600, 7782=>600, 7783=>600, 7784=>600,
+ 7785=>600, 7786=>600, 7787=>600, 7788=>600, 7789=>600, 7790=>600, 7791=>600, 7792=>600, 7793=>600, 7794=>600, 7795=>600, 7796=>600, 7797=>600, 7798=>600, 7799=>600, 7800=>600,
+ 7801=>600, 7802=>600, 7803=>600, 7804=>600, 7805=>600, 7806=>600, 7807=>600, 7808=>600, 7809=>600, 7810=>600, 7811=>600, 7812=>600, 7813=>600, 7814=>600, 7815=>600, 7816=>600,
+ 7817=>600, 7818=>600, 7819=>600, 7820=>600, 7821=>600, 7822=>600, 7823=>600, 7824=>600, 7825=>600, 7826=>600, 7827=>600, 7828=>600, 7829=>600, 7830=>600, 7831=>600, 7832=>600,
+ 7833=>600, 7835=>600, 7840=>600, 7841=>600, 7842=>600, 7843=>600, 7844=>600, 7845=>600, 7846=>600, 7847=>600, 7848=>600, 7849=>600, 7850=>600, 7851=>600, 7852=>600, 7853=>600,
+ 7854=>600, 7855=>600, 7856=>600, 7857=>600, 7858=>600, 7859=>600, 7860=>600, 7861=>600, 7862=>600, 7863=>600, 7864=>600, 7865=>600, 7866=>600, 7867=>600, 7868=>600, 7869=>600,
+ 7870=>600, 7871=>600, 7872=>600, 7873=>600, 7874=>600, 7875=>600, 7876=>600, 7877=>600, 7878=>600, 7879=>600, 7880=>600, 7881=>600, 7882=>600, 7883=>600, 7884=>600, 7885=>600,
+ 7886=>600, 7887=>600, 7888=>600, 7889=>600, 7890=>600, 7891=>600, 7892=>600, 7893=>600, 7894=>600, 7895=>600, 7896=>600, 7897=>600, 7898=>600, 7899=>600, 7900=>600, 7901=>600,
+ 7902=>600, 7903=>600, 7904=>600, 7905=>600, 7906=>600, 7907=>600, 7908=>600, 7909=>600, 7910=>600, 7911=>600, 7912=>600, 7913=>600, 7914=>600, 7915=>600, 7916=>600, 7917=>600,
+ 7918=>600, 7919=>600, 7920=>600, 7921=>600, 7922=>600, 7923=>600, 7924=>600, 7925=>600, 7926=>600, 7927=>600, 7928=>600, 7929=>600, 8209=>600, 8213=>600, 8219=>600, 8223=>600,
+ 8242=>600, 8243=>600, 8244=>600, 8245=>600, 8246=>600, 8247=>600, 8252=>600, 8260=>600, 8261=>600, 8262=>600, 8264=>600, 8265=>600, 8267=>600, 8292=>600, 8304=>600, 8305=>600,
+ 8306=>600, 8307=>600, 8308=>600, 8309=>600, 8310=>600, 8311=>600, 8312=>600, 8313=>600, 8314=>600, 8315=>600, 8316=>600, 8317=>600, 8318=>600, 8319=>600, 8320=>600, 8321=>600,
+ 8322=>600, 8323=>600, 8324=>600, 8325=>600, 8326=>600, 8327=>600, 8328=>600, 8329=>600, 8355=>600, 8356=>600, 8362=>600, 8466=>600, 8470=>600, 8486=>600, 8487=>600, 8490=>600,
+ 8491=>600, 8531=>600, 8532=>600, 8533=>600, 8534=>600, 8535=>600, 8536=>600, 8537=>600, 8538=>600, 8539=>600, 8540=>600, 8541=>600, 8542=>600, 8543=>600, 8592=>600, 8593=>600,
+ 8594=>600, 8595=>600, 8706=>600, 8709=>600, 8710=>600, 8711=>600, 8721=>600, 8722=>600, 8725=>600, 8730=>600, 8733=>600, 8734=>600, 8735=>600, 8800=>600, 8801=>600, 8804=>600,
+ 8805=>600, 8976=>600, 9472=>600, 9473=>600, 9474=>600, 9475=>600, 9476=>600, 9477=>600, 9478=>600, 9479=>600, 9480=>600, 9481=>600, 9482=>600, 9483=>600, 9484=>600, 9485=>600,
+ 9486=>600, 9487=>600, 9488=>600, 9489=>600, 9490=>600, 9491=>600, 9492=>600, 9493=>600, 9494=>600, 9495=>600, 9496=>600, 9497=>600, 9498=>600, 9499=>600, 9500=>600, 9501=>600,
+ 9502=>600, 9503=>600, 9504=>600, 9505=>600, 9506=>600, 9507=>600, 9508=>600, 9509=>600, 9510=>600, 9511=>600, 9512=>600, 9513=>600, 9514=>600, 9515=>600, 9516=>600, 9517=>600,
+ 9518=>600, 9519=>600, 9520=>600, 9521=>600, 9522=>600, 9523=>600, 9524=>600, 9525=>600, 9526=>600, 9527=>600, 9528=>600, 9529=>600, 9530=>600, 9531=>600, 9532=>600, 9533=>600,
+ 9534=>600, 9535=>600, 9536=>600, 9537=>600, 9538=>600, 9539=>600, 9540=>600, 9541=>600, 9542=>600, 9543=>600, 9544=>600, 9545=>600, 9546=>600, 9547=>600, 9548=>600, 9549=>600,
+ 9550=>600, 9551=>600, 9552=>600, 9553=>600, 9554=>600, 9555=>600, 9556=>600, 9557=>600, 9558=>600, 9559=>600, 9560=>600, 9561=>600, 9562=>600, 9563=>600, 9564=>600, 9565=>600,
+ 9566=>600, 9567=>600, 9568=>600, 9569=>600, 9570=>600, 9571=>600, 9572=>600, 9573=>600, 9574=>600, 9575=>600, 9576=>600, 9577=>600, 9578=>600, 9579=>600, 9580=>600, 9581=>600,
+ 9582=>600, 9583=>600, 9584=>600, 9585=>600, 9586=>600, 9587=>600, 9588=>600, 9589=>600, 9590=>600, 9591=>600, 9592=>600, 9593=>600, 9594=>600, 9595=>600, 9596=>600, 9597=>600,
+ 9598=>600, 9599=>600, 9600=>600, 9601=>600, 9602=>600, 9603=>600, 9604=>600, 9605=>600, 9606=>600, 9607=>600, 9608=>600, 9609=>600, 9610=>600, 9611=>600, 9612=>600, 9613=>600,
+ 9614=>600, 9615=>600, 9616=>600, 9617=>600, 9618=>600, 9619=>600, 9620=>600, 9621=>600, 9632=>600, 9633=>600, 9635=>600, 9636=>600, 9637=>600, 9638=>600, 9639=>600, 9640=>600,
+ 9641=>600, 9642=>600, 9643=>600, 9644=>600, 9645=>600, 9646=>600, 9647=>600, 9648=>600, 9649=>600, 9650=>600, 9651=>600, 9652=>600, 9653=>600, 9654=>600, 9655=>600, 9656=>600,
+ 9657=>600, 9658=>600, 9660=>600, 9661=>600, 9662=>600, 9663=>600, 9664=>600, 9665=>600, 9666=>600, 9667=>600, 9668=>600, 9669=>600, 9670=>600, 9671=>600, 9673=>600, 9674=>600,
+ 9675=>600, 9677=>600, 9679=>600, 9680=>600, 9681=>600, 9682=>600, 9683=>600, 9684=>600, 9685=>600, 9686=>600, 9687=>600, 9688=>600, 9689=>600, 9698=>600, 9699=>600, 9700=>600,
+ 9701=>600, 9702=>600, 9703=>600, 9704=>600, 9705=>600, 9706=>600, 9707=>600, 9708=>600, 9709=>600, 9710=>600, 9712=>600, 9713=>600, 9714=>600, 9715=>600, 9716=>600, 9717=>600,
+ 9718=>600, 9719=>600, 9735=>600, 9736=>600, 9737=>600, 9776=>600, 9777=>600, 9778=>600, 9779=>600, 9780=>600, 9781=>600, 9782=>600, 9783=>600, 9785=>600, 9786=>600, 9787=>600,
+ 9833=>600, 9834=>600, 9835=>600, 9836=>600, 63166=>600, 63171=>600, 64256=>600, 64257=>600, 64258=>600}
font[:enc]='';
font[:diff]='';
font[:file]='FreeMonoBold.z';
diff --git a/lib/plugins/rfpdf/lib/fonts/freemonobi.rb b/lib/plugins/rfpdf/lib/fonts/freemonobi.rb
index 70b3e87be3..eedc22773f 100755
--- a/lib/plugins/rfpdf/lib/fonts/freemonobi.rb
+++ b/lib/plugins/rfpdf/lib/fonts/freemonobi.rb
@@ -6,55 +6,55 @@ TCPDFFontDescriptor.define('freemonobi') do |font|
font[:up]=-100;
font[:ut]=50;
font[:cw]={
- 13=>333, 32=>600, 33=>600, 34=>600, 35=>600, 36=>600, 37=>600, 38=>600, 39=>600, 40=>600, 41=>600, 42=>600, 43=>600, 44=>600, 45=>600, 46=>600,
- 47=>600, 48=>600, 49=>600, 50=>600, 51=>600, 52=>600, 53=>600, 54=>600, 55=>600, 56=>600, 57=>600, 58=>600, 59=>600, 60=>600, 61=>600, 62=>600,
- 63=>600, 64=>600, 65=>600, 66=>600, 67=>600, 68=>600, 69=>600, 70=>600, 71=>600, 72=>600, 73=>600, 74=>600, 75=>600, 76=>600, 77=>600, 78=>600,
- 79=>600, 80=>600, 81=>600, 82=>600, 83=>600, 84=>600, 85=>600, 86=>600, 87=>600, 88=>600, 89=>600, 90=>600, 91=>600, 92=>600, 93=>600, 94=>600,
- 95=>600, 96=>600, 97=>600, 98=>600, 99=>600, 100=>600, 101=>600, 102=>600, 103=>600, 104=>600, 105=>600, 106=>600, 107=>600, 108=>600, 109=>600, 110=>600,
- 111=>600, 112=>600, 113=>600, 114=>600, 115=>600, 116=>600, 117=>600, 118=>600, 119=>600, 120=>600, 121=>600, 122=>600, 123=>600, 124=>600, 125=>600, 126=>600,
- 8364=>600, 1027=>600, 8218=>600, 402=>600, 8222=>600, 8230=>600, 8224=>600, 8225=>600, 710=>600, 8240=>600, 352=>600, 8249=>600, 338=>600, 1036=>600, 381=>600, 1039=>600,
- 8216=>600, 8217=>600, 8220=>600, 8221=>600, 8226=>600, 8211=>600, 8212=>600, 732=>600, 8482=>600, 353=>600, 8250=>600, 339=>600, 1116=>600, 382=>600, 376=>600, 160=>600,
- 161=>600, 162=>600, 163=>600, 164=>600, 165=>600, 166=>600, 167=>600, 168=>600, 169=>600, 170=>600, 171=>600, 172=>600, 173=>600, 174=>600, 175=>600, 176=>600,
- 177=>600, 178=>600, 179=>600, 180=>600, 181=>600, 182=>600, 183=>600, 184=>600, 185=>600, 186=>600, 187=>600, 188=>600, 189=>600, 190=>600, 191=>600, 192=>600,
- 193=>600, 194=>600, 195=>600, 196=>600, 197=>600, 198=>600, 199=>600, 200=>600, 201=>600, 202=>600, 203=>600, 204=>600, 205=>600, 206=>600, 207=>600, 208=>600,
- 209=>600, 210=>600, 211=>600, 212=>600, 213=>600, 214=>600, 215=>600, 216=>600, 217=>600, 218=>600, 219=>600, 220=>600, 221=>600, 222=>600, 223=>600, 224=>600,
- 225=>600, 226=>600, 227=>600, 228=>600, 229=>600, 230=>600, 231=>600, 232=>600, 233=>600, 234=>600, 235=>600, 236=>600, 237=>600, 238=>600, 239=>600, 240=>600,
- 241=>600, 242=>600, 243=>600, 244=>600, 245=>600, 246=>600, 247=>600, 248=>600, 249=>600, 250=>600, 251=>600, 252=>600, 253=>600, 254=>600, 255=>600, 256=>600,
- 257=>600, 258=>600, 259=>600, 260=>600, 261=>600, 262=>600, 263=>600, 264=>600, 265=>600, 266=>600, 267=>600, 268=>600, 269=>600, 270=>600, 271=>600, 272=>600,
- 273=>600, 274=>600, 275=>600, 276=>600, 277=>600, 278=>600, 279=>600, 280=>600, 281=>600, 282=>600, 283=>600, 284=>600, 285=>600, 286=>600, 287=>600, 288=>600,
- 289=>600, 290=>600, 291=>600, 292=>600, 293=>600, 294=>600, 295=>600, 296=>600, 297=>600, 298=>600, 299=>600, 300=>600, 301=>600, 302=>600, 303=>600, 304=>600,
- 305=>600, 306=>600, 307=>600, 308=>600, 309=>600, 310=>600, 311=>600, 312=>600, 313=>600, 314=>600, 315=>600, 316=>600, 317=>600, 318=>600, 319=>600, 320=>600,
- 321=>600, 322=>600, 323=>600, 324=>600, 325=>600, 326=>600, 327=>600, 328=>600, 329=>600, 330=>600, 331=>600, 332=>600, 333=>600, 334=>600, 335=>600, 336=>600,
- 337=>600, 340=>600, 341=>600, 342=>600, 343=>600, 344=>600, 345=>600, 346=>600, 347=>600, 348=>600, 349=>600, 350=>600, 351=>600, 354=>600, 355=>600, 356=>600,
- 357=>600, 358=>600, 359=>600, 360=>600, 361=>600, 362=>600, 363=>600, 364=>600, 365=>600, 366=>600, 367=>600, 368=>600, 369=>600, 370=>600, 371=>600, 372=>600,
- 373=>600, 374=>600, 375=>600, 377=>600, 378=>600, 379=>600, 380=>600, 383=>600, 425=>600, 461=>600, 462=>600, 463=>600, 464=>600, 465=>600, 466=>600, 467=>600,
- 468=>600, 469=>600, 470=>600, 471=>600, 472=>600, 473=>600, 474=>600, 475=>600, 476=>600, 477=>600, 478=>600, 479=>600, 482=>600, 483=>600, 486=>600, 487=>600,
- 488=>600, 489=>600, 490=>600, 491=>600, 492=>600, 493=>600, 496=>600, 500=>600, 501=>600, 504=>600, 505=>600, 506=>600, 507=>600, 508=>600, 509=>600, 510=>600,
- 511=>600, 512=>600, 513=>600, 514=>600, 515=>600, 516=>600, 517=>600, 518=>600, 519=>600, 520=>600, 521=>600, 522=>600, 523=>600, 524=>600, 525=>600, 526=>600,
- 527=>600, 528=>600, 529=>600, 530=>600, 531=>600, 532=>600, 533=>600, 534=>600, 535=>600, 536=>600, 537=>600, 538=>600, 539=>600, 593=>600, 617=>600, 711=>600,
- 728=>600, 729=>0, 730=>600, 731=>600, 733=>600, 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 774=>0, 775=>0, 776=>0, 778=>0, 779=>0, 780=>0,
- 783=>0, 784=>0, 785=>0, 900=>600, 901=>600, 902=>600, 904=>600, 912=>600, 913=>600, 914=>600, 915=>600, 916=>600, 917=>600, 918=>600, 919=>600, 920=>600,
- 921=>600, 922=>600, 923=>600, 924=>600, 925=>600, 926=>600, 927=>600, 928=>600, 929=>600, 931=>600, 932=>600, 933=>600, 934=>600, 935=>600, 936=>600, 937=>600,
- 938=>600, 939=>600, 945=>600, 946=>600, 947=>600, 950=>600, 951=>600, 952=>600, 953=>600, 954=>600, 955=>600, 956=>600, 957=>600, 959=>600, 970=>600, 1024=>600,
- 1025=>600, 1026=>600, 1028=>600, 1029=>600, 1030=>600, 1031=>600, 1032=>600, 1033=>600, 1034=>600, 1035=>600, 1037=>600, 1038=>600, 1040=>600, 1041=>600, 1042=>600, 1043=>600,
- 1044=>600, 1045=>600, 1046=>600, 1047=>600, 1048=>600, 1049=>600, 1050=>600, 1051=>600, 1052=>600, 1053=>600, 1054=>600, 1055=>600, 1056=>600, 1057=>600, 1058=>600, 1059=>600,
- 1060=>600, 1061=>600, 1062=>600, 1063=>600, 1064=>600, 1065=>600, 1066=>600, 1067=>600, 1068=>600, 1069=>600, 1070=>600, 1071=>600, 1072=>600, 1073=>600, 1074=>600, 1075=>600,
- 1076=>600, 1077=>600, 1078=>600, 1079=>600, 1080=>600, 1081=>600, 1082=>600, 1083=>600, 1084=>600, 1085=>600, 1086=>600, 1087=>600, 1088=>600, 1089=>600, 1090=>600, 1091=>600,
- 1092=>600, 1093=>600, 1094=>600, 1095=>600, 1096=>600, 1097=>600, 1098=>600, 1099=>600, 1100=>600, 1101=>600, 1102=>600, 1103=>600, 1104=>600, 1105=>600, 1106=>600, 1107=>600,
- 1108=>600, 1109=>600, 1110=>600, 1111=>600, 1112=>600, 1113=>600, 1114=>600, 1115=>600, 1117=>600, 1118=>600, 1119=>600, 1164=>600, 1165=>600, 1166=>600, 1167=>600, 1168=>600,
- 1169=>600, 1170=>600, 1171=>600, 1172=>600, 1173=>600, 1174=>600, 1175=>600, 1176=>600, 1177=>600, 1178=>600, 1179=>600, 1180=>600, 1181=>600, 1182=>600, 1183=>600, 1184=>600,
- 1185=>600, 1186=>600, 1187=>600, 1188=>600, 1189=>600, 1190=>600, 1191=>600, 1192=>600, 1193=>600, 1194=>600, 1195=>600, 1196=>600, 1197=>600, 1198=>600, 1199=>600, 1200=>600,
- 1201=>600, 1202=>600, 1203=>600, 1204=>600, 1205=>600, 1206=>600, 1207=>600, 1208=>600, 1209=>600, 1210=>600, 1211=>600, 1212=>600, 1213=>600, 1214=>600, 1215=>600, 1216=>600,
- 1217=>600, 1218=>600, 1219=>600, 1220=>600, 1223=>600, 1224=>600, 1227=>600, 1228=>600, 1232=>600, 1233=>600, 1234=>600, 1235=>600, 1236=>600, 1237=>600, 1238=>600, 1239=>600,
- 1240=>600, 1241=>600, 1242=>600, 1243=>600, 1244=>600, 1245=>600, 1246=>600, 1247=>600, 1248=>600, 1249=>600, 1250=>600, 1251=>600, 1252=>600, 1253=>600, 1254=>600, 1255=>600,
- 1256=>600, 1257=>600, 1258=>600, 1259=>600, 1260=>600, 1261=>600, 1262=>600, 1263=>600, 1264=>600, 1265=>600, 1266=>600, 1267=>600, 1268=>600, 1269=>600, 1272=>600, 1273=>600,
- 1456=>600, 1457=>600, 1458=>600, 1459=>600, 1460=>600, 1461=>600, 1462=>600, 1463=>600, 1464=>600, 1465=>600, 1467=>600, 1468=>600, 1469=>600, 1470=>600, 1471=>600, 1472=>600,
- 1473=>600, 1474=>600, 1475=>600, 1476=>600, 1488=>600, 1489=>600, 1490=>600, 1491=>600, 1492=>600, 1493=>600, 1494=>600, 1495=>600, 1496=>600, 1497=>600, 1498=>600, 1499=>600,
- 1500=>600, 1501=>600, 1502=>600, 1503=>600, 1504=>600, 1505=>600, 1506=>600, 1507=>600, 1508=>600, 1509=>600, 1510=>600, 1511=>600, 1512=>600, 1513=>600, 1514=>600, 1520=>600,
- 1521=>600, 1522=>600, 1523=>600, 1524=>600, 8213=>600, 8260=>600, 8304=>600, 8305=>600, 8306=>600, 8307=>600, 8308=>600, 8309=>600, 8310=>600, 8311=>600, 8312=>600, 8313=>600,
- 8320=>600, 8321=>600, 8322=>600, 8323=>600, 8324=>600, 8325=>600, 8326=>600, 8327=>600, 8328=>600, 8329=>600, 8362=>600, 8470=>600, 8486=>600, 8531=>600, 8532=>600, 8533=>600,
- 8534=>600, 8535=>600, 8536=>600, 8537=>600, 8538=>600, 8539=>600, 8540=>600, 8541=>600, 8542=>600, 8543=>600, 8592=>600, 8593=>600, 8594=>600, 8595=>600, 8706=>600, 8710=>600,
- 8721=>600, 8722=>600, 8730=>600, 8734=>600, 8800=>600, 8804=>600, 8805=>600, 9674=>600, 9833=>600, 9834=>600, 9835=>600, 9836=>600, 63166=>600, 63171=>600, 64257=>600, 64258=>600}
+ 13=>333, 32=>600, 33=>600, 34=>600, 35=>600, 36=>600, 37=>600, 38=>600, 39=>600, 40=>600, 41=>600, 42=>600, 43=>600, 44=>600, 45=>600, 46=>600,
+ 47=>600, 48=>600, 49=>600, 50=>600, 51=>600, 52=>600, 53=>600, 54=>600, 55=>600, 56=>600, 57=>600, 58=>600, 59=>600, 60=>600, 61=>600, 62=>600,
+ 63=>600, 64=>600, 65=>600, 66=>600, 67=>600, 68=>600, 69=>600, 70=>600, 71=>600, 72=>600, 73=>600, 74=>600, 75=>600, 76=>600, 77=>600, 78=>600,
+ 79=>600, 80=>600, 81=>600, 82=>600, 83=>600, 84=>600, 85=>600, 86=>600, 87=>600, 88=>600, 89=>600, 90=>600, 91=>600, 92=>600, 93=>600, 94=>600,
+ 95=>600, 96=>600, 97=>600, 98=>600, 99=>600, 100=>600, 101=>600, 102=>600, 103=>600, 104=>600, 105=>600, 106=>600, 107=>600, 108=>600, 109=>600, 110=>600,
+ 111=>600, 112=>600, 113=>600, 114=>600, 115=>600, 116=>600, 117=>600, 118=>600, 119=>600, 120=>600, 121=>600, 122=>600, 123=>600, 124=>600, 125=>600, 126=>600,
+ 8364=>600, 1027=>600, 8218=>600, 402=>600, 8222=>600, 8230=>600, 8224=>600, 8225=>600, 710=>600, 8240=>600, 352=>600, 8249=>600, 338=>600, 1036=>600, 381=>600, 1039=>600,
+ 8216=>600, 8217=>600, 8220=>600, 8221=>600, 8226=>600, 8211=>600, 8212=>600, 732=>600, 8482=>600, 353=>600, 8250=>600, 339=>600, 1116=>600, 382=>600, 376=>600, 160=>600,
+ 161=>600, 162=>600, 163=>600, 164=>600, 165=>600, 166=>600, 167=>600, 168=>600, 169=>600, 170=>600, 171=>600, 172=>600, 173=>600, 174=>600, 175=>600, 176=>600,
+ 177=>600, 178=>600, 179=>600, 180=>600, 181=>600, 182=>600, 183=>600, 184=>600, 185=>600, 186=>600, 187=>600, 188=>600, 189=>600, 190=>600, 191=>600, 192=>600,
+ 193=>600, 194=>600, 195=>600, 196=>600, 197=>600, 198=>600, 199=>600, 200=>600, 201=>600, 202=>600, 203=>600, 204=>600, 205=>600, 206=>600, 207=>600, 208=>600,
+ 209=>600, 210=>600, 211=>600, 212=>600, 213=>600, 214=>600, 215=>600, 216=>600, 217=>600, 218=>600, 219=>600, 220=>600, 221=>600, 222=>600, 223=>600, 224=>600,
+ 225=>600, 226=>600, 227=>600, 228=>600, 229=>600, 230=>600, 231=>600, 232=>600, 233=>600, 234=>600, 235=>600, 236=>600, 237=>600, 238=>600, 239=>600, 240=>600,
+ 241=>600, 242=>600, 243=>600, 244=>600, 245=>600, 246=>600, 247=>600, 248=>600, 249=>600, 250=>600, 251=>600, 252=>600, 253=>600, 254=>600, 255=>600, 256=>600,
+ 257=>600, 258=>600, 259=>600, 260=>600, 261=>600, 262=>600, 263=>600, 264=>600, 265=>600, 266=>600, 267=>600, 268=>600, 269=>600, 270=>600, 271=>600, 272=>600,
+ 273=>600, 274=>600, 275=>600, 276=>600, 277=>600, 278=>600, 279=>600, 280=>600, 281=>600, 282=>600, 283=>600, 284=>600, 285=>600, 286=>600, 287=>600, 288=>600,
+ 289=>600, 290=>600, 291=>600, 292=>600, 293=>600, 294=>600, 295=>600, 296=>600, 297=>600, 298=>600, 299=>600, 300=>600, 301=>600, 302=>600, 303=>600, 304=>600,
+ 305=>600, 306=>600, 307=>600, 308=>600, 309=>600, 310=>600, 311=>600, 312=>600, 313=>600, 314=>600, 315=>600, 316=>600, 317=>600, 318=>600, 319=>600, 320=>600,
+ 321=>600, 322=>600, 323=>600, 324=>600, 325=>600, 326=>600, 327=>600, 328=>600, 329=>600, 330=>600, 331=>600, 332=>600, 333=>600, 334=>600, 335=>600, 336=>600,
+ 337=>600, 340=>600, 341=>600, 342=>600, 343=>600, 344=>600, 345=>600, 346=>600, 347=>600, 348=>600, 349=>600, 350=>600, 351=>600, 354=>600, 355=>600, 356=>600,
+ 357=>600, 358=>600, 359=>600, 360=>600, 361=>600, 362=>600, 363=>600, 364=>600, 365=>600, 366=>600, 367=>600, 368=>600, 369=>600, 370=>600, 371=>600, 372=>600,
+ 373=>600, 374=>600, 375=>600, 377=>600, 378=>600, 379=>600, 380=>600, 383=>600, 425=>600, 461=>600, 462=>600, 463=>600, 464=>600, 465=>600, 466=>600, 467=>600,
+ 468=>600, 469=>600, 470=>600, 471=>600, 472=>600, 473=>600, 474=>600, 475=>600, 476=>600, 477=>600, 478=>600, 479=>600, 482=>600, 483=>600, 486=>600, 487=>600,
+ 488=>600, 489=>600, 490=>600, 491=>600, 492=>600, 493=>600, 496=>600, 500=>600, 501=>600, 504=>600, 505=>600, 506=>600, 507=>600, 508=>600, 509=>600, 510=>600,
+ 511=>600, 512=>600, 513=>600, 514=>600, 515=>600, 516=>600, 517=>600, 518=>600, 519=>600, 520=>600, 521=>600, 522=>600, 523=>600, 524=>600, 525=>600, 526=>600,
+ 527=>600, 528=>600, 529=>600, 530=>600, 531=>600, 532=>600, 533=>600, 534=>600, 535=>600, 536=>600, 537=>600, 538=>600, 539=>600, 593=>600, 617=>600, 711=>600,
+ 728=>600, 729=>0, 730=>600, 731=>600, 733=>600, 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 774=>0, 775=>0, 776=>0, 778=>0, 779=>0, 780=>0,
+ 783=>0, 784=>0, 785=>0, 900=>600, 901=>600, 902=>600, 904=>600, 912=>600, 913=>600, 914=>600, 915=>600, 916=>600, 917=>600, 918=>600, 919=>600, 920=>600,
+ 921=>600, 922=>600, 923=>600, 924=>600, 925=>600, 926=>600, 927=>600, 928=>600, 929=>600, 931=>600, 932=>600, 933=>600, 934=>600, 935=>600, 936=>600, 937=>600,
+ 938=>600, 939=>600, 945=>600, 946=>600, 947=>600, 950=>600, 951=>600, 952=>600, 953=>600, 954=>600, 955=>600, 956=>600, 957=>600, 959=>600, 970=>600, 1024=>600,
+ 1025=>600, 1026=>600, 1028=>600, 1029=>600, 1030=>600, 1031=>600, 1032=>600, 1033=>600, 1034=>600, 1035=>600, 1037=>600, 1038=>600, 1040=>600, 1041=>600, 1042=>600, 1043=>600,
+ 1044=>600, 1045=>600, 1046=>600, 1047=>600, 1048=>600, 1049=>600, 1050=>600, 1051=>600, 1052=>600, 1053=>600, 1054=>600, 1055=>600, 1056=>600, 1057=>600, 1058=>600, 1059=>600,
+ 1060=>600, 1061=>600, 1062=>600, 1063=>600, 1064=>600, 1065=>600, 1066=>600, 1067=>600, 1068=>600, 1069=>600, 1070=>600, 1071=>600, 1072=>600, 1073=>600, 1074=>600, 1075=>600,
+ 1076=>600, 1077=>600, 1078=>600, 1079=>600, 1080=>600, 1081=>600, 1082=>600, 1083=>600, 1084=>600, 1085=>600, 1086=>600, 1087=>600, 1088=>600, 1089=>600, 1090=>600, 1091=>600,
+ 1092=>600, 1093=>600, 1094=>600, 1095=>600, 1096=>600, 1097=>600, 1098=>600, 1099=>600, 1100=>600, 1101=>600, 1102=>600, 1103=>600, 1104=>600, 1105=>600, 1106=>600, 1107=>600,
+ 1108=>600, 1109=>600, 1110=>600, 1111=>600, 1112=>600, 1113=>600, 1114=>600, 1115=>600, 1117=>600, 1118=>600, 1119=>600, 1164=>600, 1165=>600, 1166=>600, 1167=>600, 1168=>600,
+ 1169=>600, 1170=>600, 1171=>600, 1172=>600, 1173=>600, 1174=>600, 1175=>600, 1176=>600, 1177=>600, 1178=>600, 1179=>600, 1180=>600, 1181=>600, 1182=>600, 1183=>600, 1184=>600,
+ 1185=>600, 1186=>600, 1187=>600, 1188=>600, 1189=>600, 1190=>600, 1191=>600, 1192=>600, 1193=>600, 1194=>600, 1195=>600, 1196=>600, 1197=>600, 1198=>600, 1199=>600, 1200=>600,
+ 1201=>600, 1202=>600, 1203=>600, 1204=>600, 1205=>600, 1206=>600, 1207=>600, 1208=>600, 1209=>600, 1210=>600, 1211=>600, 1212=>600, 1213=>600, 1214=>600, 1215=>600, 1216=>600,
+ 1217=>600, 1218=>600, 1219=>600, 1220=>600, 1223=>600, 1224=>600, 1227=>600, 1228=>600, 1232=>600, 1233=>600, 1234=>600, 1235=>600, 1236=>600, 1237=>600, 1238=>600, 1239=>600,
+ 1240=>600, 1241=>600, 1242=>600, 1243=>600, 1244=>600, 1245=>600, 1246=>600, 1247=>600, 1248=>600, 1249=>600, 1250=>600, 1251=>600, 1252=>600, 1253=>600, 1254=>600, 1255=>600,
+ 1256=>600, 1257=>600, 1258=>600, 1259=>600, 1260=>600, 1261=>600, 1262=>600, 1263=>600, 1264=>600, 1265=>600, 1266=>600, 1267=>600, 1268=>600, 1269=>600, 1272=>600, 1273=>600,
+ 1456=>600, 1457=>600, 1458=>600, 1459=>600, 1460=>600, 1461=>600, 1462=>600, 1463=>600, 1464=>600, 1465=>600, 1467=>600, 1468=>600, 1469=>600, 1470=>600, 1471=>600, 1472=>600,
+ 1473=>600, 1474=>600, 1475=>600, 1476=>600, 1488=>600, 1489=>600, 1490=>600, 1491=>600, 1492=>600, 1493=>600, 1494=>600, 1495=>600, 1496=>600, 1497=>600, 1498=>600, 1499=>600,
+ 1500=>600, 1501=>600, 1502=>600, 1503=>600, 1504=>600, 1505=>600, 1506=>600, 1507=>600, 1508=>600, 1509=>600, 1510=>600, 1511=>600, 1512=>600, 1513=>600, 1514=>600, 1520=>600,
+ 1521=>600, 1522=>600, 1523=>600, 1524=>600, 8213=>600, 8260=>600, 8304=>600, 8305=>600, 8306=>600, 8307=>600, 8308=>600, 8309=>600, 8310=>600, 8311=>600, 8312=>600, 8313=>600,
+ 8320=>600, 8321=>600, 8322=>600, 8323=>600, 8324=>600, 8325=>600, 8326=>600, 8327=>600, 8328=>600, 8329=>600, 8362=>600, 8470=>600, 8486=>600, 8531=>600, 8532=>600, 8533=>600,
+ 8534=>600, 8535=>600, 8536=>600, 8537=>600, 8538=>600, 8539=>600, 8540=>600, 8541=>600, 8542=>600, 8543=>600, 8592=>600, 8593=>600, 8594=>600, 8595=>600, 8706=>600, 8710=>600,
+ 8721=>600, 8722=>600, 8730=>600, 8734=>600, 8800=>600, 8804=>600, 8805=>600, 9674=>600, 9833=>600, 9834=>600, 9835=>600, 9836=>600, 63166=>600, 63171=>600, 64257=>600, 64258=>600}
font[:enc]='';
font[:diff]='';
font[:file]='FreeMonoBoldOblique.z';
diff --git a/lib/plugins/rfpdf/lib/fonts/freemonoi.rb b/lib/plugins/rfpdf/lib/fonts/freemonoi.rb
index 4967c6c42c..34abe7e5cb 100755
--- a/lib/plugins/rfpdf/lib/fonts/freemonoi.rb
+++ b/lib/plugins/rfpdf/lib/fonts/freemonoi.rb
@@ -6,82 +6,82 @@ TCPDFFontDescriptor.define('freemonoi') do |font|
font[:up]=-100;
font[:ut]=50;
font[:cw]={
- 13=>333, 32=>600, 33=>600, 34=>600, 35=>600, 36=>600, 37=>600, 38=>600, 39=>600, 40=>600, 41=>600, 42=>600, 43=>600, 44=>600, 45=>600, 46=>600,
- 47=>600, 48=>600, 49=>600, 50=>600, 51=>600, 52=>600, 53=>600, 54=>600, 55=>600, 56=>600, 57=>600, 58=>600, 59=>600, 60=>600, 61=>600, 62=>600,
- 63=>600, 64=>600, 65=>600, 66=>600, 67=>600, 68=>600, 69=>600, 70=>600, 71=>600, 72=>600, 73=>600, 74=>600, 75=>600, 76=>600, 77=>600, 78=>600,
- 79=>600, 80=>600, 81=>600, 82=>600, 83=>600, 84=>600, 85=>600, 86=>600, 87=>600, 88=>600, 89=>600, 90=>600, 91=>600, 92=>600, 93=>600, 94=>600,
- 95=>600, 96=>600, 97=>600, 98=>600, 99=>600, 100=>600, 101=>600, 102=>600, 103=>600, 104=>600, 105=>600, 106=>600, 107=>600, 108=>600, 109=>600, 110=>600,
- 111=>600, 112=>600, 113=>600, 114=>600, 115=>600, 116=>600, 117=>600, 118=>600, 119=>600, 120=>600, 121=>600, 122=>600, 123=>600, 124=>600, 125=>600, 126=>600,
- 8364=>600, 1027=>600, 8218=>600, 402=>600, 8222=>600, 8230=>600, 8224=>600, 8225=>600, 710=>600, 8240=>600, 352=>600, 8249=>600, 338=>600, 1036=>600, 381=>600, 1039=>600,
- 8216=>600, 8217=>600, 8220=>600, 8221=>600, 8226=>600, 8211=>600, 8212=>600, 732=>600, 8482=>600, 353=>600, 8250=>600, 339=>600, 1116=>600, 382=>600, 376=>600, 160=>600,
- 161=>600, 162=>600, 163=>600, 164=>600, 165=>600, 166=>600, 167=>600, 168=>600, 169=>600, 170=>600, 171=>600, 172=>600, 173=>600, 174=>600, 175=>600, 176=>600,
- 177=>600, 178=>600, 179=>600, 180=>600, 181=>600, 182=>600, 183=>600, 184=>600, 185=>600, 186=>600, 187=>600, 188=>600, 189=>600, 190=>600, 191=>600, 192=>600,
- 193=>600, 194=>600, 195=>600, 196=>600, 197=>600, 198=>600, 199=>600, 200=>600, 201=>600, 202=>600, 203=>600, 204=>600, 205=>600, 206=>600, 207=>600, 208=>600,
- 209=>600, 210=>600, 211=>600, 212=>600, 213=>600, 214=>600, 215=>600, 216=>600, 217=>600, 218=>600, 219=>600, 220=>600, 221=>600, 222=>600, 223=>600, 224=>600,
- 225=>600, 226=>600, 227=>600, 228=>600, 229=>600, 230=>600, 231=>600, 232=>600, 233=>600, 234=>600, 235=>600, 236=>600, 237=>600, 238=>600, 239=>600, 240=>600,
- 241=>600, 242=>600, 243=>600, 244=>600, 245=>600, 246=>600, 247=>600, 248=>600, 249=>600, 250=>600, 251=>600, 252=>600, 253=>600, 254=>600, 255=>600, 256=>600,
- 257=>600, 258=>600, 259=>600, 260=>600, 261=>600, 262=>600, 263=>600, 264=>600, 265=>600, 266=>600, 267=>600, 268=>600, 269=>600, 270=>600, 271=>600, 272=>600,
- 273=>600, 274=>600, 275=>600, 276=>600, 277=>600, 278=>600, 279=>600, 280=>600, 281=>600, 282=>600, 283=>600, 284=>600, 285=>600, 286=>600, 287=>600, 288=>600,
- 289=>600, 290=>600, 291=>600, 292=>600, 293=>600, 294=>600, 295=>600, 296=>600, 297=>600, 298=>600, 299=>600, 300=>600, 301=>600, 302=>600, 303=>600, 304=>600,
- 305=>600, 306=>600, 307=>600, 308=>600, 309=>600, 310=>600, 311=>600, 312=>600, 313=>600, 314=>600, 315=>600, 316=>600, 317=>600, 318=>600, 319=>600, 320=>600,
- 321=>600, 322=>600, 323=>600, 324=>600, 325=>600, 326=>600, 327=>600, 328=>600, 329=>600, 330=>600, 331=>600, 332=>600, 333=>600, 334=>600, 335=>600, 336=>600,
- 337=>600, 340=>600, 341=>600, 342=>600, 343=>600, 344=>600, 345=>600, 346=>600, 347=>600, 348=>600, 349=>600, 350=>600, 351=>600, 354=>600, 355=>600, 356=>600,
- 357=>600, 358=>600, 359=>600, 360=>600, 361=>600, 362=>600, 363=>600, 364=>600, 365=>600, 366=>600, 367=>600, 368=>600, 369=>600, 370=>600, 371=>600, 372=>600,
- 373=>600, 374=>600, 375=>600, 377=>600, 378=>600, 379=>600, 380=>600, 383=>600, 384=>600, 385=>600, 386=>600, 387=>600, 388=>600, 389=>600, 390=>600, 391=>600,
- 392=>600, 393=>600, 394=>600, 395=>600, 396=>600, 397=>600, 398=>600, 399=>600, 400=>600, 401=>600, 403=>600, 404=>600, 405=>600, 406=>600, 407=>600, 408=>600,
- 409=>600, 410=>600, 411=>600, 412=>600, 413=>600, 414=>600, 415=>600, 416=>600, 417=>600, 418=>600, 419=>600, 420=>600, 421=>600, 422=>600, 423=>600, 424=>600,
- 425=>600, 426=>600, 427=>600, 428=>600, 429=>600, 430=>600, 431=>600, 432=>600, 433=>600, 434=>600, 435=>600, 436=>600, 437=>600, 438=>600, 439=>600, 440=>600,
- 441=>600, 442=>600, 443=>600, 444=>600, 445=>600, 446=>600, 448=>600, 449=>600, 450=>600, 451=>600, 452=>600, 453=>600, 454=>600, 455=>600, 456=>600, 457=>600,
- 458=>600, 459=>600, 460=>600, 461=>600, 462=>600, 463=>600, 464=>600, 465=>600, 466=>600, 467=>600, 468=>600, 469=>600, 470=>600, 471=>600, 472=>600, 473=>600,
- 474=>600, 475=>600, 476=>600, 477=>600, 478=>600, 479=>600, 480=>600, 481=>600, 482=>600, 483=>600, 484=>600, 485=>600, 486=>600, 487=>600, 488=>600, 489=>600,
- 490=>600, 491=>600, 492=>600, 493=>600, 494=>600, 495=>600, 496=>600, 497=>600, 498=>600, 499=>600, 500=>600, 501=>600, 502=>600, 504=>600, 505=>600, 506=>600,
- 507=>600, 508=>600, 509=>600, 510=>600, 511=>600, 512=>600, 513=>600, 514=>600, 515=>600, 516=>600, 517=>600, 518=>600, 519=>600, 520=>600, 521=>600, 522=>600,
- 523=>600, 524=>600, 525=>600, 526=>600, 527=>600, 528=>600, 529=>600, 530=>600, 531=>600, 532=>600, 533=>600, 534=>600, 535=>600, 536=>600, 537=>600, 538=>600,
- 539=>600, 542=>600, 543=>600, 548=>600, 549=>600, 550=>600, 551=>600, 552=>600, 553=>600, 554=>600, 555=>600, 556=>600, 557=>600, 558=>600, 559=>600, 560=>600,
- 561=>600, 562=>600, 563=>600, 592=>600, 593=>600, 594=>600, 595=>600, 596=>600, 597=>600, 598=>600, 599=>600, 600=>600, 601=>600, 602=>600, 603=>600, 604=>600,
- 605=>600, 606=>600, 607=>600, 608=>600, 609=>600, 610=>600, 611=>600, 612=>600, 613=>600, 614=>600, 615=>600, 616=>600, 617=>600, 618=>600, 619=>600, 620=>600,
- 621=>600, 622=>600, 623=>600, 624=>600, 625=>600, 626=>600, 627=>600, 628=>600, 629=>600, 630=>600, 631=>600, 632=>600, 633=>600, 634=>600, 635=>600, 636=>600,
- 637=>600, 638=>600, 639=>600, 640=>600, 641=>600, 642=>600, 643=>600, 644=>600, 645=>600, 646=>600, 647=>600, 648=>600, 649=>600, 650=>600, 651=>600, 652=>600,
- 653=>600, 654=>600, 655=>600, 656=>600, 657=>600, 658=>600, 659=>600, 660=>600, 661=>600, 662=>600, 663=>600, 664=>600, 665=>600, 666=>600, 667=>600, 668=>600,
- 669=>600, 670=>600, 671=>600, 672=>600, 673=>600, 674=>600, 711=>600, 712=>600, 713=>600, 714=>600, 715=>600, 728=>600, 729=>600, 730=>600, 731=>600, 733=>600,
- 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0, 780=>0, 781=>0, 782=>0, 783=>0,
- 807=>0, 808=>0, 821=>0, 822=>0, 823=>0, 824=>0, 901=>600, 902=>600, 904=>600, 905=>600, 906=>600, 908=>600, 910=>600, 911=>600, 912=>600, 913=>600,
- 914=>600, 915=>600, 916=>600, 917=>600, 918=>600, 919=>600, 920=>600, 921=>600, 922=>600, 923=>600, 924=>600, 925=>600, 926=>600, 927=>600, 928=>600, 929=>600,
- 931=>600, 932=>600, 933=>600, 934=>600, 935=>600, 936=>600, 937=>600, 938=>600, 939=>600, 940=>600, 941=>600, 942=>600, 943=>600, 944=>600, 945=>600, 946=>600,
- 947=>600, 948=>600, 949=>600, 950=>600, 951=>600, 952=>600, 953=>600, 954=>600, 955=>600, 956=>600, 957=>600, 958=>600, 959=>600, 960=>600, 961=>600, 962=>600,
- 963=>600, 964=>600, 965=>600, 966=>600, 967=>600, 968=>600, 969=>600, 970=>600, 971=>600, 972=>600, 973=>600, 974=>600, 1024=>600, 1025=>600, 1026=>600, 1028=>600,
- 1029=>600, 1030=>600, 1031=>600, 1032=>600, 1033=>600, 1034=>600, 1035=>600, 1037=>600, 1038=>600, 1040=>600, 1041=>600, 1042=>600, 1043=>600, 1044=>600, 1045=>600, 1046=>600,
- 1047=>600, 1048=>600, 1049=>600, 1050=>600, 1051=>600, 1052=>600, 1053=>600, 1054=>600, 1055=>600, 1056=>600, 1057=>600, 1058=>600, 1059=>600, 1060=>600, 1061=>600, 1062=>600,
- 1063=>600, 1064=>600, 1065=>600, 1066=>600, 1067=>600, 1068=>600, 1069=>600, 1070=>600, 1071=>600, 1072=>600, 1073=>600, 1074=>600, 1075=>600, 1076=>600, 1077=>600, 1078=>600,
- 1079=>600, 1080=>600, 1081=>600, 1082=>600, 1083=>600, 1084=>600, 1085=>600, 1086=>600, 1087=>600, 1088=>600, 1089=>600, 1090=>600, 1091=>600, 1092=>600, 1093=>600, 1094=>600,
- 1095=>600, 1096=>600, 1097=>600, 1098=>600, 1099=>600, 1100=>600, 1101=>600, 1102=>600, 1103=>600, 1104=>600, 1105=>600, 1106=>600, 1107=>600, 1108=>600, 1109=>600, 1110=>600,
- 1111=>600, 1112=>600, 1113=>600, 1114=>600, 1115=>600, 1117=>600, 1118=>600, 1119=>600, 1164=>600, 1165=>600, 1166=>600, 1167=>600, 1168=>600, 1169=>600, 1170=>600, 1171=>600,
- 1172=>600, 1173=>600, 1174=>600, 1175=>600, 1176=>600, 1177=>600, 1178=>600, 1179=>600, 1180=>600, 1181=>600, 1182=>600, 1183=>600, 1184=>600, 1185=>600, 1186=>600, 1187=>600,
- 1188=>600, 1189=>600, 1190=>600, 1191=>600, 1192=>600, 1193=>600, 1194=>600, 1195=>600, 1196=>600, 1197=>600, 1198=>600, 1199=>600, 1200=>600, 1201=>600, 1202=>600, 1203=>600,
- 1204=>600, 1205=>600, 1206=>600, 1207=>600, 1208=>600, 1209=>600, 1210=>600, 1211=>600, 1212=>600, 1213=>600, 1214=>600, 1215=>600, 1216=>600, 1217=>600, 1218=>600, 1219=>600,
- 1220=>600, 1223=>600, 1224=>600, 1227=>600, 1228=>600, 1232=>600, 1233=>600, 1234=>600, 1235=>600, 1236=>600, 1237=>600, 1238=>600, 1239=>600, 1240=>600, 1241=>600, 1242=>600,
- 1243=>600, 1244=>600, 1245=>600, 1246=>600, 1247=>600, 1248=>600, 1249=>600, 1250=>600, 1251=>600, 1252=>600, 1253=>600, 1254=>600, 1255=>600, 1256=>600, 1257=>600, 1258=>600,
- 1259=>600, 1260=>600, 1261=>600, 1262=>600, 1263=>600, 1264=>600, 1265=>600, 1266=>600, 1267=>600, 1268=>600, 1269=>600, 1272=>600, 1273=>600, 1328=>600, 1329=>600, 1330=>600,
- 1331=>600, 1332=>600, 1333=>600, 1334=>600, 1335=>600, 1336=>600, 1337=>600, 1338=>600, 1339=>600, 1340=>600, 1341=>600, 1342=>600, 1343=>600, 1344=>600, 1345=>600, 1346=>600,
- 1347=>600, 1348=>600, 1349=>600, 1350=>600, 1351=>600, 1352=>600, 1353=>600, 1354=>600, 1355=>600, 1356=>600, 1357=>600, 1358=>600, 1359=>600, 1360=>600, 1361=>600, 1362=>600,
- 1363=>600, 1364=>600, 1365=>600, 1366=>600, 1367=>600, 1368=>600, 1369=>600, 1370=>600, 1371=>600, 1372=>600, 1373=>600, 1374=>600, 1375=>600, 1376=>600, 1377=>600, 1378=>600,
- 1379=>600, 1380=>600, 1381=>600, 1382=>600, 1383=>600, 1384=>600, 1385=>600, 1386=>600, 1387=>600, 1388=>600, 1389=>600, 1390=>600, 1391=>600, 1392=>600, 1393=>600, 1394=>600,
- 1395=>600, 1396=>600, 1397=>600, 1398=>600, 1399=>600, 1400=>600, 1401=>600, 1402=>600, 1403=>600, 1404=>600, 1405=>600, 1406=>600, 1407=>600, 1408=>600, 1409=>600, 1410=>600,
- 1411=>600, 1412=>600, 1413=>600, 1414=>600, 1415=>600, 1416=>600, 1417=>600, 1418=>600, 1456=>600, 1457=>600, 1458=>600, 1459=>600, 1460=>600, 1461=>600, 1462=>600, 1463=>600,
- 1464=>600, 1465=>600, 1467=>600, 1468=>600, 1469=>600, 1470=>600, 1471=>600, 1472=>600, 1473=>600, 1474=>600, 1475=>600, 1476=>600, 1488=>600, 1489=>600, 1490=>600, 1491=>600,
- 1492=>600, 1493=>600, 1494=>600, 1495=>600, 1496=>600, 1497=>600, 1498=>600, 1499=>600, 1500=>600, 1501=>600, 1502=>600, 1503=>600, 1504=>600, 1505=>600, 1506=>600, 1507=>600,
- 1508=>600, 1509=>600, 1510=>600, 1511=>600, 1512=>600, 1513=>600, 1514=>600, 1520=>600, 1521=>600, 1522=>600, 1523=>600, 1524=>600, 8213=>600, 8241=>600, 8242=>600, 8243=>600,
- 8244=>600, 8245=>600, 8246=>600, 8247=>600, 8252=>600, 8253=>600, 8260=>600, 8261=>600, 8262=>600, 8263=>600, 8264=>600, 8265=>600, 8304=>600, 8305=>600, 8306=>600, 8307=>600,
- 8308=>600, 8309=>600, 8310=>600, 8311=>600, 8312=>600, 8313=>600, 8314=>600, 8315=>600, 8316=>600, 8317=>600, 8318=>600, 8319=>600, 8320=>600, 8321=>600, 8322=>600, 8323=>600,
- 8324=>600, 8325=>600, 8326=>600, 8327=>600, 8328=>600, 8329=>600, 8356=>600, 8362=>600, 8448=>600, 8449=>600, 8450=>600, 8451=>600, 8452=>600, 8453=>600, 8454=>600, 8455=>600,
- 8456=>600, 8457=>600, 8458=>600, 8459=>600, 8460=>600, 8461=>600, 8462=>600, 8463=>600, 8464=>600, 8465=>600, 8466=>600, 8467=>600, 8468=>600, 8469=>600, 8470=>600, 8471=>600,
- 8472=>600, 8473=>600, 8474=>600, 8475=>600, 8476=>600, 8477=>600, 8478=>600, 8479=>600, 8484=>600, 8486=>600, 8487=>600, 8490=>600, 8491=>600, 8531=>600, 8532=>600, 8533=>600,
- 8534=>600, 8535=>600, 8536=>600, 8537=>600, 8538=>600, 8539=>600, 8540=>600, 8541=>600, 8542=>600, 8543=>600, 8592=>600, 8593=>600, 8594=>600, 8595=>600, 8596=>600, 8597=>600,
- 8598=>600, 8599=>600, 8600=>600, 8601=>600, 8616=>600, 8706=>600, 8710=>600, 8721=>600, 8722=>600, 8730=>600, 8734=>600, 8800=>600, 8804=>600, 8805=>600, 9674=>600, 9833=>600,
- 9834=>600, 9835=>600, 9836=>600, 9837=>600, 9838=>600, 9839=>600, 63171=>600, 64257=>600, 64258=>600, 64285=>600, 64286=>600, 64287=>600, 64288=>600, 64289=>600, 64290=>600, 64291=>600,
- 64292=>600, 64293=>600, 64294=>600, 64295=>600, 64296=>600, 64297=>600, 64298=>600, 64299=>600, 64300=>600, 64301=>600, 64302=>600, 64303=>600, 64304=>600, 64305=>600, 64306=>600, 64307=>600,
- 64308=>600, 64309=>600, 64310=>600, 64312=>600, 64313=>600, 64314=>600, 64315=>600, 64316=>600, 64318=>600, 64320=>600, 64321=>600, 64323=>600, 64324=>600, 64326=>600, 64327=>600, 64328=>600,
- 64329=>600, 64330=>600, 64331=>600, 64332=>600, 64333=>600, 64334=>600, 64335=>600}
+ 13=>333, 32=>600, 33=>600, 34=>600, 35=>600, 36=>600, 37=>600, 38=>600, 39=>600, 40=>600, 41=>600, 42=>600, 43=>600, 44=>600, 45=>600, 46=>600,
+ 47=>600, 48=>600, 49=>600, 50=>600, 51=>600, 52=>600, 53=>600, 54=>600, 55=>600, 56=>600, 57=>600, 58=>600, 59=>600, 60=>600, 61=>600, 62=>600,
+ 63=>600, 64=>600, 65=>600, 66=>600, 67=>600, 68=>600, 69=>600, 70=>600, 71=>600, 72=>600, 73=>600, 74=>600, 75=>600, 76=>600, 77=>600, 78=>600,
+ 79=>600, 80=>600, 81=>600, 82=>600, 83=>600, 84=>600, 85=>600, 86=>600, 87=>600, 88=>600, 89=>600, 90=>600, 91=>600, 92=>600, 93=>600, 94=>600,
+ 95=>600, 96=>600, 97=>600, 98=>600, 99=>600, 100=>600, 101=>600, 102=>600, 103=>600, 104=>600, 105=>600, 106=>600, 107=>600, 108=>600, 109=>600, 110=>600,
+ 111=>600, 112=>600, 113=>600, 114=>600, 115=>600, 116=>600, 117=>600, 118=>600, 119=>600, 120=>600, 121=>600, 122=>600, 123=>600, 124=>600, 125=>600, 126=>600,
+ 8364=>600, 1027=>600, 8218=>600, 402=>600, 8222=>600, 8230=>600, 8224=>600, 8225=>600, 710=>600, 8240=>600, 352=>600, 8249=>600, 338=>600, 1036=>600, 381=>600, 1039=>600,
+ 8216=>600, 8217=>600, 8220=>600, 8221=>600, 8226=>600, 8211=>600, 8212=>600, 732=>600, 8482=>600, 353=>600, 8250=>600, 339=>600, 1116=>600, 382=>600, 376=>600, 160=>600,
+ 161=>600, 162=>600, 163=>600, 164=>600, 165=>600, 166=>600, 167=>600, 168=>600, 169=>600, 170=>600, 171=>600, 172=>600, 173=>600, 174=>600, 175=>600, 176=>600,
+ 177=>600, 178=>600, 179=>600, 180=>600, 181=>600, 182=>600, 183=>600, 184=>600, 185=>600, 186=>600, 187=>600, 188=>600, 189=>600, 190=>600, 191=>600, 192=>600,
+ 193=>600, 194=>600, 195=>600, 196=>600, 197=>600, 198=>600, 199=>600, 200=>600, 201=>600, 202=>600, 203=>600, 204=>600, 205=>600, 206=>600, 207=>600, 208=>600,
+ 209=>600, 210=>600, 211=>600, 212=>600, 213=>600, 214=>600, 215=>600, 216=>600, 217=>600, 218=>600, 219=>600, 220=>600, 221=>600, 222=>600, 223=>600, 224=>600,
+ 225=>600, 226=>600, 227=>600, 228=>600, 229=>600, 230=>600, 231=>600, 232=>600, 233=>600, 234=>600, 235=>600, 236=>600, 237=>600, 238=>600, 239=>600, 240=>600,
+ 241=>600, 242=>600, 243=>600, 244=>600, 245=>600, 246=>600, 247=>600, 248=>600, 249=>600, 250=>600, 251=>600, 252=>600, 253=>600, 254=>600, 255=>600, 256=>600,
+ 257=>600, 258=>600, 259=>600, 260=>600, 261=>600, 262=>600, 263=>600, 264=>600, 265=>600, 266=>600, 267=>600, 268=>600, 269=>600, 270=>600, 271=>600, 272=>600,
+ 273=>600, 274=>600, 275=>600, 276=>600, 277=>600, 278=>600, 279=>600, 280=>600, 281=>600, 282=>600, 283=>600, 284=>600, 285=>600, 286=>600, 287=>600, 288=>600,
+ 289=>600, 290=>600, 291=>600, 292=>600, 293=>600, 294=>600, 295=>600, 296=>600, 297=>600, 298=>600, 299=>600, 300=>600, 301=>600, 302=>600, 303=>600, 304=>600,
+ 305=>600, 306=>600, 307=>600, 308=>600, 309=>600, 310=>600, 311=>600, 312=>600, 313=>600, 314=>600, 315=>600, 316=>600, 317=>600, 318=>600, 319=>600, 320=>600,
+ 321=>600, 322=>600, 323=>600, 324=>600, 325=>600, 326=>600, 327=>600, 328=>600, 329=>600, 330=>600, 331=>600, 332=>600, 333=>600, 334=>600, 335=>600, 336=>600,
+ 337=>600, 340=>600, 341=>600, 342=>600, 343=>600, 344=>600, 345=>600, 346=>600, 347=>600, 348=>600, 349=>600, 350=>600, 351=>600, 354=>600, 355=>600, 356=>600,
+ 357=>600, 358=>600, 359=>600, 360=>600, 361=>600, 362=>600, 363=>600, 364=>600, 365=>600, 366=>600, 367=>600, 368=>600, 369=>600, 370=>600, 371=>600, 372=>600,
+ 373=>600, 374=>600, 375=>600, 377=>600, 378=>600, 379=>600, 380=>600, 383=>600, 384=>600, 385=>600, 386=>600, 387=>600, 388=>600, 389=>600, 390=>600, 391=>600,
+ 392=>600, 393=>600, 394=>600, 395=>600, 396=>600, 397=>600, 398=>600, 399=>600, 400=>600, 401=>600, 403=>600, 404=>600, 405=>600, 406=>600, 407=>600, 408=>600,
+ 409=>600, 410=>600, 411=>600, 412=>600, 413=>600, 414=>600, 415=>600, 416=>600, 417=>600, 418=>600, 419=>600, 420=>600, 421=>600, 422=>600, 423=>600, 424=>600,
+ 425=>600, 426=>600, 427=>600, 428=>600, 429=>600, 430=>600, 431=>600, 432=>600, 433=>600, 434=>600, 435=>600, 436=>600, 437=>600, 438=>600, 439=>600, 440=>600,
+ 441=>600, 442=>600, 443=>600, 444=>600, 445=>600, 446=>600, 448=>600, 449=>600, 450=>600, 451=>600, 452=>600, 453=>600, 454=>600, 455=>600, 456=>600, 457=>600,
+ 458=>600, 459=>600, 460=>600, 461=>600, 462=>600, 463=>600, 464=>600, 465=>600, 466=>600, 467=>600, 468=>600, 469=>600, 470=>600, 471=>600, 472=>600, 473=>600,
+ 474=>600, 475=>600, 476=>600, 477=>600, 478=>600, 479=>600, 480=>600, 481=>600, 482=>600, 483=>600, 484=>600, 485=>600, 486=>600, 487=>600, 488=>600, 489=>600,
+ 490=>600, 491=>600, 492=>600, 493=>600, 494=>600, 495=>600, 496=>600, 497=>600, 498=>600, 499=>600, 500=>600, 501=>600, 502=>600, 504=>600, 505=>600, 506=>600,
+ 507=>600, 508=>600, 509=>600, 510=>600, 511=>600, 512=>600, 513=>600, 514=>600, 515=>600, 516=>600, 517=>600, 518=>600, 519=>600, 520=>600, 521=>600, 522=>600,
+ 523=>600, 524=>600, 525=>600, 526=>600, 527=>600, 528=>600, 529=>600, 530=>600, 531=>600, 532=>600, 533=>600, 534=>600, 535=>600, 536=>600, 537=>600, 538=>600,
+ 539=>600, 542=>600, 543=>600, 548=>600, 549=>600, 550=>600, 551=>600, 552=>600, 553=>600, 554=>600, 555=>600, 556=>600, 557=>600, 558=>600, 559=>600, 560=>600,
+ 561=>600, 562=>600, 563=>600, 592=>600, 593=>600, 594=>600, 595=>600, 596=>600, 597=>600, 598=>600, 599=>600, 600=>600, 601=>600, 602=>600, 603=>600, 604=>600,
+ 605=>600, 606=>600, 607=>600, 608=>600, 609=>600, 610=>600, 611=>600, 612=>600, 613=>600, 614=>600, 615=>600, 616=>600, 617=>600, 618=>600, 619=>600, 620=>600,
+ 621=>600, 622=>600, 623=>600, 624=>600, 625=>600, 626=>600, 627=>600, 628=>600, 629=>600, 630=>600, 631=>600, 632=>600, 633=>600, 634=>600, 635=>600, 636=>600,
+ 637=>600, 638=>600, 639=>600, 640=>600, 641=>600, 642=>600, 643=>600, 644=>600, 645=>600, 646=>600, 647=>600, 648=>600, 649=>600, 650=>600, 651=>600, 652=>600,
+ 653=>600, 654=>600, 655=>600, 656=>600, 657=>600, 658=>600, 659=>600, 660=>600, 661=>600, 662=>600, 663=>600, 664=>600, 665=>600, 666=>600, 667=>600, 668=>600,
+ 669=>600, 670=>600, 671=>600, 672=>600, 673=>600, 674=>600, 711=>600, 712=>600, 713=>600, 714=>600, 715=>600, 728=>600, 729=>600, 730=>600, 731=>600, 733=>600,
+ 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 773=>0, 774=>0, 775=>0, 776=>0, 777=>0, 778=>0, 779=>0, 780=>0, 781=>0, 782=>0, 783=>0,
+ 807=>0, 808=>0, 821=>0, 822=>0, 823=>0, 824=>0, 901=>600, 902=>600, 904=>600, 905=>600, 906=>600, 908=>600, 910=>600, 911=>600, 912=>600, 913=>600,
+ 914=>600, 915=>600, 916=>600, 917=>600, 918=>600, 919=>600, 920=>600, 921=>600, 922=>600, 923=>600, 924=>600, 925=>600, 926=>600, 927=>600, 928=>600, 929=>600,
+ 931=>600, 932=>600, 933=>600, 934=>600, 935=>600, 936=>600, 937=>600, 938=>600, 939=>600, 940=>600, 941=>600, 942=>600, 943=>600, 944=>600, 945=>600, 946=>600,
+ 947=>600, 948=>600, 949=>600, 950=>600, 951=>600, 952=>600, 953=>600, 954=>600, 955=>600, 956=>600, 957=>600, 958=>600, 959=>600, 960=>600, 961=>600, 962=>600,
+ 963=>600, 964=>600, 965=>600, 966=>600, 967=>600, 968=>600, 969=>600, 970=>600, 971=>600, 972=>600, 973=>600, 974=>600, 1024=>600, 1025=>600, 1026=>600, 1028=>600,
+ 1029=>600, 1030=>600, 1031=>600, 1032=>600, 1033=>600, 1034=>600, 1035=>600, 1037=>600, 1038=>600, 1040=>600, 1041=>600, 1042=>600, 1043=>600, 1044=>600, 1045=>600, 1046=>600,
+ 1047=>600, 1048=>600, 1049=>600, 1050=>600, 1051=>600, 1052=>600, 1053=>600, 1054=>600, 1055=>600, 1056=>600, 1057=>600, 1058=>600, 1059=>600, 1060=>600, 1061=>600, 1062=>600,
+ 1063=>600, 1064=>600, 1065=>600, 1066=>600, 1067=>600, 1068=>600, 1069=>600, 1070=>600, 1071=>600, 1072=>600, 1073=>600, 1074=>600, 1075=>600, 1076=>600, 1077=>600, 1078=>600,
+ 1079=>600, 1080=>600, 1081=>600, 1082=>600, 1083=>600, 1084=>600, 1085=>600, 1086=>600, 1087=>600, 1088=>600, 1089=>600, 1090=>600, 1091=>600, 1092=>600, 1093=>600, 1094=>600,
+ 1095=>600, 1096=>600, 1097=>600, 1098=>600, 1099=>600, 1100=>600, 1101=>600, 1102=>600, 1103=>600, 1104=>600, 1105=>600, 1106=>600, 1107=>600, 1108=>600, 1109=>600, 1110=>600,
+ 1111=>600, 1112=>600, 1113=>600, 1114=>600, 1115=>600, 1117=>600, 1118=>600, 1119=>600, 1164=>600, 1165=>600, 1166=>600, 1167=>600, 1168=>600, 1169=>600, 1170=>600, 1171=>600,
+ 1172=>600, 1173=>600, 1174=>600, 1175=>600, 1176=>600, 1177=>600, 1178=>600, 1179=>600, 1180=>600, 1181=>600, 1182=>600, 1183=>600, 1184=>600, 1185=>600, 1186=>600, 1187=>600,
+ 1188=>600, 1189=>600, 1190=>600, 1191=>600, 1192=>600, 1193=>600, 1194=>600, 1195=>600, 1196=>600, 1197=>600, 1198=>600, 1199=>600, 1200=>600, 1201=>600, 1202=>600, 1203=>600,
+ 1204=>600, 1205=>600, 1206=>600, 1207=>600, 1208=>600, 1209=>600, 1210=>600, 1211=>600, 1212=>600, 1213=>600, 1214=>600, 1215=>600, 1216=>600, 1217=>600, 1218=>600, 1219=>600,
+ 1220=>600, 1223=>600, 1224=>600, 1227=>600, 1228=>600, 1232=>600, 1233=>600, 1234=>600, 1235=>600, 1236=>600, 1237=>600, 1238=>600, 1239=>600, 1240=>600, 1241=>600, 1242=>600,
+ 1243=>600, 1244=>600, 1245=>600, 1246=>600, 1247=>600, 1248=>600, 1249=>600, 1250=>600, 1251=>600, 1252=>600, 1253=>600, 1254=>600, 1255=>600, 1256=>600, 1257=>600, 1258=>600,
+ 1259=>600, 1260=>600, 1261=>600, 1262=>600, 1263=>600, 1264=>600, 1265=>600, 1266=>600, 1267=>600, 1268=>600, 1269=>600, 1272=>600, 1273=>600, 1328=>600, 1329=>600, 1330=>600,
+ 1331=>600, 1332=>600, 1333=>600, 1334=>600, 1335=>600, 1336=>600, 1337=>600, 1338=>600, 1339=>600, 1340=>600, 1341=>600, 1342=>600, 1343=>600, 1344=>600, 1345=>600, 1346=>600,
+ 1347=>600, 1348=>600, 1349=>600, 1350=>600, 1351=>600, 1352=>600, 1353=>600, 1354=>600, 1355=>600, 1356=>600, 1357=>600, 1358=>600, 1359=>600, 1360=>600, 1361=>600, 1362=>600,
+ 1363=>600, 1364=>600, 1365=>600, 1366=>600, 1367=>600, 1368=>600, 1369=>600, 1370=>600, 1371=>600, 1372=>600, 1373=>600, 1374=>600, 1375=>600, 1376=>600, 1377=>600, 1378=>600,
+ 1379=>600, 1380=>600, 1381=>600, 1382=>600, 1383=>600, 1384=>600, 1385=>600, 1386=>600, 1387=>600, 1388=>600, 1389=>600, 1390=>600, 1391=>600, 1392=>600, 1393=>600, 1394=>600,
+ 1395=>600, 1396=>600, 1397=>600, 1398=>600, 1399=>600, 1400=>600, 1401=>600, 1402=>600, 1403=>600, 1404=>600, 1405=>600, 1406=>600, 1407=>600, 1408=>600, 1409=>600, 1410=>600,
+ 1411=>600, 1412=>600, 1413=>600, 1414=>600, 1415=>600, 1416=>600, 1417=>600, 1418=>600, 1456=>600, 1457=>600, 1458=>600, 1459=>600, 1460=>600, 1461=>600, 1462=>600, 1463=>600,
+ 1464=>600, 1465=>600, 1467=>600, 1468=>600, 1469=>600, 1470=>600, 1471=>600, 1472=>600, 1473=>600, 1474=>600, 1475=>600, 1476=>600, 1488=>600, 1489=>600, 1490=>600, 1491=>600,
+ 1492=>600, 1493=>600, 1494=>600, 1495=>600, 1496=>600, 1497=>600, 1498=>600, 1499=>600, 1500=>600, 1501=>600, 1502=>600, 1503=>600, 1504=>600, 1505=>600, 1506=>600, 1507=>600,
+ 1508=>600, 1509=>600, 1510=>600, 1511=>600, 1512=>600, 1513=>600, 1514=>600, 1520=>600, 1521=>600, 1522=>600, 1523=>600, 1524=>600, 8213=>600, 8241=>600, 8242=>600, 8243=>600,
+ 8244=>600, 8245=>600, 8246=>600, 8247=>600, 8252=>600, 8253=>600, 8260=>600, 8261=>600, 8262=>600, 8263=>600, 8264=>600, 8265=>600, 8304=>600, 8305=>600, 8306=>600, 8307=>600,
+ 8308=>600, 8309=>600, 8310=>600, 8311=>600, 8312=>600, 8313=>600, 8314=>600, 8315=>600, 8316=>600, 8317=>600, 8318=>600, 8319=>600, 8320=>600, 8321=>600, 8322=>600, 8323=>600,
+ 8324=>600, 8325=>600, 8326=>600, 8327=>600, 8328=>600, 8329=>600, 8356=>600, 8362=>600, 8448=>600, 8449=>600, 8450=>600, 8451=>600, 8452=>600, 8453=>600, 8454=>600, 8455=>600,
+ 8456=>600, 8457=>600, 8458=>600, 8459=>600, 8460=>600, 8461=>600, 8462=>600, 8463=>600, 8464=>600, 8465=>600, 8466=>600, 8467=>600, 8468=>600, 8469=>600, 8470=>600, 8471=>600,
+ 8472=>600, 8473=>600, 8474=>600, 8475=>600, 8476=>600, 8477=>600, 8478=>600, 8479=>600, 8484=>600, 8486=>600, 8487=>600, 8490=>600, 8491=>600, 8531=>600, 8532=>600, 8533=>600,
+ 8534=>600, 8535=>600, 8536=>600, 8537=>600, 8538=>600, 8539=>600, 8540=>600, 8541=>600, 8542=>600, 8543=>600, 8592=>600, 8593=>600, 8594=>600, 8595=>600, 8596=>600, 8597=>600,
+ 8598=>600, 8599=>600, 8600=>600, 8601=>600, 8616=>600, 8706=>600, 8710=>600, 8721=>600, 8722=>600, 8730=>600, 8734=>600, 8800=>600, 8804=>600, 8805=>600, 9674=>600, 9833=>600,
+ 9834=>600, 9835=>600, 9836=>600, 9837=>600, 9838=>600, 9839=>600, 63171=>600, 64257=>600, 64258=>600, 64285=>600, 64286=>600, 64287=>600, 64288=>600, 64289=>600, 64290=>600, 64291=>600,
+ 64292=>600, 64293=>600, 64294=>600, 64295=>600, 64296=>600, 64297=>600, 64298=>600, 64299=>600, 64300=>600, 64301=>600, 64302=>600, 64303=>600, 64304=>600, 64305=>600, 64306=>600, 64307=>600,
+ 64308=>600, 64309=>600, 64310=>600, 64312=>600, 64313=>600, 64314=>600, 64315=>600, 64316=>600, 64318=>600, 64320=>600, 64321=>600, 64323=>600, 64324=>600, 64326=>600, 64327=>600, 64328=>600,
+ 64329=>600, 64330=>600, 64331=>600, 64332=>600, 64333=>600, 64334=>600, 64335=>600}
font[:enc]='';
font[:diff]='';
font[:file]='FreeMonoOblique.z';
diff --git a/lib/plugins/rfpdf/lib/fonts/freesans.rb b/lib/plugins/rfpdf/lib/fonts/freesans.rb
index edb5f48033..5994b6cae1 100755
--- a/lib/plugins/rfpdf/lib/fonts/freesans.rb
+++ b/lib/plugins/rfpdf/lib/fonts/freesans.rb
@@ -6,142 +6,142 @@ TCPDFFontDescriptor.define('freesans') do |font|
font[:up]=-151;
font[:ut]=50;
font[:cw]={
- 13=>333, 32=>278, 33=>278, 34=>355, 35=>556, 36=>556, 37=>889, 38=>667, 39=>191, 40=>333, 41=>333, 42=>389, 43=>584, 44=>278, 45=>333, 46=>278,
- 47=>278, 48=>556, 49=>556, 50=>556, 51=>556, 52=>556, 53=>556, 54=>556, 55=>556, 56=>556, 57=>556, 58=>278, 59=>278, 60=>584, 61=>584, 62=>584,
- 63=>556, 64=>1015, 65=>667, 66=>667, 67=>722, 68=>722, 69=>667, 70=>611, 71=>778, 72=>722, 73=>278, 74=>500, 75=>667, 76=>556, 77=>833, 78=>722,
- 79=>778, 80=>667, 81=>778, 82=>722, 83=>667, 84=>611, 85=>722, 86=>667, 87=>944, 88=>667, 89=>667, 90=>611, 91=>278, 92=>278, 93=>278, 94=>469,
- 95=>556, 96=>333, 97=>556, 98=>556, 99=>500, 100=>556, 101=>556, 102=>278, 103=>556, 104=>556, 105=>222, 106=>222, 107=>500, 108=>222, 109=>833, 110=>556,
- 111=>556, 112=>556, 113=>556, 114=>333, 115=>500, 116=>278, 117=>556, 118=>500, 119=>722, 120=>500, 121=>500, 122=>500, 123=>334, 124=>260, 125=>334, 126=>584,
- 8364=>556, 1027=>611, 8218=>222, 402=>556, 8222=>333, 8230=>1000, 8224=>556, 8225=>556, 710=>333, 8240=>1000, 352=>667, 8249=>333, 338=>1000, 1036=>667, 381=>611, 1039=>722,
- 8216=>222, 8217=>221, 8220=>333, 8221=>333, 8226=>350, 8211=>556, 8212=>1000, 732=>333, 8482=>1000, 353=>500, 8250=>333, 339=>944, 1116=>500, 382=>500, 376=>667, 160=>278,
- 161=>333, 162=>556, 163=>556, 164=>556, 165=>556, 166=>260, 167=>556, 168=>333, 169=>737, 170=>370, 171=>556, 172=>584, 173=>333, 174=>737, 175=>333, 176=>606,
- 177=>584, 178=>351, 179=>351, 180=>333, 181=>556, 182=>537, 183=>278, 184=>333, 185=>351, 186=>365, 187=>556, 188=>869, 189=>869, 190=>869, 191=>611, 192=>667,
- 193=>667, 194=>667, 195=>667, 196=>667, 197=>667, 198=>1000, 199=>722, 200=>667, 201=>667, 202=>667, 203=>667, 204=>278, 205=>278, 206=>278, 207=>278, 208=>722,
- 209=>722, 210=>778, 211=>778, 212=>778, 213=>778, 214=>778, 215=>584, 216=>778, 217=>722, 218=>722, 219=>722, 220=>722, 221=>666, 222=>666, 223=>611, 224=>556,
- 225=>556, 226=>556, 227=>556, 228=>556, 229=>556, 230=>889, 231=>500, 232=>556, 233=>556, 234=>556, 235=>556, 236=>278, 237=>278, 238=>278, 239=>278, 240=>556,
- 241=>556, 242=>556, 243=>556, 244=>556, 245=>556, 246=>556, 247=>584, 248=>611, 249=>556, 250=>556, 251=>556, 252=>556, 253=>500, 254=>555, 255=>500, 256=>667,
- 257=>556, 258=>667, 259=>556, 260=>667, 261=>556, 262=>722, 263=>500, 264=>722, 265=>500, 266=>722, 267=>500, 268=>722, 269=>500, 270=>722, 271=>635, 272=>722,
- 273=>556, 274=>667, 275=>556, 276=>667, 277=>556, 278=>667, 279=>556, 280=>667, 281=>556, 282=>667, 283=>556, 284=>778, 285=>556, 286=>778, 287=>556, 288=>778,
- 289=>556, 290=>778, 291=>556, 292=>722, 293=>556, 294=>722, 295=>556, 296=>278, 297=>278, 298=>278, 299=>222, 300=>278, 301=>278, 302=>278, 303=>222, 304=>278,
- 305=>278, 306=>700, 307=>374, 308=>500, 309=>222, 310=>667, 311=>500, 312=>500, 313=>556, 314=>222, 315=>556, 316=>222, 317=>556, 318=>292, 319=>556, 320=>500,
- 321=>556, 322=>222, 323=>722, 324=>556, 325=>722, 326=>556, 327=>722, 328=>556, 329=>556, 330=>722, 331=>556, 332=>778, 333=>556, 334=>778, 335=>556, 336=>778,
- 337=>556, 340=>722, 341=>333, 342=>722, 343=>333, 344=>722, 345=>333, 346=>667, 347=>500, 348=>667, 349=>500, 350=>667, 351=>500, 354=>611, 355=>278, 356=>611,
- 357=>308, 358=>611, 359=>278, 360=>722, 361=>556, 362=>722, 363=>556, 364=>722, 365=>556, 366=>722, 367=>556, 368=>722, 369=>556, 370=>722, 371=>556, 372=>944,
- 373=>722, 374=>667, 375=>500, 377=>611, 378=>500, 379=>611, 380=>500, 383=>278, 384=>556, 386=>667, 387=>556, 388=>667, 389=>556, 390=>722, 391=>722, 392=>500,
- 393=>722, 395=>667, 396=>556, 398=>667, 399=>778, 400=>667, 401=>611, 403=>778, 409=>500, 413=>722, 414=>556, 415=>778, 421=>556, 423=>667, 424=>500, 425=>611,
- 427=>278, 429=>278, 430=>611, 452=>1311, 453=>1208, 454=>1056, 455=>1056, 456=>778, 457=>444, 458=>1158, 459=>944, 460=>778, 461=>667, 462=>556, 463=>278, 464=>278,
- 465=>778, 466=>556, 467=>722, 468=>556, 469=>722, 470=>556, 471=>722, 472=>556, 473=>722, 474=>556, 475=>722, 476=>556, 477=>556, 478=>667, 479=>556, 480=>667,
- 481=>556, 482=>1000, 483=>889, 486=>778, 487=>556, 488=>667, 489=>500, 490=>778, 491=>556, 492=>778, 493=>556, 496=>222, 497=>1333, 498=>1222, 499=>1056, 500=>778,
- 501=>556, 504=>722, 505=>556, 506=>667, 507=>556, 508=>1000, 509=>889, 510=>778, 511=>611, 512=>667, 513=>556, 514=>667, 515=>556, 516=>667, 517=>556, 518=>667,
- 519=>556, 520=>278, 521=>278, 522=>278, 523=>278, 524=>778, 525=>556, 526=>778, 527=>556, 528=>722, 529=>333, 530=>722, 531=>333, 532=>722, 533=>556, 534=>722,
- 535=>556, 536=>667, 537=>500, 538=>611, 539=>278, 542=>722, 543=>556, 550=>667, 551=>556, 552=>667, 553=>556, 554=>778, 555=>556, 556=>778, 557=>556, 558=>778,
- 559=>556, 560=>778, 561=>556, 562=>667, 563=>500, 592=>556, 593=>556, 594=>556, 595=>556, 596=>500, 598=>556, 599=>556, 600=>556, 601=>556, 603=>500, 604=>500,
- 608=>556, 609=>556, 613=>556, 614=>556, 615=>556, 616=>222, 617=>222, 618=>278, 621=>222, 623=>833, 624=>833, 625=>833, 626=>556, 627=>556, 629=>556, 633=>333,
- 634=>333, 635=>333, 636=>333, 637=>333, 638=>278, 639=>278, 642=>500, 643=>278, 644=>278, 645=>278, 647=>278, 648=>278, 649=>556, 652=>500, 653=>722, 654=>500,
- 656=>500, 668=>500, 670=>500, 672=>556, 711=>333, 714=>333, 715=>333, 728=>333, 729=>333, 730=>333, 731=>333, 733=>333, 768=>0, 769=>0, 770=>0, 771=>0,
- 772=>0, 774=>0, 775=>0, 776=>0, 778=>0, 779=>0, 780=>0, 783=>0, 785=>0, 786=>0, 787=>0, 788=>0, 806=>0, 807=>0, 808=>0, 884=>199,
- 885=>199, 890=>332, 894=>278, 900=>414, 901=>747, 902=>730, 903=>278, 904=>664, 905=>681, 906=>230, 908=>792, 910=>710, 911=>758, 912=>286, 913=>684, 914=>628,
- 915=>582, 916=>684, 917=>650, 918=>628, 919=>683, 920=>750, 921=>236, 922=>684, 923=>684, 924=>800, 925=>654, 926=>630, 927=>750, 928=>721, 929=>638, 931=>628,
- 932=>628, 933=>684, 934=>717, 935=>723, 936=>745, 937=>720, 938=>236, 939=>684, 940=>608, 941=>528, 942=>547, 943=>307, 944=>515, 945=>596, 946=>516, 947=>531,
- 948=>560, 949=>510, 950=>462, 951=>526, 952=>526, 953=>286, 954=>516, 955=>560, 956=>574, 957=>504, 958=>470, 959=>550, 960=>661, 961=>566, 962=>535, 963=>616,
- 964=>532, 965=>515, 966=>741, 967=>572, 968=>662, 969=>740, 970=>286, 971=>515, 972=>553, 973=>518, 974=>740, 1024=>667, 1025=>667, 1026=>766, 1028=>722, 1029=>667,
- 1030=>278, 1031=>278, 1032=>500, 1033=>1080, 1034=>1014, 1035=>766, 1037=>722, 1038=>650, 1040=>667, 1041=>667, 1042=>667, 1043=>611, 1044=>812, 1045=>667, 1046=>1023, 1047=>667,
- 1048=>728, 1049=>728, 1050=>667, 1051=>673, 1052=>844, 1053=>719, 1054=>778, 1055=>719, 1056=>667, 1057=>722, 1058=>611, 1059=>650, 1060=>936, 1061=>667, 1062=>741, 1063=>648,
- 1064=>828, 1065=>850, 1066=>897, 1067=>872, 1068=>667, 1069=>722, 1070=>1032, 1071=>702, 1072=>556, 1073=>556, 1074=>522, 1075=>430, 1076=>602, 1077=>556, 1078=>837, 1079=>500,
- 1080=>567, 1081=>567, 1082=>510, 1083=>557, 1084=>618, 1085=>558, 1086=>556, 1087=>557, 1088=>576, 1089=>500, 1090=>496, 1091=>500, 1092=>912, 1093=>500, 1094=>578, 1095=>520,
- 1096=>692, 1097=>712, 1098=>734, 1099=>690, 1100=>552, 1101=>500, 1102=>758, 1103=>543, 1104=>556, 1105=>556, 1106=>568, 1107=>430, 1108=>500, 1109=>500, 1110=>222, 1111=>278,
- 1112=>222, 1113=>840, 1114=>850, 1115=>568, 1117=>556, 1118=>500, 1119=>556, 1164=>667, 1165=>552, 1166=>667, 1167=>556, 1168=>611, 1169=>430, 1170=>611, 1171=>430, 1172=>611,
- 1173=>430, 1174=>1023, 1175=>837, 1176=>667, 1177=>500, 1178=>667, 1179=>500, 1180=>667, 1181=>500, 1182=>667, 1183=>500, 1184=>667, 1185=>500, 1186=>722, 1187=>556, 1188=>1060,
- 1189=>764, 1190=>722, 1191=>556, 1192=>722, 1193=>500, 1194=>722, 1195=>500, 1196=>611, 1197=>496, 1198=>667, 1199=>500, 1200=>667, 1201=>500, 1202=>667, 1203=>500, 1204=>774,
- 1205=>608, 1206=>642, 1207=>508, 1208=>642, 1209=>508, 1210=>642, 1211=>508, 1212=>778, 1213=>556, 1214=>688, 1215=>556, 1216=>278, 1217=>1023, 1218=>837, 1219=>667, 1220=>500,
- 1223=>722, 1224=>556, 1227=>642, 1228=>508, 1232=>667, 1233=>556, 1234=>667, 1235=>556, 1236=>1000, 1237=>889, 1238=>667, 1239=>556, 1240=>778, 1241=>556, 1242=>778, 1243=>556,
- 1244=>1023, 1245=>837, 1246=>667, 1247=>500, 1248=>667, 1249=>500, 1250=>728, 1251=>567, 1252=>728, 1253=>567, 1254=>778, 1255=>556, 1256=>778, 1257=>556, 1258=>778, 1259=>556,
- 1260=>722, 1261=>500, 1262=>650, 1263=>500, 1264=>650, 1265=>500, 1266=>650, 1267=>500, 1268=>648, 1269=>520, 1272=>872, 1273=>690, 1329=>722, 1330=>705, 1331=>774, 1332=>754,
- 1333=>722, 1334=>751, 1335=>485, 1336=>722, 1337=>782, 1338=>655, 1339=>699, 1340=>417, 1341=>853, 1342=>791, 1343=>711, 1344=>588, 1345=>663, 1346=>665, 1347=>665, 1348=>756,
- 1349=>623, 1350=>773, 1351=>603, 1352=>722, 1353=>648, 1354=>722, 1355=>751, 1356=>750, 1357=>722, 1358=>748, 1359=>667, 1360=>699, 1361=>623, 1362=>417, 1363=>785, 1364=>638,
- 1365=>778, 1366=>716, 1370=>222, 1371=>133, 1372=>325, 1373=>333, 1374=>344, 1377=>833, 1378=>556, 1379=>572, 1380=>581, 1381=>550, 1382=>588, 1383=>448, 1384=>556, 1385=>568,
- 1386=>582, 1387=>545, 1388=>301, 1389=>799, 1390=>556, 1391=>554, 1392=>533, 1393=>548, 1394=>552, 1395=>552, 1396=>544, 1397=>222, 1398=>544, 1399=>456, 1400=>556, 1401=>390,
- 1402=>833, 1403=>509, 1404=>547, 1405=>533, 1406=>610, 1407=>887, 1408=>556, 1409=>545, 1410=>352, 1411=>853, 1412=>588, 1413=>579, 1414=>690, 1415=>545, 1417=>278, 1418=>367,
- 1456=>70, 1457=>335, 1458=>329, 1459=>329, 1460=>70, 1461=>200, 1462=>200, 1463=>188, 1464=>188, 1465=>70, 1467=>329, 1468=>70, 1469=>70, 1470=>488, 1471=>200, 1472=>212,
- 1473=>0, 1474=>0, 1475=>278, 1476=>70, 1488=>640, 1489=>591, 1490=>466, 1491=>598, 1492=>622, 1493=>212, 1494=>351, 1495=>623, 1496=>608, 1497=>200, 1498=>526, 1499=>550,
- 1500=>600, 1501=>623, 1502=>621, 1503=>212, 1504=>378, 1505=>607, 1506=>587, 1507=>575, 1508=>568, 1509=>540, 1510=>590, 1511=>606, 1512=>547, 1513=>776, 1514=>687, 1792=>600,
- 1793=>201, 1794=>201, 1795=>201, 1796=>201, 1797=>500, 1798=>500, 1799=>500, 1800=>370, 1801=>370, 1802=>574, 1803=>574, 1804=>645, 1805=>574, 1808=>452, 1809=>452, 1810=>574,
- 1811=>645, 1812=>645, 1813=>509, 1814=>509, 1815=>682, 1816=>585, 1817=>404, 1818=>627, 1819=>718, 1820=>718, 1821=>484, 1822=>682, 1823=>600, 1824=>660, 1825=>682, 1826=>538,
- 1827=>718, 1828=>718, 1829=>718, 1830=>574, 1831=>574, 1832=>638, 1833=>585, 1834=>509, 1835=>682, 1836=>682, 1840=>1, 1841=>1, 1842=>1, 1843=>1, 1844=>1, 1845=>1,
- 1846=>1, 1847=>1, 1848=>1, 1849=>1, 1850=>1, 1851=>1, 1852=>1, 1853=>1, 1854=>1, 1855=>1, 1856=>1, 1857=>1, 1858=>1, 1859=>1, 1860=>1, 1861=>1,
- 1862=>1, 1863=>1, 1864=>1, 1865=>1, 1866=>1, 2305=>6, 2306=>6, 2309=>644, 2310=>816, 2311=>392, 2312=>392, 2313=>459, 2314=>661, 2315=>641, 2317=>423, 2320=>423,
- 2321=>816, 2323=>816, 2324=>816, 2325=>393, 2326=>622, 2327=>424, 2328=>472, 2329=>508, 2330=>517, 2331=>583, 2332=>549, 2333=>503, 2334=>538, 2335=>444, 2336=>480, 2337=>519,
- 2338=>479, 2339=>504, 2340=>439, 2341=>542, 2342=>427, 2343=>520, 2344=>415, 2345=>415, 2346=>401, 2347=>401, 2348=>442, 2349=>520, 2350=>463, 2351=>451, 2352=>319, 2353=>319,
- 2354=>549, 2355=>641, 2357=>442, 2358=>589, 2359=>398, 2360=>506, 2361=>430, 2364=>6, 2365=>438, 2366=>172, 2367=>172, 2368=>172, 2369=>6, 2370=>6, 2371=>6, 2373=>6,
- 2375=>6, 2376=>6, 2377=>172, 2379=>172, 2380=>172, 2381=>6, 2384=>898, 2385=>6, 2406=>584, 2407=>584, 2408=>584, 2409=>584, 2410=>584, 2411=>584, 2412=>584, 2413=>584,
- 2414=>584, 2415=>584, 2416=>898, 2433=>300, 2434=>400, 2435=>300, 2437=>640, 2438=>780, 2439=>520, 2440=>520, 2441=>530, 2442=>550, 2443=>620, 2444=>420, 2447=>480, 2448=>620,
- 2451=>620, 2452=>720, 2453=>652, 2454=>500, 2455=>490, 2456=>466, 2457=>540, 2458=>490, 2459=>540, 2460=>630, 2461=>590, 2462=>680, 2463=>510, 2464=>490, 2465=>520, 2466=>520,
- 2467=>470, 2468=>540, 2469=>490, 2470=>470, 2471=>490, 2472=>452, 2474=>560, 2475=>650, 2476=>480, 2477=>588, 2478=>480, 2479=>470, 2480=>480, 2482=>472, 2486=>512, 2487=>470,
- 2488=>470, 2489=>520, 2492=>160, 2494=>180, 2495=>180, 2496=>180, 2497=>320, 2498=>329, 2499=>195, 2500=>260, 2503=>340, 2504=>340, 2507=>740, 2508=>740, 2509=>400, 2519=>180,
- 2524=>540, 2525=>520, 2527=>470, 2528=>612, 2529=>420, 2530=>234, 2531=>360, 2534=>460, 2535=>420, 2536=>520, 2537=>540, 2538=>400, 2539=>400, 2540=>560, 2541=>390, 2542=>480,
- 2543=>420, 2544=>480, 2545=>470, 2546=>400, 2547=>470, 2548=>400, 2549=>400, 2550=>400, 2551=>120, 2552=>440, 2553=>420, 2554=>420, 2565=>744, 2566=>914, 2567=>690, 2568=>670,
- 2569=>596, 2570=>596, 2575=>498, 2576=>744, 2579=>596, 2580=>744, 2581=>550, 2582=>534, 2583=>618, 2584=>690, 2585=>546, 2586=>518, 2587=>592, 2588=>492, 2589=>574, 2590=>514,
- 2591=>526, 2592=>556, 2593=>524, 2594=>528, 2595=>574, 2596=>484, 2597=>534, 2598=>504, 2599=>534, 2600=>538, 2602=>534, 2603=>506, 2604=>562, 2605=>516, 2606=>546, 2607=>670,
- 2608=>538, 2610=>726, 2611=>726, 2613=>514, 2614=>546, 2616=>546, 2617=>517, 2620=>286, 2622=>172, 2623=>190, 2624=>190, 2625=>1, 2626=>1, 2631=>1, 2632=>1, 2635=>1,
- 2636=>1, 2637=>1, 2649=>534, 2650=>618, 2651=>492, 2652=>484, 2654=>506, 2662=>616, 2663=>480, 2664=>560, 2665=>480, 2666=>468, 2667=>492, 2668=>514, 2669=>538, 2670=>572,
- 2671=>560, 2672=>1, 2674=>498, 2675=>596, 2676=>900, 2689=>33, 2690=>33, 2693=>767, 2694=>961, 2695=>500, 2696=>495, 2697=>528, 2698=>702, 2699=>885, 2709=>501, 2710=>612,
- 2711=>619, 2712=>569, 2713=>532, 2714=>358, 2715=>620, 2716=>606, 2717=>602, 2718=>631, 2719=>495, 2720=>528, 2721=>531, 2722=>511, 2723=>614, 2724=>294, 2725=>344, 2726=>425,
- 2727=>345, 2728=>611, 2730=>512, 2731=>578, 2732=>428, 2733=>423, 2734=>231, 2735=>582, 2736=>344, 2738=>558, 2739=>670, 2741=>537, 2742=>592, 2743=>568, 2744=>600, 2745=>544,
- 2749=>531, 2750=>232, 2751=>232, 2752=>232, 2753=>33, 2754=>33, 2755=>33, 2759=>33, 2760=>33, 2763=>232, 2764=>232, 2768=>903, 2790=>479, 2791=>416, 2792=>465, 2793=>469,
- 2794=>498, 2795=>463, 2796=>451, 2797=>510, 2798=>455, 2799=>488, 2818=>131, 2819=>302, 2821=>560, 2822=>644, 2823=>632, 2825=>630, 2827=>553, 2831=>604, 2835=>520, 2837=>572,
- 2838=>570, 2839=>580, 2840=>565, 2842=>580, 2844=>564, 2845=>575, 2847=>565, 2848=>565, 2849=>524, 2858=>572, 2859=>700, 2863=>655, 2864=>620, 2866=>652, 2867=>560, 2870=>565,
- 2871=>565, 2872=>545, 2873=>524, 2878=>128, 2879=>1, 2880=>190, 2881=>1, 2882=>1, 2883=>1, 2887=>396, 2912=>563, 2918=>508, 2919=>424, 2920=>440, 2921=>600, 2922=>600,
- 2923=>600, 2924=>600, 2925=>600, 2926=>511, 2927=>483, 2946=>479, 2947=>893, 2949=>1018, 2950=>1170, 2951=>916, 2952=>676, 2953=>836, 2954=>1225, 2958=>744, 2959=>744, 2960=>848,
- 2962=>813, 2963=>813, 2964=>813, 2965=>688, 2969=>744, 2970=>676, 2972=>848, 2974=>984, 2975=>777, 2979=>1338, 2980=>664, 2984=>561, 2985=>1029, 2986=>607, 2990=>697, 2991=>697,
- 2992=>434, 2993=>617, 2994=>869, 2995=>859, 2996=>697, 2997=>869, 2999=>1145, 3000=>1064, 3001=>1316, 3006=>424, 3007=>125, 3008=>596, 3009=>539, 3014=>596, 3015=>650, 3016=>973,
- 3018=>1286, 3019=>1286, 3020=>1706, 3021=>333, 3031=>859, 3034=>778, 3035=>881, 3036=>876, 3037=>648, 3041=>744, 3203=>342, 3205=>620, 3206=>591, 3207=>600, 3208=>776, 3209=>1138,
- 3210=>1464, 3214=>574, 3215=>570, 3216=>580, 3218=>589, 3219=>597, 3220=>625, 3221=>256, 3222=>565, 3223=>326, 3224=>604, 3225=>651, 3226=>408, 3228=>611, 3230=>843, 3231=>610,
- 3232=>258, 3233=>317, 3234=>328, 3235=>803, 3236=>317, 3237=>328, 3238=>352, 3239=>352, 3240=>317, 3248=>248, 3249=>621, 3250=>620, 3251=>620, 3302=>649, 3303=>550, 3304=>573,
- 3305=>567, 3306=>562, 3307=>557, 3308=>562, 3309=>567, 3310=>557, 3311=>557, 3458=>468, 3459=>318, 3461=>660, 3465=>778, 3466=>807, 3467=>830, 3473=>838, 3476=>860, 3481=>1000,
- 3482=>973, 3483=>860, 3484=>997, 3486=>740, 3488=>838, 3489=>886, 3490=>886, 3492=>1295, 3493=>1295, 3495=>838, 3496=>860, 3497=>860, 3498=>860, 3499=>1403, 3501=>973, 3502=>838,
- 3503=>660, 3504=>860, 3505=>973, 3507=>660, 3508=>886, 3509=>838, 3510=>860, 3511=>973, 3512=>838, 3513=>860, 3514=>886, 3515=>807, 3517=>830, 3520=>838, 3521=>973, 3522=>886,
- 3523=>886, 3524=>973, 3525=>830, 3526=>973, 3530=>0, 3535=>432, 3536=>380, 3537=>420, 3538=>0, 3539=>0, 3540=>0, 3542=>0, 3544=>501, 3545=>652, 3551=>648, 7936=>596,
- 7937=>596, 7938=>596, 7939=>596, 7940=>596, 7941=>596, 7942=>596, 7943=>596, 7944=>684, 7945=>684, 7946=>684, 7947=>684, 7948=>684, 7949=>684, 7950=>684, 7951=>684, 7952=>510,
- 7953=>510, 7954=>510, 7955=>510, 7956=>510, 7957=>510, 7960=>650, 7961=>650, 7962=>650, 7963=>650, 7964=>650, 7965=>650, 7968=>526, 7969=>526, 7970=>526, 7971=>526, 7972=>526,
- 7973=>526, 7974=>526, 7975=>526, 7976=>683, 7977=>683, 7978=>683, 7979=>683, 7980=>683, 7981=>683, 7982=>683, 7983=>683, 7984=>286, 7985=>286, 7986=>286, 7987=>286, 7988=>286,
- 7989=>286, 7990=>286, 7991=>286, 7992=>236, 7993=>236, 7994=>236, 7995=>236, 7996=>236, 7997=>236, 7998=>236, 7999=>236, 8000=>550, 8001=>550, 8002=>550, 8003=>550, 8004=>550,
- 8005=>550, 8008=>750, 8009=>750, 8010=>750, 8011=>750, 8012=>750, 8013=>750, 8016=>515, 8017=>515, 8018=>515, 8019=>515, 8020=>515, 8021=>515, 8022=>515, 8023=>515, 8025=>684,
- 8027=>684, 8029=>684, 8031=>684, 8032=>740, 8033=>740, 8034=>740, 8035=>740, 8036=>740, 8037=>740, 8038=>740, 8039=>740, 8040=>720, 8041=>720, 8042=>720, 8043=>720, 8044=>720,
- 8045=>720, 8046=>720, 8047=>720, 8048=>596, 8049=>596, 8050=>510, 8051=>510, 8052=>526, 8053=>526, 8054=>286, 8055=>286, 8056=>550, 8057=>550, 8058=>515, 8059=>515, 8060=>740,
- 8061=>740, 8064=>596, 8065=>596, 8066=>596, 8067=>596, 8068=>596, 8069=>596, 8070=>596, 8071=>596, 8072=>882, 8073=>882, 8074=>882, 8075=>882, 8076=>882, 8077=>882, 8078=>882,
- 8079=>882, 8080=>526, 8081=>526, 8082=>526, 8083=>526, 8084=>526, 8085=>526, 8086=>526, 8087=>526, 8088=>857, 8089=>857, 8090=>857, 8091=>857, 8092=>857, 8093=>857, 8094=>857,
- 8095=>857, 8096=>740, 8097=>740, 8098=>740, 8099=>740, 8100=>740, 8101=>740, 8102=>740, 8103=>740, 8104=>945, 8105=>945, 8106=>945, 8107=>945, 8108=>945, 8109=>945, 8110=>945,
- 8111=>945, 8112=>596, 8113=>596, 8114=>596, 8115=>596, 8116=>596, 8118=>596, 8119=>596, 8120=>684, 8121=>684, 8122=>684, 8123=>684, 8124=>882, 8125=>278, 8126=>201, 8127=>333,
- 8128=>278, 8129=>333, 8130=>526, 8131=>526, 8132=>536, 8134=>526, 8135=>526, 8136=>650, 8137=>650, 8138=>683, 8139=>683, 8140=>857, 8141=>582, 8142=>582, 8143=>333, 8144=>286,
- 8145=>286, 8146=>286, 8147=>286, 8150=>286, 8151=>312, 8152=>236, 8153=>236, 8154=>236, 8155=>236, 8157=>582, 8158=>582, 8159=>333, 8160=>515, 8161=>515, 8162=>515, 8163=>515,
- 8164=>566, 8165=>566, 8166=>515, 8167=>515, 8168=>684, 8169=>684, 8170=>684, 8171=>684, 8172=>638, 8173=>333, 8174=>393, 8175=>333, 8178=>740, 8179=>740, 8180=>740, 8182=>740,
- 8183=>740, 8184=>750, 8185=>750, 8186=>720, 8187=>720, 8188=>939, 8189=>333, 8190=>333, 8208=>333, 8219=>221, 8223=>333, 8227=>350, 8241=>1360, 8242=>278, 8243=>469, 8244=>680,
- 8245=>278, 8246=>469, 8247=>680, 8251=>622, 8252=>556, 8253=>556, 8260=>167, 8263=>1112, 8264=>834, 8265=>834, 8267=>537, 8304=>351, 8305=>351, 8308=>351, 8309=>351, 8310=>351,
- 8311=>351, 8312=>351, 8313=>351, 8320=>351, 8321=>351, 8322=>351, 8323=>351, 8324=>351, 8325=>353, 8326=>351, 8327=>351, 8328=>351, 8329=>351, 8359=>1445, 8360=>1222, 8362=>869,
- 8459=>969, 8460=>615, 8464=>809, 8465=>519, 8466=>874, 8470=>1008, 8475=>850, 8476=>644, 8486=>720, 8487=>720, 8488=>512, 8490=>667, 8491=>667, 8492=>908, 8493=>623, 8496=>562,
- 8497=>611, 8498=>611, 8499=>1080, 8531=>869, 8532=>869, 8533=>869, 8534=>869, 8535=>869, 8536=>869, 8537=>869, 8538=>869, 8539=>869, 8540=>869, 8541=>869, 8542=>869, 8543=>869,
- 8544=>278, 8545=>556, 8546=>834, 8547=>945, 8548=>667, 8549=>945, 8550=>1223, 8551=>1501, 8552=>945, 8553=>667, 8554=>945, 8555=>1223, 8556=>556, 8557=>722, 8558=>722, 8559=>833,
- 8560=>222, 8561=>444, 8562=>666, 8563=>722, 8564=>500, 8565=>722, 8566=>944, 8567=>1166, 8568=>722, 8569=>500, 8570=>722, 8571=>944, 8572=>222, 8573=>500, 8574=>556, 8575=>833,
- 8592=>987, 8593=>603, 8594=>987, 8595=>603, 8596=>1042, 8597=>1042, 8629=>658, 8656=>987, 8657=>603, 8658=>987, 8659=>603, 8660=>1042, 8704=>667, 8706=>556, 8707=>667, 8709=>556,
- 8710=>711, 8711=>711, 8712=>713, 8713=>713, 8719=>823, 8720=>823, 8721=>804, 8722=>584, 8723=>584, 8727=>500, 8730=>542, 8733=>713, 8734=>713, 8736=>768, 8743=>603, 8744=>603,
- 8745=>768, 8746=>768, 8747=>556, 8748=>796, 8749=>956, 8750=>556, 8756=>863, 8764=>549, 8766=>584, 8769=>584, 8770=>584, 8771=>584, 8777=>636, 8800=>548, 8804=>584, 8805=>584,
- 8853=>768, 8854=>768, 8855=>768, 8869=>658, 8960=>823, 9674=>489, 9834=>555, 12289=>1000, 12290=>1000, 12291=>1000, 12293=>1000, 12295=>1000, 12296=>1000, 12297=>1000, 12298=>1000, 12299=>1000,
- 12300=>1000, 12301=>1000, 12302=>1000, 12303=>1000, 12304=>1000, 12305=>1000, 12308=>1000, 12309=>1000, 12353=>1000, 12354=>1000, 12355=>1000, 12356=>1000, 12357=>1000, 12358=>1000, 12359=>1000, 12360=>1000,
- 12361=>1000, 12362=>1000, 12363=>1000, 12364=>1000, 12365=>1000, 12366=>1000, 12367=>1000, 12368=>1000, 12369=>1000, 12370=>1000, 12371=>1000, 12372=>1000, 12373=>1000, 12374=>1000, 12375=>1000, 12376=>1000,
- 12377=>1000, 12378=>1000, 12379=>1000, 12380=>1000, 12381=>1000, 12382=>1000, 12383=>1000, 12384=>1000, 12385=>1000, 12386=>1000, 12387=>1000, 12388=>1000, 12389=>1000, 12390=>1000, 12391=>1000, 12392=>1000,
- 12393=>1000, 12394=>1000, 12395=>1000, 12396=>1000, 12397=>1000, 12398=>1000, 12399=>1000, 12400=>1000, 12401=>1000, 12402=>1000, 12403=>1000, 12404=>1000, 12405=>1000, 12406=>1000, 12407=>1000, 12408=>1000,
- 12409=>1000, 12410=>1000, 12411=>1000, 12412=>1000, 12413=>1000, 12414=>1000, 12415=>1000, 12416=>1000, 12417=>1000, 12418=>1000, 12419=>1000, 12420=>1000, 12421=>1000, 12422=>1000, 12423=>1000, 12424=>1000,
- 12425=>1000, 12426=>1000, 12427=>1000, 12428=>1000, 12429=>1000, 12430=>1000, 12431=>1000, 12432=>1000, 12433=>1000, 12434=>1000, 12435=>1000, 12441=>1000, 12443=>1000, 12449=>1000, 12450=>1000, 12451=>1000,
- 12452=>1000, 12453=>1000, 12454=>1000, 12455=>1000, 12456=>1000, 12457=>1000, 12458=>1000, 12459=>1000, 12460=>1000, 12461=>1000, 12462=>1000, 12463=>1000, 12464=>1000, 12465=>1000, 12466=>1000, 12467=>1000,
- 12468=>1000, 12469=>1000, 12470=>1000, 12471=>1000, 12472=>1000, 12473=>1000, 12474=>1000, 12475=>1000, 12476=>1000, 12477=>1000, 12478=>1000, 12479=>1000, 12480=>1000, 12481=>1000, 12482=>1000, 12483=>1000,
- 12484=>1000, 12485=>1000, 12486=>1000, 12487=>1000, 12488=>1000, 12489=>1000, 12490=>1000, 12491=>1000, 12492=>1000, 12493=>1000, 12494=>1000, 12495=>1000, 12496=>1000, 12497=>1000, 12498=>1000, 12499=>1000,
- 12500=>1000, 12501=>1000, 12502=>1000, 12503=>1000, 12504=>1000, 12505=>1000, 12506=>1000, 12507=>1000, 12508=>1000, 12509=>1000, 12510=>1000, 12511=>1000, 12512=>1000, 12513=>1000, 12514=>1000, 12515=>1000,
- 12516=>1000, 12517=>1000, 12518=>1000, 12519=>1000, 12520=>1000, 12521=>1000, 12522=>1000, 12523=>1000, 12524=>1000, 12525=>1000, 12526=>1000, 12527=>1000, 12528=>1000, 12529=>1000, 12530=>1000, 12531=>1000,
- 12532=>1000, 12533=>1000, 12534=>1000, 12535=>1000, 12536=>1000, 12537=>1000, 12538=>1000, 12539=>278, 12540=>1000, 12541=>1000, 12542=>1000, 63033=>556, 63034=>556, 63035=>556, 63036=>556, 63037=>556,
- 63038=>556, 63039=>556, 63040=>556, 63041=>556, 63166=>222, 63171=>333, 63196=>556, 64256=>556, 64257=>500, 64258=>500, 64259=>778, 64260=>778, 64261=>556, 64262=>778, 64285=>200, 64286=>305,
- 64287=>400, 64288=>587, 64289=>890, 64290=>848, 64291=>872, 64292=>800, 64293=>850, 64294=>873, 64295=>797, 64296=>937, 64297=>584, 64298=>776, 64299=>776, 64300=>776, 64301=>776, 64302=>640,
- 64303=>640, 64304=>640, 64305=>591, 64306=>466, 64307=>598, 64308=>622, 64309=>262, 64310=>351, 64312=>608, 64313=>270, 64314=>526, 64315=>550, 64316=>600, 64318=>621, 64320=>378, 64321=>607,
- 64323=>575, 64324=>568, 64326=>590, 64327=>606, 64328=>547, 64329=>776, 64330=>687, 64331=>212, 64332=>591, 64333=>550, 64334=>568, 64335=>640, 65533=>788}
+ 13=>333, 32=>278, 33=>278, 34=>355, 35=>556, 36=>556, 37=>889, 38=>667, 39=>191, 40=>333, 41=>333, 42=>389, 43=>584, 44=>278, 45=>333, 46=>278,
+ 47=>278, 48=>556, 49=>556, 50=>556, 51=>556, 52=>556, 53=>556, 54=>556, 55=>556, 56=>556, 57=>556, 58=>278, 59=>278, 60=>584, 61=>584, 62=>584,
+ 63=>556, 64=>1015, 65=>667, 66=>667, 67=>722, 68=>722, 69=>667, 70=>611, 71=>778, 72=>722, 73=>278, 74=>500, 75=>667, 76=>556, 77=>833, 78=>722,
+ 79=>778, 80=>667, 81=>778, 82=>722, 83=>667, 84=>611, 85=>722, 86=>667, 87=>944, 88=>667, 89=>667, 90=>611, 91=>278, 92=>278, 93=>278, 94=>469,
+ 95=>556, 96=>333, 97=>556, 98=>556, 99=>500, 100=>556, 101=>556, 102=>278, 103=>556, 104=>556, 105=>222, 106=>222, 107=>500, 108=>222, 109=>833, 110=>556,
+ 111=>556, 112=>556, 113=>556, 114=>333, 115=>500, 116=>278, 117=>556, 118=>500, 119=>722, 120=>500, 121=>500, 122=>500, 123=>334, 124=>260, 125=>334, 126=>584,
+ 8364=>556, 1027=>611, 8218=>222, 402=>556, 8222=>333, 8230=>1000, 8224=>556, 8225=>556, 710=>333, 8240=>1000, 352=>667, 8249=>333, 338=>1000, 1036=>667, 381=>611, 1039=>722,
+ 8216=>222, 8217=>221, 8220=>333, 8221=>333, 8226=>350, 8211=>556, 8212=>1000, 732=>333, 8482=>1000, 353=>500, 8250=>333, 339=>944, 1116=>500, 382=>500, 376=>667, 160=>278,
+ 161=>333, 162=>556, 163=>556, 164=>556, 165=>556, 166=>260, 167=>556, 168=>333, 169=>737, 170=>370, 171=>556, 172=>584, 173=>333, 174=>737, 175=>333, 176=>606,
+ 177=>584, 178=>351, 179=>351, 180=>333, 181=>556, 182=>537, 183=>278, 184=>333, 185=>351, 186=>365, 187=>556, 188=>869, 189=>869, 190=>869, 191=>611, 192=>667,
+ 193=>667, 194=>667, 195=>667, 196=>667, 197=>667, 198=>1000, 199=>722, 200=>667, 201=>667, 202=>667, 203=>667, 204=>278, 205=>278, 206=>278, 207=>278, 208=>722,
+ 209=>722, 210=>778, 211=>778, 212=>778, 213=>778, 214=>778, 215=>584, 216=>778, 217=>722, 218=>722, 219=>722, 220=>722, 221=>666, 222=>666, 223=>611, 224=>556,
+ 225=>556, 226=>556, 227=>556, 228=>556, 229=>556, 230=>889, 231=>500, 232=>556, 233=>556, 234=>556, 235=>556, 236=>278, 237=>278, 238=>278, 239=>278, 240=>556,
+ 241=>556, 242=>556, 243=>556, 244=>556, 245=>556, 246=>556, 247=>584, 248=>611, 249=>556, 250=>556, 251=>556, 252=>556, 253=>500, 254=>555, 255=>500, 256=>667,
+ 257=>556, 258=>667, 259=>556, 260=>667, 261=>556, 262=>722, 263=>500, 264=>722, 265=>500, 266=>722, 267=>500, 268=>722, 269=>500, 270=>722, 271=>635, 272=>722,
+ 273=>556, 274=>667, 275=>556, 276=>667, 277=>556, 278=>667, 279=>556, 280=>667, 281=>556, 282=>667, 283=>556, 284=>778, 285=>556, 286=>778, 287=>556, 288=>778,
+ 289=>556, 290=>778, 291=>556, 292=>722, 293=>556, 294=>722, 295=>556, 296=>278, 297=>278, 298=>278, 299=>222, 300=>278, 301=>278, 302=>278, 303=>222, 304=>278,
+ 305=>278, 306=>700, 307=>374, 308=>500, 309=>222, 310=>667, 311=>500, 312=>500, 313=>556, 314=>222, 315=>556, 316=>222, 317=>556, 318=>292, 319=>556, 320=>500,
+ 321=>556, 322=>222, 323=>722, 324=>556, 325=>722, 326=>556, 327=>722, 328=>556, 329=>556, 330=>722, 331=>556, 332=>778, 333=>556, 334=>778, 335=>556, 336=>778,
+ 337=>556, 340=>722, 341=>333, 342=>722, 343=>333, 344=>722, 345=>333, 346=>667, 347=>500, 348=>667, 349=>500, 350=>667, 351=>500, 354=>611, 355=>278, 356=>611,
+ 357=>308, 358=>611, 359=>278, 360=>722, 361=>556, 362=>722, 363=>556, 364=>722, 365=>556, 366=>722, 367=>556, 368=>722, 369=>556, 370=>722, 371=>556, 372=>944,
+ 373=>722, 374=>667, 375=>500, 377=>611, 378=>500, 379=>611, 380=>500, 383=>278, 384=>556, 386=>667, 387=>556, 388=>667, 389=>556, 390=>722, 391=>722, 392=>500,
+ 393=>722, 395=>667, 396=>556, 398=>667, 399=>778, 400=>667, 401=>611, 403=>778, 409=>500, 413=>722, 414=>556, 415=>778, 421=>556, 423=>667, 424=>500, 425=>611,
+ 427=>278, 429=>278, 430=>611, 452=>1311, 453=>1208, 454=>1056, 455=>1056, 456=>778, 457=>444, 458=>1158, 459=>944, 460=>778, 461=>667, 462=>556, 463=>278, 464=>278,
+ 465=>778, 466=>556, 467=>722, 468=>556, 469=>722, 470=>556, 471=>722, 472=>556, 473=>722, 474=>556, 475=>722, 476=>556, 477=>556, 478=>667, 479=>556, 480=>667,
+ 481=>556, 482=>1000, 483=>889, 486=>778, 487=>556, 488=>667, 489=>500, 490=>778, 491=>556, 492=>778, 493=>556, 496=>222, 497=>1333, 498=>1222, 499=>1056, 500=>778,
+ 501=>556, 504=>722, 505=>556, 506=>667, 507=>556, 508=>1000, 509=>889, 510=>778, 511=>611, 512=>667, 513=>556, 514=>667, 515=>556, 516=>667, 517=>556, 518=>667,
+ 519=>556, 520=>278, 521=>278, 522=>278, 523=>278, 524=>778, 525=>556, 526=>778, 527=>556, 528=>722, 529=>333, 530=>722, 531=>333, 532=>722, 533=>556, 534=>722,
+ 535=>556, 536=>667, 537=>500, 538=>611, 539=>278, 542=>722, 543=>556, 550=>667, 551=>556, 552=>667, 553=>556, 554=>778, 555=>556, 556=>778, 557=>556, 558=>778,
+ 559=>556, 560=>778, 561=>556, 562=>667, 563=>500, 592=>556, 593=>556, 594=>556, 595=>556, 596=>500, 598=>556, 599=>556, 600=>556, 601=>556, 603=>500, 604=>500,
+ 608=>556, 609=>556, 613=>556, 614=>556, 615=>556, 616=>222, 617=>222, 618=>278, 621=>222, 623=>833, 624=>833, 625=>833, 626=>556, 627=>556, 629=>556, 633=>333,
+ 634=>333, 635=>333, 636=>333, 637=>333, 638=>278, 639=>278, 642=>500, 643=>278, 644=>278, 645=>278, 647=>278, 648=>278, 649=>556, 652=>500, 653=>722, 654=>500,
+ 656=>500, 668=>500, 670=>500, 672=>556, 711=>333, 714=>333, 715=>333, 728=>333, 729=>333, 730=>333, 731=>333, 733=>333, 768=>0, 769=>0, 770=>0, 771=>0,
+ 772=>0, 774=>0, 775=>0, 776=>0, 778=>0, 779=>0, 780=>0, 783=>0, 785=>0, 786=>0, 787=>0, 788=>0, 806=>0, 807=>0, 808=>0, 884=>199,
+ 885=>199, 890=>332, 894=>278, 900=>414, 901=>747, 902=>730, 903=>278, 904=>664, 905=>681, 906=>230, 908=>792, 910=>710, 911=>758, 912=>286, 913=>684, 914=>628,
+ 915=>582, 916=>684, 917=>650, 918=>628, 919=>683, 920=>750, 921=>236, 922=>684, 923=>684, 924=>800, 925=>654, 926=>630, 927=>750, 928=>721, 929=>638, 931=>628,
+ 932=>628, 933=>684, 934=>717, 935=>723, 936=>745, 937=>720, 938=>236, 939=>684, 940=>608, 941=>528, 942=>547, 943=>307, 944=>515, 945=>596, 946=>516, 947=>531,
+ 948=>560, 949=>510, 950=>462, 951=>526, 952=>526, 953=>286, 954=>516, 955=>560, 956=>574, 957=>504, 958=>470, 959=>550, 960=>661, 961=>566, 962=>535, 963=>616,
+ 964=>532, 965=>515, 966=>741, 967=>572, 968=>662, 969=>740, 970=>286, 971=>515, 972=>553, 973=>518, 974=>740, 1024=>667, 1025=>667, 1026=>766, 1028=>722, 1029=>667,
+ 1030=>278, 1031=>278, 1032=>500, 1033=>1080, 1034=>1014, 1035=>766, 1037=>722, 1038=>650, 1040=>667, 1041=>667, 1042=>667, 1043=>611, 1044=>812, 1045=>667, 1046=>1023, 1047=>667,
+ 1048=>728, 1049=>728, 1050=>667, 1051=>673, 1052=>844, 1053=>719, 1054=>778, 1055=>719, 1056=>667, 1057=>722, 1058=>611, 1059=>650, 1060=>936, 1061=>667, 1062=>741, 1063=>648,
+ 1064=>828, 1065=>850, 1066=>897, 1067=>872, 1068=>667, 1069=>722, 1070=>1032, 1071=>702, 1072=>556, 1073=>556, 1074=>522, 1075=>430, 1076=>602, 1077=>556, 1078=>837, 1079=>500,
+ 1080=>567, 1081=>567, 1082=>510, 1083=>557, 1084=>618, 1085=>558, 1086=>556, 1087=>557, 1088=>576, 1089=>500, 1090=>496, 1091=>500, 1092=>912, 1093=>500, 1094=>578, 1095=>520,
+ 1096=>692, 1097=>712, 1098=>734, 1099=>690, 1100=>552, 1101=>500, 1102=>758, 1103=>543, 1104=>556, 1105=>556, 1106=>568, 1107=>430, 1108=>500, 1109=>500, 1110=>222, 1111=>278,
+ 1112=>222, 1113=>840, 1114=>850, 1115=>568, 1117=>556, 1118=>500, 1119=>556, 1164=>667, 1165=>552, 1166=>667, 1167=>556, 1168=>611, 1169=>430, 1170=>611, 1171=>430, 1172=>611,
+ 1173=>430, 1174=>1023, 1175=>837, 1176=>667, 1177=>500, 1178=>667, 1179=>500, 1180=>667, 1181=>500, 1182=>667, 1183=>500, 1184=>667, 1185=>500, 1186=>722, 1187=>556, 1188=>1060,
+ 1189=>764, 1190=>722, 1191=>556, 1192=>722, 1193=>500, 1194=>722, 1195=>500, 1196=>611, 1197=>496, 1198=>667, 1199=>500, 1200=>667, 1201=>500, 1202=>667, 1203=>500, 1204=>774,
+ 1205=>608, 1206=>642, 1207=>508, 1208=>642, 1209=>508, 1210=>642, 1211=>508, 1212=>778, 1213=>556, 1214=>688, 1215=>556, 1216=>278, 1217=>1023, 1218=>837, 1219=>667, 1220=>500,
+ 1223=>722, 1224=>556, 1227=>642, 1228=>508, 1232=>667, 1233=>556, 1234=>667, 1235=>556, 1236=>1000, 1237=>889, 1238=>667, 1239=>556, 1240=>778, 1241=>556, 1242=>778, 1243=>556,
+ 1244=>1023, 1245=>837, 1246=>667, 1247=>500, 1248=>667, 1249=>500, 1250=>728, 1251=>567, 1252=>728, 1253=>567, 1254=>778, 1255=>556, 1256=>778, 1257=>556, 1258=>778, 1259=>556,
+ 1260=>722, 1261=>500, 1262=>650, 1263=>500, 1264=>650, 1265=>500, 1266=>650, 1267=>500, 1268=>648, 1269=>520, 1272=>872, 1273=>690, 1329=>722, 1330=>705, 1331=>774, 1332=>754,
+ 1333=>722, 1334=>751, 1335=>485, 1336=>722, 1337=>782, 1338=>655, 1339=>699, 1340=>417, 1341=>853, 1342=>791, 1343=>711, 1344=>588, 1345=>663, 1346=>665, 1347=>665, 1348=>756,
+ 1349=>623, 1350=>773, 1351=>603, 1352=>722, 1353=>648, 1354=>722, 1355=>751, 1356=>750, 1357=>722, 1358=>748, 1359=>667, 1360=>699, 1361=>623, 1362=>417, 1363=>785, 1364=>638,
+ 1365=>778, 1366=>716, 1370=>222, 1371=>133, 1372=>325, 1373=>333, 1374=>344, 1377=>833, 1378=>556, 1379=>572, 1380=>581, 1381=>550, 1382=>588, 1383=>448, 1384=>556, 1385=>568,
+ 1386=>582, 1387=>545, 1388=>301, 1389=>799, 1390=>556, 1391=>554, 1392=>533, 1393=>548, 1394=>552, 1395=>552, 1396=>544, 1397=>222, 1398=>544, 1399=>456, 1400=>556, 1401=>390,
+ 1402=>833, 1403=>509, 1404=>547, 1405=>533, 1406=>610, 1407=>887, 1408=>556, 1409=>545, 1410=>352, 1411=>853, 1412=>588, 1413=>579, 1414=>690, 1415=>545, 1417=>278, 1418=>367,
+ 1456=>70, 1457=>335, 1458=>329, 1459=>329, 1460=>70, 1461=>200, 1462=>200, 1463=>188, 1464=>188, 1465=>70, 1467=>329, 1468=>70, 1469=>70, 1470=>488, 1471=>200, 1472=>212,
+ 1473=>0, 1474=>0, 1475=>278, 1476=>70, 1488=>640, 1489=>591, 1490=>466, 1491=>598, 1492=>622, 1493=>212, 1494=>351, 1495=>623, 1496=>608, 1497=>200, 1498=>526, 1499=>550,
+ 1500=>600, 1501=>623, 1502=>621, 1503=>212, 1504=>378, 1505=>607, 1506=>587, 1507=>575, 1508=>568, 1509=>540, 1510=>590, 1511=>606, 1512=>547, 1513=>776, 1514=>687, 1792=>600,
+ 1793=>201, 1794=>201, 1795=>201, 1796=>201, 1797=>500, 1798=>500, 1799=>500, 1800=>370, 1801=>370, 1802=>574, 1803=>574, 1804=>645, 1805=>574, 1808=>452, 1809=>452, 1810=>574,
+ 1811=>645, 1812=>645, 1813=>509, 1814=>509, 1815=>682, 1816=>585, 1817=>404, 1818=>627, 1819=>718, 1820=>718, 1821=>484, 1822=>682, 1823=>600, 1824=>660, 1825=>682, 1826=>538,
+ 1827=>718, 1828=>718, 1829=>718, 1830=>574, 1831=>574, 1832=>638, 1833=>585, 1834=>509, 1835=>682, 1836=>682, 1840=>1, 1841=>1, 1842=>1, 1843=>1, 1844=>1, 1845=>1,
+ 1846=>1, 1847=>1, 1848=>1, 1849=>1, 1850=>1, 1851=>1, 1852=>1, 1853=>1, 1854=>1, 1855=>1, 1856=>1, 1857=>1, 1858=>1, 1859=>1, 1860=>1, 1861=>1,
+ 1862=>1, 1863=>1, 1864=>1, 1865=>1, 1866=>1, 2305=>6, 2306=>6, 2309=>644, 2310=>816, 2311=>392, 2312=>392, 2313=>459, 2314=>661, 2315=>641, 2317=>423, 2320=>423,
+ 2321=>816, 2323=>816, 2324=>816, 2325=>393, 2326=>622, 2327=>424, 2328=>472, 2329=>508, 2330=>517, 2331=>583, 2332=>549, 2333=>503, 2334=>538, 2335=>444, 2336=>480, 2337=>519,
+ 2338=>479, 2339=>504, 2340=>439, 2341=>542, 2342=>427, 2343=>520, 2344=>415, 2345=>415, 2346=>401, 2347=>401, 2348=>442, 2349=>520, 2350=>463, 2351=>451, 2352=>319, 2353=>319,
+ 2354=>549, 2355=>641, 2357=>442, 2358=>589, 2359=>398, 2360=>506, 2361=>430, 2364=>6, 2365=>438, 2366=>172, 2367=>172, 2368=>172, 2369=>6, 2370=>6, 2371=>6, 2373=>6,
+ 2375=>6, 2376=>6, 2377=>172, 2379=>172, 2380=>172, 2381=>6, 2384=>898, 2385=>6, 2406=>584, 2407=>584, 2408=>584, 2409=>584, 2410=>584, 2411=>584, 2412=>584, 2413=>584,
+ 2414=>584, 2415=>584, 2416=>898, 2433=>300, 2434=>400, 2435=>300, 2437=>640, 2438=>780, 2439=>520, 2440=>520, 2441=>530, 2442=>550, 2443=>620, 2444=>420, 2447=>480, 2448=>620,
+ 2451=>620, 2452=>720, 2453=>652, 2454=>500, 2455=>490, 2456=>466, 2457=>540, 2458=>490, 2459=>540, 2460=>630, 2461=>590, 2462=>680, 2463=>510, 2464=>490, 2465=>520, 2466=>520,
+ 2467=>470, 2468=>540, 2469=>490, 2470=>470, 2471=>490, 2472=>452, 2474=>560, 2475=>650, 2476=>480, 2477=>588, 2478=>480, 2479=>470, 2480=>480, 2482=>472, 2486=>512, 2487=>470,
+ 2488=>470, 2489=>520, 2492=>160, 2494=>180, 2495=>180, 2496=>180, 2497=>320, 2498=>329, 2499=>195, 2500=>260, 2503=>340, 2504=>340, 2507=>740, 2508=>740, 2509=>400, 2519=>180,
+ 2524=>540, 2525=>520, 2527=>470, 2528=>612, 2529=>420, 2530=>234, 2531=>360, 2534=>460, 2535=>420, 2536=>520, 2537=>540, 2538=>400, 2539=>400, 2540=>560, 2541=>390, 2542=>480,
+ 2543=>420, 2544=>480, 2545=>470, 2546=>400, 2547=>470, 2548=>400, 2549=>400, 2550=>400, 2551=>120, 2552=>440, 2553=>420, 2554=>420, 2565=>744, 2566=>914, 2567=>690, 2568=>670,
+ 2569=>596, 2570=>596, 2575=>498, 2576=>744, 2579=>596, 2580=>744, 2581=>550, 2582=>534, 2583=>618, 2584=>690, 2585=>546, 2586=>518, 2587=>592, 2588=>492, 2589=>574, 2590=>514,
+ 2591=>526, 2592=>556, 2593=>524, 2594=>528, 2595=>574, 2596=>484, 2597=>534, 2598=>504, 2599=>534, 2600=>538, 2602=>534, 2603=>506, 2604=>562, 2605=>516, 2606=>546, 2607=>670,
+ 2608=>538, 2610=>726, 2611=>726, 2613=>514, 2614=>546, 2616=>546, 2617=>517, 2620=>286, 2622=>172, 2623=>190, 2624=>190, 2625=>1, 2626=>1, 2631=>1, 2632=>1, 2635=>1,
+ 2636=>1, 2637=>1, 2649=>534, 2650=>618, 2651=>492, 2652=>484, 2654=>506, 2662=>616, 2663=>480, 2664=>560, 2665=>480, 2666=>468, 2667=>492, 2668=>514, 2669=>538, 2670=>572,
+ 2671=>560, 2672=>1, 2674=>498, 2675=>596, 2676=>900, 2689=>33, 2690=>33, 2693=>767, 2694=>961, 2695=>500, 2696=>495, 2697=>528, 2698=>702, 2699=>885, 2709=>501, 2710=>612,
+ 2711=>619, 2712=>569, 2713=>532, 2714=>358, 2715=>620, 2716=>606, 2717=>602, 2718=>631, 2719=>495, 2720=>528, 2721=>531, 2722=>511, 2723=>614, 2724=>294, 2725=>344, 2726=>425,
+ 2727=>345, 2728=>611, 2730=>512, 2731=>578, 2732=>428, 2733=>423, 2734=>231, 2735=>582, 2736=>344, 2738=>558, 2739=>670, 2741=>537, 2742=>592, 2743=>568, 2744=>600, 2745=>544,
+ 2749=>531, 2750=>232, 2751=>232, 2752=>232, 2753=>33, 2754=>33, 2755=>33, 2759=>33, 2760=>33, 2763=>232, 2764=>232, 2768=>903, 2790=>479, 2791=>416, 2792=>465, 2793=>469,
+ 2794=>498, 2795=>463, 2796=>451, 2797=>510, 2798=>455, 2799=>488, 2818=>131, 2819=>302, 2821=>560, 2822=>644, 2823=>632, 2825=>630, 2827=>553, 2831=>604, 2835=>520, 2837=>572,
+ 2838=>570, 2839=>580, 2840=>565, 2842=>580, 2844=>564, 2845=>575, 2847=>565, 2848=>565, 2849=>524, 2858=>572, 2859=>700, 2863=>655, 2864=>620, 2866=>652, 2867=>560, 2870=>565,
+ 2871=>565, 2872=>545, 2873=>524, 2878=>128, 2879=>1, 2880=>190, 2881=>1, 2882=>1, 2883=>1, 2887=>396, 2912=>563, 2918=>508, 2919=>424, 2920=>440, 2921=>600, 2922=>600,
+ 2923=>600, 2924=>600, 2925=>600, 2926=>511, 2927=>483, 2946=>479, 2947=>893, 2949=>1018, 2950=>1170, 2951=>916, 2952=>676, 2953=>836, 2954=>1225, 2958=>744, 2959=>744, 2960=>848,
+ 2962=>813, 2963=>813, 2964=>813, 2965=>688, 2969=>744, 2970=>676, 2972=>848, 2974=>984, 2975=>777, 2979=>1338, 2980=>664, 2984=>561, 2985=>1029, 2986=>607, 2990=>697, 2991=>697,
+ 2992=>434, 2993=>617, 2994=>869, 2995=>859, 2996=>697, 2997=>869, 2999=>1145, 3000=>1064, 3001=>1316, 3006=>424, 3007=>125, 3008=>596, 3009=>539, 3014=>596, 3015=>650, 3016=>973,
+ 3018=>1286, 3019=>1286, 3020=>1706, 3021=>333, 3031=>859, 3034=>778, 3035=>881, 3036=>876, 3037=>648, 3041=>744, 3203=>342, 3205=>620, 3206=>591, 3207=>600, 3208=>776, 3209=>1138,
+ 3210=>1464, 3214=>574, 3215=>570, 3216=>580, 3218=>589, 3219=>597, 3220=>625, 3221=>256, 3222=>565, 3223=>326, 3224=>604, 3225=>651, 3226=>408, 3228=>611, 3230=>843, 3231=>610,
+ 3232=>258, 3233=>317, 3234=>328, 3235=>803, 3236=>317, 3237=>328, 3238=>352, 3239=>352, 3240=>317, 3248=>248, 3249=>621, 3250=>620, 3251=>620, 3302=>649, 3303=>550, 3304=>573,
+ 3305=>567, 3306=>562, 3307=>557, 3308=>562, 3309=>567, 3310=>557, 3311=>557, 3458=>468, 3459=>318, 3461=>660, 3465=>778, 3466=>807, 3467=>830, 3473=>838, 3476=>860, 3481=>1000,
+ 3482=>973, 3483=>860, 3484=>997, 3486=>740, 3488=>838, 3489=>886, 3490=>886, 3492=>1295, 3493=>1295, 3495=>838, 3496=>860, 3497=>860, 3498=>860, 3499=>1403, 3501=>973, 3502=>838,
+ 3503=>660, 3504=>860, 3505=>973, 3507=>660, 3508=>886, 3509=>838, 3510=>860, 3511=>973, 3512=>838, 3513=>860, 3514=>886, 3515=>807, 3517=>830, 3520=>838, 3521=>973, 3522=>886,
+ 3523=>886, 3524=>973, 3525=>830, 3526=>973, 3530=>0, 3535=>432, 3536=>380, 3537=>420, 3538=>0, 3539=>0, 3540=>0, 3542=>0, 3544=>501, 3545=>652, 3551=>648, 7936=>596,
+ 7937=>596, 7938=>596, 7939=>596, 7940=>596, 7941=>596, 7942=>596, 7943=>596, 7944=>684, 7945=>684, 7946=>684, 7947=>684, 7948=>684, 7949=>684, 7950=>684, 7951=>684, 7952=>510,
+ 7953=>510, 7954=>510, 7955=>510, 7956=>510, 7957=>510, 7960=>650, 7961=>650, 7962=>650, 7963=>650, 7964=>650, 7965=>650, 7968=>526, 7969=>526, 7970=>526, 7971=>526, 7972=>526,
+ 7973=>526, 7974=>526, 7975=>526, 7976=>683, 7977=>683, 7978=>683, 7979=>683, 7980=>683, 7981=>683, 7982=>683, 7983=>683, 7984=>286, 7985=>286, 7986=>286, 7987=>286, 7988=>286,
+ 7989=>286, 7990=>286, 7991=>286, 7992=>236, 7993=>236, 7994=>236, 7995=>236, 7996=>236, 7997=>236, 7998=>236, 7999=>236, 8000=>550, 8001=>550, 8002=>550, 8003=>550, 8004=>550,
+ 8005=>550, 8008=>750, 8009=>750, 8010=>750, 8011=>750, 8012=>750, 8013=>750, 8016=>515, 8017=>515, 8018=>515, 8019=>515, 8020=>515, 8021=>515, 8022=>515, 8023=>515, 8025=>684,
+ 8027=>684, 8029=>684, 8031=>684, 8032=>740, 8033=>740, 8034=>740, 8035=>740, 8036=>740, 8037=>740, 8038=>740, 8039=>740, 8040=>720, 8041=>720, 8042=>720, 8043=>720, 8044=>720,
+ 8045=>720, 8046=>720, 8047=>720, 8048=>596, 8049=>596, 8050=>510, 8051=>510, 8052=>526, 8053=>526, 8054=>286, 8055=>286, 8056=>550, 8057=>550, 8058=>515, 8059=>515, 8060=>740,
+ 8061=>740, 8064=>596, 8065=>596, 8066=>596, 8067=>596, 8068=>596, 8069=>596, 8070=>596, 8071=>596, 8072=>882, 8073=>882, 8074=>882, 8075=>882, 8076=>882, 8077=>882, 8078=>882,
+ 8079=>882, 8080=>526, 8081=>526, 8082=>526, 8083=>526, 8084=>526, 8085=>526, 8086=>526, 8087=>526, 8088=>857, 8089=>857, 8090=>857, 8091=>857, 8092=>857, 8093=>857, 8094=>857,
+ 8095=>857, 8096=>740, 8097=>740, 8098=>740, 8099=>740, 8100=>740, 8101=>740, 8102=>740, 8103=>740, 8104=>945, 8105=>945, 8106=>945, 8107=>945, 8108=>945, 8109=>945, 8110=>945,
+ 8111=>945, 8112=>596, 8113=>596, 8114=>596, 8115=>596, 8116=>596, 8118=>596, 8119=>596, 8120=>684, 8121=>684, 8122=>684, 8123=>684, 8124=>882, 8125=>278, 8126=>201, 8127=>333,
+ 8128=>278, 8129=>333, 8130=>526, 8131=>526, 8132=>536, 8134=>526, 8135=>526, 8136=>650, 8137=>650, 8138=>683, 8139=>683, 8140=>857, 8141=>582, 8142=>582, 8143=>333, 8144=>286,
+ 8145=>286, 8146=>286, 8147=>286, 8150=>286, 8151=>312, 8152=>236, 8153=>236, 8154=>236, 8155=>236, 8157=>582, 8158=>582, 8159=>333, 8160=>515, 8161=>515, 8162=>515, 8163=>515,
+ 8164=>566, 8165=>566, 8166=>515, 8167=>515, 8168=>684, 8169=>684, 8170=>684, 8171=>684, 8172=>638, 8173=>333, 8174=>393, 8175=>333, 8178=>740, 8179=>740, 8180=>740, 8182=>740,
+ 8183=>740, 8184=>750, 8185=>750, 8186=>720, 8187=>720, 8188=>939, 8189=>333, 8190=>333, 8208=>333, 8219=>221, 8223=>333, 8227=>350, 8241=>1360, 8242=>278, 8243=>469, 8244=>680,
+ 8245=>278, 8246=>469, 8247=>680, 8251=>622, 8252=>556, 8253=>556, 8260=>167, 8263=>1112, 8264=>834, 8265=>834, 8267=>537, 8304=>351, 8305=>351, 8308=>351, 8309=>351, 8310=>351,
+ 8311=>351, 8312=>351, 8313=>351, 8320=>351, 8321=>351, 8322=>351, 8323=>351, 8324=>351, 8325=>353, 8326=>351, 8327=>351, 8328=>351, 8329=>351, 8359=>1445, 8360=>1222, 8362=>869,
+ 8459=>969, 8460=>615, 8464=>809, 8465=>519, 8466=>874, 8470=>1008, 8475=>850, 8476=>644, 8486=>720, 8487=>720, 8488=>512, 8490=>667, 8491=>667, 8492=>908, 8493=>623, 8496=>562,
+ 8497=>611, 8498=>611, 8499=>1080, 8531=>869, 8532=>869, 8533=>869, 8534=>869, 8535=>869, 8536=>869, 8537=>869, 8538=>869, 8539=>869, 8540=>869, 8541=>869, 8542=>869, 8543=>869,
+ 8544=>278, 8545=>556, 8546=>834, 8547=>945, 8548=>667, 8549=>945, 8550=>1223, 8551=>1501, 8552=>945, 8553=>667, 8554=>945, 8555=>1223, 8556=>556, 8557=>722, 8558=>722, 8559=>833,
+ 8560=>222, 8561=>444, 8562=>666, 8563=>722, 8564=>500, 8565=>722, 8566=>944, 8567=>1166, 8568=>722, 8569=>500, 8570=>722, 8571=>944, 8572=>222, 8573=>500, 8574=>556, 8575=>833,
+ 8592=>987, 8593=>603, 8594=>987, 8595=>603, 8596=>1042, 8597=>1042, 8629=>658, 8656=>987, 8657=>603, 8658=>987, 8659=>603, 8660=>1042, 8704=>667, 8706=>556, 8707=>667, 8709=>556,
+ 8710=>711, 8711=>711, 8712=>713, 8713=>713, 8719=>823, 8720=>823, 8721=>804, 8722=>584, 8723=>584, 8727=>500, 8730=>542, 8733=>713, 8734=>713, 8736=>768, 8743=>603, 8744=>603,
+ 8745=>768, 8746=>768, 8747=>556, 8748=>796, 8749=>956, 8750=>556, 8756=>863, 8764=>549, 8766=>584, 8769=>584, 8770=>584, 8771=>584, 8777=>636, 8800=>548, 8804=>584, 8805=>584,
+ 8853=>768, 8854=>768, 8855=>768, 8869=>658, 8960=>823, 9674=>489, 9834=>555, 12289=>1000, 12290=>1000, 12291=>1000, 12293=>1000, 12295=>1000, 12296=>1000, 12297=>1000, 12298=>1000, 12299=>1000,
+ 12300=>1000, 12301=>1000, 12302=>1000, 12303=>1000, 12304=>1000, 12305=>1000, 12308=>1000, 12309=>1000, 12353=>1000, 12354=>1000, 12355=>1000, 12356=>1000, 12357=>1000, 12358=>1000, 12359=>1000, 12360=>1000,
+ 12361=>1000, 12362=>1000, 12363=>1000, 12364=>1000, 12365=>1000, 12366=>1000, 12367=>1000, 12368=>1000, 12369=>1000, 12370=>1000, 12371=>1000, 12372=>1000, 12373=>1000, 12374=>1000, 12375=>1000, 12376=>1000,
+ 12377=>1000, 12378=>1000, 12379=>1000, 12380=>1000, 12381=>1000, 12382=>1000, 12383=>1000, 12384=>1000, 12385=>1000, 12386=>1000, 12387=>1000, 12388=>1000, 12389=>1000, 12390=>1000, 12391=>1000, 12392=>1000,
+ 12393=>1000, 12394=>1000, 12395=>1000, 12396=>1000, 12397=>1000, 12398=>1000, 12399=>1000, 12400=>1000, 12401=>1000, 12402=>1000, 12403=>1000, 12404=>1000, 12405=>1000, 12406=>1000, 12407=>1000, 12408=>1000,
+ 12409=>1000, 12410=>1000, 12411=>1000, 12412=>1000, 12413=>1000, 12414=>1000, 12415=>1000, 12416=>1000, 12417=>1000, 12418=>1000, 12419=>1000, 12420=>1000, 12421=>1000, 12422=>1000, 12423=>1000, 12424=>1000,
+ 12425=>1000, 12426=>1000, 12427=>1000, 12428=>1000, 12429=>1000, 12430=>1000, 12431=>1000, 12432=>1000, 12433=>1000, 12434=>1000, 12435=>1000, 12441=>1000, 12443=>1000, 12449=>1000, 12450=>1000, 12451=>1000,
+ 12452=>1000, 12453=>1000, 12454=>1000, 12455=>1000, 12456=>1000, 12457=>1000, 12458=>1000, 12459=>1000, 12460=>1000, 12461=>1000, 12462=>1000, 12463=>1000, 12464=>1000, 12465=>1000, 12466=>1000, 12467=>1000,
+ 12468=>1000, 12469=>1000, 12470=>1000, 12471=>1000, 12472=>1000, 12473=>1000, 12474=>1000, 12475=>1000, 12476=>1000, 12477=>1000, 12478=>1000, 12479=>1000, 12480=>1000, 12481=>1000, 12482=>1000, 12483=>1000,
+ 12484=>1000, 12485=>1000, 12486=>1000, 12487=>1000, 12488=>1000, 12489=>1000, 12490=>1000, 12491=>1000, 12492=>1000, 12493=>1000, 12494=>1000, 12495=>1000, 12496=>1000, 12497=>1000, 12498=>1000, 12499=>1000,
+ 12500=>1000, 12501=>1000, 12502=>1000, 12503=>1000, 12504=>1000, 12505=>1000, 12506=>1000, 12507=>1000, 12508=>1000, 12509=>1000, 12510=>1000, 12511=>1000, 12512=>1000, 12513=>1000, 12514=>1000, 12515=>1000,
+ 12516=>1000, 12517=>1000, 12518=>1000, 12519=>1000, 12520=>1000, 12521=>1000, 12522=>1000, 12523=>1000, 12524=>1000, 12525=>1000, 12526=>1000, 12527=>1000, 12528=>1000, 12529=>1000, 12530=>1000, 12531=>1000,
+ 12532=>1000, 12533=>1000, 12534=>1000, 12535=>1000, 12536=>1000, 12537=>1000, 12538=>1000, 12539=>278, 12540=>1000, 12541=>1000, 12542=>1000, 63033=>556, 63034=>556, 63035=>556, 63036=>556, 63037=>556,
+ 63038=>556, 63039=>556, 63040=>556, 63041=>556, 63166=>222, 63171=>333, 63196=>556, 64256=>556, 64257=>500, 64258=>500, 64259=>778, 64260=>778, 64261=>556, 64262=>778, 64285=>200, 64286=>305,
+ 64287=>400, 64288=>587, 64289=>890, 64290=>848, 64291=>872, 64292=>800, 64293=>850, 64294=>873, 64295=>797, 64296=>937, 64297=>584, 64298=>776, 64299=>776, 64300=>776, 64301=>776, 64302=>640,
+ 64303=>640, 64304=>640, 64305=>591, 64306=>466, 64307=>598, 64308=>622, 64309=>262, 64310=>351, 64312=>608, 64313=>270, 64314=>526, 64315=>550, 64316=>600, 64318=>621, 64320=>378, 64321=>607,
+ 64323=>575, 64324=>568, 64326=>590, 64327=>606, 64328=>547, 64329=>776, 64330=>687, 64331=>212, 64332=>591, 64333=>550, 64334=>568, 64335=>640, 65533=>788}
font[:enc]='';
font[:diff]='';
font[:file]='FreeSans.z';
diff --git a/lib/plugins/rfpdf/lib/fonts/freesansb.rb b/lib/plugins/rfpdf/lib/fonts/freesansb.rb
index 1b1e87c54f..fa6ec3958a 100755
--- a/lib/plugins/rfpdf/lib/fonts/freesansb.rb
+++ b/lib/plugins/rfpdf/lib/fonts/freesansb.rb
@@ -6,75 +6,75 @@ TCPDFFontDescriptor.define('freesansb') do |font|
font[:up]=-155;
font[:ut]=69;
font[:cw]={
- 13=>333, 32=>278, 33=>333, 34=>474, 35=>556, 36=>556, 37=>889, 38=>722, 39=>238, 40=>333, 41=>333, 42=>389, 43=>584, 44=>278, 45=>333, 46=>278,
- 47=>278, 48=>556, 49=>556, 50=>556, 51=>556, 52=>556, 53=>556, 54=>556, 55=>556, 56=>556, 57=>556, 58=>333, 59=>333, 60=>584, 61=>584, 62=>584,
- 63=>611, 64=>975, 65=>722, 66=>722, 67=>722, 68=>722, 69=>667, 70=>611, 71=>778, 72=>722, 73=>278, 74=>556, 75=>722, 76=>611, 77=>833, 78=>722,
- 79=>778, 80=>667, 81=>778, 82=>722, 83=>667, 84=>611, 85=>722, 86=>667, 87=>944, 88=>667, 89=>667, 90=>611, 91=>333, 92=>278, 93=>333, 94=>584,
- 95=>556, 96=>333, 97=>556, 98=>611, 99=>556, 100=>611, 101=>556, 102=>333, 103=>611, 104=>611, 105=>278, 106=>278, 107=>556, 108=>278, 109=>889, 110=>611,
- 111=>611, 112=>611, 113=>611, 114=>389, 115=>556, 116=>333, 117=>611, 118=>556, 119=>778, 120=>556, 121=>556, 122=>500, 123=>389, 124=>280, 125=>389, 126=>584,
- 8364=>556, 1027=>611, 8218=>278, 402=>556, 8222=>500, 8230=>1000, 8224=>556, 8225=>556, 710=>333, 8240=>1000, 352=>667, 8249=>333, 338=>1000, 1036=>722, 381=>611, 1039=>722,
- 8216=>278, 8217=>278, 8220=>500, 8221=>500, 8226=>350, 8211=>556, 8212=>1000, 732=>333, 8482=>1000, 353=>556, 8250=>333, 339=>944, 1116=>573, 382=>500, 376=>667, 161=>333,
- 162=>556, 163=>556, 164=>556, 165=>556, 166=>280, 167=>556, 168=>333, 169=>737, 170=>370, 171=>556, 172=>584, 174=>737, 175=>333, 176=>606, 177=>584, 178=>351,
- 179=>351, 180=>333, 181=>611, 182=>556, 183=>278, 184=>333, 185=>351, 186=>365, 187=>556, 188=>869, 189=>869, 190=>869, 191=>611, 192=>722, 193=>722, 194=>722,
- 195=>722, 196=>722, 197=>722, 198=>1000, 199=>722, 200=>667, 201=>667, 202=>667, 203=>667, 204=>278, 205=>278, 206=>278, 207=>278, 208=>722, 209=>722, 210=>778,
- 211=>778, 212=>778, 213=>778, 214=>778, 215=>584, 216=>778, 217=>722, 218=>722, 219=>722, 220=>722, 221=>667, 222=>667, 223=>611, 224=>556, 225=>556, 226=>556,
- 227=>556, 228=>556, 229=>556, 230=>889, 231=>556, 232=>556, 233=>556, 234=>556, 235=>556, 236=>278, 237=>278, 238=>278, 239=>278, 240=>611, 241=>611, 242=>611,
- 243=>611, 244=>611, 245=>611, 246=>611, 247=>584, 248=>611, 249=>611, 250=>611, 251=>611, 252=>611, 253=>556, 254=>611, 255=>556, 256=>722, 257=>556, 258=>722,
- 259=>556, 260=>722, 261=>556, 262=>722, 263=>556, 264=>722, 265=>556, 266=>722, 267=>556, 268=>722, 269=>556, 270=>722, 271=>611, 272=>722, 273=>611, 274=>667,
- 275=>556, 276=>667, 277=>556, 278=>667, 279=>556, 280=>667, 281=>556, 282=>667, 283=>556, 284=>778, 285=>611, 286=>778, 287=>611, 288=>778, 289=>611, 290=>778,
- 291=>611, 292=>722, 293=>611, 294=>722, 295=>611, 296=>278, 297=>278, 298=>278, 299=>278, 300=>278, 301=>278, 302=>278, 303=>278, 304=>278, 305=>278, 306=>808,
- 307=>492, 308=>556, 309=>278, 310=>722, 311=>556, 312=>573, 313=>611, 314=>278, 315=>611, 316=>278, 317=>611, 318=>278, 319=>611, 320=>556, 321=>611, 322=>278,
- 323=>722, 324=>611, 325=>722, 326=>611, 327=>722, 328=>611, 329=>611, 330=>722, 331=>611, 332=>778, 333=>611, 334=>778, 335=>611, 336=>778, 337=>611, 340=>722,
- 341=>389, 342=>722, 343=>389, 344=>722, 345=>389, 346=>667, 347=>556, 348=>667, 349=>556, 350=>667, 351=>556, 354=>611, 355=>333, 356=>611, 357=>333, 358=>611,
- 359=>333, 360=>722, 361=>611, 362=>722, 363=>611, 364=>722, 365=>611, 366=>722, 367=>611, 368=>722, 369=>611, 370=>722, 371=>611, 372=>944, 373=>778, 374=>667,
- 375=>556, 377=>611, 378=>500, 379=>611, 380=>500, 383=>333, 452=>1333, 453=>1222, 454=>1111, 455=>1167, 456=>889, 457=>556, 458=>1278, 459=>1000, 460=>889, 461=>722,
- 462=>556, 463=>278, 464=>278, 465=>778, 466=>611, 467=>722, 468=>611, 469=>722, 470=>611, 471=>722, 472=>611, 473=>722, 474=>611, 475=>722, 476=>611, 478=>722,
- 479=>556, 482=>1000, 483=>889, 486=>778, 487=>611, 488=>722, 489=>556, 490=>778, 491=>611, 492=>778, 493=>611, 497=>1333, 498=>1222, 499=>1111, 504=>722, 505=>611,
- 506=>722, 507=>556, 508=>1000, 509=>889, 510=>778, 511=>611, 514=>722, 515=>556, 518=>667, 519=>556, 522=>278, 523=>278, 526=>778, 527=>611, 530=>722, 531=>389,
- 534=>722, 535=>611, 536=>667, 537=>556, 538=>611, 539=>333, 711=>333, 728=>333, 729=>333, 730=>333, 731=>333, 733=>333, 884=>379, 885=>379, 890=>332, 894=>333,
- 900=>325, 901=>658, 902=>761, 903=>474, 904=>706, 905=>733, 906=>285, 908=>785, 910=>823, 911=>819, 913=>722, 914=>722, 915=>642, 916=>726, 917=>667, 918=>611,
- 919=>722, 920=>810, 921=>278, 922=>722, 923=>744, 924=>860, 925=>714, 926=>690, 927=>822, 928=>781, 929=>698, 931=>688, 932=>688, 933=>804, 934=>777, 935=>783,
- 936=>805, 937=>780, 938=>278, 939=>804, 940=>660, 941=>559, 942=>560, 943=>356, 944=>575, 945=>656, 946=>576, 947=>591, 948=>620, 949=>570, 950=>522, 951=>586,
- 952=>586, 953=>346, 954=>576, 955=>620, 956=>667, 957=>564, 958=>530, 959=>610, 960=>721, 961=>626, 962=>595, 963=>676, 964=>592, 965=>575, 966=>801, 967=>632,
- 968=>722, 969=>800, 970=>346, 971=>575, 972=>599, 973=>567, 974=>1125, 1024=>667, 1025=>709, 1026=>790, 1028=>722, 1029=>667, 1030=>278, 1031=>278, 1032=>556, 1033=>1110,
- 1034=>1113, 1035=>790, 1037=>726, 1038=>718, 1040=>722, 1041=>722, 1042=>722, 1043=>611, 1044=>900, 1045=>709, 1046=>1093, 1047=>672, 1048=>757, 1049=>757, 1050=>750, 1051=>729,
- 1052=>874, 1053=>753, 1054=>778, 1055=>753, 1056=>671, 1057=>722, 1058=>611, 1059=>718, 1060=>892, 1061=>667, 1062=>816, 1063=>685, 1064=>1057, 1065=>1183, 1066=>928, 1067=>949,
- 1068=>687, 1069=>722, 1070=>1109, 1071=>698, 1072=>556, 1073=>606, 1074=>572, 1075=>454, 1076=>685, 1077=>556, 1078=>809, 1079=>546, 1080=>615, 1081=>615, 1082=>573, 1083=>577,
- 1084=>666, 1085=>603, 1086=>611, 1087=>603, 1088=>611, 1089=>556, 1090=>454, 1091=>556, 1092=>957, 1093=>556, 1094=>652, 1095=>578, 1096=>886, 1097=>968, 1098=>693, 1099=>811,
- 1100=>562, 1101=>564, 1102=>908, 1103=>596, 1104=>556, 1105=>556, 1106=>606, 1107=>454, 1108=>556, 1109=>556, 1110=>278, 1111=>278, 1112=>278, 1113=>900, 1114=>611, 1115=>606,
- 1117=>608, 1118=>556, 1119=>608, 1164=>687, 1165=>562, 1166=>667, 1167=>611, 1168=>611, 1169=>454, 1170=>611, 1171=>454, 1172=>611, 1173=>454, 1174=>1093, 1175=>809, 1176=>672,
- 1177=>546, 1178=>722, 1179=>573, 1180=>722, 1181=>573, 1182=>722, 1183=>573, 1184=>722, 1185=>573, 1186=>722, 1187=>608, 1188=>722, 1189=>608, 1190=>722, 1191=>608, 1192=>722,
- 1193=>556, 1194=>722, 1195=>556, 1196=>611, 1197=>454, 1198=>667, 1199=>556, 1200=>667, 1201=>556, 1202=>667, 1203=>556, 1204=>814, 1205=>685, 1206=>675, 1207=>580, 1208=>675,
- 1209=>580, 1210=>675, 1211=>580, 1212=>722, 1213=>556, 1214=>722, 1215=>556, 1216=>278, 1217=>1093, 1218=>809, 1219=>722, 1220=>573, 1223=>722, 1224=>608, 1227=>675, 1228=>580,
- 1232=>722, 1233=>556, 1234=>722, 1235=>556, 1236=>1000, 1237=>889, 1238=>709, 1239=>556, 1240=>722, 1241=>556, 1242=>722, 1243=>556, 1244=>1093, 1245=>809, 1246=>672, 1247=>546,
- 1248=>672, 1249=>546, 1250=>757, 1251=>615, 1252=>757, 1253=>615, 1254=>778, 1255=>611, 1256=>778, 1257=>611, 1258=>778, 1259=>611, 1260=>722, 1261=>564, 1262=>718, 1263=>556,
- 1264=>718, 1265=>556, 1266=>718, 1267=>556, 1268=>685, 1269=>578, 1272=>949, 1273=>811, 1456=>82, 1457=>347, 1458=>341, 1459=>341, 1460=>82, 1461=>211, 1462=>211, 1463=>200,
- 1464=>200, 1465=>82, 1467=>341, 1468=>82, 1469=>82, 1470=>516, 1471=>200, 1472=>297, 1473=>1038, 1474=>1038, 1475=>333, 1476=>82, 1488=>714, 1489=>651, 1490=>557, 1491=>638,
- 1492=>682, 1493=>297, 1494=>443, 1495=>682, 1496=>670, 1497=>284, 1498=>590, 1499=>595, 1500=>667, 1501=>683, 1502=>704, 1503=>297, 1504=>429, 1505=>670, 1506=>653, 1507=>661,
- 1508=>660, 1509=>616, 1510=>671, 1511=>672, 1512=>600, 1513=>840, 1514=>756, 1520=>554, 1521=>550, 1522=>542, 1523=>238, 1524=>474, 1559=>556, 1560=>778, 1561=>944, 1562=>611,
- 1563=>278, 1564=>889, 1569=>844, 1576=>923, 1578=>922, 1579=>922, 1581=>649, 1582=>704, 1587=>1221, 7936=>656, 7937=>656, 7938=>656, 7939=>656, 7940=>656, 7941=>656, 7942=>656,
- 7943=>656, 7944=>722, 7945=>722, 7946=>722, 7947=>722, 7948=>722, 7949=>722, 7950=>722, 7951=>722, 7952=>570, 7953=>570, 7954=>570, 7955=>570, 7956=>570, 7957=>570, 7960=>667,
- 7961=>667, 7962=>667, 7963=>667, 7964=>667, 7965=>667, 7968=>586, 7969=>586, 7970=>586, 7971=>586, 7972=>586, 7973=>586, 7974=>586, 7975=>586, 7976=>722, 7977=>722, 7978=>722,
- 7979=>722, 7980=>722, 7981=>722, 7982=>722, 7983=>722, 7984=>346, 7985=>346, 7986=>346, 7987=>346, 7988=>346, 7989=>346, 7990=>346, 7991=>346, 7992=>278, 7993=>278, 7994=>278,
- 7995=>278, 7996=>278, 7997=>278, 7998=>278, 7999=>278, 8000=>610, 8001=>610, 8002=>610, 8003=>610, 8004=>610, 8005=>610, 8008=>822, 8009=>822, 8010=>822, 8011=>822, 8012=>822,
- 8013=>822, 8016=>575, 8017=>575, 8018=>575, 8019=>575, 8020=>575, 8021=>575, 8022=>575, 8023=>575, 8025=>804, 8027=>804, 8029=>804, 8031=>804, 8032=>800, 8033=>800, 8034=>800,
- 8035=>800, 8036=>800, 8037=>800, 8038=>800, 8039=>800, 8040=>780, 8041=>780, 8042=>780, 8043=>780, 8044=>780, 8045=>780, 8046=>780, 8047=>780, 8048=>656, 8049=>656, 8050=>570,
- 8051=>570, 8052=>586, 8053=>586, 8054=>346, 8055=>346, 8056=>610, 8057=>610, 8058=>575, 8059=>575, 8060=>800, 8061=>800, 8064=>656, 8065=>656, 8066=>656, 8067=>656, 8068=>656,
- 8069=>656, 8070=>656, 8071=>656, 8072=>968, 8073=>968, 8074=>968, 8075=>968, 8076=>968, 8077=>968, 8078=>968, 8079=>968, 8080=>586, 8081=>586, 8082=>586, 8083=>586, 8084=>586,
- 8085=>586, 8086=>586, 8087=>586, 8088=>968, 8089=>968, 8090=>968, 8091=>968, 8092=>968, 8093=>968, 8094=>968, 8095=>968, 8096=>800, 8097=>800, 8098=>800, 8099=>800, 8100=>800,
- 8101=>800, 8102=>800, 8103=>800, 8104=>1026, 8105=>1026, 8106=>1026, 8107=>1026, 8108=>1026, 8109=>1026, 8110=>1026, 8111=>1026, 8112=>656, 8113=>656, 8114=>656, 8115=>656, 8116=>660,
- 8118=>656, 8119=>656, 8120=>722, 8121=>722, 8122=>722, 8123=>722, 8124=>968, 8125=>278, 8126=>346, 8127=>278, 8128=>278, 8129=>333, 8130=>586, 8131=>586, 8132=>560, 8134=>586,
- 8135=>586, 8136=>667, 8137=>667, 8138=>722, 8139=>722, 8140=>968, 8141=>492, 8142=>489, 8143=>394, 8144=>346, 8145=>346, 8146=>346, 8147=>346, 8150=>346, 8151=>346, 8152=>278,
- 8153=>278, 8154=>278, 8155=>278, 8157=>481, 8158=>589, 8159=>333, 8160=>575, 8161=>575, 8162=>575, 8163=>575, 8164=>626, 8165=>626, 8166=>575, 8167=>575, 8168=>804, 8169=>804,
- 8170=>804, 8171=>804, 8172=>698, 8173=>333, 8174=>333, 8175=>333, 8178=>800, 8179=>800, 8180=>1125, 8182=>800, 8183=>800, 8184=>822, 8185=>822, 8186=>780, 8187=>780, 8188=>1111,
- 8189=>333, 8190=>278, 8260=>167, 8308=>351, 8321=>351, 8322=>351, 8323=>351, 8324=>351, 8362=>1049, 8543=>869, 8706=>490, 8710=>729, 8721=>711, 8722=>584, 8730=>542, 8800=>548,
- 8804=>584, 8805=>584, 9674=>489, 63033=>556, 63034=>556, 63035=>556, 63036=>556, 63037=>556, 63038=>556, 63039=>556, 63040=>556, 63041=>556, 63171=>333, 63196=>556, 64257=>611, 64258=>611,
- 64285=>284, 64286=>305, 64287=>542, 64288=>653, 64289=>964, 64290=>888, 64291=>932, 64292=>845, 64293=>917, 64294=>933, 64295=>850, 64296=>1006, 64297=>584, 64298=>840, 64299=>840, 64300=>840,
- 64301=>840, 64302=>714, 64303=>714, 64304=>714, 64305=>651, 64306=>557, 64307=>638, 64308=>682, 64309=>367, 64310=>443, 64312=>670, 64313=>354, 64314=>590, 64315=>595, 64316=>667, 64318=>704,
- 64320=>429, 64321=>670, 64323=>661, 64324=>660, 64326=>671, 64327=>672, 64328=>600, 64329=>840, 64330=>756, 64331=>297, 64332=>651, 64333=>595, 64334=>660, 64335=>714, 65182=>636}
+ 13=>333, 32=>278, 33=>333, 34=>474, 35=>556, 36=>556, 37=>889, 38=>722, 39=>238, 40=>333, 41=>333, 42=>389, 43=>584, 44=>278, 45=>333, 46=>278,
+ 47=>278, 48=>556, 49=>556, 50=>556, 51=>556, 52=>556, 53=>556, 54=>556, 55=>556, 56=>556, 57=>556, 58=>333, 59=>333, 60=>584, 61=>584, 62=>584,
+ 63=>611, 64=>975, 65=>722, 66=>722, 67=>722, 68=>722, 69=>667, 70=>611, 71=>778, 72=>722, 73=>278, 74=>556, 75=>722, 76=>611, 77=>833, 78=>722,
+ 79=>778, 80=>667, 81=>778, 82=>722, 83=>667, 84=>611, 85=>722, 86=>667, 87=>944, 88=>667, 89=>667, 90=>611, 91=>333, 92=>278, 93=>333, 94=>584,
+ 95=>556, 96=>333, 97=>556, 98=>611, 99=>556, 100=>611, 101=>556, 102=>333, 103=>611, 104=>611, 105=>278, 106=>278, 107=>556, 108=>278, 109=>889, 110=>611,
+ 111=>611, 112=>611, 113=>611, 114=>389, 115=>556, 116=>333, 117=>611, 118=>556, 119=>778, 120=>556, 121=>556, 122=>500, 123=>389, 124=>280, 125=>389, 126=>584,
+ 8364=>556, 1027=>611, 8218=>278, 402=>556, 8222=>500, 8230=>1000, 8224=>556, 8225=>556, 710=>333, 8240=>1000, 352=>667, 8249=>333, 338=>1000, 1036=>722, 381=>611, 1039=>722,
+ 8216=>278, 8217=>278, 8220=>500, 8221=>500, 8226=>350, 8211=>556, 8212=>1000, 732=>333, 8482=>1000, 353=>556, 8250=>333, 339=>944, 1116=>573, 382=>500, 376=>667, 161=>333,
+ 162=>556, 163=>556, 164=>556, 165=>556, 166=>280, 167=>556, 168=>333, 169=>737, 170=>370, 171=>556, 172=>584, 174=>737, 175=>333, 176=>606, 177=>584, 178=>351,
+ 179=>351, 180=>333, 181=>611, 182=>556, 183=>278, 184=>333, 185=>351, 186=>365, 187=>556, 188=>869, 189=>869, 190=>869, 191=>611, 192=>722, 193=>722, 194=>722,
+ 195=>722, 196=>722, 197=>722, 198=>1000, 199=>722, 200=>667, 201=>667, 202=>667, 203=>667, 204=>278, 205=>278, 206=>278, 207=>278, 208=>722, 209=>722, 210=>778,
+ 211=>778, 212=>778, 213=>778, 214=>778, 215=>584, 216=>778, 217=>722, 218=>722, 219=>722, 220=>722, 221=>667, 222=>667, 223=>611, 224=>556, 225=>556, 226=>556,
+ 227=>556, 228=>556, 229=>556, 230=>889, 231=>556, 232=>556, 233=>556, 234=>556, 235=>556, 236=>278, 237=>278, 238=>278, 239=>278, 240=>611, 241=>611, 242=>611,
+ 243=>611, 244=>611, 245=>611, 246=>611, 247=>584, 248=>611, 249=>611, 250=>611, 251=>611, 252=>611, 253=>556, 254=>611, 255=>556, 256=>722, 257=>556, 258=>722,
+ 259=>556, 260=>722, 261=>556, 262=>722, 263=>556, 264=>722, 265=>556, 266=>722, 267=>556, 268=>722, 269=>556, 270=>722, 271=>611, 272=>722, 273=>611, 274=>667,
+ 275=>556, 276=>667, 277=>556, 278=>667, 279=>556, 280=>667, 281=>556, 282=>667, 283=>556, 284=>778, 285=>611, 286=>778, 287=>611, 288=>778, 289=>611, 290=>778,
+ 291=>611, 292=>722, 293=>611, 294=>722, 295=>611, 296=>278, 297=>278, 298=>278, 299=>278, 300=>278, 301=>278, 302=>278, 303=>278, 304=>278, 305=>278, 306=>808,
+ 307=>492, 308=>556, 309=>278, 310=>722, 311=>556, 312=>573, 313=>611, 314=>278, 315=>611, 316=>278, 317=>611, 318=>278, 319=>611, 320=>556, 321=>611, 322=>278,
+ 323=>722, 324=>611, 325=>722, 326=>611, 327=>722, 328=>611, 329=>611, 330=>722, 331=>611, 332=>778, 333=>611, 334=>778, 335=>611, 336=>778, 337=>611, 340=>722,
+ 341=>389, 342=>722, 343=>389, 344=>722, 345=>389, 346=>667, 347=>556, 348=>667, 349=>556, 350=>667, 351=>556, 354=>611, 355=>333, 356=>611, 357=>333, 358=>611,
+ 359=>333, 360=>722, 361=>611, 362=>722, 363=>611, 364=>722, 365=>611, 366=>722, 367=>611, 368=>722, 369=>611, 370=>722, 371=>611, 372=>944, 373=>778, 374=>667,
+ 375=>556, 377=>611, 378=>500, 379=>611, 380=>500, 383=>333, 452=>1333, 453=>1222, 454=>1111, 455=>1167, 456=>889, 457=>556, 458=>1278, 459=>1000, 460=>889, 461=>722,
+ 462=>556, 463=>278, 464=>278, 465=>778, 466=>611, 467=>722, 468=>611, 469=>722, 470=>611, 471=>722, 472=>611, 473=>722, 474=>611, 475=>722, 476=>611, 478=>722,
+ 479=>556, 482=>1000, 483=>889, 486=>778, 487=>611, 488=>722, 489=>556, 490=>778, 491=>611, 492=>778, 493=>611, 497=>1333, 498=>1222, 499=>1111, 504=>722, 505=>611,
+ 506=>722, 507=>556, 508=>1000, 509=>889, 510=>778, 511=>611, 514=>722, 515=>556, 518=>667, 519=>556, 522=>278, 523=>278, 526=>778, 527=>611, 530=>722, 531=>389,
+ 534=>722, 535=>611, 536=>667, 537=>556, 538=>611, 539=>333, 711=>333, 728=>333, 729=>333, 730=>333, 731=>333, 733=>333, 884=>379, 885=>379, 890=>332, 894=>333,
+ 900=>325, 901=>658, 902=>761, 903=>474, 904=>706, 905=>733, 906=>285, 908=>785, 910=>823, 911=>819, 913=>722, 914=>722, 915=>642, 916=>726, 917=>667, 918=>611,
+ 919=>722, 920=>810, 921=>278, 922=>722, 923=>744, 924=>860, 925=>714, 926=>690, 927=>822, 928=>781, 929=>698, 931=>688, 932=>688, 933=>804, 934=>777, 935=>783,
+ 936=>805, 937=>780, 938=>278, 939=>804, 940=>660, 941=>559, 942=>560, 943=>356, 944=>575, 945=>656, 946=>576, 947=>591, 948=>620, 949=>570, 950=>522, 951=>586,
+ 952=>586, 953=>346, 954=>576, 955=>620, 956=>667, 957=>564, 958=>530, 959=>610, 960=>721, 961=>626, 962=>595, 963=>676, 964=>592, 965=>575, 966=>801, 967=>632,
+ 968=>722, 969=>800, 970=>346, 971=>575, 972=>599, 973=>567, 974=>1125, 1024=>667, 1025=>709, 1026=>790, 1028=>722, 1029=>667, 1030=>278, 1031=>278, 1032=>556, 1033=>1110,
+ 1034=>1113, 1035=>790, 1037=>726, 1038=>718, 1040=>722, 1041=>722, 1042=>722, 1043=>611, 1044=>900, 1045=>709, 1046=>1093, 1047=>672, 1048=>757, 1049=>757, 1050=>750, 1051=>729,
+ 1052=>874, 1053=>753, 1054=>778, 1055=>753, 1056=>671, 1057=>722, 1058=>611, 1059=>718, 1060=>892, 1061=>667, 1062=>816, 1063=>685, 1064=>1057, 1065=>1183, 1066=>928, 1067=>949,
+ 1068=>687, 1069=>722, 1070=>1109, 1071=>698, 1072=>556, 1073=>606, 1074=>572, 1075=>454, 1076=>685, 1077=>556, 1078=>809, 1079=>546, 1080=>615, 1081=>615, 1082=>573, 1083=>577,
+ 1084=>666, 1085=>603, 1086=>611, 1087=>603, 1088=>611, 1089=>556, 1090=>454, 1091=>556, 1092=>957, 1093=>556, 1094=>652, 1095=>578, 1096=>886, 1097=>968, 1098=>693, 1099=>811,
+ 1100=>562, 1101=>564, 1102=>908, 1103=>596, 1104=>556, 1105=>556, 1106=>606, 1107=>454, 1108=>556, 1109=>556, 1110=>278, 1111=>278, 1112=>278, 1113=>900, 1114=>611, 1115=>606,
+ 1117=>608, 1118=>556, 1119=>608, 1164=>687, 1165=>562, 1166=>667, 1167=>611, 1168=>611, 1169=>454, 1170=>611, 1171=>454, 1172=>611, 1173=>454, 1174=>1093, 1175=>809, 1176=>672,
+ 1177=>546, 1178=>722, 1179=>573, 1180=>722, 1181=>573, 1182=>722, 1183=>573, 1184=>722, 1185=>573, 1186=>722, 1187=>608, 1188=>722, 1189=>608, 1190=>722, 1191=>608, 1192=>722,
+ 1193=>556, 1194=>722, 1195=>556, 1196=>611, 1197=>454, 1198=>667, 1199=>556, 1200=>667, 1201=>556, 1202=>667, 1203=>556, 1204=>814, 1205=>685, 1206=>675, 1207=>580, 1208=>675,
+ 1209=>580, 1210=>675, 1211=>580, 1212=>722, 1213=>556, 1214=>722, 1215=>556, 1216=>278, 1217=>1093, 1218=>809, 1219=>722, 1220=>573, 1223=>722, 1224=>608, 1227=>675, 1228=>580,
+ 1232=>722, 1233=>556, 1234=>722, 1235=>556, 1236=>1000, 1237=>889, 1238=>709, 1239=>556, 1240=>722, 1241=>556, 1242=>722, 1243=>556, 1244=>1093, 1245=>809, 1246=>672, 1247=>546,
+ 1248=>672, 1249=>546, 1250=>757, 1251=>615, 1252=>757, 1253=>615, 1254=>778, 1255=>611, 1256=>778, 1257=>611, 1258=>778, 1259=>611, 1260=>722, 1261=>564, 1262=>718, 1263=>556,
+ 1264=>718, 1265=>556, 1266=>718, 1267=>556, 1268=>685, 1269=>578, 1272=>949, 1273=>811, 1456=>82, 1457=>347, 1458=>341, 1459=>341, 1460=>82, 1461=>211, 1462=>211, 1463=>200,
+ 1464=>200, 1465=>82, 1467=>341, 1468=>82, 1469=>82, 1470=>516, 1471=>200, 1472=>297, 1473=>1038, 1474=>1038, 1475=>333, 1476=>82, 1488=>714, 1489=>651, 1490=>557, 1491=>638,
+ 1492=>682, 1493=>297, 1494=>443, 1495=>682, 1496=>670, 1497=>284, 1498=>590, 1499=>595, 1500=>667, 1501=>683, 1502=>704, 1503=>297, 1504=>429, 1505=>670, 1506=>653, 1507=>661,
+ 1508=>660, 1509=>616, 1510=>671, 1511=>672, 1512=>600, 1513=>840, 1514=>756, 1520=>554, 1521=>550, 1522=>542, 1523=>238, 1524=>474, 1559=>556, 1560=>778, 1561=>944, 1562=>611,
+ 1563=>278, 1564=>889, 1569=>844, 1576=>923, 1578=>922, 1579=>922, 1581=>649, 1582=>704, 1587=>1221, 7936=>656, 7937=>656, 7938=>656, 7939=>656, 7940=>656, 7941=>656, 7942=>656,
+ 7943=>656, 7944=>722, 7945=>722, 7946=>722, 7947=>722, 7948=>722, 7949=>722, 7950=>722, 7951=>722, 7952=>570, 7953=>570, 7954=>570, 7955=>570, 7956=>570, 7957=>570, 7960=>667,
+ 7961=>667, 7962=>667, 7963=>667, 7964=>667, 7965=>667, 7968=>586, 7969=>586, 7970=>586, 7971=>586, 7972=>586, 7973=>586, 7974=>586, 7975=>586, 7976=>722, 7977=>722, 7978=>722,
+ 7979=>722, 7980=>722, 7981=>722, 7982=>722, 7983=>722, 7984=>346, 7985=>346, 7986=>346, 7987=>346, 7988=>346, 7989=>346, 7990=>346, 7991=>346, 7992=>278, 7993=>278, 7994=>278,
+ 7995=>278, 7996=>278, 7997=>278, 7998=>278, 7999=>278, 8000=>610, 8001=>610, 8002=>610, 8003=>610, 8004=>610, 8005=>610, 8008=>822, 8009=>822, 8010=>822, 8011=>822, 8012=>822,
+ 8013=>822, 8016=>575, 8017=>575, 8018=>575, 8019=>575, 8020=>575, 8021=>575, 8022=>575, 8023=>575, 8025=>804, 8027=>804, 8029=>804, 8031=>804, 8032=>800, 8033=>800, 8034=>800,
+ 8035=>800, 8036=>800, 8037=>800, 8038=>800, 8039=>800, 8040=>780, 8041=>780, 8042=>780, 8043=>780, 8044=>780, 8045=>780, 8046=>780, 8047=>780, 8048=>656, 8049=>656, 8050=>570,
+ 8051=>570, 8052=>586, 8053=>586, 8054=>346, 8055=>346, 8056=>610, 8057=>610, 8058=>575, 8059=>575, 8060=>800, 8061=>800, 8064=>656, 8065=>656, 8066=>656, 8067=>656, 8068=>656,
+ 8069=>656, 8070=>656, 8071=>656, 8072=>968, 8073=>968, 8074=>968, 8075=>968, 8076=>968, 8077=>968, 8078=>968, 8079=>968, 8080=>586, 8081=>586, 8082=>586, 8083=>586, 8084=>586,
+ 8085=>586, 8086=>586, 8087=>586, 8088=>968, 8089=>968, 8090=>968, 8091=>968, 8092=>968, 8093=>968, 8094=>968, 8095=>968, 8096=>800, 8097=>800, 8098=>800, 8099=>800, 8100=>800,
+ 8101=>800, 8102=>800, 8103=>800, 8104=>1026, 8105=>1026, 8106=>1026, 8107=>1026, 8108=>1026, 8109=>1026, 8110=>1026, 8111=>1026, 8112=>656, 8113=>656, 8114=>656, 8115=>656, 8116=>660,
+ 8118=>656, 8119=>656, 8120=>722, 8121=>722, 8122=>722, 8123=>722, 8124=>968, 8125=>278, 8126=>346, 8127=>278, 8128=>278, 8129=>333, 8130=>586, 8131=>586, 8132=>560, 8134=>586,
+ 8135=>586, 8136=>667, 8137=>667, 8138=>722, 8139=>722, 8140=>968, 8141=>492, 8142=>489, 8143=>394, 8144=>346, 8145=>346, 8146=>346, 8147=>346, 8150=>346, 8151=>346, 8152=>278,
+ 8153=>278, 8154=>278, 8155=>278, 8157=>481, 8158=>589, 8159=>333, 8160=>575, 8161=>575, 8162=>575, 8163=>575, 8164=>626, 8165=>626, 8166=>575, 8167=>575, 8168=>804, 8169=>804,
+ 8170=>804, 8171=>804, 8172=>698, 8173=>333, 8174=>333, 8175=>333, 8178=>800, 8179=>800, 8180=>1125, 8182=>800, 8183=>800, 8184=>822, 8185=>822, 8186=>780, 8187=>780, 8188=>1111,
+ 8189=>333, 8190=>278, 8260=>167, 8308=>351, 8321=>351, 8322=>351, 8323=>351, 8324=>351, 8362=>1049, 8543=>869, 8706=>490, 8710=>729, 8721=>711, 8722=>584, 8730=>542, 8800=>548,
+ 8804=>584, 8805=>584, 9674=>489, 63033=>556, 63034=>556, 63035=>556, 63036=>556, 63037=>556, 63038=>556, 63039=>556, 63040=>556, 63041=>556, 63171=>333, 63196=>556, 64257=>611, 64258=>611,
+ 64285=>284, 64286=>305, 64287=>542, 64288=>653, 64289=>964, 64290=>888, 64291=>932, 64292=>845, 64293=>917, 64294=>933, 64295=>850, 64296=>1006, 64297=>584, 64298=>840, 64299=>840, 64300=>840,
+ 64301=>840, 64302=>714, 64303=>714, 64304=>714, 64305=>651, 64306=>557, 64307=>638, 64308=>682, 64309=>367, 64310=>443, 64312=>670, 64313=>354, 64314=>590, 64315=>595, 64316=>667, 64318=>704,
+ 64320=>429, 64321=>670, 64323=>661, 64324=>660, 64326=>671, 64327=>672, 64328=>600, 64329=>840, 64330=>756, 64331=>297, 64332=>651, 64333=>595, 64334=>660, 64335=>714, 65182=>636}
font[:enc]='';
font[:diff]='';
font[:file]='FreeSansBold.z';
font[:ctg]='FreeSansBold.ctg.z';
font[:originalsize]=91432;
-end
\ No newline at end of file
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/freesansbi.rb b/lib/plugins/rfpdf/lib/fonts/freesansbi.rb
index 25afab0b66..c9889695a4 100755
--- a/lib/plugins/rfpdf/lib/fonts/freesansbi.rb
+++ b/lib/plugins/rfpdf/lib/fonts/freesansbi.rb
@@ -6,72 +6,72 @@ TCPDFFontDescriptor.define('freesansbi') do |font|
font[:up]=-111;
font[:ut]=69;
font[:cw]={
- 13=>333, 32=>278, 33=>333, 34=>474, 35=>556, 36=>556, 37=>889, 38=>722, 39=>238, 40=>333, 41=>333, 42=>389, 43=>584, 44=>278, 45=>333, 46=>278,
- 47=>278, 48=>556, 49=>556, 50=>556, 51=>556, 52=>556, 53=>556, 54=>556, 55=>556, 56=>556, 57=>556, 58=>333, 59=>333, 60=>584, 61=>584, 62=>584,
- 63=>611, 64=>975, 65=>722, 66=>722, 67=>722, 68=>722, 69=>667, 70=>611, 71=>778, 72=>722, 73=>278, 74=>556, 75=>722, 76=>611, 77=>833, 78=>722,
- 79=>778, 80=>667, 81=>778, 82=>722, 83=>667, 84=>611, 85=>722, 86=>667, 87=>944, 88=>667, 89=>667, 90=>611, 91=>333, 92=>278, 93=>333, 94=>584,
- 95=>556, 96=>333, 97=>556, 98=>611, 99=>556, 100=>611, 101=>556, 102=>333, 103=>611, 104=>611, 105=>278, 106=>278, 107=>556, 108=>278, 109=>889, 110=>611,
- 111=>611, 112=>611, 113=>611, 114=>389, 115=>556, 116=>333, 117=>611, 118=>556, 119=>778, 120=>556, 121=>556, 122=>500, 123=>389, 124=>280, 125=>389, 126=>584,
- 8364=>556, 1027=>611, 8218=>278, 402=>556, 8222=>500, 8230=>1000, 8224=>556, 8225=>556, 710=>333, 8240=>1000, 352=>667, 8249=>333, 338=>1000, 1036=>722, 381=>611, 1039=>722,
- 8216=>278, 8217=>278, 8220=>500, 8221=>500, 8226=>350, 8211=>556, 8212=>1000, 732=>333, 8482=>1000, 353=>556, 8250=>333, 339=>944, 1116=>556, 382=>500, 376=>667, 161=>333,
- 162=>556, 163=>556, 164=>556, 165=>556, 166=>280, 167=>556, 168=>333, 169=>737, 170=>370, 171=>556, 172=>584, 174=>737, 175=>333, 176=>606, 177=>584, 178=>444,
- 179=>444, 180=>333, 181=>611, 182=>556, 183=>278, 184=>333, 185=>444, 186=>365, 187=>556, 188=>1055, 189=>1055, 190=>1055, 191=>611, 192=>722, 193=>722, 194=>722,
- 195=>722, 196=>722, 197=>722, 198=>1000, 199=>722, 200=>667, 201=>667, 202=>667, 203=>667, 204=>278, 205=>278, 206=>278, 207=>278, 208=>722, 209=>722, 210=>778,
- 211=>778, 212=>778, 213=>778, 214=>778, 215=>584, 216=>778, 217=>722, 218=>722, 219=>722, 220=>722, 221=>667, 222=>667, 223=>611, 224=>556, 225=>556, 226=>556,
- 227=>556, 228=>556, 229=>556, 230=>889, 231=>556, 232=>556, 233=>556, 234=>556, 235=>556, 236=>278, 237=>278, 238=>278, 239=>278, 240=>611, 241=>611, 242=>611,
- 243=>611, 244=>611, 245=>611, 246=>611, 247=>584, 248=>611, 249=>611, 250=>611, 251=>611, 252=>611, 253=>556, 254=>611, 255=>556, 256=>722, 257=>556, 258=>722,
- 259=>556, 260=>722, 261=>556, 262=>722, 263=>556, 264=>722, 265=>556, 266=>722, 267=>556, 268=>722, 269=>556, 270=>722, 271=>722, 272=>722, 273=>611, 274=>667,
- 275=>556, 276=>667, 277=>556, 278=>667, 279=>556, 280=>667, 281=>556, 282=>667, 283=>556, 284=>778, 285=>611, 286=>778, 287=>611, 288=>778, 289=>611, 290=>778,
- 291=>611, 292=>722, 293=>611, 294=>722, 295=>611, 296=>278, 297=>278, 298=>278, 299=>278, 300=>278, 301=>278, 302=>278, 303=>268, 304=>278, 305=>278, 306=>278,
- 307=>278, 308=>556, 309=>278, 310=>722, 311=>556, 312=>529, 313=>611, 314=>278, 315=>611, 316=>278, 317=>611, 318=>384, 319=>611, 320=>556, 321=>611, 322=>278,
- 323=>722, 324=>611, 325=>722, 326=>611, 327=>722, 328=>611, 329=>611, 330=>722, 331=>611, 332=>778, 333=>611, 334=>778, 335=>611, 336=>778, 337=>611, 340=>722,
- 341=>389, 342=>722, 343=>389, 344=>722, 345=>389, 346=>667, 347=>556, 348=>667, 349=>556, 350=>667, 351=>556, 354=>611, 355=>333, 356=>611, 357=>404, 358=>611,
- 359=>333, 360=>722, 361=>611, 362=>722, 363=>611, 364=>722, 365=>611, 366=>722, 367=>611, 368=>722, 369=>611, 370=>722, 371=>611, 372=>944, 373=>778, 374=>667,
- 375=>556, 377=>611, 378=>500, 379=>611, 380=>500, 383=>333, 536=>667, 537=>556, 538=>611, 539=>333, 711=>333, 728=>333, 729=>333, 730=>333, 731=>333, 733=>333,
- 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 774=>0, 775=>0, 776=>0, 778=>0, 779=>0, 780=>0, 783=>0, 785=>0, 787=>0, 788=>0, 884=>208,
- 885=>247, 890=>364, 894=>333, 900=>308, 901=>446, 902=>688, 903=>418, 904=>642, 905=>743, 906=>228, 908=>754, 910=>736, 911=>743, 912=>346, 913=>764, 914=>688,
- 915=>642, 916=>744, 917=>710, 918=>688, 919=>743, 920=>810, 921=>296, 922=>744, 923=>744, 924=>860, 925=>714, 926=>690, 927=>822, 928=>781, 929=>698, 931=>688,
- 932=>688, 933=>744, 934=>777, 935=>783, 936=>805, 937=>780, 938=>296, 939=>744, 940=>640, 941=>530, 942=>597, 943=>339, 944=>575, 945=>656, 946=>576, 947=>591,
- 948=>620, 949=>570, 950=>522, 951=>586, 952=>586, 953=>346, 954=>576, 955=>620, 956=>667, 957=>564, 958=>530, 959=>610, 960=>721, 961=>626, 962=>595, 963=>676,
- 964=>592, 965=>575, 966=>801, 967=>632, 968=>722, 969=>800, 970=>346, 971=>575, 972=>609, 973=>604, 974=>769, 1024=>666, 1025=>666, 1026=>790, 1028=>722, 1029=>667,
- 1030=>278, 1031=>278, 1032=>556, 1033=>1110, 1034=>1088, 1035=>790, 1037=>722, 1038=>718, 1040=>722, 1041=>722, 1042=>723, 1043=>611, 1044=>918, 1045=>666, 1046=>1054, 1047=>659,
- 1048=>722, 1049=>722, 1050=>720, 1051=>722, 1052=>843, 1053=>722, 1054=>778, 1055=>722, 1056=>649, 1057=>837, 1058=>611, 1059=>698, 1060=>902, 1061=>664, 1062=>730, 1063=>671,
- 1064=>1101, 1065=>1179, 1066=>816, 1067=>939, 1068=>639, 1069=>737, 1070=>1080, 1071=>690, 1072=>554, 1073=>611, 1074=>621, 1075=>475, 1076=>804, 1077=>552, 1078=>775, 1079=>556,
- 1080=>636, 1081=>636, 1082=>529, 1083=>608, 1084=>697, 1085=>636, 1086=>611, 1087=>636, 1088=>611, 1089=>554, 1090=>454, 1091=>552, 1092=>989, 1093=>554, 1094=>690, 1095=>606,
- 1096=>934, 1097=>987, 1098=>741, 1099=>839, 1100=>619, 1101=>575, 1102=>908, 1103=>636, 1104=>552, 1105=>552, 1106=>606, 1107=>454, 1108=>556, 1109=>556, 1110=>278, 1111=>278,
- 1112=>278, 1113=>900, 1114=>611, 1115=>606, 1117=>636, 1118=>556, 1119=>636, 1164=>639, 1165=>619, 1166=>649, 1167=>611, 1168=>611, 1169=>454, 1170=>611, 1171=>475, 1172=>611,
- 1173=>475, 1174=>1054, 1175=>775, 1176=>659, 1177=>556, 1178=>720, 1179=>529, 1180=>720, 1181=>529, 1182=>720, 1183=>529, 1184=>720, 1185=>529, 1186=>722, 1187=>636, 1188=>722,
- 1189=>636, 1190=>722, 1191=>636, 1192=>837, 1193=>554, 1194=>837, 1195=>554, 1196=>611, 1197=>454, 1198=>667, 1199=>556, 1200=>667, 1201=>556, 1202=>664, 1203=>554, 1204=>730,
- 1205=>690, 1206=>671, 1207=>606, 1208=>671, 1209=>606, 1210=>671, 1211=>606, 1212=>837, 1213=>554, 1214=>837, 1215=>554, 1216=>278, 1217=>1054, 1218=>775, 1219=>720, 1220=>529,
- 1223=>722, 1224=>636, 1227=>671, 1228=>606, 1232=>722, 1233=>554, 1234=>722, 1235=>554, 1236=>1000, 1237=>889, 1238=>666, 1239=>552, 1240=>837, 1241=>554, 1242=>837, 1243=>554,
- 1244=>1054, 1245=>775, 1246=>659, 1247=>556, 1248=>659, 1249=>556, 1250=>722, 1251=>636, 1252=>722, 1253=>636, 1254=>778, 1255=>611, 1256=>778, 1257=>611, 1258=>778, 1259=>611,
- 1260=>737, 1261=>575, 1262=>698, 1263=>552, 1264=>698, 1265=>552, 1266=>698, 1267=>552, 1268=>671, 1269=>606, 1272=>939, 1273=>839, 1456=>82, 1457=>347, 1458=>341, 1459=>341,
- 1460=>82, 1461=>211, 1462=>211, 1463=>200, 1464=>200, 1465=>82, 1467=>341, 1468=>82, 1469=>82, 1470=>516, 1471=>200, 1472=>297, 1473=>1038, 1474=>1038, 1475=>333, 1476=>82,
- 1488=>714, 1489=>651, 1490=>557, 1491=>638, 1492=>682, 1493=>297, 1494=>443, 1495=>682, 1496=>670, 1497=>284, 1498=>590, 1499=>595, 1500=>667, 1501=>683, 1502=>704, 1503=>297,
- 1504=>429, 1505=>670, 1506=>653, 1507=>661, 1508=>660, 1509=>616, 1510=>671, 1511=>672, 1512=>600, 1513=>840, 1514=>756, 1520=>554, 1521=>550, 1522=>542, 1523=>238, 1524=>474,
- 7936=>656, 7937=>656, 7938=>656, 7939=>656, 7940=>656, 7941=>656, 7942=>656, 7943=>656, 7944=>764, 7945=>764, 7946=>764, 7947=>764, 7948=>764, 7949=>764, 7950=>764, 7951=>764,
- 7952=>570, 7953=>570, 7954=>570, 7955=>570, 7956=>570, 7957=>570, 7960=>710, 7961=>710, 7962=>710, 7963=>710, 7964=>710, 7965=>710, 7968=>586, 7969=>586, 7970=>586, 7971=>586,
- 7972=>586, 7973=>586, 7974=>586, 7975=>586, 7976=>743, 7977=>743, 7978=>743, 7979=>743, 7980=>743, 7981=>743, 7982=>743, 7983=>743, 7984=>346, 7985=>346, 7986=>346, 7987=>346,
- 7988=>346, 7989=>346, 7990=>346, 7991=>346, 7992=>296, 7993=>296, 7994=>296, 7995=>296, 7996=>296, 7997=>296, 7998=>296, 7999=>296, 8000=>610, 8001=>610, 8002=>610, 8003=>610,
- 8004=>610, 8005=>610, 8008=>822, 8009=>822, 8010=>822, 8011=>822, 8012=>822, 8013=>822, 8016=>575, 8017=>575, 8018=>575, 8019=>575, 8020=>575, 8021=>575, 8022=>575, 8023=>575,
- 8025=>744, 8027=>744, 8029=>744, 8031=>744, 8032=>800, 8033=>800, 8034=>800, 8035=>800, 8036=>800, 8037=>800, 8038=>800, 8039=>800, 8040=>780, 8041=>780, 8042=>780, 8043=>780,
- 8044=>780, 8045=>780, 8046=>780, 8047=>780, 8048=>656, 8049=>656, 8050=>570, 8051=>570, 8052=>586, 8053=>586, 8054=>346, 8055=>346, 8056=>610, 8057=>610, 8058=>575, 8059=>575,
- 8060=>800, 8061=>800, 8064=>656, 8065=>656, 8066=>656, 8067=>656, 8068=>656, 8069=>656, 8070=>656, 8071=>656, 8072=>1007, 8073=>1007, 8074=>1007, 8075=>1007, 8076=>1007, 8077=>1007,
- 8078=>1007, 8079=>1007, 8080=>586, 8081=>586, 8082=>586, 8083=>586, 8084=>586, 8085=>586, 8086=>586, 8087=>586, 8088=>986, 8089=>986, 8090=>986, 8091=>986, 8092=>986, 8093=>986,
- 8094=>986, 8095=>986, 8096=>800, 8097=>800, 8098=>800, 8099=>800, 8100=>800, 8101=>800, 8102=>800, 8103=>800, 8104=>1023, 8105=>1023, 8106=>1023, 8107=>1023, 8108=>1023, 8109=>1023,
- 8110=>1023, 8111=>1023, 8112=>656, 8113=>656, 8114=>656, 8115=>656, 8116=>640, 8118=>656, 8119=>656, 8120=>764, 8121=>764, 8122=>764, 8123=>764, 8124=>1007, 8125=>278, 8126=>201,
- 8127=>147, 8128=>278, 8129=>333, 8130=>586, 8131=>586, 8132=>597, 8134=>586, 8135=>586, 8136=>710, 8137=>710, 8138=>743, 8139=>743, 8140=>986, 8141=>402, 8142=>403, 8143=>147,
- 8144=>346, 8145=>346, 8146=>346, 8147=>346, 8150=>346, 8151=>346, 8152=>296, 8153=>296, 8154=>296, 8155=>296, 8157=>434, 8158=>433, 8159=>333, 8160=>575, 8161=>575, 8162=>575,
- 8163=>575, 8164=>626, 8165=>626, 8166=>575, 8167=>575, 8168=>744, 8169=>744, 8173=>333, 8174=>351, 8175=>303, 8182=>800, 8183=>800, 8184=>822, 8185=>822, 8186=>780, 8187=>780,
- 8188=>1023, 8189=>333, 8190=>159, 8260=>167, 8263=>1222, 8264=>944, 8265=>944, 8362=>1049, 8706=>490, 8710=>729, 8721=>711, 8722=>584, 8730=>542, 8800=>584, 8804=>584, 8805=>584,
- 9674=>489, 63033=>556, 63034=>556, 63035=>556, 63036=>556, 63037=>556, 63038=>556, 63039=>556, 63040=>556, 63041=>556, 63166=>278, 63171=>333, 63196=>556, 64256=>666, 64257=>611, 64258=>611,
- 64259=>944, 64260=>944, 64261=>666, 64262=>889, 64285=>284, 64286=>305, 64287=>542, 64288=>653, 64289=>964, 64290=>888, 64291=>932, 64292=>845, 64293=>917, 64294=>933, 64295=>850, 64296=>1006,
- 64297=>584, 64298=>840, 64299=>840, 64300=>840, 64301=>840, 64302=>714, 64303=>714, 64304=>714, 64305=>651, 64306=>557, 64307=>638, 64308=>682, 64309=>367, 64310=>443, 64312=>670, 64313=>354,
- 64314=>590, 64315=>595, 64316=>667, 64318=>704, 64320=>429, 64321=>670, 64323=>661, 64324=>660, 64326=>671, 64327=>672, 64328=>600, 64329=>840, 64330=>756, 64331=>297, 64332=>651, 64333=>595,
- 64334=>660, 64335=>714};
+ 13=>333, 32=>278, 33=>333, 34=>474, 35=>556, 36=>556, 37=>889, 38=>722, 39=>238, 40=>333, 41=>333, 42=>389, 43=>584, 44=>278, 45=>333, 46=>278,
+ 47=>278, 48=>556, 49=>556, 50=>556, 51=>556, 52=>556, 53=>556, 54=>556, 55=>556, 56=>556, 57=>556, 58=>333, 59=>333, 60=>584, 61=>584, 62=>584,
+ 63=>611, 64=>975, 65=>722, 66=>722, 67=>722, 68=>722, 69=>667, 70=>611, 71=>778, 72=>722, 73=>278, 74=>556, 75=>722, 76=>611, 77=>833, 78=>722,
+ 79=>778, 80=>667, 81=>778, 82=>722, 83=>667, 84=>611, 85=>722, 86=>667, 87=>944, 88=>667, 89=>667, 90=>611, 91=>333, 92=>278, 93=>333, 94=>584,
+ 95=>556, 96=>333, 97=>556, 98=>611, 99=>556, 100=>611, 101=>556, 102=>333, 103=>611, 104=>611, 105=>278, 106=>278, 107=>556, 108=>278, 109=>889, 110=>611,
+ 111=>611, 112=>611, 113=>611, 114=>389, 115=>556, 116=>333, 117=>611, 118=>556, 119=>778, 120=>556, 121=>556, 122=>500, 123=>389, 124=>280, 125=>389, 126=>584,
+ 8364=>556, 1027=>611, 8218=>278, 402=>556, 8222=>500, 8230=>1000, 8224=>556, 8225=>556, 710=>333, 8240=>1000, 352=>667, 8249=>333, 338=>1000, 1036=>722, 381=>611, 1039=>722,
+ 8216=>278, 8217=>278, 8220=>500, 8221=>500, 8226=>350, 8211=>556, 8212=>1000, 732=>333, 8482=>1000, 353=>556, 8250=>333, 339=>944, 1116=>556, 382=>500, 376=>667, 161=>333,
+ 162=>556, 163=>556, 164=>556, 165=>556, 166=>280, 167=>556, 168=>333, 169=>737, 170=>370, 171=>556, 172=>584, 174=>737, 175=>333, 176=>606, 177=>584, 178=>444,
+ 179=>444, 180=>333, 181=>611, 182=>556, 183=>278, 184=>333, 185=>444, 186=>365, 187=>556, 188=>1055, 189=>1055, 190=>1055, 191=>611, 192=>722, 193=>722, 194=>722,
+ 195=>722, 196=>722, 197=>722, 198=>1000, 199=>722, 200=>667, 201=>667, 202=>667, 203=>667, 204=>278, 205=>278, 206=>278, 207=>278, 208=>722, 209=>722, 210=>778,
+ 211=>778, 212=>778, 213=>778, 214=>778, 215=>584, 216=>778, 217=>722, 218=>722, 219=>722, 220=>722, 221=>667, 222=>667, 223=>611, 224=>556, 225=>556, 226=>556,
+ 227=>556, 228=>556, 229=>556, 230=>889, 231=>556, 232=>556, 233=>556, 234=>556, 235=>556, 236=>278, 237=>278, 238=>278, 239=>278, 240=>611, 241=>611, 242=>611,
+ 243=>611, 244=>611, 245=>611, 246=>611, 247=>584, 248=>611, 249=>611, 250=>611, 251=>611, 252=>611, 253=>556, 254=>611, 255=>556, 256=>722, 257=>556, 258=>722,
+ 259=>556, 260=>722, 261=>556, 262=>722, 263=>556, 264=>722, 265=>556, 266=>722, 267=>556, 268=>722, 269=>556, 270=>722, 271=>722, 272=>722, 273=>611, 274=>667,
+ 275=>556, 276=>667, 277=>556, 278=>667, 279=>556, 280=>667, 281=>556, 282=>667, 283=>556, 284=>778, 285=>611, 286=>778, 287=>611, 288=>778, 289=>611, 290=>778,
+ 291=>611, 292=>722, 293=>611, 294=>722, 295=>611, 296=>278, 297=>278, 298=>278, 299=>278, 300=>278, 301=>278, 302=>278, 303=>268, 304=>278, 305=>278, 306=>278,
+ 307=>278, 308=>556, 309=>278, 310=>722, 311=>556, 312=>529, 313=>611, 314=>278, 315=>611, 316=>278, 317=>611, 318=>384, 319=>611, 320=>556, 321=>611, 322=>278,
+ 323=>722, 324=>611, 325=>722, 326=>611, 327=>722, 328=>611, 329=>611, 330=>722, 331=>611, 332=>778, 333=>611, 334=>778, 335=>611, 336=>778, 337=>611, 340=>722,
+ 341=>389, 342=>722, 343=>389, 344=>722, 345=>389, 346=>667, 347=>556, 348=>667, 349=>556, 350=>667, 351=>556, 354=>611, 355=>333, 356=>611, 357=>404, 358=>611,
+ 359=>333, 360=>722, 361=>611, 362=>722, 363=>611, 364=>722, 365=>611, 366=>722, 367=>611, 368=>722, 369=>611, 370=>722, 371=>611, 372=>944, 373=>778, 374=>667,
+ 375=>556, 377=>611, 378=>500, 379=>611, 380=>500, 383=>333, 536=>667, 537=>556, 538=>611, 539=>333, 711=>333, 728=>333, 729=>333, 730=>333, 731=>333, 733=>333,
+ 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 774=>0, 775=>0, 776=>0, 778=>0, 779=>0, 780=>0, 783=>0, 785=>0, 787=>0, 788=>0, 884=>208,
+ 885=>247, 890=>364, 894=>333, 900=>308, 901=>446, 902=>688, 903=>418, 904=>642, 905=>743, 906=>228, 908=>754, 910=>736, 911=>743, 912=>346, 913=>764, 914=>688,
+ 915=>642, 916=>744, 917=>710, 918=>688, 919=>743, 920=>810, 921=>296, 922=>744, 923=>744, 924=>860, 925=>714, 926=>690, 927=>822, 928=>781, 929=>698, 931=>688,
+ 932=>688, 933=>744, 934=>777, 935=>783, 936=>805, 937=>780, 938=>296, 939=>744, 940=>640, 941=>530, 942=>597, 943=>339, 944=>575, 945=>656, 946=>576, 947=>591,
+ 948=>620, 949=>570, 950=>522, 951=>586, 952=>586, 953=>346, 954=>576, 955=>620, 956=>667, 957=>564, 958=>530, 959=>610, 960=>721, 961=>626, 962=>595, 963=>676,
+ 964=>592, 965=>575, 966=>801, 967=>632, 968=>722, 969=>800, 970=>346, 971=>575, 972=>609, 973=>604, 974=>769, 1024=>666, 1025=>666, 1026=>790, 1028=>722, 1029=>667,
+ 1030=>278, 1031=>278, 1032=>556, 1033=>1110, 1034=>1088, 1035=>790, 1037=>722, 1038=>718, 1040=>722, 1041=>722, 1042=>723, 1043=>611, 1044=>918, 1045=>666, 1046=>1054, 1047=>659,
+ 1048=>722, 1049=>722, 1050=>720, 1051=>722, 1052=>843, 1053=>722, 1054=>778, 1055=>722, 1056=>649, 1057=>837, 1058=>611, 1059=>698, 1060=>902, 1061=>664, 1062=>730, 1063=>671,
+ 1064=>1101, 1065=>1179, 1066=>816, 1067=>939, 1068=>639, 1069=>737, 1070=>1080, 1071=>690, 1072=>554, 1073=>611, 1074=>621, 1075=>475, 1076=>804, 1077=>552, 1078=>775, 1079=>556,
+ 1080=>636, 1081=>636, 1082=>529, 1083=>608, 1084=>697, 1085=>636, 1086=>611, 1087=>636, 1088=>611, 1089=>554, 1090=>454, 1091=>552, 1092=>989, 1093=>554, 1094=>690, 1095=>606,
+ 1096=>934, 1097=>987, 1098=>741, 1099=>839, 1100=>619, 1101=>575, 1102=>908, 1103=>636, 1104=>552, 1105=>552, 1106=>606, 1107=>454, 1108=>556, 1109=>556, 1110=>278, 1111=>278,
+ 1112=>278, 1113=>900, 1114=>611, 1115=>606, 1117=>636, 1118=>556, 1119=>636, 1164=>639, 1165=>619, 1166=>649, 1167=>611, 1168=>611, 1169=>454, 1170=>611, 1171=>475, 1172=>611,
+ 1173=>475, 1174=>1054, 1175=>775, 1176=>659, 1177=>556, 1178=>720, 1179=>529, 1180=>720, 1181=>529, 1182=>720, 1183=>529, 1184=>720, 1185=>529, 1186=>722, 1187=>636, 1188=>722,
+ 1189=>636, 1190=>722, 1191=>636, 1192=>837, 1193=>554, 1194=>837, 1195=>554, 1196=>611, 1197=>454, 1198=>667, 1199=>556, 1200=>667, 1201=>556, 1202=>664, 1203=>554, 1204=>730,
+ 1205=>690, 1206=>671, 1207=>606, 1208=>671, 1209=>606, 1210=>671, 1211=>606, 1212=>837, 1213=>554, 1214=>837, 1215=>554, 1216=>278, 1217=>1054, 1218=>775, 1219=>720, 1220=>529,
+ 1223=>722, 1224=>636, 1227=>671, 1228=>606, 1232=>722, 1233=>554, 1234=>722, 1235=>554, 1236=>1000, 1237=>889, 1238=>666, 1239=>552, 1240=>837, 1241=>554, 1242=>837, 1243=>554,
+ 1244=>1054, 1245=>775, 1246=>659, 1247=>556, 1248=>659, 1249=>556, 1250=>722, 1251=>636, 1252=>722, 1253=>636, 1254=>778, 1255=>611, 1256=>778, 1257=>611, 1258=>778, 1259=>611,
+ 1260=>737, 1261=>575, 1262=>698, 1263=>552, 1264=>698, 1265=>552, 1266=>698, 1267=>552, 1268=>671, 1269=>606, 1272=>939, 1273=>839, 1456=>82, 1457=>347, 1458=>341, 1459=>341,
+ 1460=>82, 1461=>211, 1462=>211, 1463=>200, 1464=>200, 1465=>82, 1467=>341, 1468=>82, 1469=>82, 1470=>516, 1471=>200, 1472=>297, 1473=>1038, 1474=>1038, 1475=>333, 1476=>82,
+ 1488=>714, 1489=>651, 1490=>557, 1491=>638, 1492=>682, 1493=>297, 1494=>443, 1495=>682, 1496=>670, 1497=>284, 1498=>590, 1499=>595, 1500=>667, 1501=>683, 1502=>704, 1503=>297,
+ 1504=>429, 1505=>670, 1506=>653, 1507=>661, 1508=>660, 1509=>616, 1510=>671, 1511=>672, 1512=>600, 1513=>840, 1514=>756, 1520=>554, 1521=>550, 1522=>542, 1523=>238, 1524=>474,
+ 7936=>656, 7937=>656, 7938=>656, 7939=>656, 7940=>656, 7941=>656, 7942=>656, 7943=>656, 7944=>764, 7945=>764, 7946=>764, 7947=>764, 7948=>764, 7949=>764, 7950=>764, 7951=>764,
+ 7952=>570, 7953=>570, 7954=>570, 7955=>570, 7956=>570, 7957=>570, 7960=>710, 7961=>710, 7962=>710, 7963=>710, 7964=>710, 7965=>710, 7968=>586, 7969=>586, 7970=>586, 7971=>586,
+ 7972=>586, 7973=>586, 7974=>586, 7975=>586, 7976=>743, 7977=>743, 7978=>743, 7979=>743, 7980=>743, 7981=>743, 7982=>743, 7983=>743, 7984=>346, 7985=>346, 7986=>346, 7987=>346,
+ 7988=>346, 7989=>346, 7990=>346, 7991=>346, 7992=>296, 7993=>296, 7994=>296, 7995=>296, 7996=>296, 7997=>296, 7998=>296, 7999=>296, 8000=>610, 8001=>610, 8002=>610, 8003=>610,
+ 8004=>610, 8005=>610, 8008=>822, 8009=>822, 8010=>822, 8011=>822, 8012=>822, 8013=>822, 8016=>575, 8017=>575, 8018=>575, 8019=>575, 8020=>575, 8021=>575, 8022=>575, 8023=>575,
+ 8025=>744, 8027=>744, 8029=>744, 8031=>744, 8032=>800, 8033=>800, 8034=>800, 8035=>800, 8036=>800, 8037=>800, 8038=>800, 8039=>800, 8040=>780, 8041=>780, 8042=>780, 8043=>780,
+ 8044=>780, 8045=>780, 8046=>780, 8047=>780, 8048=>656, 8049=>656, 8050=>570, 8051=>570, 8052=>586, 8053=>586, 8054=>346, 8055=>346, 8056=>610, 8057=>610, 8058=>575, 8059=>575,
+ 8060=>800, 8061=>800, 8064=>656, 8065=>656, 8066=>656, 8067=>656, 8068=>656, 8069=>656, 8070=>656, 8071=>656, 8072=>1007, 8073=>1007, 8074=>1007, 8075=>1007, 8076=>1007, 8077=>1007,
+ 8078=>1007, 8079=>1007, 8080=>586, 8081=>586, 8082=>586, 8083=>586, 8084=>586, 8085=>586, 8086=>586, 8087=>586, 8088=>986, 8089=>986, 8090=>986, 8091=>986, 8092=>986, 8093=>986,
+ 8094=>986, 8095=>986, 8096=>800, 8097=>800, 8098=>800, 8099=>800, 8100=>800, 8101=>800, 8102=>800, 8103=>800, 8104=>1023, 8105=>1023, 8106=>1023, 8107=>1023, 8108=>1023, 8109=>1023,
+ 8110=>1023, 8111=>1023, 8112=>656, 8113=>656, 8114=>656, 8115=>656, 8116=>640, 8118=>656, 8119=>656, 8120=>764, 8121=>764, 8122=>764, 8123=>764, 8124=>1007, 8125=>278, 8126=>201,
+ 8127=>147, 8128=>278, 8129=>333, 8130=>586, 8131=>586, 8132=>597, 8134=>586, 8135=>586, 8136=>710, 8137=>710, 8138=>743, 8139=>743, 8140=>986, 8141=>402, 8142=>403, 8143=>147,
+ 8144=>346, 8145=>346, 8146=>346, 8147=>346, 8150=>346, 8151=>346, 8152=>296, 8153=>296, 8154=>296, 8155=>296, 8157=>434, 8158=>433, 8159=>333, 8160=>575, 8161=>575, 8162=>575,
+ 8163=>575, 8164=>626, 8165=>626, 8166=>575, 8167=>575, 8168=>744, 8169=>744, 8173=>333, 8174=>351, 8175=>303, 8182=>800, 8183=>800, 8184=>822, 8185=>822, 8186=>780, 8187=>780,
+ 8188=>1023, 8189=>333, 8190=>159, 8260=>167, 8263=>1222, 8264=>944, 8265=>944, 8362=>1049, 8706=>490, 8710=>729, 8721=>711, 8722=>584, 8730=>542, 8800=>584, 8804=>584, 8805=>584,
+ 9674=>489, 63033=>556, 63034=>556, 63035=>556, 63036=>556, 63037=>556, 63038=>556, 63039=>556, 63040=>556, 63041=>556, 63166=>278, 63171=>333, 63196=>556, 64256=>666, 64257=>611, 64258=>611,
+ 64259=>944, 64260=>944, 64261=>666, 64262=>889, 64285=>284, 64286=>305, 64287=>542, 64288=>653, 64289=>964, 64290=>888, 64291=>932, 64292=>845, 64293=>917, 64294=>933, 64295=>850, 64296=>1006,
+ 64297=>584, 64298=>840, 64299=>840, 64300=>840, 64301=>840, 64302=>714, 64303=>714, 64304=>714, 64305=>651, 64306=>557, 64307=>638, 64308=>682, 64309=>367, 64310=>443, 64312=>670, 64313=>354,
+ 64314=>590, 64315=>595, 64316=>667, 64318=>704, 64320=>429, 64321=>670, 64323=>661, 64324=>660, 64326=>671, 64327=>672, 64328=>600, 64329=>840, 64330=>756, 64331=>297, 64332=>651, 64333=>595,
+ 64334=>660, 64335=>714};
font[:enc]='';
font[:diff]='';
font[:file]='FreeSansBoldOblique.z';
font[:ctg]='FreeSansBoldOblique.ctg.z';
font[:originalsize]=95508;
-end
\ No newline at end of file
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/freesansi.rb b/lib/plugins/rfpdf/lib/fonts/freesansi.rb
index b93f409a0c..a3887ed0f5 100755
--- a/lib/plugins/rfpdf/lib/fonts/freesansi.rb
+++ b/lib/plugins/rfpdf/lib/fonts/freesansi.rb
@@ -6,81 +6,81 @@ TCPDFFontDescriptor.define('freesansi') do |font|
font[:up]=-151;
font[:ut]=50;
font[:cw]={
- 13=>333, 32=>278, 33=>278, 34=>355, 35=>556, 36=>556, 37=>889, 38=>667, 39=>191, 40=>333, 41=>333, 42=>389, 43=>584, 44=>278, 45=>333, 46=>278,
- 47=>278, 48=>556, 49=>556, 50=>556, 51=>556, 52=>556, 53=>556, 54=>556, 55=>556, 56=>556, 57=>556, 58=>278, 59=>278, 60=>584, 61=>584, 62=>584,
- 63=>556, 64=>1015, 65=>667, 66=>667, 67=>722, 68=>722, 69=>667, 70=>611, 71=>778, 72=>722, 73=>278, 74=>500, 75=>667, 76=>556, 77=>833, 78=>722,
- 79=>778, 80=>667, 81=>778, 82=>722, 83=>667, 84=>611, 85=>722, 86=>667, 87=>944, 88=>667, 89=>667, 90=>611, 91=>278, 92=>278, 93=>278, 94=>469,
- 95=>556, 96=>333, 97=>556, 98=>556, 99=>500, 100=>556, 101=>556, 102=>278, 103=>556, 104=>556, 105=>222, 106=>222, 107=>500, 108=>222, 109=>833, 110=>556,
- 111=>556, 112=>556, 113=>556, 114=>333, 115=>500, 116=>278, 117=>556, 118=>500, 119=>722, 120=>500, 121=>500, 122=>500, 123=>334, 124=>260, 125=>334, 126=>584,
- 8364=>556, 1027=>611, 8218=>222, 402=>556, 8222=>333, 8230=>1000, 8224=>556, 8225=>556, 710=>333, 8240=>1000, 352=>667, 8249=>333, 338=>1000, 1036=>667, 381=>611, 1039=>722,
- 8216=>222, 8217=>222, 8220=>333, 8221=>333, 8226=>350, 8211=>556, 8212=>1000, 732=>333, 8482=>1000, 353=>500, 8250=>333, 339=>944, 1116=>500, 382=>500, 376=>667, 161=>333,
- 162=>556, 163=>556, 164=>556, 165=>556, 166=>260, 167=>556, 168=>333, 169=>737, 170=>370, 171=>556, 172=>584, 173=>333, 174=>737, 175=>333, 176=>606, 177=>584,
- 178=>390, 179=>390, 180=>333, 181=>556, 182=>537, 183=>278, 184=>333, 185=>390, 186=>365, 187=>556, 188=>947, 189=>947, 190=>947, 191=>611, 192=>667, 193=>667,
- 194=>667, 195=>667, 196=>667, 197=>667, 198=>1000, 199=>722, 200=>667, 201=>667, 202=>667, 203=>667, 204=>278, 205=>278, 206=>278, 207=>278, 208=>722, 209=>722,
- 210=>778, 211=>778, 212=>778, 213=>778, 214=>778, 215=>584, 216=>778, 217=>722, 218=>722, 219=>722, 220=>722, 221=>667, 222=>667, 223=>611, 224=>556, 225=>556,
- 226=>556, 227=>556, 228=>556, 229=>556, 230=>889, 231=>500, 232=>556, 233=>556, 234=>556, 235=>556, 236=>278, 237=>278, 238=>278, 239=>278, 240=>556, 241=>556,
- 242=>556, 243=>556, 244=>556, 245=>556, 246=>556, 247=>584, 248=>611, 249=>556, 250=>556, 251=>556, 252=>556, 253=>500, 254=>556, 255=>500, 256=>667, 257=>556,
- 258=>667, 259=>556, 260=>667, 261=>556, 262=>722, 263=>500, 264=>722, 265=>500, 266=>722, 267=>500, 268=>722, 269=>500, 270=>722, 271=>650, 272=>722, 273=>556,
- 274=>667, 275=>556, 276=>667, 277=>556, 278=>667, 279=>556, 280=>667, 281=>556, 282=>667, 283=>556, 284=>778, 285=>556, 286=>778, 287=>556, 288=>778, 289=>556,
- 290=>778, 291=>527, 292=>722, 293=>556, 294=>722, 295=>556, 296=>278, 297=>278, 298=>278, 299=>222, 300=>278, 301=>278, 302=>278, 303=>222, 304=>278, 305=>278,
- 306=>742, 307=>362, 308=>500, 309=>222, 310=>667, 311=>500, 312=>510, 313=>556, 314=>222, 315=>556, 316=>222, 317=>556, 318=>307, 319=>556, 320=>500, 321=>556,
- 322=>222, 323=>722, 324=>556, 325=>722, 326=>556, 327=>722, 328=>556, 329=>556, 330=>722, 331=>556, 332=>778, 333=>556, 334=>778, 335=>556, 336=>778, 337=>556,
- 340=>722, 341=>333, 342=>722, 343=>333, 344=>722, 345=>333, 346=>667, 347=>500, 348=>667, 349=>500, 350=>667, 351=>500, 354=>611, 355=>278, 356=>611, 357=>319,
- 358=>611, 359=>278, 360=>722, 361=>556, 362=>722, 363=>556, 364=>722, 365=>556, 366=>722, 367=>556, 368=>722, 369=>556, 370=>722, 371=>556, 372=>944, 373=>722,
- 374=>667, 375=>500, 377=>611, 378=>500, 379=>611, 380=>500, 383=>278, 461=>667, 462=>556, 463=>278, 464=>278, 465=>778, 466=>556, 467=>722, 468=>556, 469=>722,
- 470=>556, 471=>722, 472=>556, 473=>722, 474=>556, 475=>722, 476=>556, 478=>667, 479=>556, 482=>1000, 483=>889, 486=>778, 487=>556, 488=>667, 489=>500, 490=>778,
- 491=>556, 492=>778, 493=>556, 496=>222, 500=>778, 501=>556, 504=>722, 505=>556, 506=>667, 507=>556, 508=>1000, 509=>889, 510=>778, 511=>611, 512=>667, 513=>556,
- 514=>667, 515=>556, 516=>667, 517=>556, 518=>667, 519=>556, 520=>278, 521=>278, 522=>278, 523=>278, 524=>778, 525=>556, 526=>778, 527=>556, 528=>722, 529=>333,
- 530=>722, 531=>333, 532=>722, 533=>556, 534=>722, 535=>556, 536=>667, 537=>500, 538=>611, 539=>278, 711=>333, 728=>333, 729=>333, 730=>333, 731=>333, 733=>333,
- 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 774=>0, 775=>0, 776=>0, 778=>0, 779=>0, 783=>0, 785=>0, 787=>0, 788=>0, 884=>199, 885=>199,
- 890=>332, 894=>278, 900=>291, 901=>624, 902=>659, 903=>358, 904=>657, 905=>678, 906=>183, 908=>729, 910=>699, 911=>747, 912=>286, 913=>684, 914=>628, 915=>582,
- 916=>684, 917=>650, 918=>628, 919=>683, 920=>750, 921=>236, 922=>684, 923=>684, 924=>800, 925=>654, 926=>630, 927=>750, 928=>721, 929=>638, 931=>628, 932=>628,
- 933=>684, 934=>717, 935=>723, 936=>745, 937=>720, 938=>236, 939=>684, 940=>593, 941=>519, 942=>595, 943=>271, 944=>515, 945=>596, 946=>516, 947=>531, 948=>560,
- 949=>510, 950=>462, 951=>526, 952=>526, 953=>286, 954=>516, 955=>560, 956=>607, 957=>504, 958=>470, 959=>550, 960=>661, 961=>566, 962=>535, 963=>616, 964=>532,
- 965=>515, 966=>741, 967=>572, 968=>662, 969=>740, 970=>286, 971=>515, 972=>535, 973=>503, 974=>725, 1024=>667, 1025=>667, 1026=>766, 1028=>722, 1029=>667, 1030=>278,
- 1031=>278, 1032=>500, 1033=>968, 1034=>1173, 1035=>766, 1037=>731, 1038=>650, 1040=>667, 1041=>639, 1042=>667, 1043=>611, 1044=>816, 1045=>667, 1046=>897, 1047=>652, 1048=>731,
- 1049=>731, 1050=>664, 1051=>646, 1052=>833, 1053=>722, 1054=>778, 1055=>722, 1056=>667, 1057=>722, 1058=>611, 1059=>530, 1060=>891, 1061=>667, 1062=>722, 1063=>642, 1064=>836,
- 1065=>837, 1066=>866, 1067=>886, 1068=>698, 1069=>717, 1070=>1079, 1071=>691, 1072=>556, 1073=>556, 1074=>538, 1075=>430, 1076=>640, 1077=>556, 1078=>818, 1079=>495, 1080=>560,
- 1081=>560, 1082=>510, 1083=>556, 1084=>621, 1085=>561, 1086=>556, 1087=>560, 1088=>556, 1089=>500, 1090=>400, 1091=>500, 1092=>916, 1093=>500, 1094=>560, 1095=>497, 1096=>695,
- 1097=>695, 1098=>640, 1099=>734, 1100=>523, 1101=>534, 1102=>788, 1103=>564, 1104=>556, 1105=>556, 1106=>568, 1107=>430, 1108=>500, 1109=>500, 1110=>222, 1111=>278, 1112=>222,
- 1113=>840, 1114=>850, 1115=>568, 1117=>560, 1118=>500, 1119=>560, 1164=>698, 1165=>523, 1166=>667, 1167=>556, 1168=>611, 1169=>430, 1170=>611, 1171=>430, 1172=>611, 1173=>430,
- 1174=>897, 1175=>818, 1176=>652, 1177=>495, 1178=>664, 1179=>510, 1180=>664, 1181=>510, 1182=>664, 1183=>510, 1184=>664, 1185=>510, 1186=>722, 1187=>561, 1188=>722, 1189=>561,
- 1190=>722, 1191=>560, 1192=>722, 1193=>495, 1194=>722, 1195=>495, 1196=>611, 1197=>400, 1198=>667, 1199=>500, 1200=>667, 1201=>500, 1202=>665, 1203=>496, 1204=>722, 1205=>560,
- 1206=>642, 1207=>497, 1208=>642, 1209=>497, 1210=>642, 1211=>497, 1212=>722, 1213=>495, 1214=>722, 1215=>495, 1216=>278, 1217=>897, 1218=>818, 1219=>664, 1220=>510, 1223=>722,
- 1224=>561, 1227=>642, 1228=>497, 1232=>667, 1233=>556, 1234=>667, 1235=>556, 1236=>1000, 1237=>889, 1238=>667, 1239=>556, 1240=>722, 1241=>495, 1242=>722, 1243=>495, 1244=>897,
- 1245=>818, 1246=>652, 1247=>495, 1248=>652, 1249=>495, 1250=>731, 1251=>560, 1252=>731, 1253=>560, 1254=>778, 1255=>556, 1256=>780, 1257=>554, 1258=>780, 1259=>554, 1260=>717,
- 1261=>534, 1262=>530, 1263=>500, 1264=>530, 1265=>500, 1266=>530, 1267=>500, 1268=>642, 1269=>497, 1272=>886, 1273=>734, 1329=>722, 1330=>705, 1331=>774, 1332=>754, 1333=>722,
- 1334=>751, 1335=>485, 1336=>722, 1337=>782, 1338=>655, 1339=>699, 1340=>417, 1341=>853, 1342=>791, 1343=>711, 1344=>588, 1345=>663, 1346=>665, 1347=>665, 1348=>756, 1349=>623,
- 1350=>773, 1351=>603, 1352=>722, 1353=>648, 1354=>722, 1355=>751, 1356=>750, 1357=>722, 1358=>748, 1359=>667, 1360=>699, 1361=>623, 1362=>417, 1363=>785, 1364=>638, 1365=>778,
- 1366=>716, 1370=>222, 1371=>133, 1372=>325, 1373=>333, 1374=>344, 1377=>833, 1378=>556, 1379=>572, 1380=>581, 1381=>550, 1382=>588, 1383=>448, 1384=>556, 1385=>568, 1386=>582,
- 1387=>545, 1388=>301, 1389=>799, 1390=>556, 1391=>554, 1392=>533, 1393=>548, 1394=>552, 1395=>552, 1396=>544, 1397=>222, 1398=>544, 1399=>456, 1400=>556, 1401=>390, 1402=>833,
- 1403=>509, 1404=>547, 1405=>533, 1406=>610, 1407=>887, 1408=>556, 1409=>545, 1410=>352, 1411=>853, 1412=>588, 1413=>579, 1414=>690, 1415=>545, 1417=>278, 1418=>367, 1456=>70,
- 1457=>335, 1458=>329, 1459=>329, 1460=>70, 1461=>200, 1462=>200, 1463=>188, 1464=>188, 1465=>70, 1467=>329, 1468=>70, 1469=>70, 1470=>488, 1471=>200, 1472=>212, 1473=>0,
- 1474=>0, 1475=>278, 1476=>70, 1488=>640, 1489=>591, 1490=>466, 1491=>598, 1492=>622, 1493=>212, 1494=>351, 1495=>623, 1496=>608, 1497=>200, 1498=>526, 1499=>550, 1500=>600,
- 1501=>623, 1502=>621, 1503=>212, 1504=>378, 1505=>607, 1506=>587, 1507=>575, 1508=>568, 1509=>540, 1510=>590, 1511=>606, 1512=>547, 1513=>776, 1514=>687, 1520=>424, 1521=>412,
- 1522=>400, 1523=>184, 1524=>344, 7936=>596, 7937=>596, 7938=>596, 7939=>596, 7940=>596, 7941=>596, 7942=>596, 7943=>596, 7944=>684, 7945=>684, 7946=>684, 7947=>684, 7948=>684,
- 7949=>684, 7950=>684, 7951=>684, 7952=>510, 7953=>510, 7954=>510, 7955=>510, 7956=>510, 7957=>510, 7960=>650, 7961=>650, 7962=>650, 7963=>650, 7964=>650, 7965=>650, 7968=>526,
- 7969=>526, 7970=>526, 7971=>526, 7972=>526, 7973=>526, 7974=>526, 7975=>526, 7976=>683, 7977=>683, 7978=>683, 7979=>683, 7980=>683, 7981=>683, 7982=>683, 7983=>683, 7984=>286,
- 7985=>286, 7986=>286, 7987=>286, 7988=>286, 7989=>286, 7990=>286, 7991=>286, 7992=>236, 7993=>236, 7994=>236, 7995=>236, 7996=>236, 7997=>236, 7998=>236, 7999=>236, 8000=>550,
- 8001=>550, 8002=>550, 8003=>550, 8004=>550, 8005=>550, 8008=>750, 8009=>750, 8010=>750, 8011=>750, 8012=>750, 8013=>750, 8016=>515, 8017=>515, 8018=>515, 8019=>515, 8020=>515,
- 8021=>515, 8022=>515, 8023=>515, 8025=>684, 8027=>684, 8029=>684, 8031=>684, 8032=>740, 8033=>740, 8034=>740, 8035=>740, 8036=>740, 8037=>740, 8038=>740, 8039=>740, 8040=>720,
- 8041=>720, 8042=>720, 8043=>720, 8044=>720, 8045=>720, 8046=>720, 8047=>720, 8048=>596, 8049=>596, 8050=>510, 8051=>510, 8052=>526, 8053=>526, 8054=>286, 8055=>286, 8056=>550,
- 8057=>550, 8058=>515, 8059=>515, 8060=>740, 8061=>740, 8064=>596, 8065=>596, 8066=>596, 8067=>596, 8068=>596, 8069=>596, 8070=>596, 8071=>596, 8072=>900, 8073=>900, 8074=>900,
- 8075=>900, 8076=>900, 8077=>900, 8078=>900, 8079=>900, 8080=>526, 8081=>526, 8082=>526, 8083=>526, 8084=>526, 8085=>526, 8086=>526, 8087=>526, 8088=>899, 8089=>899, 8090=>899,
- 8091=>899, 8092=>899, 8093=>899, 8094=>899, 8095=>899, 8096=>740, 8097=>740, 8098=>740, 8099=>740, 8100=>740, 8101=>740, 8102=>740, 8103=>740, 8104=>936, 8105=>936, 8106=>936,
- 8107=>936, 8108=>936, 8109=>936, 8110=>936, 8111=>936, 8112=>596, 8113=>596, 8114=>596, 8115=>596, 8116=>593, 8118=>596, 8119=>596, 8120=>684, 8121=>684, 8122=>684, 8123=>684,
- 8124=>900, 8125=>278, 8126=>201, 8127=>147, 8128=>278, 8129=>333, 8130=>526, 8131=>526, 8132=>595, 8134=>526, 8135=>526, 8136=>650, 8137=>650, 8138=>683, 8139=>683, 8140=>899,
- 8141=>602, 8142=>601, 8143=>333, 8144=>286, 8145=>286, 8146=>286, 8147=>286, 8150=>286, 8151=>286, 8152=>236, 8153=>236, 8154=>236, 8155=>236, 8157=>434, 8158=>433, 8159=>333,
- 8160=>515, 8161=>515, 8162=>515, 8163=>515, 8164=>566, 8165=>566, 8166=>515, 8167=>515, 8168=>684, 8169=>684, 8170=>684, 8171=>684, 8172=>638, 8173=>333, 8174=>624, 8175=>303,
- 8178=>740, 8179=>740, 8180=>725, 8182=>740, 8183=>740, 8184=>750, 8185=>750, 8186=>720, 8187=>720, 8188=>936, 8189=>333, 8190=>159, 8260=>167, 8362=>869, 8706=>490, 8710=>712,
- 8721=>711, 8722=>584, 8730=>542, 8800=>584, 8804=>584, 8805=>584, 9674=>489, 63033=>556, 63034=>556, 63035=>556, 63036=>556, 63037=>556, 63038=>556, 63039=>556, 63040=>556, 63041=>556,
- 63166=>222, 63171=>333, 63196=>556, 64256=>556, 64257=>500, 64258=>500, 64259=>778, 64260=>778, 64261=>556, 64262=>778, 64285=>200, 64286=>305, 64287=>400, 64288=>587, 64289=>890, 64290=>848,
- 64291=>872, 64292=>800, 64293=>850, 64294=>873, 64295=>797, 64296=>937, 64297=>584, 64298=>776, 64299=>776, 64300=>776, 64301=>776, 64302=>640, 64303=>640, 64304=>640, 64305=>591, 64306=>466,
- 64307=>598, 64308=>622, 64309=>262, 64310=>351, 64312=>608, 64313=>270, 64314=>526, 64315=>550, 64316=>600, 64318=>621, 64320=>378, 64321=>607, 64323=>575, 64324=>568, 64326=>590, 64327=>606,
- 64328=>547, 64329=>776, 64330=>687, 64331=>212, 64332=>591, 64333=>550, 64334=>568, 64335=>640};
+ 13=>333, 32=>278, 33=>278, 34=>355, 35=>556, 36=>556, 37=>889, 38=>667, 39=>191, 40=>333, 41=>333, 42=>389, 43=>584, 44=>278, 45=>333, 46=>278,
+ 47=>278, 48=>556, 49=>556, 50=>556, 51=>556, 52=>556, 53=>556, 54=>556, 55=>556, 56=>556, 57=>556, 58=>278, 59=>278, 60=>584, 61=>584, 62=>584,
+ 63=>556, 64=>1015, 65=>667, 66=>667, 67=>722, 68=>722, 69=>667, 70=>611, 71=>778, 72=>722, 73=>278, 74=>500, 75=>667, 76=>556, 77=>833, 78=>722,
+ 79=>778, 80=>667, 81=>778, 82=>722, 83=>667, 84=>611, 85=>722, 86=>667, 87=>944, 88=>667, 89=>667, 90=>611, 91=>278, 92=>278, 93=>278, 94=>469,
+ 95=>556, 96=>333, 97=>556, 98=>556, 99=>500, 100=>556, 101=>556, 102=>278, 103=>556, 104=>556, 105=>222, 106=>222, 107=>500, 108=>222, 109=>833, 110=>556,
+ 111=>556, 112=>556, 113=>556, 114=>333, 115=>500, 116=>278, 117=>556, 118=>500, 119=>722, 120=>500, 121=>500, 122=>500, 123=>334, 124=>260, 125=>334, 126=>584,
+ 8364=>556, 1027=>611, 8218=>222, 402=>556, 8222=>333, 8230=>1000, 8224=>556, 8225=>556, 710=>333, 8240=>1000, 352=>667, 8249=>333, 338=>1000, 1036=>667, 381=>611, 1039=>722,
+ 8216=>222, 8217=>222, 8220=>333, 8221=>333, 8226=>350, 8211=>556, 8212=>1000, 732=>333, 8482=>1000, 353=>500, 8250=>333, 339=>944, 1116=>500, 382=>500, 376=>667, 161=>333,
+ 162=>556, 163=>556, 164=>556, 165=>556, 166=>260, 167=>556, 168=>333, 169=>737, 170=>370, 171=>556, 172=>584, 173=>333, 174=>737, 175=>333, 176=>606, 177=>584,
+ 178=>390, 179=>390, 180=>333, 181=>556, 182=>537, 183=>278, 184=>333, 185=>390, 186=>365, 187=>556, 188=>947, 189=>947, 190=>947, 191=>611, 192=>667, 193=>667,
+ 194=>667, 195=>667, 196=>667, 197=>667, 198=>1000, 199=>722, 200=>667, 201=>667, 202=>667, 203=>667, 204=>278, 205=>278, 206=>278, 207=>278, 208=>722, 209=>722,
+ 210=>778, 211=>778, 212=>778, 213=>778, 214=>778, 215=>584, 216=>778, 217=>722, 218=>722, 219=>722, 220=>722, 221=>667, 222=>667, 223=>611, 224=>556, 225=>556,
+ 226=>556, 227=>556, 228=>556, 229=>556, 230=>889, 231=>500, 232=>556, 233=>556, 234=>556, 235=>556, 236=>278, 237=>278, 238=>278, 239=>278, 240=>556, 241=>556,
+ 242=>556, 243=>556, 244=>556, 245=>556, 246=>556, 247=>584, 248=>611, 249=>556, 250=>556, 251=>556, 252=>556, 253=>500, 254=>556, 255=>500, 256=>667, 257=>556,
+ 258=>667, 259=>556, 260=>667, 261=>556, 262=>722, 263=>500, 264=>722, 265=>500, 266=>722, 267=>500, 268=>722, 269=>500, 270=>722, 271=>650, 272=>722, 273=>556,
+ 274=>667, 275=>556, 276=>667, 277=>556, 278=>667, 279=>556, 280=>667, 281=>556, 282=>667, 283=>556, 284=>778, 285=>556, 286=>778, 287=>556, 288=>778, 289=>556,
+ 290=>778, 291=>527, 292=>722, 293=>556, 294=>722, 295=>556, 296=>278, 297=>278, 298=>278, 299=>222, 300=>278, 301=>278, 302=>278, 303=>222, 304=>278, 305=>278,
+ 306=>742, 307=>362, 308=>500, 309=>222, 310=>667, 311=>500, 312=>510, 313=>556, 314=>222, 315=>556, 316=>222, 317=>556, 318=>307, 319=>556, 320=>500, 321=>556,
+ 322=>222, 323=>722, 324=>556, 325=>722, 326=>556, 327=>722, 328=>556, 329=>556, 330=>722, 331=>556, 332=>778, 333=>556, 334=>778, 335=>556, 336=>778, 337=>556,
+ 340=>722, 341=>333, 342=>722, 343=>333, 344=>722, 345=>333, 346=>667, 347=>500, 348=>667, 349=>500, 350=>667, 351=>500, 354=>611, 355=>278, 356=>611, 357=>319,
+ 358=>611, 359=>278, 360=>722, 361=>556, 362=>722, 363=>556, 364=>722, 365=>556, 366=>722, 367=>556, 368=>722, 369=>556, 370=>722, 371=>556, 372=>944, 373=>722,
+ 374=>667, 375=>500, 377=>611, 378=>500, 379=>611, 380=>500, 383=>278, 461=>667, 462=>556, 463=>278, 464=>278, 465=>778, 466=>556, 467=>722, 468=>556, 469=>722,
+ 470=>556, 471=>722, 472=>556, 473=>722, 474=>556, 475=>722, 476=>556, 478=>667, 479=>556, 482=>1000, 483=>889, 486=>778, 487=>556, 488=>667, 489=>500, 490=>778,
+ 491=>556, 492=>778, 493=>556, 496=>222, 500=>778, 501=>556, 504=>722, 505=>556, 506=>667, 507=>556, 508=>1000, 509=>889, 510=>778, 511=>611, 512=>667, 513=>556,
+ 514=>667, 515=>556, 516=>667, 517=>556, 518=>667, 519=>556, 520=>278, 521=>278, 522=>278, 523=>278, 524=>778, 525=>556, 526=>778, 527=>556, 528=>722, 529=>333,
+ 530=>722, 531=>333, 532=>722, 533=>556, 534=>722, 535=>556, 536=>667, 537=>500, 538=>611, 539=>278, 711=>333, 728=>333, 729=>333, 730=>333, 731=>333, 733=>333,
+ 768=>0, 769=>0, 770=>0, 771=>0, 772=>0, 774=>0, 775=>0, 776=>0, 778=>0, 779=>0, 783=>0, 785=>0, 787=>0, 788=>0, 884=>199, 885=>199,
+ 890=>332, 894=>278, 900=>291, 901=>624, 902=>659, 903=>358, 904=>657, 905=>678, 906=>183, 908=>729, 910=>699, 911=>747, 912=>286, 913=>684, 914=>628, 915=>582,
+ 916=>684, 917=>650, 918=>628, 919=>683, 920=>750, 921=>236, 922=>684, 923=>684, 924=>800, 925=>654, 926=>630, 927=>750, 928=>721, 929=>638, 931=>628, 932=>628,
+ 933=>684, 934=>717, 935=>723, 936=>745, 937=>720, 938=>236, 939=>684, 940=>593, 941=>519, 942=>595, 943=>271, 944=>515, 945=>596, 946=>516, 947=>531, 948=>560,
+ 949=>510, 950=>462, 951=>526, 952=>526, 953=>286, 954=>516, 955=>560, 956=>607, 957=>504, 958=>470, 959=>550, 960=>661, 961=>566, 962=>535, 963=>616, 964=>532,
+ 965=>515, 966=>741, 967=>572, 968=>662, 969=>740, 970=>286, 971=>515, 972=>535, 973=>503, 974=>725, 1024=>667, 1025=>667, 1026=>766, 1028=>722, 1029=>667, 1030=>278,
+ 1031=>278, 1032=>500, 1033=>968, 1034=>1173, 1035=>766, 1037=>731, 1038=>650, 1040=>667, 1041=>639, 1042=>667, 1043=>611, 1044=>816, 1045=>667, 1046=>897, 1047=>652, 1048=>731,
+ 1049=>731, 1050=>664, 1051=>646, 1052=>833, 1053=>722, 1054=>778, 1055=>722, 1056=>667, 1057=>722, 1058=>611, 1059=>530, 1060=>891, 1061=>667, 1062=>722, 1063=>642, 1064=>836,
+ 1065=>837, 1066=>866, 1067=>886, 1068=>698, 1069=>717, 1070=>1079, 1071=>691, 1072=>556, 1073=>556, 1074=>538, 1075=>430, 1076=>640, 1077=>556, 1078=>818, 1079=>495, 1080=>560,
+ 1081=>560, 1082=>510, 1083=>556, 1084=>621, 1085=>561, 1086=>556, 1087=>560, 1088=>556, 1089=>500, 1090=>400, 1091=>500, 1092=>916, 1093=>500, 1094=>560, 1095=>497, 1096=>695,
+ 1097=>695, 1098=>640, 1099=>734, 1100=>523, 1101=>534, 1102=>788, 1103=>564, 1104=>556, 1105=>556, 1106=>568, 1107=>430, 1108=>500, 1109=>500, 1110=>222, 1111=>278, 1112=>222,
+ 1113=>840, 1114=>850, 1115=>568, 1117=>560, 1118=>500, 1119=>560, 1164=>698, 1165=>523, 1166=>667, 1167=>556, 1168=>611, 1169=>430, 1170=>611, 1171=>430, 1172=>611, 1173=>430,
+ 1174=>897, 1175=>818, 1176=>652, 1177=>495, 1178=>664, 1179=>510, 1180=>664, 1181=>510, 1182=>664, 1183=>510, 1184=>664, 1185=>510, 1186=>722, 1187=>561, 1188=>722, 1189=>561,
+ 1190=>722, 1191=>560, 1192=>722, 1193=>495, 1194=>722, 1195=>495, 1196=>611, 1197=>400, 1198=>667, 1199=>500, 1200=>667, 1201=>500, 1202=>665, 1203=>496, 1204=>722, 1205=>560,
+ 1206=>642, 1207=>497, 1208=>642, 1209=>497, 1210=>642, 1211=>497, 1212=>722, 1213=>495, 1214=>722, 1215=>495, 1216=>278, 1217=>897, 1218=>818, 1219=>664, 1220=>510, 1223=>722,
+ 1224=>561, 1227=>642, 1228=>497, 1232=>667, 1233=>556, 1234=>667, 1235=>556, 1236=>1000, 1237=>889, 1238=>667, 1239=>556, 1240=>722, 1241=>495, 1242=>722, 1243=>495, 1244=>897,
+ 1245=>818, 1246=>652, 1247=>495, 1248=>652, 1249=>495, 1250=>731, 1251=>560, 1252=>731, 1253=>560, 1254=>778, 1255=>556, 1256=>780, 1257=>554, 1258=>780, 1259=>554, 1260=>717,
+ 1261=>534, 1262=>530, 1263=>500, 1264=>530, 1265=>500, 1266=>530, 1267=>500, 1268=>642, 1269=>497, 1272=>886, 1273=>734, 1329=>722, 1330=>705, 1331=>774, 1332=>754, 1333=>722,
+ 1334=>751, 1335=>485, 1336=>722, 1337=>782, 1338=>655, 1339=>699, 1340=>417, 1341=>853, 1342=>791, 1343=>711, 1344=>588, 1345=>663, 1346=>665, 1347=>665, 1348=>756, 1349=>623,
+ 1350=>773, 1351=>603, 1352=>722, 1353=>648, 1354=>722, 1355=>751, 1356=>750, 1357=>722, 1358=>748, 1359=>667, 1360=>699, 1361=>623, 1362=>417, 1363=>785, 1364=>638, 1365=>778,
+ 1366=>716, 1370=>222, 1371=>133, 1372=>325, 1373=>333, 1374=>344, 1377=>833, 1378=>556, 1379=>572, 1380=>581, 1381=>550, 1382=>588, 1383=>448, 1384=>556, 1385=>568, 1386=>582,
+ 1387=>545, 1388=>301, 1389=>799, 1390=>556, 1391=>554, 1392=>533, 1393=>548, 1394=>552, 1395=>552, 1396=>544, 1397=>222, 1398=>544, 1399=>456, 1400=>556, 1401=>390, 1402=>833,
+ 1403=>509, 1404=>547, 1405=>533, 1406=>610, 1407=>887, 1408=>556, 1409=>545, 1410=>352, 1411=>853, 1412=>588, 1413=>579, 1414=>690, 1415=>545, 1417=>278, 1418=>367, 1456=>70,
+ 1457=>335, 1458=>329, 1459=>329, 1460=>70, 1461=>200, 1462=>200, 1463=>188, 1464=>188, 1465=>70, 1467=>329, 1468=>70, 1469=>70, 1470=>488, 1471=>200, 1472=>212, 1473=>0,
+ 1474=>0, 1475=>278, 1476=>70, 1488=>640, 1489=>591, 1490=>466, 1491=>598, 1492=>622, 1493=>212, 1494=>351, 1495=>623, 1496=>608, 1497=>200, 1498=>526, 1499=>550, 1500=>600,
+ 1501=>623, 1502=>621, 1503=>212, 1504=>378, 1505=>607, 1506=>587, 1507=>575, 1508=>568, 1509=>540, 1510=>590, 1511=>606, 1512=>547, 1513=>776, 1514=>687, 1520=>424, 1521=>412,
+ 1522=>400, 1523=>184, 1524=>344, 7936=>596, 7937=>596, 7938=>596, 7939=>596, 7940=>596, 7941=>596, 7942=>596, 7943=>596, 7944=>684, 7945=>684, 7946=>684, 7947=>684, 7948=>684,
+ 7949=>684, 7950=>684, 7951=>684, 7952=>510, 7953=>510, 7954=>510, 7955=>510, 7956=>510, 7957=>510, 7960=>650, 7961=>650, 7962=>650, 7963=>650, 7964=>650, 7965=>650, 7968=>526,
+ 7969=>526, 7970=>526, 7971=>526, 7972=>526, 7973=>526, 7974=>526, 7975=>526, 7976=>683, 7977=>683, 7978=>683, 7979=>683, 7980=>683, 7981=>683, 7982=>683, 7983=>683, 7984=>286,
+ 7985=>286, 7986=>286, 7987=>286, 7988=>286, 7989=>286, 7990=>286, 7991=>286, 7992=>236, 7993=>236, 7994=>236, 7995=>236, 7996=>236, 7997=>236, 7998=>236, 7999=>236, 8000=>550,
+ 8001=>550, 8002=>550, 8003=>550, 8004=>550, 8005=>550, 8008=>750, 8009=>750, 8010=>750, 8011=>750, 8012=>750, 8013=>750, 8016=>515, 8017=>515, 8018=>515, 8019=>515, 8020=>515,
+ 8021=>515, 8022=>515, 8023=>515, 8025=>684, 8027=>684, 8029=>684, 8031=>684, 8032=>740, 8033=>740, 8034=>740, 8035=>740, 8036=>740, 8037=>740, 8038=>740, 8039=>740, 8040=>720,
+ 8041=>720, 8042=>720, 8043=>720, 8044=>720, 8045=>720, 8046=>720, 8047=>720, 8048=>596, 8049=>596, 8050=>510, 8051=>510, 8052=>526, 8053=>526, 8054=>286, 8055=>286, 8056=>550,
+ 8057=>550, 8058=>515, 8059=>515, 8060=>740, 8061=>740, 8064=>596, 8065=>596, 8066=>596, 8067=>596, 8068=>596, 8069=>596, 8070=>596, 8071=>596, 8072=>900, 8073=>900, 8074=>900,
+ 8075=>900, 8076=>900, 8077=>900, 8078=>900, 8079=>900, 8080=>526, 8081=>526, 8082=>526, 8083=>526, 8084=>526, 8085=>526, 8086=>526, 8087=>526, 8088=>899, 8089=>899, 8090=>899,
+ 8091=>899, 8092=>899, 8093=>899, 8094=>899, 8095=>899, 8096=>740, 8097=>740, 8098=>740, 8099=>740, 8100=>740, 8101=>740, 8102=>740, 8103=>740, 8104=>936, 8105=>936, 8106=>936,
+ 8107=>936, 8108=>936, 8109=>936, 8110=>936, 8111=>936, 8112=>596, 8113=>596, 8114=>596, 8115=>596, 8116=>593, 8118=>596, 8119=>596, 8120=>684, 8121=>684, 8122=>684, 8123=>684,
+ 8124=>900, 8125=>278, 8126=>201, 8127=>147, 8128=>278, 8129=>333, 8130=>526, 8131=>526, 8132=>595, 8134=>526, 8135=>526, 8136=>650, 8137=>650, 8138=>683, 8139=>683, 8140=>899,
+ 8141=>602, 8142=>601, 8143=>333, 8144=>286, 8145=>286, 8146=>286, 8147=>286, 8150=>286, 8151=>286, 8152=>236, 8153=>236, 8154=>236, 8155=>236, 8157=>434, 8158=>433, 8159=>333,
+ 8160=>515, 8161=>515, 8162=>515, 8163=>515, 8164=>566, 8165=>566, 8166=>515, 8167=>515, 8168=>684, 8169=>684, 8170=>684, 8171=>684, 8172=>638, 8173=>333, 8174=>624, 8175=>303,
+ 8178=>740, 8179=>740, 8180=>725, 8182=>740, 8183=>740, 8184=>750, 8185=>750, 8186=>720, 8187=>720, 8188=>936, 8189=>333, 8190=>159, 8260=>167, 8362=>869, 8706=>490, 8710=>712,
+ 8721=>711, 8722=>584, 8730=>542, 8800=>584, 8804=>584, 8805=>584, 9674=>489, 63033=>556, 63034=>556, 63035=>556, 63036=>556, 63037=>556, 63038=>556, 63039=>556, 63040=>556, 63041=>556,
+ 63166=>222, 63171=>333, 63196=>556, 64256=>556, 64257=>500, 64258=>500, 64259=>778, 64260=>778, 64261=>556, 64262=>778, 64285=>200, 64286=>305, 64287=>400, 64288=>587, 64289=>890, 64290=>848,
+ 64291=>872, 64292=>800, 64293=>850, 64294=>873, 64295=>797, 64296=>937, 64297=>584, 64298=>776, 64299=>776, 64300=>776, 64301=>776, 64302=>640, 64303=>640, 64304=>640, 64305=>591, 64306=>466,
+ 64307=>598, 64308=>622, 64309=>262, 64310=>351, 64312=>608, 64313=>270, 64314=>526, 64315=>550, 64316=>600, 64318=>621, 64320=>378, 64321=>607, 64323=>575, 64324=>568, 64326=>590, 64327=>606,
+ 64328=>547, 64329=>776, 64330=>687, 64331=>212, 64332=>591, 64333=>550, 64334=>568, 64335=>640};
font[:enc]='';
font[:diff]='';
font[:file]='FreeSansOblique.z';
font[:ctg]='FreeSansOblique.ctg.z';
font[:originalsize]=110740;
-end
\ No newline at end of file
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/helvetica.rb b/lib/plugins/rfpdf/lib/fonts/helvetica.rb
index 8dbd741e5b..06e2348cff 100755
--- a/lib/plugins/rfpdf/lib/fonts/helvetica.rb
+++ b/lib/plugins/rfpdf/lib/fonts/helvetica.rb
@@ -1,5 +1,5 @@
#-- encoding: UTF-8
TCPDFFontDescriptor.define('helvetica') do |font|
font[:cw]={
- 0.chr=>278, 1.chr=>278, 2.chr=>278, 3.chr=>278, 4.chr=>278, 5.chr=>278, 6.chr=>278, 7.chr=>278, 8.chr=>278, 9.chr=>278, 10.chr=>278, 11.chr=>278, 12.chr=>278, 13.chr=>278, 14.chr=>278, 15.chr=>278, 16.chr=>278, 17.chr=>278, 18.chr=>278, 19.chr=>278, 20.chr=>278, 21.chr=>278, 22.chr=>278, 23.chr=>278, 24.chr=>278, 25.chr=>278, 26.chr=>278, 27.chr=>278, 28.chr=>278, 29.chr=>278, 30.chr=>278, 31.chr=>278, ' '=>278, '!'=>278, '"'=>355, '#'=>556, '$'=>556, '%'=>889, '&'=>667, '\''=>191, '('=>333, ')'=>333, '*'=>389, '+'=>584, ','=>278, '-'=>333, '.'=>278, '/'=>278, '0'=>556, '1'=>556, '2'=>556, '3'=>556, '4'=>556, '5'=>556, '6'=>556, '7'=>556, '8'=>556, '9'=>556, ':'=>278, ';'=>278, '<'=>584, '='=>584, '>'=>584, '?'=>556, '@'=>1015, 'A'=>667, 'B'=>667, 'C'=>722, 'D'=>722, 'E'=>667, 'F'=>611, 'G'=>778, 'H'=>722, 'I'=>278, 'J'=>500, 'K'=>667, 'L'=>556, 'M'=>833, 'N'=>722, 'O'=>778, 'P'=>667, 'Q'=>778, 'R'=>722, 'S'=>667, 'T'=>611, 'U'=>722, 'V'=>667, 'W'=>944, 'X'=>667, 'Y'=>667, 'Z'=>611, '['=>278, '\\'=>278, ']'=>278, '^'=>469, '_'=>556, '`'=>333, 'a'=>556, 'b'=>556, 'c'=>500, 'd'=>556, 'e'=>556, 'f'=>278, 'g'=>556, 'h'=>556, 'i'=>222, 'j'=>222, 'k'=>500, 'l'=>222, 'm'=>833, 'n'=>556, 'o'=>556, 'p'=>556, 'q'=>556, 'r'=>333, 's'=>500, 't'=>278, 'u'=>556, 'v'=>500, 'w'=>722, 'x'=>500, 'y'=>500, 'z'=>500, '{'=>334, '|'=>260, '}'=>334, '~'=>584, 127.chr=>350, 128.chr=>556, 129.chr=>350, 130.chr=>222, 131.chr=>556, 132.chr=>333, 133.chr=>1000, 134.chr=>556, 135.chr=>556, 136.chr=>333, 137.chr=>1000, 138.chr=>667, 139.chr=>333, 140.chr=>1000, 141.chr=>350, 142.chr=>611, 143.chr=>350, 144.chr=>350, 145.chr=>222, 146.chr=>222, 147.chr=>333, 148.chr=>333, 149.chr=>350, 150.chr=>556, 151.chr=>1000, 152.chr=>333, 153.chr=>1000, 154.chr=>500, 155.chr=>333, 156.chr=>944, 157.chr=>350, 158.chr=>500, 159.chr=>667, 160.chr=>278, 161.chr=>333, 162.chr=>556, 163.chr=>556, 164.chr=>556, 165.chr=>556, 166.chr=>260, 167.chr=>556, 168.chr=>333, 169.chr=>737, 170.chr=>370, 171.chr=>556, 172.chr=>584, 173.chr=>333, 174.chr=>737, 175.chr=>333, 176.chr=>400, 177.chr=>584, 178.chr=>333, 179.chr=>333, 180.chr=>333, 181.chr=>556, 182.chr=>537, 183.chr=>278, 184.chr=>333, 185.chr=>333, 186.chr=>365, 187.chr=>556, 188.chr=>834, 189.chr=>834, 190.chr=>834, 191.chr=>611, 192.chr=>667, 193.chr=>667, 194.chr=>667, 195.chr=>667, 196.chr=>667, 197.chr=>667, 198.chr=>1000, 199.chr=>722, 200.chr=>667, 201.chr=>667, 202.chr=>667, 203.chr=>667, 204.chr=>278, 205.chr=>278, 206.chr=>278, 207.chr=>278, 208.chr=>722, 209.chr=>722, 210.chr=>778, 211.chr=>778, 212.chr=>778, 213.chr=>778, 214.chr=>778, 215.chr=>584, 216.chr=>778, 217.chr=>722, 218.chr=>722, 219.chr=>722, 220.chr=>722, 221.chr=>667, 222.chr=>667, 223.chr=>611, 224.chr=>556, 225.chr=>556, 226.chr=>556, 227.chr=>556, 228.chr=>556, 229.chr=>556, 230.chr=>889, 231.chr=>500, 232.chr=>556, 233.chr=>556, 234.chr=>556, 235.chr=>556, 236.chr=>278, 237.chr=>278, 238.chr=>278, 239.chr=>278, 240.chr=>556, 241.chr=>556, 242.chr=>556, 243.chr=>556, 244.chr=>556, 245.chr=>556, 246.chr=>556, 247.chr=>584, 248.chr=>611, 249.chr=>556, 250.chr=>556, 251.chr=>556, 252.chr=>556, 253.chr=>500, 254.chr=>556, 255.chr=>500}
-end
\ No newline at end of file
+ 0.chr=>278, 1.chr=>278, 2.chr=>278, 3.chr=>278, 4.chr=>278, 5.chr=>278, 6.chr=>278, 7.chr=>278, 8.chr=>278, 9.chr=>278, 10.chr=>278, 11.chr=>278, 12.chr=>278, 13.chr=>278, 14.chr=>278, 15.chr=>278, 16.chr=>278, 17.chr=>278, 18.chr=>278, 19.chr=>278, 20.chr=>278, 21.chr=>278, 22.chr=>278, 23.chr=>278, 24.chr=>278, 25.chr=>278, 26.chr=>278, 27.chr=>278, 28.chr=>278, 29.chr=>278, 30.chr=>278, 31.chr=>278, ' '=>278, '!'=>278, '"'=>355, '#'=>556, '$'=>556, '%'=>889, '&'=>667, '\''=>191, '('=>333, ')'=>333, '*'=>389, '+'=>584, ','=>278, '-'=>333, '.'=>278, '/'=>278, '0'=>556, '1'=>556, '2'=>556, '3'=>556, '4'=>556, '5'=>556, '6'=>556, '7'=>556, '8'=>556, '9'=>556, ':'=>278, ';'=>278, '<'=>584, '='=>584, '>'=>584, '?'=>556, '@'=>1015, 'A'=>667, 'B'=>667, 'C'=>722, 'D'=>722, 'E'=>667, 'F'=>611, 'G'=>778, 'H'=>722, 'I'=>278, 'J'=>500, 'K'=>667, 'L'=>556, 'M'=>833, 'N'=>722, 'O'=>778, 'P'=>667, 'Q'=>778, 'R'=>722, 'S'=>667, 'T'=>611, 'U'=>722, 'V'=>667, 'W'=>944, 'X'=>667, 'Y'=>667, 'Z'=>611, '['=>278, '\\'=>278, ']'=>278, '^'=>469, '_'=>556, '`'=>333, 'a'=>556, 'b'=>556, 'c'=>500, 'd'=>556, 'e'=>556, 'f'=>278, 'g'=>556, 'h'=>556, 'i'=>222, 'j'=>222, 'k'=>500, 'l'=>222, 'm'=>833, 'n'=>556, 'o'=>556, 'p'=>556, 'q'=>556, 'r'=>333, 's'=>500, 't'=>278, 'u'=>556, 'v'=>500, 'w'=>722, 'x'=>500, 'y'=>500, 'z'=>500, '{'=>334, '|'=>260, '}'=>334, '~'=>584, 127.chr=>350, 128.chr=>556, 129.chr=>350, 130.chr=>222, 131.chr=>556, 132.chr=>333, 133.chr=>1000, 134.chr=>556, 135.chr=>556, 136.chr=>333, 137.chr=>1000, 138.chr=>667, 139.chr=>333, 140.chr=>1000, 141.chr=>350, 142.chr=>611, 143.chr=>350, 144.chr=>350, 145.chr=>222, 146.chr=>222, 147.chr=>333, 148.chr=>333, 149.chr=>350, 150.chr=>556, 151.chr=>1000, 152.chr=>333, 153.chr=>1000, 154.chr=>500, 155.chr=>333, 156.chr=>944, 157.chr=>350, 158.chr=>500, 159.chr=>667, 160.chr=>278, 161.chr=>333, 162.chr=>556, 163.chr=>556, 164.chr=>556, 165.chr=>556, 166.chr=>260, 167.chr=>556, 168.chr=>333, 169.chr=>737, 170.chr=>370, 171.chr=>556, 172.chr=>584, 173.chr=>333, 174.chr=>737, 175.chr=>333, 176.chr=>400, 177.chr=>584, 178.chr=>333, 179.chr=>333, 180.chr=>333, 181.chr=>556, 182.chr=>537, 183.chr=>278, 184.chr=>333, 185.chr=>333, 186.chr=>365, 187.chr=>556, 188.chr=>834, 189.chr=>834, 190.chr=>834, 191.chr=>611, 192.chr=>667, 193.chr=>667, 194.chr=>667, 195.chr=>667, 196.chr=>667, 197.chr=>667, 198.chr=>1000, 199.chr=>722, 200.chr=>667, 201.chr=>667, 202.chr=>667, 203.chr=>667, 204.chr=>278, 205.chr=>278, 206.chr=>278, 207.chr=>278, 208.chr=>722, 209.chr=>722, 210.chr=>778, 211.chr=>778, 212.chr=>778, 213.chr=>778, 214.chr=>778, 215.chr=>584, 216.chr=>778, 217.chr=>722, 218.chr=>722, 219.chr=>722, 220.chr=>722, 221.chr=>667, 222.chr=>667, 223.chr=>611, 224.chr=>556, 225.chr=>556, 226.chr=>556, 227.chr=>556, 228.chr=>556, 229.chr=>556, 230.chr=>889, 231.chr=>500, 232.chr=>556, 233.chr=>556, 234.chr=>556, 235.chr=>556, 236.chr=>278, 237.chr=>278, 238.chr=>278, 239.chr=>278, 240.chr=>556, 241.chr=>556, 242.chr=>556, 243.chr=>556, 244.chr=>556, 245.chr=>556, 246.chr=>556, 247.chr=>584, 248.chr=>611, 249.chr=>556, 250.chr=>556, 251.chr=>556, 252.chr=>556, 253.chr=>500, 254.chr=>556, 255.chr=>500}
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/helveticab.rb b/lib/plugins/rfpdf/lib/fonts/helveticab.rb
index 6dc38ba301..09148e3feb 100755
--- a/lib/plugins/rfpdf/lib/fonts/helveticab.rb
+++ b/lib/plugins/rfpdf/lib/fonts/helveticab.rb
@@ -1,16 +1,16 @@
#-- encoding: UTF-8
TCPDFFontDescriptor.define('helveticab') do |font|
font[:cw]={
- 0.chr=>278,1.chr=>278,2.chr=>278,3.chr=>278,4.chr=>278,5.chr=>278,6.chr=>278,7.chr=>278,8.chr=>278,9.chr=>278,10.chr=>278,11.chr=>278,12.chr=>278,13.chr=>278,14.chr=>278,15.chr=>278,16.chr=>278,17.chr=>278,18.chr=>278,19.chr=>278,20.chr=>278,21.chr=>278,
- 22.chr=>278,23.chr=>278,24.chr=>278,25.chr=>278,26.chr=>278,27.chr=>278,28.chr=>278,29.chr=>278,30.chr=>278,31.chr=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
- ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
- 'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
- 'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
- 'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,127.chr=>350,128.chr=>556,129.chr=>350,130.chr=>278,131.chr=>556,
- 132.chr=>500,133.chr=>1000,134.chr=>556,135.chr=>556,136.chr=>333,137.chr=>1000,138.chr=>667,139.chr=>333,140.chr=>1000,141.chr=>350,142.chr=>611,143.chr=>350,144.chr=>350,145.chr=>278,146.chr=>278,147.chr=>500,148.chr=>500,149.chr=>350,150.chr=>556,151.chr=>1000,152.chr=>333,153.chr=>1000,
- 154.chr=>556,155.chr=>333,156.chr=>944,157.chr=>350,158.chr=>500,159.chr=>667,160.chr=>278,161.chr=>333,162.chr=>556,163.chr=>556,164.chr=>556,165.chr=>556,166.chr=>280,167.chr=>556,168.chr=>333,169.chr=>737,170.chr=>370,171.chr=>556,172.chr=>584,173.chr=>333,174.chr=>737,175.chr=>333,
- 176.chr=>400,177.chr=>584,178.chr=>333,179.chr=>333,180.chr=>333,181.chr=>611,182.chr=>556,183.chr=>278,184.chr=>333,185.chr=>333,186.chr=>365,187.chr=>556,188.chr=>834,189.chr=>834,190.chr=>834,191.chr=>611,192.chr=>722,193.chr=>722,194.chr=>722,195.chr=>722,196.chr=>722,197.chr=>722,
- 198.chr=>1000,199.chr=>722,200.chr=>667,201.chr=>667,202.chr=>667,203.chr=>667,204.chr=>278,205.chr=>278,206.chr=>278,207.chr=>278,208.chr=>722,209.chr=>722,210.chr=>778,211.chr=>778,212.chr=>778,213.chr=>778,214.chr=>778,215.chr=>584,216.chr=>778,217.chr=>722,218.chr=>722,219.chr=>722,
- 220.chr=>722,221.chr=>667,222.chr=>667,223.chr=>611,224.chr=>556,225.chr=>556,226.chr=>556,227.chr=>556,228.chr=>556,229.chr=>556,230.chr=>889,231.chr=>556,232.chr=>556,233.chr=>556,234.chr=>556,235.chr=>556,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>611,241.chr=>611,
- 242.chr=>611,243.chr=>611,244.chr=>611,245.chr=>611,246.chr=>611,247.chr=>584,248.chr=>611,249.chr=>611,250.chr=>611,251.chr=>611,252.chr=>611,253.chr=>556,254.chr=>611,255.chr=>556}
-end
\ No newline at end of file
+ 0.chr=>278,1.chr=>278,2.chr=>278,3.chr=>278,4.chr=>278,5.chr=>278,6.chr=>278,7.chr=>278,8.chr=>278,9.chr=>278,10.chr=>278,11.chr=>278,12.chr=>278,13.chr=>278,14.chr=>278,15.chr=>278,16.chr=>278,17.chr=>278,18.chr=>278,19.chr=>278,20.chr=>278,21.chr=>278,
+ 22.chr=>278,23.chr=>278,24.chr=>278,25.chr=>278,26.chr=>278,27.chr=>278,28.chr=>278,29.chr=>278,30.chr=>278,31.chr=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
+ ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
+ 'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
+ 'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
+ 'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,127.chr=>350,128.chr=>556,129.chr=>350,130.chr=>278,131.chr=>556,
+ 132.chr=>500,133.chr=>1000,134.chr=>556,135.chr=>556,136.chr=>333,137.chr=>1000,138.chr=>667,139.chr=>333,140.chr=>1000,141.chr=>350,142.chr=>611,143.chr=>350,144.chr=>350,145.chr=>278,146.chr=>278,147.chr=>500,148.chr=>500,149.chr=>350,150.chr=>556,151.chr=>1000,152.chr=>333,153.chr=>1000,
+ 154.chr=>556,155.chr=>333,156.chr=>944,157.chr=>350,158.chr=>500,159.chr=>667,160.chr=>278,161.chr=>333,162.chr=>556,163.chr=>556,164.chr=>556,165.chr=>556,166.chr=>280,167.chr=>556,168.chr=>333,169.chr=>737,170.chr=>370,171.chr=>556,172.chr=>584,173.chr=>333,174.chr=>737,175.chr=>333,
+ 176.chr=>400,177.chr=>584,178.chr=>333,179.chr=>333,180.chr=>333,181.chr=>611,182.chr=>556,183.chr=>278,184.chr=>333,185.chr=>333,186.chr=>365,187.chr=>556,188.chr=>834,189.chr=>834,190.chr=>834,191.chr=>611,192.chr=>722,193.chr=>722,194.chr=>722,195.chr=>722,196.chr=>722,197.chr=>722,
+ 198.chr=>1000,199.chr=>722,200.chr=>667,201.chr=>667,202.chr=>667,203.chr=>667,204.chr=>278,205.chr=>278,206.chr=>278,207.chr=>278,208.chr=>722,209.chr=>722,210.chr=>778,211.chr=>778,212.chr=>778,213.chr=>778,214.chr=>778,215.chr=>584,216.chr=>778,217.chr=>722,218.chr=>722,219.chr=>722,
+ 220.chr=>722,221.chr=>667,222.chr=>667,223.chr=>611,224.chr=>556,225.chr=>556,226.chr=>556,227.chr=>556,228.chr=>556,229.chr=>556,230.chr=>889,231.chr=>556,232.chr=>556,233.chr=>556,234.chr=>556,235.chr=>556,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>611,241.chr=>611,
+ 242.chr=>611,243.chr=>611,244.chr=>611,245.chr=>611,246.chr=>611,247.chr=>584,248.chr=>611,249.chr=>611,250.chr=>611,251.chr=>611,252.chr=>611,253.chr=>556,254.chr=>611,255.chr=>556}
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/helveticabi.rb b/lib/plugins/rfpdf/lib/fonts/helveticabi.rb
index e7e2aa60ff..8fe12b92ae 100755
--- a/lib/plugins/rfpdf/lib/fonts/helveticabi.rb
+++ b/lib/plugins/rfpdf/lib/fonts/helveticabi.rb
@@ -1,16 +1,16 @@
#-- encoding: UTF-8
TCPDFFontDescriptor.define('helveticabi') do |font|
font[:cw]={
- 0.chr=>278,1.chr=>278,2.chr=>278,3.chr=>278,4.chr=>278,5.chr=>278,6.chr=>278,7.chr=>278,8.chr=>278,9.chr=>278,10.chr=>278,11.chr=>278,12.chr=>278,13.chr=>278,14.chr=>278,15.chr=>278,16.chr=>278,17.chr=>278,18.chr=>278,19.chr=>278,20.chr=>278,21.chr=>278,
- 22.chr=>278,23.chr=>278,24.chr=>278,25.chr=>278,26.chr=>278,27.chr=>278,28.chr=>278,29.chr=>278,30.chr=>278,31.chr=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
- ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
- 'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
- 'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
- 'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,127.chr=>350,128.chr=>556,129.chr=>350,130.chr=>278,131.chr=>556,
- 132.chr=>500,133.chr=>1000,134.chr=>556,135.chr=>556,136.chr=>333,137.chr=>1000,138.chr=>667,139.chr=>333,140.chr=>1000,141.chr=>350,142.chr=>611,143.chr=>350,144.chr=>350,145.chr=>278,146.chr=>278,147.chr=>500,148.chr=>500,149.chr=>350,150.chr=>556,151.chr=>1000,152.chr=>333,153.chr=>1000,
- 154.chr=>556,155.chr=>333,156.chr=>944,157.chr=>350,158.chr=>500,159.chr=>667,160.chr=>278,161.chr=>333,162.chr=>556,163.chr=>556,164.chr=>556,165.chr=>556,166.chr=>280,167.chr=>556,168.chr=>333,169.chr=>737,170.chr=>370,171.chr=>556,172.chr=>584,173.chr=>333,174.chr=>737,175.chr=>333,
- 176.chr=>400,177.chr=>584,178.chr=>333,179.chr=>333,180.chr=>333,181.chr=>611,182.chr=>556,183.chr=>278,184.chr=>333,185.chr=>333,186.chr=>365,187.chr=>556,188.chr=>834,189.chr=>834,190.chr=>834,191.chr=>611,192.chr=>722,193.chr=>722,194.chr=>722,195.chr=>722,196.chr=>722,197.chr=>722,
- 198.chr=>1000,199.chr=>722,200.chr=>667,201.chr=>667,202.chr=>667,203.chr=>667,204.chr=>278,205.chr=>278,206.chr=>278,207.chr=>278,208.chr=>722,209.chr=>722,210.chr=>778,211.chr=>778,212.chr=>778,213.chr=>778,214.chr=>778,215.chr=>584,216.chr=>778,217.chr=>722,218.chr=>722,219.chr=>722,
- 220.chr=>722,221.chr=>667,222.chr=>667,223.chr=>611,224.chr=>556,225.chr=>556,226.chr=>556,227.chr=>556,228.chr=>556,229.chr=>556,230.chr=>889,231.chr=>556,232.chr=>556,233.chr=>556,234.chr=>556,235.chr=>556,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>611,241.chr=>611,
- 242.chr=>611,243.chr=>611,244.chr=>611,245.chr=>611,246.chr=>611,247.chr=>584,248.chr=>611,249.chr=>611,250.chr=>611,251.chr=>611,252.chr=>611,253.chr=>556,254.chr=>611,255.chr=>556}
-end
\ No newline at end of file
+ 0.chr=>278,1.chr=>278,2.chr=>278,3.chr=>278,4.chr=>278,5.chr=>278,6.chr=>278,7.chr=>278,8.chr=>278,9.chr=>278,10.chr=>278,11.chr=>278,12.chr=>278,13.chr=>278,14.chr=>278,15.chr=>278,16.chr=>278,17.chr=>278,18.chr=>278,19.chr=>278,20.chr=>278,21.chr=>278,
+ 22.chr=>278,23.chr=>278,24.chr=>278,25.chr=>278,26.chr=>278,27.chr=>278,28.chr=>278,29.chr=>278,30.chr=>278,31.chr=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
+ ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
+ 'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
+ 'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
+ 'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,127.chr=>350,128.chr=>556,129.chr=>350,130.chr=>278,131.chr=>556,
+ 132.chr=>500,133.chr=>1000,134.chr=>556,135.chr=>556,136.chr=>333,137.chr=>1000,138.chr=>667,139.chr=>333,140.chr=>1000,141.chr=>350,142.chr=>611,143.chr=>350,144.chr=>350,145.chr=>278,146.chr=>278,147.chr=>500,148.chr=>500,149.chr=>350,150.chr=>556,151.chr=>1000,152.chr=>333,153.chr=>1000,
+ 154.chr=>556,155.chr=>333,156.chr=>944,157.chr=>350,158.chr=>500,159.chr=>667,160.chr=>278,161.chr=>333,162.chr=>556,163.chr=>556,164.chr=>556,165.chr=>556,166.chr=>280,167.chr=>556,168.chr=>333,169.chr=>737,170.chr=>370,171.chr=>556,172.chr=>584,173.chr=>333,174.chr=>737,175.chr=>333,
+ 176.chr=>400,177.chr=>584,178.chr=>333,179.chr=>333,180.chr=>333,181.chr=>611,182.chr=>556,183.chr=>278,184.chr=>333,185.chr=>333,186.chr=>365,187.chr=>556,188.chr=>834,189.chr=>834,190.chr=>834,191.chr=>611,192.chr=>722,193.chr=>722,194.chr=>722,195.chr=>722,196.chr=>722,197.chr=>722,
+ 198.chr=>1000,199.chr=>722,200.chr=>667,201.chr=>667,202.chr=>667,203.chr=>667,204.chr=>278,205.chr=>278,206.chr=>278,207.chr=>278,208.chr=>722,209.chr=>722,210.chr=>778,211.chr=>778,212.chr=>778,213.chr=>778,214.chr=>778,215.chr=>584,216.chr=>778,217.chr=>722,218.chr=>722,219.chr=>722,
+ 220.chr=>722,221.chr=>667,222.chr=>667,223.chr=>611,224.chr=>556,225.chr=>556,226.chr=>556,227.chr=>556,228.chr=>556,229.chr=>556,230.chr=>889,231.chr=>556,232.chr=>556,233.chr=>556,234.chr=>556,235.chr=>556,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>611,241.chr=>611,
+ 242.chr=>611,243.chr=>611,244.chr=>611,245.chr=>611,246.chr=>611,247.chr=>584,248.chr=>611,249.chr=>611,250.chr=>611,251.chr=>611,252.chr=>611,253.chr=>556,254.chr=>611,255.chr=>556}
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/helveticai.rb b/lib/plugins/rfpdf/lib/fonts/helveticai.rb
index c16bfb74b7..d68a5e2c61 100755
--- a/lib/plugins/rfpdf/lib/fonts/helveticai.rb
+++ b/lib/plugins/rfpdf/lib/fonts/helveticai.rb
@@ -1,16 +1,16 @@
#-- encoding: UTF-8
TCPDFFontDescriptor.define('helveticai') do |font|
font[:cw]={
- 0.chr=>278,1.chr=>278,2.chr=>278,3.chr=>278,4.chr=>278,5.chr=>278,6.chr=>278,7.chr=>278,8.chr=>278,9.chr=>278,10.chr=>278,11.chr=>278,12.chr=>278,13.chr=>278,14.chr=>278,15.chr=>278,16.chr=>278,17.chr=>278,18.chr=>278,19.chr=>278,20.chr=>278,21.chr=>278,
- 22.chr=>278,23.chr=>278,24.chr=>278,25.chr=>278,26.chr=>278,27.chr=>278,28.chr=>278,29.chr=>278,30.chr=>278,31.chr=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
- ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
- 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
- 'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
- 'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,127.chr=>350,128.chr=>556,129.chr=>350,130.chr=>222,131.chr=>556,
- 132.chr=>333,133.chr=>1000,134.chr=>556,135.chr=>556,136.chr=>333,137.chr=>1000,138.chr=>667,139.chr=>333,140.chr=>1000,141.chr=>350,142.chr=>611,143.chr=>350,144.chr=>350,145.chr=>222,146.chr=>222,147.chr=>333,148.chr=>333,149.chr=>350,150.chr=>556,151.chr=>1000,152.chr=>333,153.chr=>1000,
- 154.chr=>500,155.chr=>333,156.chr=>944,157.chr=>350,158.chr=>500,159.chr=>667,160.chr=>278,161.chr=>333,162.chr=>556,163.chr=>556,164.chr=>556,165.chr=>556,166.chr=>260,167.chr=>556,168.chr=>333,169.chr=>737,170.chr=>370,171.chr=>556,172.chr=>584,173.chr=>333,174.chr=>737,175.chr=>333,
- 176.chr=>400,177.chr=>584,178.chr=>333,179.chr=>333,180.chr=>333,181.chr=>556,182.chr=>537,183.chr=>278,184.chr=>333,185.chr=>333,186.chr=>365,187.chr=>556,188.chr=>834,189.chr=>834,190.chr=>834,191.chr=>611,192.chr=>667,193.chr=>667,194.chr=>667,195.chr=>667,196.chr=>667,197.chr=>667,
- 198.chr=>1000,199.chr=>722,200.chr=>667,201.chr=>667,202.chr=>667,203.chr=>667,204.chr=>278,205.chr=>278,206.chr=>278,207.chr=>278,208.chr=>722,209.chr=>722,210.chr=>778,211.chr=>778,212.chr=>778,213.chr=>778,214.chr=>778,215.chr=>584,216.chr=>778,217.chr=>722,218.chr=>722,219.chr=>722,
- 220.chr=>722,221.chr=>667,222.chr=>667,223.chr=>611,224.chr=>556,225.chr=>556,226.chr=>556,227.chr=>556,228.chr=>556,229.chr=>556,230.chr=>889,231.chr=>500,232.chr=>556,233.chr=>556,234.chr=>556,235.chr=>556,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>556,241.chr=>556,
- 242.chr=>556,243.chr=>556,244.chr=>556,245.chr=>556,246.chr=>556,247.chr=>584,248.chr=>611,249.chr=>556,250.chr=>556,251.chr=>556,252.chr=>556,253.chr=>500,254.chr=>556,255.chr=>500}
-end
\ No newline at end of file
+ 0.chr=>278,1.chr=>278,2.chr=>278,3.chr=>278,4.chr=>278,5.chr=>278,6.chr=>278,7.chr=>278,8.chr=>278,9.chr=>278,10.chr=>278,11.chr=>278,12.chr=>278,13.chr=>278,14.chr=>278,15.chr=>278,16.chr=>278,17.chr=>278,18.chr=>278,19.chr=>278,20.chr=>278,21.chr=>278,
+ 22.chr=>278,23.chr=>278,24.chr=>278,25.chr=>278,26.chr=>278,27.chr=>278,28.chr=>278,29.chr=>278,30.chr=>278,31.chr=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
+ ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
+ 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
+ 'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
+ 'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,127.chr=>350,128.chr=>556,129.chr=>350,130.chr=>222,131.chr=>556,
+ 132.chr=>333,133.chr=>1000,134.chr=>556,135.chr=>556,136.chr=>333,137.chr=>1000,138.chr=>667,139.chr=>333,140.chr=>1000,141.chr=>350,142.chr=>611,143.chr=>350,144.chr=>350,145.chr=>222,146.chr=>222,147.chr=>333,148.chr=>333,149.chr=>350,150.chr=>556,151.chr=>1000,152.chr=>333,153.chr=>1000,
+ 154.chr=>500,155.chr=>333,156.chr=>944,157.chr=>350,158.chr=>500,159.chr=>667,160.chr=>278,161.chr=>333,162.chr=>556,163.chr=>556,164.chr=>556,165.chr=>556,166.chr=>260,167.chr=>556,168.chr=>333,169.chr=>737,170.chr=>370,171.chr=>556,172.chr=>584,173.chr=>333,174.chr=>737,175.chr=>333,
+ 176.chr=>400,177.chr=>584,178.chr=>333,179.chr=>333,180.chr=>333,181.chr=>556,182.chr=>537,183.chr=>278,184.chr=>333,185.chr=>333,186.chr=>365,187.chr=>556,188.chr=>834,189.chr=>834,190.chr=>834,191.chr=>611,192.chr=>667,193.chr=>667,194.chr=>667,195.chr=>667,196.chr=>667,197.chr=>667,
+ 198.chr=>1000,199.chr=>722,200.chr=>667,201.chr=>667,202.chr=>667,203.chr=>667,204.chr=>278,205.chr=>278,206.chr=>278,207.chr=>278,208.chr=>722,209.chr=>722,210.chr=>778,211.chr=>778,212.chr=>778,213.chr=>778,214.chr=>778,215.chr=>584,216.chr=>778,217.chr=>722,218.chr=>722,219.chr=>722,
+ 220.chr=>722,221.chr=>667,222.chr=>667,223.chr=>611,224.chr=>556,225.chr=>556,226.chr=>556,227.chr=>556,228.chr=>556,229.chr=>556,230.chr=>889,231.chr=>500,232.chr=>556,233.chr=>556,234.chr=>556,235.chr=>556,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>556,241.chr=>556,
+ 242.chr=>556,243.chr=>556,244.chr=>556,245.chr=>556,246.chr=>556,247.chr=>584,248.chr=>611,249.chr=>556,250.chr=>556,251.chr=>556,252.chr=>556,253.chr=>500,254.chr=>556,255.chr=>500}
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/sjis.rb b/lib/plugins/rfpdf/lib/fonts/sjis.rb
index e005f2acc6..7a52cc6dca 100644
--- a/lib/plugins/rfpdf/lib/fonts/sjis.rb
+++ b/lib/plugins/rfpdf/lib/fonts/sjis.rb
@@ -7,829 +7,829 @@ TCPDFFontDescriptor.define('sjis') do |font|
font[:ut]=40
font[:cMap]='90msp-RKSJ-H'
font[:cw]={
- 0=>1000, 32=>500, 33=>500, 34=>500, 35=>500, 36=>500, 37=>500, 38=>500, 39=>500, 40=>500, 41=>500, 42=>500, 43=>500, 44=>500, 45=>500, 46=>500,
- 47=>500, 48=>500, 49=>500, 50=>500, 51=>500, 52=>500, 53=>500, 54=>500, 55=>500, 56=>500, 57=>500, 58=>500, 59=>500, 60=>500, 61=>500, 62=>500,
- 63=>500, 64=>500, 65=>500, 66=>500, 67=>500, 68=>500, 69=>500, 70=>500, 71=>500, 72=>500, 73=>500, 74=>500, 75=>500, 76=>500, 77=>500, 78=>500,
- 79=>500, 80=>500, 81=>500, 82=>500, 83=>500, 84=>500, 85=>500, 86=>500, 87=>500, 88=>500, 89=>500, 90=>500, 91=>500, 92=>500, 93=>500, 94=>500,
- 95=>500, 96=>500, 97=>500, 98=>500, 99=>500, 100=>500, 101=>500, 102=>500, 103=>500, 104=>500, 105=>500, 106=>500, 107=>500, 108=>500, 109=>500, 110=>500,
- 111=>500, 112=>500, 113=>500, 114=>500, 115=>500, 116=>500, 117=>500, 118=>500, 119=>500, 120=>500, 121=>500, 122=>500, 123=>500, 124=>500, 125=>500, 126=>500,
- 8364=>1000, 402=>500, 8230=>1000, 8224=>1000, 8225=>1000, 710=>500, 8240=>1000, 338=>875, 8216=>1000, 8217=>1000, 8220=>1000, 8221=>1000, 732=>500, 339=>875, 160=>446, 161=>500,
- 162=>500, 163=>500, 164=>1000, 165=>500, 166=>500, 167=>1000, 168=>1000, 169=>500, 170=>500, 171=>500, 172=>490, 173=>500, 174=>500, 175=>500, 176=>1000, 177=>1000,
- 178=>500, 179=>500, 180=>1000, 181=>500, 182=>1000, 183=>500, 184=>500, 185=>500, 186=>500, 187=>500, 188=>500, 189=>500, 190=>500, 191=>500, 192=>500, 193=>500,
- 194=>500, 195=>500, 196=>500, 197=>500, 198=>875, 199=>500, 200=>500, 201=>500, 202=>500, 203=>500, 204=>500, 205=>500, 206=>500, 207=>500, 208=>500, 209=>500,
- 210=>500, 211=>500, 212=>500, 213=>500, 214=>500, 215=>1000, 216=>500, 217=>500, 218=>500, 219=>500, 220=>500, 221=>500, 222=>500, 223=>500, 224=>500, 225=>500,
- 226=>500, 227=>500, 228=>500, 229=>500, 230=>813, 231=>500, 232=>500, 233=>500, 234=>500, 235=>500, 236=>500, 237=>500, 238=>500, 239=>500, 240=>500, 241=>500,
- 242=>500, 243=>500, 244=>500, 245=>500, 246=>500, 247=>1000, 248=>500, 249=>500, 250=>500, 251=>500, 252=>500, 253=>500, 254=>500, 255=>500, 305=>500, 321=>500,
- 322=>500, 331=>500, 593=>500, 602=>500, 658=>500, 711=>500, 714=>500, 715=>500, 728=>500, 730=>500, 913=>1000, 914=>1000, 915=>1000, 916=>1000, 917=>1000, 918=>1000,
- 919=>1000, 920=>1000, 921=>1000, 922=>1000, 923=>1000, 924=>1000, 925=>1000, 926=>1000, 927=>1000, 928=>1000, 929=>1000, 931=>1000, 932=>1000, 933=>1000, 934=>1000, 935=>1000,
- 936=>1000, 937=>1000, 945=>1000, 946=>1000, 947=>1000, 948=>1000, 949=>1000, 950=>1000, 951=>1000, 952=>1000, 953=>1000, 954=>1000, 955=>1000, 956=>1000, 957=>1000, 958=>1000,
- 959=>1000, 960=>1000, 961=>1000, 962=>1000, 963=>1000, 964=>1000, 965=>1000, 966=>1000, 967=>1000, 968=>1000, 969=>1000, 977=>1000, 981=>1000, 1025=>1000, 1040=>1000, 1041=>1000,
- 1042=>1000, 1043=>1000, 1044=>1000, 1045=>1000, 1046=>1000, 1047=>1000, 1048=>1000, 1049=>1000, 1050=>1000, 1051=>1000, 1052=>1000, 1053=>1000, 1054=>1000, 1055=>1000, 1056=>1000, 1057=>1000,
- 1058=>1000, 1059=>1000, 1060=>1000, 1061=>1000, 1062=>1000, 1063=>1000, 1064=>1000, 1065=>1000, 1066=>1000, 1067=>1000, 1068=>1000, 1069=>1000, 1070=>1000, 1071=>1000, 1072=>1000, 1073=>1000,
- 1074=>1000, 1075=>1000, 1076=>1000, 1077=>1000, 1078=>1000, 1079=>1000, 1080=>1000, 1081=>1000, 1082=>1000, 1083=>1000, 1084=>1000, 1085=>1000, 1086=>1000, 1087=>1000, 1088=>1000, 1089=>1000,
- 1090=>1000, 1091=>1000, 1092=>1000, 1093=>1000, 1094=>1000, 1095=>1000, 1096=>1000, 1097=>1000, 1098=>1000, 1099=>1000, 1100=>1000, 1101=>1000, 1102=>1000, 1103=>1000, 1105=>1000, 8195=>915,
- 8208=>1000, 8213=>1000, 8214=>915, 8215=>500, 8229=>1000, 8242=>1000, 8243=>1000, 8251=>1000, 8254=>766, 8451=>1000, 8467=>1000, 8470=>915, 8481=>1000, 8491=>1000, 8544=>915, 8545=>915,
- 8546=>915, 8547=>915, 8548=>915, 8549=>915, 8550=>915, 8551=>915, 8552=>915, 8553=>915, 8592=>1000, 8593=>1000, 8594=>1000, 8595=>1000, 8658=>1000, 8660=>1000, 8704=>1000, 8706=>1000,
- 8707=>1000, 8711=>1000, 8712=>1000, 8715=>1000, 8722=>915, 8730=>1000, 8733=>1000, 8734=>1000, 8735=>915, 8736=>1000, 8741=>1000, 8743=>1000, 8744=>1000, 8745=>1000, 8746=>1000, 8747=>1000,
- 8748=>1000, 8749=>1000, 8750=>915, 8756=>1000, 8757=>1000, 8765=>1000, 8771=>1000, 8786=>1000, 8800=>1000, 8801=>1000, 8806=>1000, 8807=>1000, 8810=>1000, 8811=>1000, 8818=>977, 8819=>977,
- 8834=>1000, 8835=>1000, 8838=>1000, 8839=>1000, 8869=>1000, 8895=>915, 8978=>1000, 9312=>1000, 9313=>1000, 9314=>1000, 9315=>1000, 9316=>1000, 9317=>1000, 9318=>1000, 9319=>1000, 9320=>1000,
- 9321=>1000, 9322=>1000, 9323=>1000, 9324=>1000, 9325=>1000, 9326=>1000, 9327=>1000, 9328=>1000, 9329=>1000, 9330=>1000, 9331=>1000, 9472=>1000, 9473=>1000, 9474=>1000, 9475=>1000, 9484=>1000,
- 9487=>1000, 9488=>1000, 9491=>1000, 9492=>1000, 9495=>1000, 9496=>1000, 9499=>1000, 9500=>1000, 9501=>1000, 9504=>1000, 9507=>1000, 9508=>1000, 9509=>1000, 9512=>1000, 9515=>1000, 9516=>1000,
- 9519=>1000, 9520=>1000, 9523=>1000, 9524=>1000, 9527=>1000, 9528=>1000, 9531=>1000, 9532=>1000, 9535=>1000, 9538=>1000, 9547=>1000, 9632=>1000, 9633=>1000, 9634=>977, 9650=>1000, 9651=>1000,
- 9660=>1000, 9661=>1000, 9670=>1000, 9671=>1000, 9675=>1000, 9678=>1000, 9679=>1000, 9711=>1000, 9733=>1000, 9734=>1000, 9792=>1000, 9794=>1000, 9825=>977, 9826=>977, 9828=>977, 9831=>977,
- 9834=>1000, 9837=>1000, 9839=>1000, 12288=>1000, 12289=>1000, 12290=>1000, 12291=>1000, 12293=>1000, 12294=>1000, 12295=>1000, 12296=>1000, 12297=>1000, 12298=>1000, 12299=>1000, 12300=>1000, 12301=>1000,
- 12302=>1000, 12303=>1000, 12304=>1000, 12305=>1000, 12306=>1000, 12307=>1000, 12308=>1000, 12309=>1000, 12316=>1000, 12339=>1000, 12340=>1000, 12341=>1000, 12353=>1000, 12354=>1000, 12355=>1000, 12356=>1000,
- 12357=>1000, 12358=>1000, 12359=>1000, 12360=>1000, 12361=>1000, 12362=>1000, 12363=>1000, 12364=>1000, 12365=>1000, 12366=>1000, 12367=>1000, 12368=>1000, 12369=>1000, 12370=>1000, 12371=>1000, 12372=>1000,
- 12373=>1000, 12374=>1000, 12375=>1000, 12376=>1000, 12377=>1000, 12378=>1000, 12379=>1000, 12380=>1000, 12381=>1000, 12382=>1000, 12383=>1000, 12384=>1000, 12385=>1000, 12386=>1000, 12387=>1000, 12388=>1000,
- 12389=>1000, 12390=>1000, 12391=>1000, 12392=>1000, 12393=>1000, 12394=>1000, 12395=>1000, 12396=>1000, 12397=>1000, 12398=>1000, 12399=>1000, 12400=>1000, 12401=>1000, 12402=>1000, 12403=>1000, 12404=>1000,
- 12405=>1000, 12406=>1000, 12407=>1000, 12408=>1000, 12409=>1000, 12410=>1000, 12411=>1000, 12412=>1000, 12413=>1000, 12414=>1000, 12415=>1000, 12416=>1000, 12417=>1000, 12418=>1000, 12419=>1000, 12420=>1000,
- 12421=>1000, 12422=>1000, 12423=>1000, 12424=>1000, 12425=>1000, 12426=>1000, 12427=>1000, 12428=>1000, 12429=>1000, 12430=>1000, 12431=>1000, 12432=>1000, 12433=>1000, 12434=>1000, 12435=>1000, 12436=>1000,
- 12437=>1000, 12438=>1000, 12443=>1000, 12444=>1000, 12445=>1000, 12446=>1000, 12449=>1000, 12450=>1000, 12451=>1000, 12452=>1000, 12453=>1000, 12454=>1000, 12455=>1000, 12456=>1000, 12457=>1000, 12458=>1000,
- 12459=>1000, 12460=>1000, 12461=>1000, 12462=>1000, 12463=>1000, 12464=>1000, 12465=>1000, 12466=>1000, 12467=>1000, 12468=>1000, 12469=>1000, 12470=>1000, 12471=>1000, 12472=>1000, 12473=>1000, 12474=>1000,
- 12475=>1000, 12476=>1000, 12477=>1000, 12478=>1000, 12479=>1000, 12480=>1000, 12481=>1000, 12482=>1000, 12483=>1000, 12484=>1000, 12485=>1000, 12486=>1000, 12487=>1000, 12488=>1000, 12489=>1000, 12490=>1000,
- 12491=>1000, 12492=>1000, 12493=>1000, 12494=>1000, 12495=>1000, 12496=>1000, 12497=>1000, 12498=>1000, 12499=>1000, 12500=>1000, 12501=>1000, 12502=>1000, 12503=>1000, 12504=>1000, 12505=>1000, 12506=>1000,
- 12507=>1000, 12508=>1000, 12509=>1000, 12510=>1000, 12511=>1000, 12512=>1000, 12513=>1000, 12514=>1000, 12515=>1000, 12516=>1000, 12517=>1000, 12518=>1000, 12519=>1000, 12520=>1000, 12521=>1000, 12522=>1000,
- 12523=>1000, 12524=>1000, 12525=>1000, 12526=>1000, 12527=>1000, 12528=>1000, 12529=>1000, 12530=>1000, 12531=>1000, 12532=>1000, 12533=>1000, 12534=>1000, 12535=>1000, 12536=>1000, 12537=>1000, 12538=>1000,
- 12539=>1000, 12540=>1000, 12541=>1000, 12542=>1000, 12849=>1000, 12850=>915, 12857=>915, 12964=>915, 12965=>915, 12966=>915, 12967=>915, 12968=>915, 13059=>915, 13069=>915, 13076=>915, 13080=>915,
- 13090=>915, 13091=>915, 13094=>915, 13095=>915, 13099=>915, 13110=>915, 13115=>915, 13129=>915, 13130=>915, 13133=>915, 13137=>915, 13143=>915, 13179=>915, 13180=>915, 13181=>915, 13182=>915,
- 13198=>915, 13199=>915, 13212=>915, 13213=>915, 13214=>915, 13217=>915, 13252=>915, 13259=>1000, 13261=>915, 19968=>1000, 19969=>1000, 19970=>1000, 19971=>1000, 19972=>1000, 19973=>1000, 19975=>1000,
- 19976=>1000, 19977=>1000, 19978=>1000, 19979=>1000, 19980=>1000, 19981=>1000, 19982=>1000, 19984=>1000, 19985=>1000, 19986=>1000, 19988=>1000, 19989=>1000, 19990=>1000, 19991=>1000, 19992=>1000, 19993=>1000,
- 19998=>1000, 19999=>1000, 20001=>1000, 20003=>1000, 20004=>1000, 20006=>1000, 20008=>1000, 20010=>1000, 20011=>1000, 20013=>1000, 20014=>1000, 20015=>1000, 20016=>1000, 20017=>1000, 20018=>1000, 20021=>1000,
- 20022=>1000, 20024=>1000, 20025=>1000, 20027=>1000, 20028=>1000, 20031=>1000, 20032=>1000, 20033=>1000, 20034=>1000, 20035=>1000, 20036=>1000, 20037=>1000, 20039=>1000, 20043=>1000, 20045=>1000, 20046=>1000,
- 20047=>1000, 20049=>1000, 20053=>1000, 20054=>1000, 20055=>1000, 20056=>1000, 20057=>1000, 20058=>1000, 20060=>1000, 20061=>1000, 20062=>1000, 20063=>1000, 20066=>1000, 20067=>1000, 20072=>1000, 20073=>1000,
- 20081=>1000, 20083=>1000, 20084=>1000, 20085=>1000, 20089=>1000, 20094=>1000, 20095=>1000, 20096=>1000, 20098=>1000, 20101=>1000, 20102=>1000, 20104=>1000, 20105=>1000, 20106=>1000, 20107=>1000, 20108=>1000,
- 20109=>1000, 20110=>1000, 20113=>1000, 20114=>1000, 20116=>1000, 20117=>1000, 20118=>1000, 20119=>1000, 20120=>1000, 20121=>1000, 20123=>1000, 20124=>1000, 20125=>1000, 20126=>1000, 20127=>1000, 20128=>1000,
- 20129=>1000, 20130=>1000, 20132=>1000, 20133=>1000, 20134=>1000, 20136=>1000, 20139=>1000, 20140=>1000, 20141=>1000, 20142=>1000, 20143=>1000, 20144=>1000, 20147=>1000, 20150=>1000, 20153=>1000, 20154=>1000,
- 20160=>1000, 20161=>1000, 20162=>1000, 20163=>1000, 20164=>1000, 20166=>1000, 20167=>1000, 20170=>1000, 20171=>1000, 20173=>1000, 20174=>1000, 20175=>1000, 20176=>1000, 20180=>1000, 20181=>1000, 20182=>1000,
- 20183=>1000, 20184=>1000, 20185=>1000, 20186=>1000, 20187=>1000, 20189=>1000, 20190=>1000, 20191=>1000, 20192=>1000, 20193=>1000, 20194=>1000, 20195=>1000, 20196=>1000, 20197=>1000, 20200=>1000, 20205=>1000,
- 20206=>1000, 20207=>1000, 20208=>1000, 20209=>1000, 20210=>1000, 20211=>1000, 20213=>1000, 20214=>1000, 20215=>1000, 20219=>1000, 20220=>1000, 20221=>1000, 20222=>1000, 20223=>1000, 20224=>1000, 20225=>1000,
- 20226=>1000, 20227=>1000, 20232=>1000, 20233=>1000, 20234=>1000, 20235=>1000, 20236=>1000, 20237=>1000, 20238=>1000, 20239=>1000, 20240=>1000, 20241=>1000, 20242=>1000, 20245=>1000, 20246=>1000, 20247=>1000,
- 20249=>1000, 20250=>1000, 20252=>1000, 20253=>1000, 20270=>1000, 20271=>1000, 20272=>1000, 20273=>1000, 20275=>1000, 20276=>1000, 20277=>1000, 20278=>1000, 20279=>1000, 20280=>1000, 20281=>1000, 20282=>1000,
- 20283=>1000, 20284=>1000, 20285=>1000, 20286=>1000, 20288=>1000, 20290=>1000, 20291=>1000, 20294=>1000, 20295=>1000, 20296=>1000, 20297=>1000, 20299=>1000, 20300=>1000, 20301=>1000, 20302=>1000, 20303=>1000,
- 20304=>1000, 20305=>1000, 20306=>1000, 20307=>1000, 20308=>1000, 20309=>1000, 20310=>1000, 20311=>1000, 20312=>1000, 20313=>1000, 20314=>1000, 20315=>1000, 20316=>1000, 20317=>1000, 20318=>1000, 20319=>1000,
- 20320=>1000, 20323=>1000, 20329=>1000, 20330=>1000, 20332=>1000, 20334=>1000, 20335=>1000, 20336=>1000, 20337=>1000, 20339=>1000, 20341=>1000, 20342=>1000, 20343=>1000, 20344=>1000, 20345=>1000, 20346=>1000,
- 20347=>1000, 20348=>1000, 20349=>1000, 20350=>1000, 20351=>1000, 20353=>1000, 20354=>1000, 20355=>1000, 20356=>1000, 20357=>1000, 20358=>1000, 20360=>1000, 20361=>1000, 20362=>1000, 20363=>1000, 20364=>1000,
- 20365=>1000, 20366=>1000, 20367=>1000, 20368=>1000, 20369=>1000, 20370=>1000, 20371=>1000, 20372=>1000, 20374=>1000, 20375=>1000, 20376=>1000, 20377=>1000, 20378=>1000, 20379=>1000, 20381=>1000, 20382=>1000,
- 20383=>1000, 20384=>1000, 20385=>1000, 20395=>1000, 20397=>1000, 20398=>1000, 20399=>1000, 20402=>1000, 20405=>1000, 20406=>1000, 20407=>1000, 20409=>1000, 20411=>1000, 20412=>1000, 20413=>1000, 20414=>1000,
- 20415=>1000, 20416=>1000, 20417=>1000, 20418=>1000, 20419=>1000, 20420=>1000, 20421=>1000, 20422=>1000, 20424=>1000, 20425=>1000, 20426=>1000, 20427=>1000, 20428=>1000, 20429=>1000, 20430=>1000, 20431=>1000,
- 20432=>1000, 20433=>1000, 20434=>1000, 20436=>1000, 20439=>1000, 20440=>1000, 20442=>1000, 20443=>1000, 20444=>1000, 20445=>1000, 20447=>1000, 20448=>1000, 20449=>1000, 20450=>1000, 20451=>1000, 20452=>1000,
- 20453=>1000, 20462=>1000, 20463=>1000, 20464=>1000, 20466=>1000, 20467=>1000, 20469=>1000, 20470=>1000, 20472=>1000, 20474=>1000, 20476=>1000, 20477=>1000, 20478=>1000, 20479=>1000, 20480=>1000, 20481=>1000,
- 20484=>1000, 20485=>1000, 20486=>1000, 20487=>1000, 20489=>1000, 20490=>1000, 20491=>1000, 20492=>1000, 20493=>1000, 20494=>1000, 20495=>1000, 20496=>1000, 20497=>1000, 20498=>1000, 20499=>1000, 20500=>1000,
- 20502=>1000, 20503=>1000, 20504=>1000, 20505=>1000, 20506=>1000, 20507=>1000, 20508=>1000, 20509=>1000, 20510=>1000, 20511=>1000, 20513=>1000, 20514=>1000, 20515=>1000, 20516=>1000, 20517=>1000, 20518=>1000,
- 20519=>1000, 20520=>1000, 20521=>1000, 20522=>1000, 20523=>1000, 20524=>1000, 20525=>1000, 20526=>1000, 20528=>1000, 20530=>1000, 20531=>1000, 20533=>1000, 20534=>1000, 20537=>1000, 20539=>1000, 20544=>1000,
- 20545=>1000, 20546=>1000, 20547=>1000, 20549=>1000, 20550=>1000, 20551=>1000, 20552=>1000, 20553=>1000, 20554=>1000, 20556=>1000, 20558=>1000, 20559=>1000, 20560=>1000, 20561=>1000, 20562=>1000, 20563=>1000,
- 20565=>1000, 20566=>1000, 20567=>1000, 20569=>1000, 20570=>1000, 20572=>1000, 20575=>1000, 20576=>1000, 20578=>1000, 20579=>1000, 20581=>1000, 20582=>1000, 20583=>1000, 20586=>1000, 20588=>1000, 20589=>1000,
- 20592=>1000, 20593=>1000, 20594=>1000, 20596=>1000, 20597=>1000, 20598=>1000, 20600=>1000, 20605=>1000, 20608=>1000, 20609=>1000, 20611=>1000, 20612=>1000, 20613=>1000, 20614=>1000, 20618=>1000, 20621=>1000,
- 20622=>1000, 20623=>1000, 20624=>1000, 20625=>1000, 20626=>1000, 20627=>1000, 20628=>1000, 20630=>1000, 20632=>1000, 20633=>1000, 20634=>1000, 20635=>1000, 20636=>1000, 20638=>1000, 20639=>1000, 20640=>1000,
- 20641=>1000, 20642=>1000, 20650=>1000, 20652=>1000, 20653=>1000, 20655=>1000, 20656=>1000, 20658=>1000, 20659=>1000, 20660=>1000, 20661=>1000, 20663=>1000, 20665=>1000, 20666=>1000, 20669=>1000, 20670=>1000,
- 20672=>1000, 20674=>1000, 20675=>1000, 20676=>1000, 20677=>1000, 20679=>1000, 20681=>1000, 20682=>1000, 20684=>1000, 20685=>1000, 20686=>1000, 20687=>1000, 20688=>1000, 20689=>1000, 20691=>1000, 20692=>1000,
- 20693=>1000, 20694=>1000, 20696=>1000, 20698=>1000, 20700=>1000, 20701=>1000, 20702=>1000, 20703=>1000, 20706=>1000, 20707=>1000, 20708=>1000, 20709=>1000, 20710=>1000, 20711=>1000, 20712=>1000, 20713=>1000,
- 20717=>1000, 20718=>1000, 20719=>1000, 20721=>1000, 20722=>1000, 20724=>1000, 20725=>1000, 20726=>1000, 20729=>1000, 20730=>1000, 20731=>1000, 20734=>1000, 20736=>1000, 20737=>1000, 20738=>1000, 20739=>1000,
- 20740=>1000, 20742=>1000, 20743=>1000, 20744=>1000, 20745=>1000, 20747=>1000, 20748=>1000, 20749=>1000, 20750=>1000, 20752=>1000, 20754=>1000, 20756=>1000, 20757=>1000, 20758=>1000, 20759=>1000, 20760=>1000,
- 20761=>1000, 20762=>1000, 20763=>1000, 20764=>1000, 20765=>1000, 20766=>1000, 20767=>1000, 20769=>1000, 20771=>1000, 20775=>1000, 20776=>1000, 20778=>1000, 20780=>1000, 20781=>1000, 20783=>1000, 20785=>1000,
- 20786=>1000, 20787=>1000, 20788=>1000, 20789=>1000, 20791=>1000, 20792=>1000, 20793=>1000, 20794=>1000, 20795=>1000, 20796=>1000, 20799=>1000, 20800=>1000, 20801=>1000, 20802=>1000, 20803=>1000, 20804=>1000,
- 20805=>1000, 20806=>1000, 20807=>1000, 20808=>1000, 20809=>1000, 20810=>1000, 20811=>1000, 20812=>1000, 20813=>1000, 20814=>1000, 20815=>1000, 20816=>1000, 20818=>1000, 20819=>1000, 20820=>1000, 20821=>1000,
- 20823=>1000, 20824=>1000, 20826=>1000, 20828=>1000, 20831=>1000, 20834=>1000, 20836=>1000, 20837=>1000, 20838=>1000, 20840=>1000, 20841=>1000, 20842=>1000, 20843=>1000, 20844=>1000, 20845=>1000, 20846=>1000,
- 20849=>1000, 20853=>1000, 20854=>1000, 20855=>1000, 20856=>1000, 20860=>1000, 20862=>1000, 20864=>1000, 20866=>1000, 20867=>1000, 20868=>1000, 20869=>1000, 20870=>1000, 20873=>1000, 20874=>1000, 20875=>1000,
- 20876=>1000, 20877=>1000, 20878=>1000, 20879=>1000, 20880=>1000, 20881=>1000, 20882=>1000, 20883=>1000, 20885=>1000, 20886=>1000, 20887=>1000, 20888=>1000, 20889=>1000, 20893=>1000, 20896=>1000, 20897=>1000,
- 20898=>1000, 20899=>1000, 20900=>1000, 20901=>1000, 20902=>1000, 20904=>1000, 20905=>1000, 20906=>1000, 20907=>1000, 20908=>1000, 20909=>1000, 20912=>1000, 20913=>1000, 20914=>1000, 20915=>1000, 20916=>1000,
- 20917=>1000, 20918=>1000, 20919=>1000, 20920=>1000, 20922=>1000, 20924=>1000, 20925=>1000, 20926=>1000, 20927=>1000, 20930=>1000, 20932=>1000, 20933=>1000, 20934=>1000, 20936=>1000, 20937=>1000, 20939=>1000,
- 20940=>1000, 20941=>1000, 20943=>1000, 20945=>1000, 20946=>1000, 20947=>1000, 20949=>1000, 20950=>1000, 20952=>1000, 20955=>1000, 20956=>1000, 20957=>1000, 20958=>1000, 20960=>1000, 20961=>1000, 20962=>1000,
- 20965=>1000, 20966=>1000, 20967=>1000, 20969=>1000, 20970=>1000, 20972=>1000, 20973=>1000, 20974=>1000, 20976=>1000, 20977=>1000, 20978=>1000, 20979=>1000, 20980=>1000, 20981=>1000, 20982=>1000, 20983=>1000,
- 20984=>1000, 20985=>1000, 20986=>1000, 20989=>1000, 20990=>1000, 20992=>1000, 20993=>1000, 20994=>1000, 20995=>1000, 20996=>1000, 20997=>1000, 20998=>1000, 20999=>1000, 21000=>1000, 21002=>1000, 21003=>1000,
- 21006=>1000, 21009=>1000, 21010=>1000, 21011=>1000, 21012=>1000, 21013=>1000, 21014=>1000, 21015=>1000, 21016=>1000, 21021=>1000, 21026=>1000, 21028=>1000, 21029=>1000, 21031=>1000, 21032=>1000, 21033=>1000,
- 21034=>1000, 21038=>1000, 21040=>1000, 21041=>1000, 21042=>1000, 21043=>1000, 21045=>1000, 21046=>1000, 21047=>1000, 21048=>1000, 21049=>1000, 21050=>1000, 21051=>1000, 21052=>1000, 21059=>1000, 21060=>1000,
- 21061=>1000, 21063=>1000, 21065=>1000, 21066=>1000, 21067=>1000, 21068=>1000, 21069=>1000, 21071=>1000, 21076=>1000, 21077=>1000, 21078=>1000, 21079=>1000, 21080=>1000, 21082=>1000, 21083=>1000, 21084=>1000,
- 21086=>1000, 21087=>1000, 21088=>1000, 21089=>1000, 21091=>1000, 21092=>1000, 21093=>1000, 21094=>1000, 21097=>1000, 21098=>1000, 21102=>1000, 21103=>1000, 21104=>1000, 21105=>1000, 21106=>1000, 21107=>1000,
- 21108=>1000, 21109=>1000, 21111=>1000, 21112=>1000, 21113=>1000, 21117=>1000, 21119=>1000, 21120=>1000, 21122=>1000, 21123=>1000, 21125=>1000, 21127=>1000, 21128=>1000, 21129=>1000, 21130=>1000, 21132=>1000,
- 21133=>1000, 21137=>1000, 21138=>1000, 21139=>1000, 21140=>1000, 21141=>1000, 21142=>1000, 21143=>1000, 21144=>1000, 21146=>1000, 21147=>1000, 21148=>1000, 21151=>1000, 21152=>1000, 21155=>1000, 21156=>1000,
- 21157=>1000, 21158=>1000, 21159=>1000, 21161=>1000, 21162=>1000, 21163=>1000, 21164=>1000, 21165=>1000, 21167=>1000, 21168=>1000, 21169=>1000, 21172=>1000, 21173=>1000, 21174=>1000, 21175=>1000, 21176=>1000,
- 21177=>1000, 21178=>1000, 21179=>1000, 21180=>1000, 21181=>1000, 21182=>1000, 21184=>1000, 21185=>1000, 21187=>1000, 21188=>1000, 21189=>1000, 21190=>1000, 21191=>1000, 21192=>1000, 21193=>1000, 21196=>1000,
- 21197=>1000, 21199=>1000, 21201=>1000, 21202=>1000, 21204=>1000, 21205=>1000, 21206=>1000, 21207=>1000, 21208=>1000, 21209=>1000, 21211=>1000, 21212=>1000, 21213=>1000, 21214=>1000, 21215=>1000, 21216=>1000,
- 21217=>1000, 21218=>1000, 21219=>1000, 21220=>1000, 21221=>1000, 21222=>1000, 21223=>1000, 21224=>1000, 21225=>1000, 21226=>1000, 21228=>1000, 21232=>1000, 21233=>1000, 21234=>1000, 21235=>1000, 21236=>1000,
- 21237=>1000, 21238=>1000, 21239=>1000, 21240=>1000, 21241=>1000, 21242=>1000, 21246=>1000, 21247=>1000, 21248=>1000, 21249=>1000, 21250=>1000, 21251=>1000, 21253=>1000, 21254=>1000, 21255=>1000, 21256=>1000,
- 21258=>1000, 21259=>1000, 21260=>1000, 21261=>1000, 21263=>1000, 21264=>1000, 21265=>1000, 21267=>1000, 21269=>1000, 21270=>1000, 21271=>1000, 21272=>1000, 21273=>1000, 21274=>1000, 21275=>1000, 21276=>1000,
- 21277=>1000, 21278=>1000, 21279=>1000, 21280=>1000, 21281=>1000, 21283=>1000, 21284=>1000, 21285=>1000, 21287=>1000, 21288=>1000, 21289=>1000, 21290=>1000, 21291=>1000, 21292=>1000, 21293=>1000, 21295=>1000,
- 21296=>1000, 21297=>1000, 21298=>1000, 21299=>1000, 21301=>1000, 21304=>1000, 21305=>1000, 21306=>1000, 21307=>1000, 21308=>1000, 21309=>1000, 21310=>1000, 21311=>1000, 21312=>1000, 21313=>1000, 21314=>1000,
- 21315=>1000, 21317=>1000, 21318=>1000, 21319=>1000, 21320=>1000, 21321=>1000, 21322=>1000, 21323=>1000, 21324=>1000, 21325=>1000, 21329=>1000, 21330=>1000, 21331=>1000, 21332=>1000, 21335=>1000, 21336=>1000,
- 21337=>1000, 21338=>1000, 21339=>1000, 21340=>1000, 21342=>1000, 21344=>1000, 21345=>1000, 21347=>1000, 21349=>1000, 21350=>1000, 21353=>1000, 21356=>1000, 21357=>1000, 21358=>1000, 21359=>1000, 21360=>1000,
- 21361=>1000, 21362=>1000, 21363=>1000, 21364=>1000, 21365=>1000, 21367=>1000, 21368=>1000, 21369=>1000, 21371=>1000, 21374=>1000, 21375=>1000, 21378=>1000, 21379=>1000, 21380=>1000, 21383=>1000, 21384=>1000,
- 21390=>1000, 21395=>1000, 21396=>1000, 21398=>1000, 21400=>1000, 21401=>1000, 21402=>1000, 21405=>1000, 21407=>1000, 21408=>1000, 21409=>1000, 21412=>1000, 21413=>1000, 21414=>1000, 21416=>1000, 21417=>1000,
- 21418=>1000, 21419=>1000, 21421=>1000, 21422=>1000, 21423=>1000, 21424=>1000, 21426=>1000, 21427=>1000, 21428=>1000, 21429=>1000, 21430=>1000, 21431=>1000, 21432=>1000, 21434=>1000, 21435=>1000, 21437=>1000,
- 21440=>1000, 21442=>1000, 21443=>1000, 21445=>1000, 21448=>1000, 21449=>1000, 21450=>1000, 21451=>1000, 21452=>1000, 21453=>1000, 21454=>1000, 21455=>1000, 21458=>1000, 21459=>1000, 21460=>1000, 21461=>1000,
- 21462=>1000, 21463=>1000, 21465=>1000, 21466=>1000, 21467=>1000, 21469=>1000, 21470=>1000, 21471=>1000, 21472=>1000, 21473=>1000, 21474=>1000, 21475=>1000, 21476=>1000, 21477=>1000, 21478=>1000, 21479=>1000,
- 21480=>1000, 21481=>1000, 21482=>1000, 21483=>1000, 21484=>1000, 21485=>1000, 21486=>1000, 21487=>1000, 21488=>1000, 21489=>1000, 21490=>1000, 21491=>1000, 21493=>1000, 21494=>1000, 21495=>1000, 21496=>1000,
- 21498=>1000, 21505=>1000, 21506=>1000, 21507=>1000, 21508=>1000, 21512=>1000, 21513=>1000, 21514=>1000, 21515=>1000, 21516=>1000, 21517=>1000, 21518=>1000, 21519=>1000, 21520=>1000, 21521=>1000, 21523=>1000,
- 21530=>1000, 21531=>1000, 21533=>1000, 21535=>1000, 21536=>1000, 21537=>1000, 21542=>1000, 21543=>1000, 21544=>1000, 21545=>1000, 21546=>1000, 21547=>1000, 21548=>1000, 21549=>1000, 21550=>1000, 21551=>1000,
- 21553=>1000, 21556=>1000, 21557=>1000, 21558=>1000, 21560=>1000, 21561=>1000, 21563=>1000, 21564=>1000, 21565=>1000, 21566=>1000, 21568=>1000, 21570=>1000, 21571=>1000, 21572=>1000, 21574=>1000, 21575=>1000,
- 21576=>1000, 21577=>1000, 21578=>1000, 21581=>1000, 21582=>1000, 21583=>1000, 21585=>1000, 21598=>1000, 21599=>1000, 21602=>1000, 21604=>1000, 21606=>1000, 21607=>1000, 21608=>1000, 21609=>1000, 21610=>1000,
- 21611=>1000, 21613=>1000, 21614=>1000, 21616=>1000, 21617=>1000, 21619=>1000, 21620=>1000, 21621=>1000, 21622=>1000, 21623=>1000, 21627=>1000, 21628=>1000, 21629=>1000, 21631=>1000, 21632=>1000, 21633=>1000,
- 21635=>1000, 21636=>1000, 21637=>1000, 21638=>1000, 21640=>1000, 21641=>1000, 21642=>1000, 21643=>1000, 21644=>1000, 21645=>1000, 21646=>1000, 21647=>1000, 21648=>1000, 21649=>1000, 21650=>1000, 21653=>1000,
- 21654=>1000, 21660=>1000, 21663=>1000, 21665=>1000, 21666=>1000, 21668=>1000, 21669=>1000, 21670=>1000, 21671=>1000, 21672=>1000, 21673=>1000, 21674=>1000, 21675=>1000, 21676=>1000, 21677=>1000, 21678=>1000,
- 21679=>1000, 21681=>1000, 21682=>1000, 21683=>1000, 21687=>1000, 21688=>1000, 21689=>1000, 21690=>1000, 21691=>1000, 21692=>1000, 21693=>1000, 21694=>1000, 21695=>1000, 21696=>1000, 21697=>1000, 21698=>1000,
- 21700=>1000, 21702=>1000, 21703=>1000, 21704=>1000, 21705=>1000, 21706=>1000, 21709=>1000, 21710=>1000, 21720=>1000, 21728=>1000, 21729=>1000, 21730=>1000, 21733=>1000, 21734=>1000, 21736=>1000, 21737=>1000,
- 21738=>1000, 21740=>1000, 21741=>1000, 21742=>1000, 21743=>1000, 21746=>1000, 21750=>1000, 21754=>1000, 21756=>1000, 21757=>1000, 21758=>1000, 21759=>1000, 21760=>1000, 21761=>1000, 21764=>1000, 21765=>1000,
- 21766=>1000, 21767=>1000, 21768=>1000, 21769=>1000, 21772=>1000, 21773=>1000, 21774=>1000, 21775=>1000, 21776=>1000, 21780=>1000, 21781=>1000, 21782=>1000, 21802=>1000, 21803=>1000, 21806=>1000, 21807=>1000,
- 21809=>1000, 21810=>1000, 21811=>1000, 21813=>1000, 21814=>1000, 21816=>1000, 21817=>1000, 21819=>1000, 21820=>1000, 21821=>1000, 21822=>1000, 21824=>1000, 21825=>1000, 21828=>1000, 21829=>1000, 21830=>1000,
- 21831=>1000, 21833=>1000, 21834=>1000, 21836=>1000, 21837=>1000, 21839=>1000, 21840=>1000, 21841=>1000, 21843=>1000, 21846=>1000, 21847=>1000, 21848=>1000, 21850=>1000, 21851=>1000, 21852=>1000, 21853=>1000,
- 21854=>1000, 21856=>1000, 21857=>1000, 21859=>1000, 21860=>1000, 21862=>1000, 21883=>1000, 21884=>1000, 21886=>1000, 21887=>1000, 21888=>1000, 21889=>1000, 21890=>1000, 21891=>1000, 21892=>1000, 21894=>1000,
- 21895=>1000, 21896=>1000, 21897=>1000, 21898=>1000, 21899=>1000, 21902=>1000, 21903=>1000, 21905=>1000, 21906=>1000, 21907=>1000, 21908=>1000, 21911=>1000, 21912=>1000, 21913=>1000, 21914=>1000, 21916=>1000,
- 21917=>1000, 21918=>1000, 21919=>1000, 21923=>1000, 21924=>1000, 21927=>1000, 21928=>1000, 21929=>1000, 21930=>1000, 21931=>1000, 21932=>1000, 21933=>1000, 21934=>1000, 21936=>1000, 21938=>1000, 21942=>1000,
- 21951=>1000, 21953=>1000, 21955=>1000, 21956=>1000, 21957=>1000, 21958=>1000, 21959=>1000, 21961=>1000, 21963=>1000, 21964=>1000, 21966=>1000, 21969=>1000, 21970=>1000, 21971=>1000, 21972=>1000, 21975=>1000,
- 21976=>1000, 21978=>1000, 21979=>1000, 21980=>1000, 21982=>1000, 21983=>1000, 21986=>1000, 21987=>1000, 21988=>1000, 21993=>1000, 22006=>1000, 22007=>1000, 22009=>1000, 22013=>1000, 22014=>1000, 22015=>1000,
- 22021=>1000, 22022=>1000, 22024=>1000, 22025=>1000, 22026=>1000, 22029=>1000, 22030=>1000, 22031=>1000, 22032=>1000, 22033=>1000, 22034=>1000, 22036=>1000, 22038=>1000, 22039=>1000, 22040=>1000, 22041=>1000,
- 22043=>1000, 22057=>1000, 22060=>1000, 22063=>1000, 22064=>1000, 22065=>1000, 22066=>1000, 22067=>1000, 22068=>1000, 22069=>1000, 22070=>1000, 22071=>1000, 22072=>1000, 22073=>1000, 22075=>1000, 22076=>1000,
- 22077=>1000, 22079=>1000, 22080=>1000, 22081=>1000, 22082=>1000, 22083=>1000, 22084=>1000, 22086=>1000, 22089=>1000, 22091=>1000, 22092=>1000, 22093=>1000, 22094=>1000, 22095=>1000, 22096=>1000, 22100=>1000,
- 22107=>1000, 22110=>1000, 22112=>1000, 22113=>1000, 22114=>1000, 22115=>1000, 22116=>1000, 22118=>1000, 22120=>1000, 22121=>1000, 22122=>1000, 22123=>1000, 22124=>1000, 22125=>1000, 22127=>1000, 22129=>1000,
- 22130=>1000, 22132=>1000, 22133=>1000, 22136=>1000, 22138=>1000, 22144=>1000, 22148=>1000, 22149=>1000, 22150=>1000, 22151=>1000, 22152=>1000, 22154=>1000, 22155=>1000, 22156=>1000, 22159=>1000, 22164=>1000,
- 22165=>1000, 22169=>1000, 22170=>1000, 22173=>1000, 22174=>1000, 22175=>1000, 22176=>1000, 22178=>1000, 22181=>1000, 22182=>1000, 22183=>1000, 22184=>1000, 22185=>1000, 22187=>1000, 22188=>1000, 22189=>1000,
- 22190=>1000, 22193=>1000, 22195=>1000, 22196=>1000, 22198=>1000, 22199=>1000, 22204=>1000, 22206=>1000, 22208=>1000, 22209=>1000, 22210=>1000, 22211=>1000, 22213=>1000, 22216=>1000, 22217=>1000, 22218=>1000,
- 22219=>1000, 22220=>1000, 22221=>1000, 22222=>1000, 22223=>1000, 22224=>1000, 22225=>1000, 22227=>1000, 22231=>1000, 22232=>1000, 22233=>1000, 22234=>1000, 22235=>1000, 22236=>1000, 22237=>1000, 22238=>1000,
- 22239=>1000, 22240=>1000, 22241=>1000, 22243=>1000, 22244=>1000, 22245=>1000, 22246=>1000, 22247=>1000, 22248=>1000, 22251=>1000, 22253=>1000, 22254=>1000, 22256=>1000, 22257=>1000, 22258=>1000, 22259=>1000,
- 22262=>1000, 22263=>1000, 22265=>1000, 22266=>1000, 22269=>1000, 22271=>1000, 22272=>1000, 22273=>1000, 22274=>1000, 22275=>1000, 22276=>1000, 22279=>1000, 22280=>1000, 22281=>1000, 22282=>1000, 22283=>1000,
- 22284=>1000, 22285=>1000, 22287=>1000, 22289=>1000, 22290=>1000, 22291=>1000, 22293=>1000, 22294=>1000, 22296=>1000, 22298=>1000, 22299=>1000, 22300=>1000, 22301=>1000, 22303=>1000, 22304=>1000, 22306=>1000,
- 22307=>1000, 22308=>1000, 22309=>1000, 22310=>1000, 22311=>1000, 22312=>1000, 22313=>1000, 22314=>1000, 22316=>1000, 22317=>1000, 22318=>1000, 22319=>1000, 22320=>1000, 22323=>1000, 22324=>1000, 22327=>1000,
- 22328=>1000, 22331=>1000, 22333=>1000, 22334=>1000, 22335=>1000, 22336=>1000, 22338=>1000, 22341=>1000, 22342=>1000, 22343=>1000, 22346=>1000, 22348=>1000, 22349=>1000, 22350=>1000, 22351=>1000, 22352=>1000,
- 22353=>1000, 22354=>1000, 22361=>1000, 22369=>1000, 22370=>1000, 22372=>1000, 22373=>1000, 22374=>1000, 22375=>1000, 22376=>1000, 22377=>1000, 22378=>1000, 22379=>1000, 22381=>1000, 22382=>1000, 22383=>1000,
- 22384=>1000, 22385=>1000, 22387=>1000, 22388=>1000, 22389=>1000, 22391=>1000, 22393=>1000, 22394=>1000, 22395=>1000, 22396=>1000, 22398=>1000, 22399=>1000, 22401=>1000, 22402=>1000, 22403=>1000, 22408=>1000,
- 22409=>1000, 22411=>1000, 22412=>1000, 22419=>1000, 22420=>1000, 22421=>1000, 22423=>1000, 22425=>1000, 22426=>1000, 22428=>1000, 22429=>1000, 22430=>1000, 22431=>1000, 22432=>1000, 22433=>1000, 22434=>1000,
- 22435=>1000, 22436=>1000, 22439=>1000, 22440=>1000, 22441=>1000, 22442=>1000, 22444=>1000, 22448=>1000, 22451=>1000, 22456=>1000, 22461=>1000, 22464=>1000, 22467=>1000, 22470=>1000, 22471=>1000, 22472=>1000,
- 22475=>1000, 22476=>1000, 22478=>1000, 22479=>1000, 22482=>1000, 22483=>1000, 22484=>1000, 22485=>1000, 22486=>1000, 22492=>1000, 22493=>1000, 22494=>1000, 22495=>1000, 22496=>1000, 22497=>1000, 22499=>1000,
- 22500=>1000, 22502=>1000, 22503=>1000, 22505=>1000, 22509=>1000, 22512=>1000, 22516=>1000, 22517=>1000, 22518=>1000, 22519=>1000, 22520=>1000, 22521=>1000, 22522=>1000, 22524=>1000, 22525=>1000, 22526=>1000,
- 22527=>1000, 22528=>1000, 22530=>1000, 22531=>1000, 22532=>1000, 22533=>1000, 22534=>1000, 22536=>1000, 22537=>1000, 22538=>1000, 22539=>1000, 22540=>1000, 22541=>1000, 22549=>1000, 22553=>1000, 22555=>1000,
- 22557=>1000, 22558=>1000, 22559=>1000, 22560=>1000, 22561=>1000, 22564=>1000, 22566=>1000, 22567=>1000, 22570=>1000, 22573=>1000, 22575=>1000, 22576=>1000, 22577=>1000, 22578=>1000, 22580=>1000, 22581=>1000,
- 22585=>1000, 22586=>1000, 22589=>1000, 22591=>1000, 22592=>1000, 22593=>1000, 22601=>1000, 22602=>1000, 22603=>1000, 22604=>1000, 22605=>1000, 22607=>1000, 22608=>1000, 22609=>1000, 22610=>1000, 22612=>1000,
- 22613=>1000, 22615=>1000, 22616=>1000, 22617=>1000, 22618=>1000, 22622=>1000, 22623=>1000, 22625=>1000, 22626=>1000, 22628=>1000, 22631=>1000, 22632=>1000, 22633=>1000, 22635=>1000, 22640=>1000, 22642=>1000,
- 22645=>1000, 22648=>1000, 22649=>1000, 22652=>1000, 22654=>1000, 22655=>1000, 22656=>1000, 22657=>1000, 22659=>1000, 22661=>1000, 22663=>1000, 22664=>1000, 22665=>1000, 22666=>1000, 22668=>1000, 22669=>1000,
- 22671=>1000, 22672=>1000, 22675=>1000, 22676=>1000, 22678=>1000, 22679=>1000, 22684=>1000, 22685=>1000, 22686=>1000, 22687=>1000, 22688=>1000, 22689=>1000, 22690=>1000, 22694=>1000, 22696=>1000, 22697=>1000,
- 22699=>1000, 22702=>1000, 22705=>1000, 22706=>1000, 22707=>1000, 22712=>1000, 22713=>1000, 22714=>1000, 22715=>1000, 22716=>1000, 22718=>1000, 22721=>1000, 22722=>1000, 22724=>1000, 22725=>1000, 22727=>1000,
- 22728=>1000, 22730=>1000, 22732=>1000, 22733=>1000, 22734=>1000, 22736=>1000, 22737=>1000, 22738=>1000, 22739=>1000, 22740=>1000, 22741=>1000, 22742=>1000, 22743=>1000, 22744=>1000, 22745=>1000, 22746=>1000,
- 22748=>1000, 22749=>1000, 22750=>1000, 22751=>1000, 22753=>1000, 22754=>1000, 22756=>1000, 22757=>1000, 22761=>1000, 22763=>1000, 22764=>1000, 22766=>1000, 22767=>1000, 22768=>1000, 22769=>1000, 22770=>1000,
- 22771=>1000, 22775=>1000, 22777=>1000, 22778=>1000, 22779=>1000, 22780=>1000, 22781=>1000, 22786=>1000, 22789=>1000, 22790=>1000, 22793=>1000, 22794=>1000, 22795=>1000, 22796=>1000, 22799=>1000, 22800=>1000,
- 22802=>1000, 22803=>1000, 22804=>1000, 22805=>1000, 22806=>1000, 22808=>1000, 22809=>1000, 22810=>1000, 22811=>1000, 22812=>1000, 22813=>1000, 22817=>1000, 22818=>1000, 22819=>1000, 22820=>1000, 22821=>1000,
- 22823=>1000, 22824=>1000, 22825=>1000, 22826=>1000, 22827=>1000, 22828=>1000, 22829=>1000, 22830=>1000, 22831=>1000, 22832=>1000, 22833=>1000, 22834=>1000, 22835=>1000, 22837=>1000, 22838=>1000, 22839=>1000,
- 22840=>1000, 22846=>1000, 22847=>1000, 22851=>1000, 22852=>1000, 22854=>1000, 22855=>1000, 22856=>1000, 22857=>1000, 22862=>1000, 22863=>1000, 22864=>1000, 22865=>1000, 22866=>1000, 22867=>1000, 22868=>1000,
- 22869=>1000, 22871=>1000, 22872=>1000, 22873=>1000, 22874=>1000, 22875=>1000, 22877=>1000, 22878=>1000, 22879=>1000, 22880=>1000, 22881=>1000, 22882=>1000, 22883=>1000, 22885=>1000, 22887=>1000, 22888=>1000,
- 22889=>1000, 22890=>1000, 22891=>1000, 22892=>1000, 22893=>1000, 22894=>1000, 22895=>1000, 22898=>1000, 22899=>1000, 22900=>1000, 22901=>1000, 22902=>1000, 22904=>1000, 22905=>1000, 22907=>1000, 22908=>1000,
- 22909=>1000, 22913=>1000, 22914=>1000, 22915=>1000, 22916=>1000, 22922=>1000, 22923=>1000, 22924=>1000, 22925=>1000, 22926=>1000, 22930=>1000, 22931=>1000, 22933=>1000, 22934=>1000, 22935=>1000, 22937=>1000,
- 22939=>1000, 22941=>1000, 22943=>1000, 22947=>1000, 22948=>1000, 22949=>1000, 22951=>1000, 22952=>1000, 22956=>1000, 22957=>1000, 22958=>1000, 22959=>1000, 22960=>1000, 22962=>1000, 22963=>1000, 22967=>1000,
- 22969=>1000, 22970=>1000, 22971=>1000, 22972=>1000, 22974=>1000, 22977=>1000, 22979=>1000, 22980=>1000, 22982=>1000, 22984=>1000, 22985=>1000, 22986=>1000, 22987=>1000, 22989=>1000, 22992=>1000, 22993=>1000,
- 22994=>1000, 22995=>1000, 22996=>1000, 23001=>1000, 23002=>1000, 23004=>1000, 23005=>1000, 23006=>1000, 23007=>1000, 23011=>1000, 23012=>1000, 23013=>1000, 23014=>1000, 23015=>1000, 23016=>1000, 23018=>1000,
- 23019=>1000, 23022=>1000, 23023=>1000, 23025=>1000, 23026=>1000, 23028=>1000, 23030=>1000, 23031=>1000, 23035=>1000, 23039=>1000, 23040=>1000, 23041=>1000, 23043=>1000, 23044=>1000, 23049=>1000, 23052=>1000,
- 23053=>1000, 23054=>1000, 23057=>1000, 23058=>1000, 23059=>1000, 23064=>1000, 23066=>1000, 23068=>1000, 23070=>1000, 23071=>1000, 23072=>1000, 23075=>1000, 23076=>1000, 23077=>1000, 23079=>1000, 23080=>1000,
- 23081=>1000, 23082=>1000, 23085=>1000, 23087=>1000, 23088=>1000, 23093=>1000, 23094=>1000, 23100=>1000, 23104=>1000, 23105=>1000, 23108=>1000, 23109=>1000, 23110=>1000, 23111=>1000, 23112=>1000, 23113=>1000,
- 23116=>1000, 23120=>1000, 23125=>1000, 23130=>1000, 23134=>1000, 23138=>1000, 23139=>1000, 23141=>1000, 23142=>1000, 23143=>1000, 23146=>1000, 23148=>1000, 23149=>1000, 23159=>1000, 23162=>1000, 23163=>1000,
- 23166=>1000, 23167=>1000, 23179=>1000, 23184=>1000, 23186=>1000, 23187=>1000, 23190=>1000, 23193=>1000, 23194=>1000, 23195=>1000, 23196=>1000, 23198=>1000, 23199=>1000, 23200=>1000, 23202=>1000, 23207=>1000,
- 23212=>1000, 23217=>1000, 23218=>1000, 23219=>1000, 23221=>1000, 23224=>1000, 23226=>1000, 23227=>1000, 23228=>1000, 23229=>1000, 23230=>1000, 23231=>1000, 23233=>1000, 23234=>1000, 23236=>1000, 23238=>1000,
- 23240=>1000, 23241=>1000, 23243=>1000, 23244=>1000, 23247=>1000, 23248=>1000, 23254=>1000, 23255=>1000, 23258=>1000, 23260=>1000, 23264=>1000, 23265=>1000, 23267=>1000, 23269=>1000, 23270=>1000, 23273=>1000,
- 23274=>1000, 23278=>1000, 23285=>1000, 23286=>1000, 23290=>1000, 23291=>1000, 23293=>1000, 23296=>1000, 23297=>1000, 23304=>1000, 23305=>1000, 23307=>1000, 23308=>1000, 23318=>1000, 23319=>1000, 23321=>1000,
- 23323=>1000, 23325=>1000, 23329=>1000, 23330=>1000, 23333=>1000, 23338=>1000, 23340=>1000, 23341=>1000, 23344=>1000, 23346=>1000, 23348=>1000, 23350=>1000, 23352=>1000, 23358=>1000, 23360=>1000, 23361=>1000,
- 23363=>1000, 23365=>1000, 23371=>1000, 23372=>1000, 23376=>1000, 23377=>1000, 23378=>1000, 23380=>1000, 23381=>1000, 23382=>1000, 23383=>1000, 23384=>1000, 23386=>1000, 23387=>1000, 23388=>1000, 23389=>1000,
- 23390=>1000, 23391=>1000, 23395=>1000, 23396=>1000, 23397=>1000, 23398=>1000, 23400=>1000, 23401=>1000, 23403=>1000, 23406=>1000, 23407=>1000, 23408=>1000, 23409=>1000, 23411=>1000, 23413=>1000, 23416=>1000,
- 23418=>1000, 23420=>1000, 23421=>1000, 23422=>1000, 23423=>1000, 23424=>1000, 23425=>1000, 23427=>1000, 23428=>1000, 23429=>1000, 23430=>1000, 23431=>1000, 23432=>1000, 23433=>1000, 23434=>1000, 23435=>1000,
- 23436=>1000, 23437=>1000, 23438=>1000, 23439=>1000, 23440=>1000, 23441=>1000, 23443=>1000, 23444=>1000, 23445=>1000, 23446=>1000, 23447=>1000, 23448=>1000, 23449=>1000, 23450=>1000, 23451=>1000, 23452=>1000,
- 23453=>1000, 23455=>1000, 23458=>1000, 23459=>1000, 23460=>1000, 23461=>1000, 23462=>1000, 23464=>1000, 23465=>1000, 23468=>1000, 23469=>1000, 23470=>1000, 23471=>1000, 23472=>1000, 23473=>1000, 23474=>1000,
- 23475=>1000, 23476=>1000, 23477=>1000, 23478=>1000, 23479=>1000, 23480=>1000, 23481=>1000, 23482=>1000, 23484=>1000, 23487=>1000, 23488=>1000, 23489=>1000, 23490=>1000, 23491=>1000, 23492=>1000, 23493=>1000,
- 23494=>1000, 23495=>1000, 23497=>1000, 23500=>1000, 23501=>1000, 23503=>1000, 23504=>1000, 23506=>1000, 23507=>1000, 23508=>1000, 23510=>1000, 23511=>1000, 23512=>1000, 23513=>1000, 23514=>1000, 23515=>1000,
- 23517=>1000, 23518=>1000, 23519=>1000, 23520=>1000, 23521=>1000, 23522=>1000, 23524=>1000, 23525=>1000, 23526=>1000, 23527=>1000, 23528=>1000, 23529=>1000, 23531=>1000, 23532=>1000, 23534=>1000, 23535=>1000,
- 23536=>1000, 23537=>1000, 23539=>1000, 23540=>1000, 23541=>1000, 23542=>1000, 23544=>1000, 23546=>1000, 23549=>1000, 23550=>1000, 23551=>1000, 23553=>1000, 23554=>1000, 23556=>1000, 23557=>1000, 23558=>1000,
- 23559=>1000, 23560=>1000, 23561=>1000, 23562=>1000, 23563=>1000, 23564=>1000, 23565=>1000, 23566=>1000, 23567=>1000, 23569=>1000, 23571=>1000, 23574=>1000, 23575=>1000, 23578=>1000, 23582=>1000, 23583=>1000,
- 23584=>1000, 23586=>1000, 23587=>1000, 23588=>1000, 23590=>1000, 23592=>1000, 23593=>1000, 23595=>1000, 23596=>1000, 23597=>1000, 23598=>1000, 23600=>1000, 23601=>1000, 23602=>1000, 23605=>1000, 23606=>1000,
- 23608=>1000, 23609=>1000, 23610=>1000, 23611=>1000, 23612=>1000, 23613=>1000, 23614=>1000, 23615=>1000, 23616=>1000, 23617=>1000, 23621=>1000, 23622=>1000, 23624=>1000, 23626=>1000, 23627=>1000, 23629=>1000,
- 23630=>1000, 23631=>1000, 23632=>1000, 23633=>1000, 23635=>1000, 23637=>1000, 23641=>1000, 23642=>1000, 23644=>1000, 23646=>1000, 23648=>1000, 23649=>1000, 23650=>1000, 23651=>1000, 23652=>1000, 23653=>1000,
- 23655=>1000, 23656=>1000, 23657=>1000, 23660=>1000, 23661=>1000, 23662=>1000, 23663=>1000, 23664=>1000, 23665=>1000, 23668=>1000, 23669=>1000, 23670=>1000, 23673=>1000, 23674=>1000, 23675=>1000, 23676=>1000,
- 23677=>1000, 23687=>1000, 23688=>1000, 23690=>1000, 23692=>1000, 23695=>1000, 23696=>1000, 23697=>1000, 23698=>1000, 23700=>1000, 23709=>1000, 23711=>1000, 23712=>1000, 23713=>1000, 23714=>1000, 23715=>1000,
- 23718=>1000, 23720=>1000, 23721=>1000, 23722=>1000, 23723=>1000, 23724=>1000, 23729=>1000, 23730=>1000, 23731=>1000, 23732=>1000, 23733=>1000, 23734=>1000, 23735=>1000, 23736=>1000, 23738=>1000, 23739=>1000,
- 23740=>1000, 23742=>1000, 23749=>1000, 23751=>1000, 23753=>1000, 23755=>1000, 23762=>1000, 23767=>1000, 23769=>1000, 23773=>1000, 23776=>1000, 23777=>1000, 23784=>1000, 23785=>1000, 23786=>1000, 23789=>1000,
- 23790=>1000, 23791=>1000, 23792=>1000, 23793=>1000, 23794=>1000, 23796=>1000, 23797=>1000, 23798=>1000, 23802=>1000, 23803=>1000, 23805=>1000, 23809=>1000, 23814=>1000, 23815=>1000, 23819=>1000, 23821=>1000,
- 23822=>1000, 23825=>1000, 23826=>1000, 23828=>1000, 23829=>1000, 23830=>1000, 23831=>1000, 23832=>1000, 23833=>1000, 23834=>1000, 23835=>1000, 23839=>1000, 23842=>1000, 23843=>1000, 23844=>1000, 23846=>1000,
- 23847=>1000, 23849=>1000, 23851=>1000, 23857=>1000, 23860=>1000, 23865=>1000, 23869=>1000, 23871=>1000, 23874=>1000, 23875=>1000, 23878=>1000, 23880=>1000, 23882=>1000, 23883=>1000, 23884=>1000, 23886=>1000,
- 23888=>1000, 23889=>1000, 23890=>1000, 23893=>1000, 23897=>1000, 23900=>1000, 23903=>1000, 23904=>1000, 23905=>1000, 23906=>1000, 23908=>1000, 23913=>1000, 23914=>1000, 23916=>1000, 23917=>1000, 23919=>1000,
- 23920=>1000, 23923=>1000, 23926=>1000, 23929=>1000, 23930=>1000, 23934=>1000, 23935=>1000, 23937=>1000, 23938=>1000, 23939=>1000, 23940=>1000, 23943=>1000, 23944=>1000, 23946=>1000, 23947=>1000, 23948=>1000,
- 23952=>1000, 23954=>1000, 23955=>1000, 23956=>1000, 23957=>1000, 23961=>1000, 23963=>1000, 23965=>1000, 23967=>1000, 23968=>1000, 23970=>1000, 23975=>1000, 23979=>1000, 23980=>1000, 23982=>1000, 23984=>1000,
- 23986=>1000, 23988=>1000, 23991=>1000, 23992=>1000, 23993=>1000, 23994=>1000, 23996=>1000, 23997=>1000, 24003=>1000, 24007=>1000, 24009=>1000, 24011=>1000, 24012=>1000, 24013=>1000, 24014=>1000, 24016=>1000,
- 24018=>1000, 24019=>1000, 24022=>1000, 24024=>1000, 24025=>1000, 24027=>1000, 24029=>1000, 24030=>1000, 24032=>1000, 24033=>1000, 24035=>1000, 24036=>1000, 24037=>1000, 24038=>1000, 24039=>1000, 24040=>1000,
- 24041=>1000, 24043=>1000, 24046=>1000, 24049=>1000, 24050=>1000, 24051=>1000, 24052=>1000, 24053=>1000, 24055=>1000, 24056=>1000, 24057=>1000, 24059=>1000, 24061=>1000, 24062=>1000, 24064=>1000, 24066=>1000,
- 24067=>1000, 24070=>1000, 24071=>1000, 24075=>1000, 24076=>1000, 24077=>1000, 24081=>1000, 24082=>1000, 24084=>1000, 24085=>1000, 24086=>1000, 24088=>1000, 24089=>1000, 24090=>1000, 24091=>1000, 24093=>1000,
- 24095=>1000, 24096=>1000, 24101=>1000, 24104=>1000, 24107=>1000, 24109=>1000, 24110=>1000, 24111=>1000, 24112=>1000, 24114=>1000, 24115=>1000, 24117=>1000, 24118=>1000, 24119=>1000, 24120=>1000, 24125=>1000,
- 24126=>1000, 24128=>1000, 24131=>1000, 24132=>1000, 24133=>1000, 24135=>1000, 24137=>1000, 24139=>1000, 24140=>1000, 24142=>1000, 24144=>1000, 24145=>1000, 24148=>1000, 24149=>1000, 24150=>1000, 24151=>1000,
- 24152=>1000, 24155=>1000, 24156=>1000, 24158=>1000, 24159=>1000, 24161=>1000, 24162=>1000, 24163=>1000, 24164=>1000, 24168=>1000, 24170=>1000, 24171=>1000, 24172=>1000, 24173=>1000, 24174=>1000, 24176=>1000,
- 24178=>1000, 24179=>1000, 24180=>1000, 24181=>1000, 24182=>1000, 24184=>1000, 24185=>1000, 24186=>1000, 24187=>1000, 24188=>1000, 24189=>1000, 24190=>1000, 24191=>1000, 24192=>1000, 24193=>1000, 24195=>1000,
- 24196=>1000, 24199=>1000, 24202=>1000, 24203=>1000, 24206=>1000, 24207=>1000, 24213=>1000, 24214=>1000, 24215=>1000, 24218=>1000, 24220=>1000, 24224=>1000, 24226=>1000, 24228=>1000, 24229=>1000, 24230=>1000,
- 24231=>1000, 24232=>1000, 24234=>1000, 24235=>1000, 24236=>1000, 24237=>1000, 24241=>1000, 24243=>1000, 24245=>1000, 24246=>1000, 24247=>1000, 24248=>1000, 24253=>1000, 24254=>1000, 24255=>1000, 24257=>1000,
- 24258=>1000, 24259=>1000, 24262=>1000, 24264=>1000, 24265=>1000, 24266=>1000, 24267=>1000, 24268=>1000, 24270=>1000, 24271=>1000, 24272=>1000, 24273=>1000, 24274=>1000, 24275=>1000, 24276=>1000, 24277=>1000,
- 24278=>1000, 24282=>1000, 24283=>1000, 24284=>1000, 24285=>1000, 24286=>1000, 24287=>1000, 24288=>1000, 24289=>1000, 24290=>1000, 24291=>1000, 24293=>1000, 24296=>1000, 24297=>1000, 24299=>1000, 24300=>1000,
- 24304=>1000, 24305=>1000, 24307=>1000, 24308=>1000, 24310=>1000, 24311=>1000, 24312=>1000, 24314=>1000, 24315=>1000, 24316=>1000, 24318=>1000, 24319=>1000, 24321=>1000, 24322=>1000, 24323=>1000, 24324=>1000,
- 24326=>1000, 24327=>1000, 24328=>1000, 24329=>1000, 24330=>1000, 24331=>1000, 24332=>1000, 24333=>1000, 24334=>1000, 24335=>1000, 24336=>1000, 24337=>1000, 24339=>1000, 24340=>1000, 24341=>1000, 24342=>1000,
- 24343=>1000, 24344=>1000, 24345=>1000, 24347=>1000, 24348=>1000, 24349=>1000, 24351=>1000, 24353=>1000, 24354=>1000, 24355=>1000, 24356=>1000, 24357=>1000, 24358=>1000, 24359=>1000, 24360=>1000, 24361=>1000,
- 24363=>1000, 24364=>1000, 24365=>1000, 24366=>1000, 24367=>1000, 24368=>1000, 24369=>1000, 24372=>1000, 24373=>1000, 24374=>1000, 24375=>1000, 24376=>1000, 24379=>1000, 24380=>1000, 24381=>1000, 24382=>1000,
- 24383=>1000, 24384=>1000, 24385=>1000, 24388=>1000, 24389=>1000, 24391=>1000, 24392=>1000, 24394=>1000, 24396=>1000, 24397=>1000, 24398=>1000, 24400=>1000, 24401=>1000, 24403=>1000, 24404=>1000, 24406=>1000,
- 24407=>1000, 24408=>1000, 24409=>1000, 24411=>1000, 24412=>1000, 24413=>1000, 24416=>1000, 24417=>1000, 24418=>1000, 24419=>1000, 24420=>1000, 24422=>1000, 24423=>1000, 24425=>1000, 24426=>1000, 24427=>1000,
- 24428=>1000, 24429=>1000, 24431=>1000, 24432=>1000, 24433=>1000, 24434=>1000, 24435=>1000, 24436=>1000, 24437=>1000, 24439=>1000, 24440=>1000, 24441=>1000, 24442=>1000, 24444=>1000, 24445=>1000, 24446=>1000,
- 24447=>1000, 24448=>1000, 24449=>1000, 24450=>1000, 24451=>1000, 24452=>1000, 24453=>1000, 24455=>1000, 24456=>1000, 24457=>1000, 24458=>1000, 24459=>1000, 24460=>1000, 24461=>1000, 24463=>1000, 24464=>1000,
- 24465=>1000, 24466=>1000, 24467=>1000, 24470=>1000, 24471=>1000, 24472=>1000, 24473=>1000, 24476=>1000, 24477=>1000, 24478=>1000, 24480=>1000, 24481=>1000, 24482=>1000, 24484=>1000, 24487=>1000, 24488=>1000,
- 24489=>1000, 24490=>1000, 24491=>1000, 24492=>1000, 24493=>1000, 24494=>1000, 24495=>1000, 24496=>1000, 24497=>1000, 24499=>1000, 24500=>1000, 24503=>1000, 24504=>1000, 24505=>1000, 24508=>1000, 24509=>1000,
- 24515=>1000, 24516=>1000, 24517=>1000, 24519=>1000, 24520=>1000, 24521=>1000, 24523=>1000, 24524=>1000, 24525=>1000, 24528=>1000, 24529=>1000, 24530=>1000, 24531=>1000, 24532=>1000, 24534=>1000, 24535=>1000,
- 24536=>1000, 24537=>1000, 24540=>1000, 24541=>1000, 24542=>1000, 24544=>1000, 24545=>1000, 24546=>1000, 24548=>1000, 24552=>1000, 24553=>1000, 24554=>1000, 24555=>1000, 24556=>1000, 24557=>1000, 24558=>1000,
- 24559=>1000, 24560=>1000, 24561=>1000, 24562=>1000, 24563=>1000, 24565=>1000, 24566=>1000, 24568=>1000, 24570=>1000, 24571=>1000, 24572=>1000, 24573=>1000, 24575=>1000, 24583=>1000, 24586=>1000, 24589=>1000,
- 24590=>1000, 24591=>1000, 24592=>1000, 24594=>1000, 24595=>1000, 24596=>1000, 24597=>1000, 24598=>1000, 24599=>1000, 24600=>1000, 24601=>1000, 24602=>1000, 24603=>1000, 24604=>1000, 24605=>1000, 24607=>1000,
- 24608=>1000, 24609=>1000, 24612=>1000, 24613=>1000, 24614=>1000, 24615=>1000, 24616=>1000, 24617=>1000, 24618=>1000, 24619=>1000, 24621=>1000, 24623=>1000, 24625=>1000, 24627=>1000, 24629=>1000, 24634=>1000,
- 24640=>1000, 24641=>1000, 24642=>1000, 24643=>1000, 24646=>1000, 24647=>1000, 24648=>1000, 24649=>1000, 24650=>1000, 24651=>1000, 24652=>1000, 24653=>1000, 24656=>1000, 24657=>1000, 24658=>1000, 24660=>1000,
- 24661=>1000, 24662=>1000, 24663=>1000, 24665=>1000, 24666=>1000, 24669=>1000, 24671=>1000, 24672=>1000, 24673=>1000, 24674=>1000, 24675=>1000, 24676=>1000, 24677=>1000, 24679=>1000, 24680=>1000, 24681=>1000,
- 24682=>1000, 24683=>1000, 24684=>1000, 24685=>1000, 24687=>1000, 24688=>1000, 24689=>1000, 24693=>1000, 24695=>1000, 24702=>1000, 24703=>1000, 24705=>1000, 24706=>1000, 24707=>1000, 24708=>1000, 24709=>1000,
- 24710=>1000, 24712=>1000, 24713=>1000, 24714=>1000, 24715=>1000, 24716=>1000, 24717=>1000, 24718=>1000, 24721=>1000, 24722=>1000, 24723=>1000, 24724=>1000, 24725=>1000, 24726=>1000, 24727=>1000, 24728=>1000,
- 24730=>1000, 24731=>1000, 24733=>1000, 24734=>1000, 24735=>1000, 24736=>1000, 24738=>1000, 24739=>1000, 24740=>1000, 24741=>1000, 24742=>1000, 24743=>1000, 24744=>1000, 24745=>1000, 24746=>1000, 24752=>1000,
- 24753=>1000, 24754=>1000, 24755=>1000, 24756=>1000, 24757=>1000, 24758=>1000, 24759=>1000, 24760=>1000, 24763=>1000, 24764=>1000, 24765=>1000, 24766=>1000, 24770=>1000, 24772=>1000, 24773=>1000, 24774=>1000,
- 24775=>1000, 24776=>1000, 24777=>1000, 24778=>1000, 24779=>1000, 24782=>1000, 24783=>1000, 24785=>1000, 24787=>1000, 24788=>1000, 24789=>1000, 24792=>1000, 24793=>1000, 24794=>1000, 24795=>1000, 24796=>1000,
- 24797=>1000, 24798=>1000, 24799=>1000, 24800=>1000, 24801=>1000, 24802=>1000, 24803=>1000, 24805=>1000, 24807=>1000, 24808=>1000, 24816=>1000, 24817=>1000, 24818=>1000, 24819=>1000, 24820=>1000, 24821=>1000,
- 24822=>1000, 24823=>1000, 24824=>1000, 24825=>1000, 24826=>1000, 24827=>1000, 24828=>1000, 24829=>1000, 24832=>1000, 24833=>1000, 24834=>1000, 24835=>1000, 24838=>1000, 24839=>1000, 24840=>1000, 24841=>1000,
- 24842=>1000, 24844=>1000, 24845=>1000, 24846=>1000, 24847=>1000, 24848=>1000, 24849=>1000, 24850=>1000, 24851=>1000, 24852=>1000, 24853=>1000, 24854=>1000, 24855=>1000, 24857=>1000, 24858=>1000, 24859=>1000,
- 24860=>1000, 24862=>1000, 24863=>1000, 24864=>1000, 24865=>1000, 24866=>1000, 24871=>1000, 24872=>1000, 24874=>1000, 24875=>1000, 24876=>1000, 24880=>1000, 24881=>1000, 24884=>1000, 24885=>1000, 24886=>1000,
- 24887=>1000, 24889=>1000, 24892=>1000, 24893=>1000, 24894=>1000, 24895=>1000, 24897=>1000, 24898=>1000, 24900=>1000, 24901=>1000, 24902=>1000, 24903=>1000, 24904=>1000, 24905=>1000, 24906=>1000, 24907=>1000,
- 24908=>1000, 24909=>1000, 24910=>1000, 24915=>1000, 24917=>1000, 24920=>1000, 24921=>1000, 24922=>1000, 24925=>1000, 24926=>1000, 24927=>1000, 24928=>1000, 24930=>1000, 24931=>1000, 24933=>1000, 24935=>1000,
- 24936=>1000, 24939=>1000, 24940=>1000, 24942=>1000, 24943=>1000, 24944=>1000, 24945=>1000, 24946=>1000, 24947=>1000, 24948=>1000, 24949=>1000, 24950=>1000, 24951=>1000, 24952=>1000, 24955=>1000, 24956=>1000,
- 24958=>1000, 24959=>1000, 24960=>1000, 24961=>1000, 24962=>1000, 24963=>1000, 24964=>1000, 24967=>1000, 24970=>1000, 24971=>1000, 24973=>1000, 24974=>1000, 24976=>1000, 24977=>1000, 24978=>1000, 24979=>1000,
- 24980=>1000, 24982=>1000, 24983=>1000, 24984=>1000, 24985=>1000, 24986=>1000, 24988=>1000, 24989=>1000, 24991=>1000, 24992=>1000, 24996=>1000, 24997=>1000, 24999=>1000, 25000=>1000, 25001=>1000, 25002=>1000,
- 25003=>1000, 25004=>1000, 25005=>1000, 25006=>1000, 25010=>1000, 25014=>1000, 25016=>1000, 25017=>1000, 25018=>1000, 25020=>1000, 25022=>1000, 25024=>1000, 25025=>1000, 25026=>1000, 25027=>1000, 25030=>1000,
- 25031=>1000, 25032=>1000, 25033=>1000, 25034=>1000, 25035=>1000, 25036=>1000, 25037=>1000, 25038=>1000, 25039=>1000, 25040=>1000, 25045=>1000, 25052=>1000, 25053=>1000, 25054=>1000, 25055=>1000, 25057=>1000,
- 25058=>1000, 25059=>1000, 25061=>1000, 25062=>1000, 25063=>1000, 25065=>1000, 25068=>1000, 25069=>1000, 25071=>1000, 25074=>1000, 25076=>1000, 25078=>1000, 25079=>1000, 25080=>1000, 25082=>1000, 25084=>1000,
- 25085=>1000, 25086=>1000, 25087=>1000, 25088=>1000, 25089=>1000, 25091=>1000, 25092=>1000, 25095=>1000, 25096=>1000, 25097=>1000, 25098=>1000, 25100=>1000, 25101=>1000, 25102=>1000, 25104=>1000, 25105=>1000,
- 25106=>1000, 25107=>1000, 25108=>1000, 25109=>1000, 25110=>1000, 25114=>1000, 25115=>1000, 25116=>1000, 25117=>1000, 25118=>1000, 25119=>1000, 25120=>1000, 25121=>1000, 25122=>1000, 25123=>1000, 25126=>1000,
- 25127=>1000, 25129=>1000, 25130=>1000, 25131=>1000, 25134=>1000, 25135=>1000, 25136=>1000, 25138=>1000, 25139=>1000, 25140=>1000, 25144=>1000, 25145=>1000, 25147=>1000, 25149=>1000, 25151=>1000, 25152=>1000,
- 25153=>1000, 25154=>1000, 25155=>1000, 25156=>1000, 25158=>1000, 25159=>1000, 25160=>1000, 25161=>1000, 25163=>1000, 25164=>1000, 25165=>1000, 25166=>1000, 25168=>1000, 25169=>1000, 25170=>1000, 25171=>1000,
- 25172=>1000, 25173=>1000, 25174=>1000, 25176=>1000, 25178=>1000, 25179=>1000, 25180=>1000, 25182=>1000, 25184=>1000, 25187=>1000, 25188=>1000, 25192=>1000, 25197=>1000, 25198=>1000, 25199=>1000, 25201=>1000,
- 25203=>1000, 25206=>1000, 25209=>1000, 25210=>1000, 25212=>1000, 25213=>1000, 25214=>1000, 25215=>1000, 25216=>1000, 25218=>1000, 25219=>1000, 25220=>1000, 25225=>1000, 25226=>1000, 25229=>1000, 25230=>1000,
- 25231=>1000, 25232=>1000, 25233=>1000, 25234=>1000, 25235=>1000, 25236=>1000, 25237=>1000, 25238=>1000, 25239=>1000, 25240=>1000, 25243=>1000, 25244=>1000, 25246=>1000, 25254=>1000, 25256=>1000, 25259=>1000,
- 25260=>1000, 25265=>1000, 25267=>1000, 25269=>1000, 25270=>1000, 25271=>1000, 25273=>1000, 25274=>1000, 25275=>1000, 25276=>1000, 25277=>1000, 25278=>1000, 25279=>1000, 25282=>1000, 25284=>1000, 25285=>1000,
- 25286=>1000, 25287=>1000, 25288=>1000, 25289=>1000, 25290=>1000, 25292=>1000, 25293=>1000, 25294=>1000, 25295=>1000, 25296=>1000, 25297=>1000, 25298=>1000, 25299=>1000, 25300=>1000, 25301=>1000, 25302=>1000,
- 25303=>1000, 25304=>1000, 25305=>1000, 25306=>1000, 25307=>1000, 25308=>1000, 25309=>1000, 25312=>1000, 25313=>1000, 25322=>1000, 25324=>1000, 25325=>1000, 25326=>1000, 25327=>1000, 25329=>1000, 25330=>1000,
- 25331=>1000, 25332=>1000, 25333=>1000, 25334=>1000, 25335=>1000, 25340=>1000, 25341=>1000, 25342=>1000, 25343=>1000, 25345=>1000, 25346=>1000, 25347=>1000, 25348=>1000, 25351=>1000, 25352=>1000, 25353=>1000,
- 25354=>1000, 25355=>1000, 25356=>1000, 25357=>1000, 25360=>1000, 25361=>1000, 25363=>1000, 25366=>1000, 25368=>1000, 25369=>1000, 25375=>1000, 25383=>1000, 25384=>1000, 25385=>1000, 25386=>1000, 25387=>1000,
- 25389=>1000, 25391=>1000, 25397=>1000, 25398=>1000, 25401=>1000, 25402=>1000, 25404=>1000, 25405=>1000, 25406=>1000, 25407=>1000, 25409=>1000, 25410=>1000, 25411=>1000, 25412=>1000, 25414=>1000, 25417=>1000,
- 25418=>1000, 25419=>1000, 25420=>1000, 25421=>1000, 25422=>1000, 25423=>1000, 25424=>1000, 25426=>1000, 25427=>1000, 25428=>1000, 25429=>1000, 25431=>1000, 25432=>1000, 25435=>1000, 25436=>1000, 25445=>1000,
- 25446=>1000, 25447=>1000, 25448=>1000, 25449=>1000, 25451=>1000, 25452=>1000, 25453=>1000, 25454=>1000, 25457=>1000, 25458=>1000, 25460=>1000, 25461=>1000, 25462=>1000, 25463=>1000, 25464=>1000, 25466=>1000,
- 25467=>1000, 25468=>1000, 25469=>1000, 25471=>1000, 25472=>1000, 25474=>1000, 25475=>1000, 25476=>1000, 25479=>1000, 25480=>1000, 25481=>1000, 25482=>1000, 25484=>1000, 25486=>1000, 25487=>1000, 25488=>1000,
- 25490=>1000, 25492=>1000, 25493=>1000, 25494=>1000, 25496=>1000, 25497=>1000, 25498=>1000, 25499=>1000, 25502=>1000, 25503=>1000, 25504=>1000, 25505=>1000, 25506=>1000, 25507=>1000, 25508=>1000, 25509=>1000,
- 25510=>1000, 25511=>1000, 25512=>1000, 25513=>1000, 25514=>1000, 25515=>1000, 25516=>1000, 25517=>1000, 25518=>1000, 25519=>1000, 25522=>1000, 25524=>1000, 25525=>1000, 25531=>1000, 25533=>1000, 25534=>1000,
- 25536=>1000, 25537=>1000, 25539=>1000, 25540=>1000, 25541=>1000, 25542=>1000, 25544=>1000, 25545=>1000, 25550=>1000, 25551=>1000, 25552=>1000, 25553=>1000, 25554=>1000, 25555=>1000, 25556=>1000, 25557=>1000,
- 25558=>1000, 25562=>1000, 25563=>1000, 25564=>1000, 25568=>1000, 25569=>1000, 25571=>1000, 25573=>1000, 25577=>1000, 25578=>1000, 25580=>1000, 25582=>1000, 25586=>1000, 25587=>1000, 25588=>1000, 25589=>1000,
- 25590=>1000, 25592=>1000, 25593=>1000, 25594=>1000, 25606=>1000, 25609=>1000, 25610=>1000, 25613=>1000, 25615=>1000, 25616=>1000, 25618=>1000, 25619=>1000, 25620=>1000, 25622=>1000, 25623=>1000, 25624=>1000,
- 25628=>1000, 25630=>1000, 25632=>1000, 25634=>1000, 25636=>1000, 25637=>1000, 25638=>1000, 25640=>1000, 25641=>1000, 25642=>1000, 25644=>1000, 25645=>1000, 25647=>1000, 25648=>1000, 25652=>1000, 25653=>1000,
- 25654=>1000, 25658=>1000, 25661=>1000, 25662=>1000, 25663=>1000, 25666=>1000, 25675=>1000, 25678=>1000, 25679=>1000, 25681=>1000, 25682=>1000, 25683=>1000, 25684=>1000, 25688=>1000, 25690=>1000, 25691=>1000,
- 25692=>1000, 25693=>1000, 25695=>1000, 25696=>1000, 25697=>1000, 25699=>1000, 25703=>1000, 25705=>1000, 25709=>1000, 25711=>1000, 25715=>1000, 25716=>1000, 25718=>1000, 25720=>1000, 25722=>1000, 25723=>1000,
- 25725=>1000, 25731=>1000, 25733=>1000, 25735=>1000, 25736=>1000, 25743=>1000, 25744=>1000, 25745=>1000, 25746=>1000, 25747=>1000, 25749=>1000, 25752=>1000, 25753=>1000, 25754=>1000, 25755=>1000, 25757=>1000,
- 25758=>1000, 25759=>1000, 25761=>1000, 25763=>1000, 25764=>1000, 25765=>1000, 25766=>1000, 25768=>1000, 25769=>1000, 25771=>1000, 25772=>1000, 25773=>1000, 25774=>1000, 25776=>1000, 25778=>1000, 25779=>1000,
- 25785=>1000, 25787=>1000, 25788=>1000, 25789=>1000, 25790=>1000, 25791=>1000, 25793=>1000, 25794=>1000, 25796=>1000, 25797=>1000, 25799=>1000, 25801=>1000, 25802=>1000, 25803=>1000, 25804=>1000, 25805=>1000,
- 25806=>1000, 25808=>1000, 25809=>1000, 25810=>1000, 25812=>1000, 25813=>1000, 25815=>1000, 25816=>1000, 25818=>1000, 25824=>1000, 25825=>1000, 25826=>1000, 25827=>1000, 25828=>1000, 25829=>1000, 25830=>1000,
- 25831=>1000, 25833=>1000, 25834=>1000, 25836=>1000, 25837=>1000, 25839=>1000, 25840=>1000, 25841=>1000, 25842=>1000, 25844=>1000, 25845=>1000, 25846=>1000, 25847=>1000, 25850=>1000, 25851=>1000, 25853=>1000,
- 25854=>1000, 25855=>1000, 25856=>1000, 25857=>1000, 25860=>1000, 25861=>1000, 25864=>1000, 25865=>1000, 25866=>1000, 25871=>1000, 25875=>1000, 25876=>1000, 25878=>1000, 25880=>1000, 25881=>1000, 25883=>1000,
- 25884=>1000, 25885=>1000, 25886=>1000, 25887=>1000, 25890=>1000, 25891=>1000, 25892=>1000, 25894=>1000, 25897=>1000, 25898=>1000, 25899=>1000, 25900=>1000, 25902=>1000, 25903=>1000, 25905=>1000, 25908=>1000,
- 25909=>1000, 25910=>1000, 25911=>1000, 25912=>1000, 25913=>1000, 25914=>1000, 25915=>1000, 25916=>1000, 25917=>1000, 25918=>1000, 25919=>1000, 25923=>1000, 25925=>1000, 25927=>1000, 25928=>1000, 25929=>1000,
- 25933=>1000, 25934=>1000, 25935=>1000, 25936=>1000, 25937=>1000, 25938=>1000, 25940=>1000, 25941=>1000, 25942=>1000, 25943=>1000, 25944=>1000, 25945=>1000, 25949=>1000, 25950=>1000, 25951=>1000, 25952=>1000,
- 25954=>1000, 25955=>1000, 25958=>1000, 25959=>1000, 25963=>1000, 25964=>1000, 25968=>1000, 25970=>1000, 25972=>1000, 25973=>1000, 25975=>1000, 25976=>1000, 25978=>1000, 25981=>1000, 25985=>1000, 25986=>1000,
- 25987=>1000, 25989=>1000, 25991=>1000, 25992=>1000, 25993=>1000, 25994=>1000, 25996=>1000, 25998=>1000, 26000=>1000, 26001=>1000, 26002=>1000, 26005=>1000, 26007=>1000, 26008=>1000, 26009=>1000, 26011=>1000,
- 26012=>1000, 26013=>1000, 26015=>1000, 26016=>1000, 26017=>1000, 26019=>1000, 26020=>1000, 26021=>1000, 26022=>1000, 26023=>1000, 26027=>1000, 26028=>1000, 26029=>1000, 26030=>1000, 26031=>1000, 26032=>1000,
- 26034=>1000, 26035=>1000, 26036=>1000, 26039=>1000, 26041=>1000, 26044=>1000, 26045=>1000, 26047=>1000, 26049=>1000, 26050=>1000, 26051=>1000, 26052=>1000, 26053=>1000, 26054=>1000, 26056=>1000, 26057=>1000,
- 26059=>1000, 26060=>1000, 26062=>1000, 26063=>1000, 26064=>1000, 26066=>1000, 26068=>1000, 26070=>1000, 26071=>1000, 26072=>1000, 26073=>1000, 26075=>1000, 26079=>1000, 26080=>1000, 26081=>1000, 26082=>1000,
- 26085=>1000, 26086=>1000, 26087=>1000, 26088=>1000, 26089=>1000, 26092=>1000, 26093=>1000, 26096=>1000, 26097=>1000, 26098=>1000, 26100=>1000, 26101=>1000, 26105=>1000, 26106=>1000, 26107=>1000, 26110=>1000,
- 26111=>1000, 26112=>1000, 26114=>1000, 26115=>1000, 26116=>1000, 26118=>1000, 26119=>1000, 26120=>1000, 26121=>1000, 26122=>1000, 26124=>1000, 26125=>1000, 26126=>1000, 26127=>1000, 26129=>1000, 26130=>1000,
- 26131=>1000, 26132=>1000, 26133=>1000, 26134=>1000, 26140=>1000, 26141=>1000, 26142=>1000, 26143=>1000, 26144=>1000, 26145=>1000, 26146=>1000, 26147=>1000, 26148=>1000, 26149=>1000, 26150=>1000, 26151=>1000,
- 26152=>1000, 26153=>1000, 26154=>1000, 26155=>1000, 26156=>1000, 26157=>1000, 26158=>1000, 26159=>1000, 26160=>1000, 26161=>1000, 26163=>1000, 26164=>1000, 26165=>1000, 26166=>1000, 26167=>1000, 26169=>1000,
- 26172=>1000, 26175=>1000, 26176=>1000, 26177=>1000, 26178=>1000, 26179=>1000, 26180=>1000, 26181=>1000, 26182=>1000, 26185=>1000, 26186=>1000, 26187=>1000, 26188=>1000, 26190=>1000, 26191=>1000, 26193=>1000,
- 26194=>1000, 26199=>1000, 26200=>1000, 26201=>1000, 26203=>1000, 26204=>1000, 26205=>1000, 26206=>1000, 26207=>1000, 26208=>1000, 26209=>1000, 26210=>1000, 26212=>1000, 26213=>1000, 26214=>1000, 26215=>1000,
- 26216=>1000, 26217=>1000, 26218=>1000, 26219=>1000, 26220=>1000, 26222=>1000, 26223=>1000, 26224=>1000, 26227=>1000, 26228=>1000, 26229=>1000, 26230=>1000, 26231=>1000, 26232=>1000, 26233=>1000, 26234=>1000,
- 26235=>1000, 26236=>1000, 26238=>1000, 26239=>1000, 26240=>1000, 26241=>1000, 26243=>1000, 26244=>1000, 26247=>1000, 26248=>1000, 26249=>1000, 26251=>1000, 26252=>1000, 26253=>1000, 26254=>1000, 26256=>1000,
- 26257=>1000, 26258=>1000, 26262=>1000, 26263=>1000, 26264=>1000, 26265=>1000, 26266=>1000, 26267=>1000, 26268=>1000, 26269=>1000, 26271=>1000, 26272=>1000, 26274=>1000, 26276=>1000, 26278=>1000, 26283=>1000,
- 26285=>1000, 26286=>1000, 26289=>1000, 26290=>1000, 26292=>1000, 26293=>1000, 26296=>1000, 26297=>1000, 26299=>1000, 26300=>1000, 26302=>1000, 26303=>1000, 26304=>1000, 26305=>1000, 26306=>1000, 26307=>1000,
- 26308=>1000, 26311=>1000, 26312=>1000, 26313=>1000, 26316=>1000, 26318=>1000, 26319=>1000, 26324=>1000, 26326=>1000, 26329=>1000, 26330=>1000, 26331=>1000, 26332=>1000, 26333=>1000, 26335=>1000, 26336=>1000,
- 26342=>1000, 26344=>1000, 26345=>1000, 26347=>1000, 26348=>1000, 26350=>1000, 26352=>1000, 26354=>1000, 26355=>1000, 26356=>1000, 26357=>1000, 26359=>1000, 26360=>1000, 26361=>1000, 26362=>1000, 26363=>1000,
- 26364=>1000, 26365=>1000, 26366=>1000, 26367=>1000, 26368=>1000, 26371=>1000, 26373=>1000, 26375=>1000, 26376=>1000, 26377=>1000, 26379=>1000, 26381=>1000, 26382=>1000, 26383=>1000, 26387=>1000, 26388=>1000,
- 26389=>1000, 26390=>1000, 26391=>1000, 26393=>1000, 26395=>1000, 26396=>1000, 26397=>1000, 26398=>1000, 26399=>1000, 26400=>1000, 26402=>1000, 26406=>1000, 26407=>1000, 26408=>1000, 26410=>1000, 26411=>1000,
- 26412=>1000, 26413=>1000, 26414=>1000, 26417=>1000, 26419=>1000, 26420=>1000, 26422=>1000, 26423=>1000, 26424=>1000, 26426=>1000, 26429=>1000, 26430=>1000, 26431=>1000, 26433=>1000, 26437=>1000, 26438=>1000,
- 26439=>1000, 26440=>1000, 26441=>1000, 26444=>1000, 26446=>1000, 26447=>1000, 26448=>1000, 26449=>1000, 26451=>1000, 26452=>1000, 26453=>1000, 26454=>1000, 26457=>1000, 26460=>1000, 26461=>1000, 26462=>1000,
- 26463=>1000, 26464=>1000, 26465=>1000, 26466=>1000, 26467=>1000, 26468=>1000, 26469=>1000, 26470=>1000, 26474=>1000, 26476=>1000, 26477=>1000, 26478=>1000, 26479=>1000, 26480=>1000, 26481=>1000, 26482=>1000,
- 26483=>1000, 26484=>1000, 26485=>1000, 26486=>1000, 26487=>1000, 26491=>1000, 26492=>1000, 26494=>1000, 26495=>1000, 26497=>1000, 26500=>1000, 26501=>1000, 26503=>1000, 26505=>1000, 26507=>1000, 26508=>1000,
- 26510=>1000, 26511=>1000, 26512=>1000, 26513=>1000, 26515=>1000, 26517=>1000, 26518=>1000, 26519=>1000, 26520=>1000, 26521=>1000, 26522=>1000, 26523=>1000, 26524=>1000, 26525=>1000, 26528=>1000, 26529=>1000,
- 26530=>1000, 26534=>1000, 26537=>1000, 26543=>1000, 26544=>1000, 26545=>1000, 26546=>1000, 26547=>1000, 26548=>1000, 26549=>1000, 26550=>1000, 26551=>1000, 26552=>1000, 26553=>1000, 26555=>1000, 26556=>1000,
- 26557=>1000, 26560=>1000, 26561=>1000, 26562=>1000, 26563=>1000, 26564=>1000, 26565=>1000, 26566=>1000, 26568=>1000, 26569=>1000, 26570=>1000, 26574=>1000, 26575=>1000, 26576=>1000, 26577=>1000, 26578=>1000,
- 26579=>1000, 26580=>1000, 26583=>1000, 26584=>1000, 26585=>1000, 26586=>1000, 26588=>1000, 26589=>1000, 26590=>1000, 26593=>1000, 26594=>1000, 26596=>1000, 26598=>1000, 26599=>1000, 26601=>1000, 26604=>1000,
- 26606=>1000, 26607=>1000, 26608=>1000, 26609=>1000, 26610=>1000, 26611=>1000, 26612=>1000, 26613=>1000, 26614=>1000, 26615=>1000, 26617=>1000, 26619=>1000, 26622=>1000, 26623=>1000, 26625=>1000, 26626=>1000,
- 26627=>1000, 26628=>1000, 26643=>1000, 26644=>1000, 26646=>1000, 26647=>1000, 26649=>1000, 26653=>1000, 26654=>1000, 26655=>1000, 26657=>1000, 26658=>1000, 26663=>1000, 26664=>1000, 26665=>1000, 26666=>1000,
- 26667=>1000, 26668=>1000, 26669=>1000, 26671=>1000, 26672=>1000, 26673=>1000, 26674=>1000, 26675=>1000, 26676=>1000, 26680=>1000, 26681=>1000, 26683=>1000, 26684=>1000, 26685=>1000, 26687=>1000, 26688=>1000,
- 26689=>1000, 26690=>1000, 26691=>1000, 26692=>1000, 26693=>1000, 26694=>1000, 26696=>1000, 26698=>1000, 26700=>1000, 26701=>1000, 26702=>1000, 26704=>1000, 26705=>1000, 26706=>1000, 26707=>1000, 26708=>1000,
- 26709=>1000, 26711=>1000, 26712=>1000, 26713=>1000, 26715=>1000, 26716=>1000, 26717=>1000, 26719=>1000, 26723=>1000, 26727=>1000, 26731=>1000, 26734=>1000, 26735=>1000, 26736=>1000, 26737=>1000, 26738=>1000,
- 26740=>1000, 26741=>1000, 26742=>1000, 26743=>1000, 26745=>1000, 26746=>1000, 26747=>1000, 26748=>1000, 26750=>1000, 26751=>1000, 26753=>1000, 26754=>1000, 26755=>1000, 26756=>1000, 26757=>1000, 26758=>1000,
- 26760=>1000, 26765=>1000, 26767=>1000, 26771=>1000, 26772=>1000, 26774=>1000, 26775=>1000, 26776=>1000, 26778=>1000, 26779=>1000, 26780=>1000, 26781=>1000, 26783=>1000, 26784=>1000, 26785=>1000, 26786=>1000,
- 26787=>1000, 26789=>1000, 26790=>1000, 26791=>1000, 26792=>1000, 26793=>1000, 26794=>1000, 26797=>1000, 26798=>1000, 26799=>1000, 26800=>1000, 26801=>1000, 26802=>1000, 26803=>1000, 26805=>1000, 26806=>1000,
- 26809=>1000, 26810=>1000, 26811=>1000, 26812=>1000, 26820=>1000, 26821=>1000, 26822=>1000, 26824=>1000, 26825=>1000, 26826=>1000, 26827=>1000, 26828=>1000, 26829=>1000, 26831=>1000, 26832=>1000, 26833=>1000,
- 26834=>1000, 26835=>1000, 26836=>1000, 26837=>1000, 26838=>1000, 26839=>1000, 26840=>1000, 26841=>1000, 26842=>1000, 26844=>1000, 26845=>1000, 26847=>1000, 26848=>1000, 26849=>1000, 26851=>1000, 26853=>1000,
- 26855=>1000, 26856=>1000, 26858=>1000, 26859=>1000, 26860=>1000, 26861=>1000, 26862=>1000, 26863=>1000, 26864=>1000, 26865=>1000, 26866=>1000, 26869=>1000, 26870=>1000, 26873=>1000, 26874=>1000, 26875=>1000,
- 26876=>1000, 26877=>1000, 26880=>1000, 26881=>1000, 26884=>1000, 26885=>1000, 26886=>1000, 26888=>1000, 26889=>1000, 26890=>1000, 26891=>1000, 26892=>1000, 26893=>1000, 26894=>1000, 26895=>1000, 26896=>1000,
- 26897=>1000, 26898=>1000, 26899=>1000, 26902=>1000, 26903=>1000, 26905=>1000, 26906=>1000, 26907=>1000, 26908=>1000, 26913=>1000, 26914=>1000, 26915=>1000, 26917=>1000, 26918=>1000, 26920=>1000, 26922=>1000,
- 26928=>1000, 26929=>1000, 26931=>1000, 26932=>1000, 26933=>1000, 26934=>1000, 26936=>1000, 26937=>1000, 26939=>1000, 26941=>1000, 26943=>1000, 26946=>1000, 26949=>1000, 26953=>1000, 26954=>1000, 26958=>1000,
- 26963=>1000, 26964=>1000, 26965=>1000, 26967=>1000, 26969=>1000, 26970=>1000, 26971=>1000, 26972=>1000, 26973=>1000, 26974=>1000, 26976=>1000, 26977=>1000, 26978=>1000, 26979=>1000, 26980=>1000, 26981=>1000,
- 26982=>1000, 26984=>1000, 26985=>1000, 26986=>1000, 26987=>1000, 26988=>1000, 26989=>1000, 26990=>1000, 26991=>1000, 26992=>1000, 26993=>1000, 26994=>1000, 26995=>1000, 26996=>1000, 26997=>1000, 26999=>1000,
- 27000=>1000, 27001=>1000, 27002=>1000, 27003=>1000, 27004=>1000, 27005=>1000, 27006=>1000, 27007=>1000, 27008=>1000, 27009=>1000, 27010=>1000, 27018=>1000, 27021=>1000, 27022=>1000, 27025=>1000, 27026=>1000,
- 27028=>1000, 27029=>1000, 27030=>1000, 27032=>1000, 27035=>1000, 27036=>1000, 27040=>1000, 27041=>1000, 27045=>1000, 27046=>1000, 27047=>1000, 27048=>1000, 27051=>1000, 27053=>1000, 27054=>1000, 27055=>1000,
- 27057=>1000, 27058=>1000, 27060=>1000, 27063=>1000, 27064=>1000, 27066=>1000, 27067=>1000, 27068=>1000, 27070=>1000, 27071=>1000, 27073=>1000, 27075=>1000, 27077=>1000, 27079=>1000, 27080=>1000, 27082=>1000,
- 27083=>1000, 27084=>1000, 27085=>1000, 27086=>1000, 27088=>1000, 27089=>1000, 27091=>1000, 27094=>1000, 27095=>1000, 27096=>1000, 27097=>1000, 27101=>1000, 27102=>1000, 27106=>1000, 27109=>1000, 27111=>1000,
- 27112=>1000, 27115=>1000, 27117=>1000, 27118=>1000, 27119=>1000, 27121=>1000, 27122=>1000, 27123=>1000, 27125=>1000, 27129=>1000, 27131=>1000, 27133=>1000, 27134=>1000, 27135=>1000, 27136=>1000, 27137=>1000,
- 27138=>1000, 27139=>1000, 27141=>1000, 27146=>1000, 27147=>1000, 27148=>1000, 27151=>1000, 27153=>1000, 27154=>1000, 27155=>1000, 27156=>1000, 27157=>1000, 27159=>1000, 27161=>1000, 27162=>1000, 27163=>1000,
- 27165=>1000, 27166=>1000, 27167=>1000, 27168=>1000, 27169=>1000, 27170=>1000, 27171=>1000, 27172=>1000, 27176=>1000, 27177=>1000, 27178=>1000, 27179=>1000, 27182=>1000, 27184=>1000, 27186=>1000, 27188=>1000,
- 27189=>1000, 27190=>1000, 27191=>1000, 27192=>1000, 27193=>1000, 27194=>1000, 27195=>1000, 27197=>1000, 27198=>1000, 27199=>1000, 27204=>1000, 27205=>1000, 27206=>1000, 27207=>1000, 27208=>1000, 27209=>1000,
- 27210=>1000, 27211=>1000, 27214=>1000, 27216=>1000, 27217=>1000, 27218=>1000, 27221=>1000, 27222=>1000, 27224=>1000, 27225=>1000, 27227=>1000, 27231=>1000, 27233=>1000, 27234=>1000, 27236=>1000, 27238=>1000,
- 27239=>1000, 27242=>1000, 27243=>1000, 27249=>1000, 27250=>1000, 27251=>1000, 27256=>1000, 27262=>1000, 27263=>1000, 27264=>1000, 27265=>1000, 27267=>1000, 27268=>1000, 27270=>1000, 27271=>1000, 27273=>1000,
- 27275=>1000, 27277=>1000, 27278=>1000, 27280=>1000, 27281=>1000, 27287=>1000, 27291=>1000, 27292=>1000, 27293=>1000, 27294=>1000, 27295=>1000, 27296=>1000, 27298=>1000, 27299=>1000, 27301=>1000, 27306=>1000,
- 27307=>1000, 27308=>1000, 27310=>1000, 27311=>1000, 27312=>1000, 27313=>1000, 27315=>1000, 27316=>1000, 27320=>1000, 27323=>1000, 27325=>1000, 27326=>1000, 27327=>1000, 27329=>1000, 27330=>1000, 27331=>1000,
- 27334=>1000, 27336=>1000, 27337=>1000, 27340=>1000, 27344=>1000, 27345=>1000, 27347=>1000, 27348=>1000, 27349=>1000, 27350=>1000, 27354=>1000, 27355=>1000, 27356=>1000, 27357=>1000, 27358=>1000, 27359=>1000,
- 27362=>1000, 27364=>1000, 27367=>1000, 27368=>1000, 27370=>1000, 27372=>1000, 27376=>1000, 27377=>1000, 27378=>1000, 27386=>1000, 27387=>1000, 27388=>1000, 27389=>1000, 27394=>1000, 27395=>1000, 27396=>1000,
- 27397=>1000, 27398=>1000, 27399=>1000, 27401=>1000, 27402=>1000, 27407=>1000, 27408=>1000, 27409=>1000, 27410=>1000, 27414=>1000, 27415=>1000, 27419=>1000, 27421=>1000, 27422=>1000, 27423=>1000, 27424=>1000,
- 27425=>1000, 27427=>1000, 27428=>1000, 27431=>1000, 27432=>1000, 27435=>1000, 27436=>1000, 27439=>1000, 27442=>1000, 27445=>1000, 27446=>1000, 27447=>1000, 27448=>1000, 27449=>1000, 27450=>1000, 27451=>1000,
- 27453=>1000, 27454=>1000, 27455=>1000, 27459=>1000, 27462=>1000, 27463=>1000, 27465=>1000, 27466=>1000, 27468=>1000, 27469=>1000, 27470=>1000, 27472=>1000, 27474=>1000, 27475=>1000, 27476=>1000, 27478=>1000,
- 27480=>1000, 27481=>1000, 27483=>1000, 27485=>1000, 27487=>1000, 27488=>1000, 27489=>1000, 27490=>1000, 27491=>1000, 27492=>1000, 27494=>1000, 27495=>1000, 27497=>1000, 27498=>1000, 27499=>1000, 27502=>1000,
- 27503=>1000, 27504=>1000, 27507=>1000, 27508=>1000, 27509=>1000, 27512=>1000, 27513=>1000, 27515=>1000, 27517=>1000, 27518=>1000, 27519=>1000, 27520=>1000, 27522=>1000, 27523=>1000, 27524=>1000, 27525=>1000,
- 27526=>1000, 27529=>1000, 27530=>1000, 27531=>1000, 27533=>1000, 27541=>1000, 27542=>1000, 27543=>1000, 27544=>1000, 27547=>1000, 27550=>1000, 27551=>1000, 27552=>1000, 27554=>1000, 27555=>1000, 27556=>1000,
- 27560=>1000, 27561=>1000, 27562=>1000, 27563=>1000, 27564=>1000, 27565=>1000, 27566=>1000, 27567=>1000, 27568=>1000, 27569=>1000, 27570=>1000, 27571=>1000, 27572=>1000, 27573=>1000, 27575=>1000, 27576=>1000,
- 27577=>1000, 27578=>1000, 27579=>1000, 27580=>1000, 27581=>1000, 27582=>1000, 27583=>1000, 27584=>1000, 27587=>1000, 27588=>1000, 27589=>1000, 27590=>1000, 27593=>1000, 27595=>1000, 27596=>1000, 27597=>1000,
- 27598=>1000, 27602=>1000, 27603=>1000, 27604=>1000, 27606=>1000, 27608=>1000, 27610=>1000, 27611=>1000, 27615=>1000, 27617=>1000, 27619=>1000, 27622=>1000, 27623=>1000, 27627=>1000, 27628=>1000, 27630=>1000,
- 27631=>1000, 27633=>1000, 27635=>1000, 27639=>1000, 27641=>1000, 27647=>1000, 27650=>1000, 27652=>1000, 27653=>1000, 27656=>1000, 27657=>1000, 27661=>1000, 27662=>1000, 27663=>1000, 27664=>1000, 27665=>1000,
- 27666=>1000, 27667=>1000, 27668=>1000, 27671=>1000, 27673=>1000, 27675=>1000, 27679=>1000, 27683=>1000, 27684=>1000, 27686=>1000, 27687=>1000, 27688=>1000, 27692=>1000, 27694=>1000, 27699=>1000, 27700=>1000,
- 27701=>1000, 27702=>1000, 27703=>1000, 27704=>1000, 27706=>1000, 27707=>1000, 27710=>1000, 27711=>1000, 27712=>1000, 27713=>1000, 27714=>1000, 27722=>1000, 27723=>1000, 27725=>1000, 27726=>1000, 27727=>1000,
- 27728=>1000, 27730=>1000, 27732=>1000, 27733=>1000, 27735=>1000, 27737=>1000, 27738=>1000, 27739=>1000, 27740=>1000, 27741=>1000, 27742=>1000, 27743=>1000, 27744=>1000, 27746=>1000, 27751=>1000, 27752=>1000,
- 27754=>1000, 27755=>1000, 27757=>1000, 27759=>1000, 27760=>1000, 27762=>1000, 27763=>1000, 27764=>1000, 27766=>1000, 27768=>1000, 27769=>1000, 27770=>1000, 27771=>1000, 27773=>1000, 27774=>1000, 27777=>1000,
- 27778=>1000, 27779=>1000, 27781=>1000, 27782=>1000, 27783=>1000, 27784=>1000, 27785=>1000, 27788=>1000, 27789=>1000, 27792=>1000, 27794=>1000, 27795=>1000, 27796=>1000, 27797=>1000, 27798=>1000, 27799=>1000,
- 27800=>1000, 27801=>1000, 27802=>1000, 27803=>1000, 27804=>1000, 27807=>1000, 27809=>1000, 27810=>1000, 27819=>1000, 27822=>1000, 27824=>1000, 27825=>1000, 27826=>1000, 27827=>1000, 27828=>1000, 27832=>1000,
- 27833=>1000, 27834=>1000, 27835=>1000, 27836=>1000, 27837=>1000, 27838=>1000, 27839=>1000, 27841=>1000, 27842=>1000, 27844=>1000, 27845=>1000, 27846=>1000, 27849=>1000, 27850=>1000, 27852=>1000, 27853=>1000,
- 27855=>1000, 27856=>1000, 27857=>1000, 27858=>1000, 27859=>1000, 27860=>1000, 27861=>1000, 27862=>1000, 27863=>1000, 27865=>1000, 27866=>1000, 27867=>1000, 27868=>1000, 27869=>1000, 27872=>1000, 27873=>1000,
- 27874=>1000, 27875=>1000, 27877=>1000, 27879=>1000, 27880=>1000, 27881=>1000, 27882=>1000, 27883=>1000, 27884=>1000, 27886=>1000, 27887=>1000, 27888=>1000, 27889=>1000, 27890=>1000, 27891=>1000, 27892=>1000,
- 27908=>1000, 27911=>1000, 27914=>1000, 27915=>1000, 27916=>1000, 27918=>1000, 27919=>1000, 27921=>1000, 27922=>1000, 27923=>1000, 27927=>1000, 27929=>1000, 27930=>1000, 27931=>1000, 27934=>1000, 27935=>1000,
- 27941=>1000, 27942=>1000, 27943=>1000, 27944=>1000, 27945=>1000, 27946=>1000, 27947=>1000, 27950=>1000, 27951=>1000, 27953=>1000, 27954=>1000, 27955=>1000, 27957=>1000, 27958=>1000, 27960=>1000, 27961=>1000,
- 27963=>1000, 27964=>1000, 27965=>1000, 27966=>1000, 27967=>1000, 27969=>1000, 27972=>1000, 27973=>1000, 27991=>1000, 27993=>1000, 27994=>1000, 27996=>1000, 27998=>1000, 27999=>1000, 28001=>1000, 28003=>1000,
- 28004=>1000, 28005=>1000, 28006=>1000, 28007=>1000, 28009=>1000, 28010=>1000, 28012=>1000, 28014=>1000, 28015=>1000, 28016=>1000, 28020=>1000, 28023=>1000, 28024=>1000, 28025=>1000, 28028=>1000, 28034=>1000,
- 28037=>1000, 28039=>1000, 28040=>1000, 28044=>1000, 28046=>1000, 28049=>1000, 28050=>1000, 28051=>1000, 28052=>1000, 28053=>1000, 28054=>1000, 28055=>1000, 28056=>1000, 28057=>1000, 28059=>1000, 28060=>1000,
- 28074=>1000, 28076=>1000, 28079=>1000, 28082=>1000, 28084=>1000, 28085=>1000, 28087=>1000, 28088=>1000, 28089=>1000, 28092=>1000, 28093=>1000, 28095=>1000, 28096=>1000, 28100=>1000, 28101=>1000, 28102=>1000,
- 28103=>1000, 28104=>1000, 28106=>1000, 28107=>1000, 28108=>1000, 28110=>1000, 28111=>1000, 28113=>1000, 28114=>1000, 28117=>1000, 28118=>1000, 28120=>1000, 28121=>1000, 28123=>1000, 28125=>1000, 28126=>1000,
- 28127=>1000, 28128=>1000, 28129=>1000, 28130=>1000, 28132=>1000, 28133=>1000, 28134=>1000, 28136=>1000, 28137=>1000, 28138=>1000, 28139=>1000, 28140=>1000, 28142=>1000, 28143=>1000, 28144=>1000, 28145=>1000,
- 28146=>1000, 28147=>1000, 28148=>1000, 28149=>1000, 28150=>1000, 28151=>1000, 28152=>1000, 28153=>1000, 28154=>1000, 28155=>1000, 28156=>1000, 28160=>1000, 28164=>1000, 28165=>1000, 28167=>1000, 28168=>1000,
- 28169=>1000, 28170=>1000, 28171=>1000, 28179=>1000, 28181=>1000, 28185=>1000, 28186=>1000, 28187=>1000, 28189=>1000, 28190=>1000, 28191=>1000, 28192=>1000, 28193=>1000, 28194=>1000, 28195=>1000, 28196=>1000,
- 28197=>1000, 28198=>1000, 28199=>1000, 28201=>1000, 28203=>1000, 28204=>1000, 28205=>1000, 28206=>1000, 28207=>1000, 28210=>1000, 28214=>1000, 28216=>1000, 28217=>1000, 28218=>1000, 28219=>1000, 28220=>1000,
- 28222=>1000, 28227=>1000, 28228=>1000, 28229=>1000, 28232=>1000, 28233=>1000, 28234=>1000, 28235=>1000, 28237=>1000, 28238=>1000, 28239=>1000, 28241=>1000, 28242=>1000, 28243=>1000, 28244=>1000, 28246=>1000,
- 28247=>1000, 28248=>1000, 28251=>1000, 28252=>1000, 28253=>1000, 28254=>1000, 28255=>1000, 28258=>1000, 28259=>1000, 28263=>1000, 28264=>1000, 28267=>1000, 28270=>1000, 28271=>1000, 28274=>1000, 28275=>1000,
- 28278=>1000, 28283=>1000, 28285=>1000, 28286=>1000, 28287=>1000, 28288=>1000, 28290=>1000, 28300=>1000, 28301=>1000, 28303=>1000, 28304=>1000, 28307=>1000, 28310=>1000, 28312=>1000, 28313=>1000, 28316=>1000,
- 28317=>1000, 28319=>1000, 28320=>1000, 28322=>1000, 28325=>1000, 28327=>1000, 28330=>1000, 28333=>1000, 28334=>1000, 28335=>1000, 28337=>1000, 28338=>1000, 28339=>1000, 28342=>1000, 28343=>1000, 28346=>1000,
- 28347=>1000, 28349=>1000, 28351=>1000, 28352=>1000, 28353=>1000, 28354=>1000, 28355=>1000, 28356=>1000, 28357=>1000, 28359=>1000, 28360=>1000, 28361=>1000, 28362=>1000, 28363=>1000, 28364=>1000, 28365=>1000,
- 28366=>1000, 28367=>1000, 28369=>1000, 28371=>1000, 28372=>1000, 28373=>1000, 28381=>1000, 28382=>1000, 28395=>1000, 28396=>1000, 28397=>1000, 28398=>1000, 28399=>1000, 28402=>1000, 28404=>1000, 28407=>1000,
- 28408=>1000, 28409=>1000, 28411=>1000, 28413=>1000, 28414=>1000, 28415=>1000, 28417=>1000, 28418=>1000, 28420=>1000, 28422=>1000, 28424=>1000, 28425=>1000, 28426=>1000, 28428=>1000, 28429=>1000, 28431=>1000,
- 28433=>1000, 28435=>1000, 28436=>1000, 28437=>1000, 28438=>1000, 28440=>1000, 28442=>1000, 28443=>1000, 28448=>1000, 28450=>1000, 28451=>1000, 28454=>1000, 28457=>1000, 28458=>1000, 28459=>1000, 28460=>1000,
- 28461=>1000, 28463=>1000, 28464=>1000, 28465=>1000, 28466=>1000, 28467=>1000, 28470=>1000, 28472=>1000, 28475=>1000, 28476=>1000, 28478=>1000, 28479=>1000, 28481=>1000, 28485=>1000, 28495=>1000, 28497=>1000,
- 28498=>1000, 28499=>1000, 28500=>1000, 28503=>1000, 28504=>1000, 28505=>1000, 28506=>1000, 28507=>1000, 28508=>1000, 28509=>1000, 28510=>1000, 28511=>1000, 28513=>1000, 28514=>1000, 28516=>1000, 28518=>1000,
- 28520=>1000, 28524=>1000, 28525=>1000, 28526=>1000, 28527=>1000, 28528=>1000, 28532=>1000, 28536=>1000, 28538=>1000, 28540=>1000, 28541=>1000, 28542=>1000, 28544=>1000, 28545=>1000, 28546=>1000, 28547=>1000,
- 28548=>1000, 28550=>1000, 28551=>1000, 28552=>1000, 28555=>1000, 28556=>1000, 28557=>1000, 28558=>1000, 28560=>1000, 28561=>1000, 28562=>1000, 28563=>1000, 28564=>1000, 28566=>1000, 28567=>1000, 28570=>1000,
- 28575=>1000, 28576=>1000, 28577=>1000, 28579=>1000, 28580=>1000, 28581=>1000, 28582=>1000, 28583=>1000, 28584=>1000, 28586=>1000, 28590=>1000, 28591=>1000, 28592=>1000, 28593=>1000, 28595=>1000, 28597=>1000,
- 28598=>1000, 28601=>1000, 28604=>1000, 28608=>1000, 28609=>1000, 28610=>1000, 28611=>1000, 28613=>1000, 28614=>1000, 28615=>1000, 28616=>1000, 28618=>1000, 28628=>1000, 28629=>1000, 28632=>1000, 28634=>1000,
- 28635=>1000, 28638=>1000, 28639=>1000, 28640=>1000, 28641=>1000, 28644=>1000, 28648=>1000, 28649=>1000, 28651=>1000, 28652=>1000, 28654=>1000, 28655=>1000, 28656=>1000, 28657=>1000, 28659=>1000, 28661=>1000,
- 28662=>1000, 28665=>1000, 28666=>1000, 28668=>1000, 28669=>1000, 28670=>1000, 28672=>1000, 28673=>1000, 28677=>1000, 28678=>1000, 28679=>1000, 28681=>1000, 28683=>1000, 28685=>1000, 28687=>1000, 28689=>1000,
- 28693=>1000, 28695=>1000, 28696=>1000, 28698=>1000, 28699=>1000, 28701=>1000, 28702=>1000, 28703=>1000, 28704=>1000, 28707=>1000, 28710=>1000, 28711=>1000, 28712=>1000, 28716=>1000, 28719=>1000, 28720=>1000,
- 28722=>1000, 28724=>1000, 28727=>1000, 28729=>1000, 28732=>1000, 28734=>1000, 28739=>1000, 28740=>1000, 28744=>1000, 28745=>1000, 28746=>1000, 28747=>1000, 28748=>1000, 28750=>1000, 28753=>1000, 28756=>1000,
- 28757=>1000, 28760=>1000, 28765=>1000, 28766=>1000, 28771=>1000, 28772=>1000, 28773=>1000, 28779=>1000, 28780=>1000, 28782=>1000, 28783=>1000, 28784=>1000, 28789=>1000, 28790=>1000, 28792=>1000, 28796=>1000,
- 28797=>1000, 28798=>1000, 28801=>1000, 28805=>1000, 28806=>1000, 28809=>1000, 28810=>1000, 28814=>1000, 28818=>1000, 28820=>1000, 28821=>1000, 28822=>1000, 28823=>1000, 28824=>1000, 28825=>1000, 28827=>1000,
- 28836=>1000, 28843=>1000, 28844=>1000, 28845=>1000, 28846=>1000, 28847=>1000, 28848=>1000, 28849=>1000, 28851=>1000, 28852=>1000, 28855=>1000, 28856=>1000, 28857=>1000, 28858=>1000, 28859=>1000, 28872=>1000,
- 28874=>1000, 28875=>1000, 28879=>1000, 28881=>1000, 28883=>1000, 28884=>1000, 28885=>1000, 28886=>1000, 28888=>1000, 28889=>1000, 28892=>1000, 28893=>1000, 28895=>1000, 28900=>1000, 28913=>1000, 28921=>1000,
- 28922=>1000, 28925=>1000, 28931=>1000, 28932=>1000, 28933=>1000, 28934=>1000, 28935=>1000, 28937=>1000, 28939=>1000, 28940=>1000, 28943=>1000, 28948=>1000, 28953=>1000, 28954=>1000, 28956=>1000, 28958=>1000,
- 28960=>1000, 28961=>1000, 28966=>1000, 28971=>1000, 28973=>1000, 28975=>1000, 28976=>1000, 28977=>1000, 28982=>1000, 28984=>1000, 28988=>1000, 28993=>1000, 28997=>1000, 28998=>1000, 28999=>1000, 29001=>1000,
- 29002=>1000, 29003=>1000, 29004=>1000, 29006=>1000, 29008=>1000, 29010=>1000, 29013=>1000, 29014=>1000, 29015=>1000, 29017=>1000, 29018=>1000, 29020=>1000, 29022=>1000, 29024=>1000, 29026=>1000, 29028=>1000,
- 29029=>1000, 29030=>1000, 29031=>1000, 29032=>1000, 29033=>1000, 29036=>1000, 29038=>1000, 29049=>1000, 29053=>1000, 29056=>1000, 29060=>1000, 29061=>1000, 29063=>1000, 29064=>1000, 29066=>1000, 29068=>1000,
- 29071=>1000, 29074=>1000, 29076=>1000, 29077=>1000, 29081=>1000, 29082=>1000, 29083=>1000, 29087=>1000, 29088=>1000, 29090=>1000, 29096=>1000, 29100=>1000, 29103=>1000, 29104=>1000, 29105=>1000, 29106=>1000,
- 29107=>1000, 29113=>1000, 29114=>1000, 29118=>1000, 29119=>1000, 29120=>1000, 29121=>1000, 29123=>1000, 29124=>1000, 29128=>1000, 29129=>1000, 29131=>1000, 29132=>1000, 29134=>1000, 29136=>1000, 29138=>1000,
- 29139=>1000, 29140=>1000, 29141=>1000, 29142=>1000, 29143=>1000, 29145=>1000, 29146=>1000, 29148=>1000, 29151=>1000, 29152=>1000, 29157=>1000, 29158=>1000, 29159=>1000, 29164=>1000, 29165=>1000, 29166=>1000,
- 29173=>1000, 29176=>1000, 29177=>1000, 29179=>1000, 29180=>1000, 29182=>1000, 29183=>1000, 29184=>1000, 29190=>1000, 29191=>1000, 29192=>1000, 29193=>1000, 29197=>1000, 29200=>1000, 29203=>1000, 29207=>1000,
- 29210=>1000, 29211=>1000, 29213=>1000, 29215=>1000, 29220=>1000, 29224=>1000, 29226=>1000, 29227=>1000, 29228=>1000, 29229=>1000, 29231=>1000, 29232=>1000, 29234=>1000, 29236=>1000, 29237=>1000, 29238=>1000,
- 29240=>1000, 29241=>1000, 29242=>1000, 29243=>1000, 29244=>1000, 29245=>1000, 29246=>1000, 29247=>1000, 29248=>1000, 29249=>1000, 29250=>1000, 29251=>1000, 29253=>1000, 29254=>1000, 29255=>1000, 29256=>1000,
- 29259=>1000, 29260=>1000, 29262=>1000, 29263=>1000, 29264=>1000, 29266=>1000, 29267=>1000, 29269=>1000, 29270=>1000, 29272=>1000, 29273=>1000, 29274=>1000, 29275=>1000, 29276=>1000, 29277=>1000, 29278=>1000,
- 29279=>1000, 29280=>1000, 29281=>1000, 29282=>1000, 29283=>1000, 29287=>1000, 29288=>1000, 29289=>1000, 29291=>1000, 29294=>1000, 29295=>1000, 29297=>1000, 29298=>1000, 29300=>1000, 29303=>1000, 29304=>1000,
- 29305=>1000, 29307=>1000, 29308=>1000, 29309=>1000, 29310=>1000, 29311=>1000, 29312=>1000, 29313=>1000, 29314=>1000, 29316=>1000, 29319=>1000, 29321=>1000, 29325=>1000, 29326=>1000, 29330=>1000, 29331=>1000,
- 29334=>1000, 29339=>1000, 29344=>1000, 29346=>1000, 29351=>1000, 29352=>1000, 29356=>1000, 29357=>1000, 29358=>1000, 29359=>1000, 29361=>1000, 29362=>1000, 29364=>1000, 29366=>1000, 29369=>1000, 29374=>1000,
- 29377=>1000, 29378=>1000, 29379=>1000, 29380=>1000, 29382=>1000, 29383=>1000, 29385=>1000, 29388=>1000, 29390=>1000, 29392=>1000, 29394=>1000, 29397=>1000, 29398=>1000, 29399=>1000, 29400=>1000, 29401=>1000,
- 29403=>1000, 29407=>1000, 29408=>1000, 29409=>1000, 29410=>1000, 29413=>1000, 29417=>1000, 29420=>1000, 29421=>1000, 29427=>1000, 29428=>1000, 29431=>1000, 29432=>1000, 29433=>1000, 29434=>1000, 29435=>1000,
- 29436=>1000, 29437=>1000, 29438=>1000, 29442=>1000, 29444=>1000, 29445=>1000, 29447=>1000, 29450=>1000, 29451=>1000, 29453=>1000, 29458=>1000, 29459=>1000, 29462=>1000, 29463=>1000, 29464=>1000, 29465=>1000,
- 29467=>1000, 29468=>1000, 29469=>1000, 29470=>1000, 29471=>1000, 29474=>1000, 29476=>1000, 29477=>1000, 29479=>1000, 29480=>1000, 29481=>1000, 29482=>1000, 29483=>1000, 29484=>1000, 29486=>1000, 29487=>1000,
- 29489=>1000, 29490=>1000, 29492=>1000, 29493=>1000, 29494=>1000, 29495=>1000, 29498=>1000, 29499=>1000, 29501=>1000, 29502=>1000, 29503=>1000, 29507=>1000, 29508=>1000, 29509=>1000, 29517=>1000, 29518=>1000,
- 29519=>1000, 29520=>1000, 29522=>1000, 29526=>1000, 29527=>1000, 29528=>1000, 29533=>1000, 29534=>1000, 29535=>1000, 29536=>1000, 29539=>1000, 29542=>1000, 29543=>1000, 29544=>1000, 29545=>1000, 29546=>1000,
- 29547=>1000, 29548=>1000, 29550=>1000, 29551=>1000, 29552=>1000, 29553=>1000, 29554=>1000, 29557=>1000, 29559=>1000, 29560=>1000, 29561=>1000, 29562=>1000, 29563=>1000, 29564=>1000, 29568=>1000, 29569=>1000,
- 29571=>1000, 29572=>1000, 29573=>1000, 29574=>1000, 29575=>1000, 29577=>1000, 29579=>1000, 29582=>1000, 29584=>1000, 29587=>1000, 29589=>1000, 29590=>1000, 29591=>1000, 29592=>1000, 29596=>1000, 29598=>1000,
- 29599=>1000, 29600=>1000, 29602=>1000, 29605=>1000, 29606=>1000, 29609=>1000, 29610=>1000, 29611=>1000, 29613=>1000, 29618=>1000, 29619=>1000, 29621=>1000, 29623=>1000, 29625=>1000, 29627=>1000, 29628=>1000,
- 29629=>1000, 29631=>1000, 29632=>1000, 29634=>1000, 29637=>1000, 29638=>1000, 29640=>1000, 29641=>1000, 29642=>1000, 29643=>1000, 29644=>1000, 29645=>1000, 29646=>1000, 29647=>1000, 29650=>1000, 29651=>1000,
- 29654=>1000, 29657=>1000, 29661=>1000, 29662=>1000, 29664=>1000, 29665=>1000, 29667=>1000, 29669=>1000, 29670=>1000, 29671=>1000, 29673=>1000, 29674=>1000, 29677=>1000, 29678=>1000, 29681=>1000, 29684=>1000,
- 29685=>1000, 29687=>1000, 29688=>1000, 29689=>1000, 29690=>1000, 29691=>1000, 29693=>1000, 29694=>1000, 29695=>1000, 29696=>1000, 29697=>1000, 29699=>1000, 29700=>1000, 29701=>1000, 29702=>1000, 29703=>1000,
- 29705=>1000, 29706=>1000, 29713=>1000, 29722=>1000, 29723=>1000, 29730=>1000, 29732=>1000, 29733=>1000, 29734=>1000, 29736=>1000, 29737=>1000, 29738=>1000, 29739=>1000, 29740=>1000, 29741=>1000, 29742=>1000,
- 29743=>1000, 29744=>1000, 29745=>1000, 29746=>1000, 29747=>1000, 29748=>1000, 29749=>1000, 29750=>1000, 29753=>1000, 29754=>1000, 29759=>1000, 29760=>1000, 29761=>1000, 29763=>1000, 29764=>1000, 29766=>1000,
- 29767=>1000, 29771=>1000, 29773=>1000, 29777=>1000, 29778=>1000, 29781=>1000, 29783=>1000, 29785=>1000, 29786=>1000, 29787=>1000, 29788=>1000, 29789=>1000, 29790=>1000, 29791=>1000, 29792=>1000, 29794=>1000,
- 29795=>1000, 29796=>1000, 29798=>1000, 29799=>1000, 29800=>1000, 29801=>1000, 29802=>1000, 29803=>1000, 29805=>1000, 29806=>1000, 29807=>1000, 29808=>1000, 29809=>1000, 29810=>1000, 29811=>1000, 29814=>1000,
- 29822=>1000, 29824=>1000, 29825=>1000, 29827=>1000, 29829=>1000, 29830=>1000, 29831=>1000, 29833=>1000, 29835=>1000, 29839=>1000, 29840=>1000, 29841=>1000, 29842=>1000, 29848=>1000, 29849=>1000, 29850=>1000,
- 29852=>1000, 29854=>1000, 29855=>1000, 29856=>1000, 29857=>1000, 29858=>1000, 29859=>1000, 29862=>1000, 29863=>1000, 29864=>1000, 29865=>1000, 29866=>1000, 29867=>1000, 29870=>1000, 29871=>1000, 29872=>1000,
- 29873=>1000, 29874=>1000, 29877=>1000, 29881=>1000, 29883=>1000, 29885=>1000, 29887=>1000, 29896=>1000, 29897=>1000, 29898=>1000, 29900=>1000, 29903=>1000, 29904=>1000, 29907=>1000, 29908=>1000, 29912=>1000,
- 29914=>1000, 29915=>1000, 29916=>1000, 29918=>1000, 29919=>1000, 29920=>1000, 29922=>1000, 29923=>1000, 29924=>1000, 29926=>1000, 29927=>1000, 29928=>1000, 29929=>1000, 29930=>1000, 29931=>1000, 29934=>1000,
- 29935=>1000, 29936=>1000, 29937=>1000, 29938=>1000, 29940=>1000, 29942=>1000, 29943=>1000, 29944=>1000, 29946=>1000, 29947=>1000, 29948=>1000, 29951=>1000, 29953=>1000, 29955=>1000, 29956=>1000, 29957=>1000,
- 29958=>1000, 29964=>1000, 29965=>1000, 29966=>1000, 29969=>1000, 29970=>1000, 29971=>1000, 29973=>1000, 29974=>1000, 29975=>1000, 29976=>1000, 29978=>1000, 29980=>1000, 29982=>1000, 29983=>1000, 29984=>1000,
- 29985=>1000, 29987=>1000, 29988=>1000, 29989=>1000, 29990=>1000, 29991=>1000, 29992=>1000, 29993=>1000, 29994=>1000, 29995=>1000, 29996=>1000, 29999=>1000, 30000=>1000, 30001=>1000, 30002=>1000, 30003=>1000,
- 30006=>1000, 30007=>1000, 30008=>1000, 30009=>1000, 30010=>1000, 30011=>1000, 30012=>1000, 30013=>1000, 30014=>1000, 30015=>1000, 30016=>1000, 30019=>1000, 30020=>1000, 30022=>1000, 30023=>1000, 30024=>1000,
- 30025=>1000, 30026=>1000, 30027=>1000, 30028=>1000, 30029=>1000, 30030=>1000, 30031=>1000, 30032=>1000, 30033=>1000, 30034=>1000, 30036=>1000, 30039=>1000, 30041=>1000, 30042=>1000, 30043=>1000, 30044=>1000,
- 30045=>1000, 30046=>1000, 30047=>1000, 30048=>1000, 30049=>1000, 30050=>1000, 30052=>1000, 30053=>1000, 30054=>1000, 30055=>1000, 30057=>1000, 30058=>1000, 30059=>1000, 30061=>1000, 30063=>1000, 30064=>1000,
- 30065=>1000, 30067=>1000, 30068=>1000, 30070=>1000, 30071=>1000, 30072=>1000, 30073=>1000, 30074=>1000, 30075=>1000, 30076=>1000, 30077=>1000, 30078=>1000, 30079=>1000, 30081=>1000, 30082=>1000, 30085=>1000,
- 30086=>1000, 30087=>1000, 30089=>1000, 30090=>1000, 30091=>1000, 30094=>1000, 30095=>1000, 30096=>1000, 30097=>1000, 30098=>1000, 30099=>1000, 30100=>1000, 30101=>1000, 30105=>1000, 30106=>1000, 30108=>1000,
- 30109=>1000, 30114=>1000, 30115=>1000, 30116=>1000, 30117=>1000, 30123=>1000, 30129=>1000, 30130=>1000, 30131=>1000, 30132=>1000, 30133=>1000, 30136=>1000, 30137=>1000, 30138=>1000, 30140=>1000, 30141=>1000,
- 30142=>1000, 30143=>1000, 30144=>1000, 30145=>1000, 30146=>1000, 30147=>1000, 30148=>1000, 30149=>1000, 30150=>1000, 30151=>1000, 30154=>1000, 30156=>1000, 30157=>1000, 30158=>1000, 30159=>1000, 30162=>1000,
- 30164=>1000, 30165=>1000, 30167=>1000, 30168=>1000, 30169=>1000, 30171=>1000, 30172=>1000, 30174=>1000, 30175=>1000, 30176=>1000, 30177=>1000, 30178=>1000, 30179=>1000, 30180=>1000, 30183=>1000, 30185=>1000,
- 30188=>1000, 30190=>1000, 30191=>1000, 30192=>1000, 30193=>1000, 30194=>1000, 30195=>1000, 30196=>1000, 30201=>1000, 30202=>1000, 30204=>1000, 30206=>1000, 30207=>1000, 30208=>1000, 30209=>1000, 30210=>1000,
- 30211=>1000, 30212=>1000, 30215=>1000, 30216=>1000, 30217=>1000, 30218=>1000, 30219=>1000, 30220=>1000, 30221=>1000, 30223=>1000, 30226=>1000, 30227=>1000, 30229=>1000, 30230=>1000, 30233=>1000, 30235=>1000,
- 30236=>1000, 30237=>1000, 30238=>1000, 30239=>1000, 30240=>1000, 30241=>1000, 30242=>1000, 30243=>1000, 30244=>1000, 30245=>1000, 30246=>1000, 30247=>1000, 30249=>1000, 30253=>1000, 30256=>1000, 30258=>1000,
- 30259=>1000, 30260=>1000, 30261=>1000, 30264=>1000, 30265=>1000, 30266=>1000, 30267=>1000, 30268=>1000, 30272=>1000, 30273=>1000, 30274=>1000, 30275=>1000, 30276=>1000, 30277=>1000, 30278=>1000, 30279=>1000,
- 30280=>1000, 30281=>1000, 30282=>1000, 30283=>1000, 30284=>1000, 30290=>1000, 30293=>1000, 30294=>1000, 30296=>1000, 30297=>1000, 30300=>1000, 30303=>1000, 30305=>1000, 30306=>1000, 30308=>1000, 30309=>1000,
- 30311=>1000, 30312=>1000, 30313=>1000, 30314=>1000, 30316=>1000, 30317=>1000, 30318=>1000, 30319=>1000, 30320=>1000, 30321=>1000, 30322=>1000, 30324=>1000, 30326=>1000, 30328=>1000, 30330=>1000, 30331=>1000,
- 30332=>1000, 30333=>1000, 30334=>1000, 30336=>1000, 30337=>1000, 30338=>1000, 30339=>1000, 30340=>1000, 30341=>1000, 30342=>1000, 30343=>1000, 30344=>1000, 30347=>1000, 30348=>1000, 30349=>1000, 30350=>1000,
- 30352=>1000, 30355=>1000, 30357=>1000, 30358=>1000, 30361=>1000, 30362=>1000, 30363=>1000, 30364=>1000, 30365=>1000, 30366=>1000, 30367=>1000, 30368=>1000, 30370=>1000, 30371=>1000, 30372=>1000, 30373=>1000,
- 30374=>1000, 30375=>1000, 30376=>1000, 30378=>1000, 30381=>1000, 30382=>1000, 30384=>1000, 30388=>1000, 30391=>1000, 30392=>1000, 30393=>1000, 30394=>1000, 30397=>1000, 30399=>1000, 30401=>1000, 30402=>1000,
- 30403=>1000, 30405=>1000, 30406=>1000, 30408=>1000, 30409=>1000, 30410=>1000, 30411=>1000, 30412=>1000, 30413=>1000, 30414=>1000, 30418=>1000, 30420=>1000, 30422=>1000, 30423=>1000, 30425=>1000, 30427=>1000,
- 30428=>1000, 30430=>1000, 30431=>1000, 30432=>1000, 30433=>1000, 30435=>1000, 30436=>1000, 30437=>1000, 30438=>1000, 30439=>1000, 30440=>1000, 30442=>1000, 30444=>1000, 30446=>1000, 30448=>1000, 30449=>1000,
- 30450=>1000, 30452=>1000, 30454=>1000, 30456=>1000, 30457=>1000, 30459=>1000, 30460=>1000, 30462=>1000, 30464=>1000, 30465=>1000, 30468=>1000, 30470=>1000, 30471=>1000, 30472=>1000, 30473=>1000, 30474=>1000,
- 30475=>1000, 30476=>1000, 30478=>1000, 30482=>1000, 30484=>1000, 30485=>1000, 30487=>1000, 30489=>1000, 30490=>1000, 30491=>1000, 30492=>1000, 30494=>1000, 30495=>1000, 30496=>1000, 30498=>1000, 30500=>1000,
- 30501=>1000, 30502=>1000, 30504=>1000, 30505=>1000, 30509=>1000, 30510=>1000, 30511=>1000, 30516=>1000, 30517=>1000, 30518=>1000, 30519=>1000, 30520=>1000, 30521=>1000, 30522=>1000, 30524=>1000, 30525=>1000,
- 30526=>1000, 30528=>1000, 30530=>1000, 30533=>1000, 30534=>1000, 30535=>1000, 30538=>1000, 30541=>1000, 30542=>1000, 30543=>1000, 30546=>1000, 30550=>1000, 30551=>1000, 30554=>1000, 30555=>1000, 30556=>1000,
- 30558=>1000, 30559=>1000, 30560=>1000, 30561=>1000, 30562=>1000, 30563=>1000, 30564=>1000, 30565=>1000, 30566=>1000, 30567=>1000, 30568=>1000, 30570=>1000, 30571=>1000, 30572=>1000, 30576=>1000, 30578=>1000,
- 30579=>1000, 30580=>1000, 30585=>1000, 30586=>1000, 30589=>1000, 30590=>1000, 30591=>1000, 30592=>1000, 30596=>1000, 30603=>1000, 30604=>1000, 30605=>1000, 30606=>1000, 30609=>1000, 30612=>1000, 30613=>1000,
- 30614=>1000, 30618=>1000, 30622=>1000, 30623=>1000, 30624=>1000, 30626=>1000, 30629=>1000, 30631=>1000, 30634=>1000, 30636=>1000, 30637=>1000, 30638=>1000, 30639=>1000, 30640=>1000, 30641=>1000, 30643=>1000,
- 30645=>1000, 30646=>1000, 30649=>1000, 30651=>1000, 30652=>1000, 30653=>1000, 30654=>1000, 30655=>1000, 30659=>1000, 30663=>1000, 30665=>1000, 30669=>1000, 30673=>1000, 30674=>1000, 30677=>1000, 30679=>1000,
- 30681=>1000, 30682=>1000, 30683=>1000, 30684=>1000, 30686=>1000, 30687=>1000, 30688=>1000, 30690=>1000, 30691=>1000, 30692=>1000, 30693=>1000, 30694=>1000, 30695=>1000, 30697=>1000, 30698=>1000, 30700=>1000,
- 30701=>1000, 30702=>1000, 30703=>1000, 30704=>1000, 30705=>1000, 30707=>1000, 30708=>1000, 30712=>1000, 30715=>1000, 30716=>1000, 30722=>1000, 30725=>1000, 30726=>1000, 30729=>1000, 30732=>1000, 30733=>1000,
- 30734=>1000, 30737=>1000, 30738=>1000, 30740=>1000, 30741=>1000, 30749=>1000, 30752=>1000, 30753=>1000, 30754=>1000, 30755=>1000, 30757=>1000, 30758=>1000, 30759=>1000, 30765=>1000, 30766=>1000, 30768=>1000,
- 30770=>1000, 30772=>1000, 30773=>1000, 30775=>1000, 30778=>1000, 30783=>1000, 30787=>1000, 30788=>1000, 30789=>1000, 30791=>1000, 30792=>1000, 30796=>1000, 30798=>1000, 30802=>1000, 30812=>1000, 30813=>1000,
- 30814=>1000, 30816=>1000, 30817=>1000, 30819=>1000, 30820=>1000, 30824=>1000, 30826=>1000, 30827=>1000, 30828=>1000, 30830=>1000, 30831=>1000, 30834=>1000, 30836=>1000, 30842=>1000, 30844=>1000, 30846=>1000,
- 30849=>1000, 30854=>1000, 30855=>1000, 30858=>1000, 30860=>1000, 30861=>1000, 30862=>1000, 30863=>1000, 30865=>1000, 30867=>1000, 30868=>1000, 30869=>1000, 30871=>1000, 30872=>1000, 30874=>1000, 30877=>1000,
- 30878=>1000, 30879=>1000, 30881=>1000, 30883=>1000, 30884=>1000, 30887=>1000, 30888=>1000, 30889=>1000, 30890=>1000, 30892=>1000, 30893=>1000, 30895=>1000, 30896=>1000, 30897=>1000, 30898=>1000, 30899=>1000,
- 30901=>1000, 30906=>1000, 30907=>1000, 30908=>1000, 30909=>1000, 30910=>1000, 30911=>1000, 30913=>1000, 30917=>1000, 30918=>1000, 30919=>1000, 30920=>1000, 30921=>1000, 30922=>1000, 30923=>1000, 30924=>1000,
- 30926=>1000, 30928=>1000, 30929=>1000, 30930=>1000, 30931=>1000, 30932=>1000, 30933=>1000, 30934=>1000, 30938=>1000, 30939=>1000, 30943=>1000, 30944=>1000, 30945=>1000, 30948=>1000, 30950=>1000, 30951=>1000,
- 30952=>1000, 30954=>1000, 30956=>1000, 30959=>1000, 30962=>1000, 30963=>1000, 30964=>1000, 30966=>1000, 30967=>1000, 30970=>1000, 30971=>1000, 30973=>1000, 30975=>1000, 30976=>1000, 30977=>1000, 30982=>1000,
- 30983=>1000, 30988=>1000, 30990=>1000, 30992=>1000, 30993=>1000, 30994=>1000, 31001=>1000, 31002=>1000, 31004=>1000, 31006=>1000, 31007=>1000, 31008=>1000, 31013=>1000, 31014=>1000, 31015=>1000, 31017=>1000,
- 31018=>1000, 31019=>1000, 31020=>1000, 31021=>1000, 31024=>1000, 31025=>1000, 31028=>1000, 31029=>1000, 31034=>1000, 31035=>1000, 31036=>1000, 31037=>1000, 31038=>1000, 31039=>1000, 31040=>1000, 31041=>1000,
- 31044=>1000, 31045=>1000, 31046=>1000, 31047=>1000, 31048=>1000, 31049=>1000, 31050=>1000, 31051=>1000, 31055=>1000, 31056=>1000, 31057=>1000, 31059=>1000, 31060=>1000, 31061=>1000, 31062=>1000, 31063=>1000,
- 31064=>1000, 31066=>1000, 31067=>1000, 31068=>1000, 31069=>1000, 31070=>1000, 31071=>1000, 31072=>1000, 31074=>1000, 31077=>1000, 31079=>1000, 31080=>1000, 31081=>1000, 31083=>1000, 31085=>1000, 31090=>1000,
- 31095=>1000, 31097=>1000, 31098=>1000, 31099=>1000, 31100=>1000, 31102=>1000, 31103=>1000, 31104=>1000, 31105=>1000, 31108=>1000, 31109=>1000, 31114=>1000, 31115=>1000, 31116=>1000, 31117=>1000, 31118=>1000,
- 31119=>1000, 31121=>1000, 31123=>1000, 31124=>1000, 31125=>1000, 31126=>1000, 31128=>1000, 31131=>1000, 31132=>1000, 31133=>1000, 31137=>1000, 31142=>1000, 31143=>1000, 31144=>1000, 31145=>1000, 31146=>1000,
- 31147=>1000, 31150=>1000, 31151=>1000, 31152=>1000, 31153=>1000, 31155=>1000, 31156=>1000, 31160=>1000, 31161=>1000, 31162=>1000, 31163=>1000, 31165=>1000, 31166=>1000, 31167=>1000, 31168=>1000, 31169=>1000,
- 31170=>1000, 31172=>1000, 31175=>1000, 31176=>1000, 31177=>1000, 31178=>1000, 31179=>1000, 31183=>1000, 31185=>1000, 31186=>1000, 31188=>1000, 31189=>1000, 31190=>1000, 31192=>1000, 31194=>1000, 31197=>1000,
- 31198=>1000, 31199=>1000, 31200=>1000, 31201=>1000, 31202=>1000, 31203=>1000, 31204=>1000, 31205=>1000, 31206=>1000, 31207=>1000, 31209=>1000, 31210=>1000, 31211=>1000, 31212=>1000, 31213=>1000, 31216=>1000,
- 31217=>1000, 31224=>1000, 31227=>1000, 31228=>1000, 31232=>1000, 31234=>1000, 31235=>1000, 31239=>1000, 31240=>1000, 31241=>1000, 31242=>1000, 31243=>1000, 31244=>1000, 31245=>1000, 31246=>1000, 31249=>1000,
- 31252=>1000, 31253=>1000, 31255=>1000, 31256=>1000, 31257=>1000, 31258=>1000, 31259=>1000, 31260=>1000, 31262=>1000, 31263=>1000, 31264=>1000, 31265=>1000, 31271=>1000, 31275=>1000, 31277=>1000, 31278=>1000,
- 31279=>1000, 31280=>1000, 31281=>1000, 31282=>1000, 31284=>1000, 31285=>1000, 31287=>1000, 31288=>1000, 31289=>1000, 31290=>1000, 31291=>1000, 31292=>1000, 31293=>1000, 31294=>1000, 31295=>1000, 31296=>1000,
- 31298=>1000, 31299=>1000, 31300=>1000, 31301=>1000, 31302=>1000, 31303=>1000, 31304=>1000, 31305=>1000, 31308=>1000, 31309=>1000, 31310=>1000, 31311=>1000, 31312=>1000, 31317=>1000, 31318=>1000, 31319=>1000,
- 31321=>1000, 31324=>1000, 31325=>1000, 31327=>1000, 31328=>1000, 31329=>1000, 31330=>1000, 31331=>1000, 31333=>1000, 31335=>1000, 31337=>1000, 31338=>1000, 31339=>1000, 31341=>1000, 31344=>1000, 31348=>1000,
- 31349=>1000, 31350=>1000, 31352=>1000, 31353=>1000, 31354=>1000, 31357=>1000, 31358=>1000, 31359=>1000, 31360=>1000, 31361=>1000, 31362=>1000, 31363=>1000, 31364=>1000, 31365=>1000, 31366=>1000, 31368=>1000,
- 31370=>1000, 31371=>1000, 31376=>1000, 31377=>1000, 31378=>1000, 31379=>1000, 31380=>1000, 31381=>1000, 31382=>1000, 31383=>1000, 31384=>1000, 31390=>1000, 31391=>1000, 31392=>1000, 31395=>1000, 31401=>1000,
- 31402=>1000, 31404=>1000, 31406=>1000, 31407=>1000, 31408=>1000, 31411=>1000, 31413=>1000, 31414=>1000, 31417=>1000, 31418=>1000, 31419=>1000, 31420=>1000, 31423=>1000, 31427=>1000, 31428=>1000, 31429=>1000,
- 31430=>1000, 31431=>1000, 31432=>1000, 31433=>1000, 31434=>1000, 31435=>1000, 31436=>1000, 31437=>1000, 31438=>1000, 31439=>1000, 31441=>1000, 31442=>1000, 31443=>1000, 31445=>1000, 31449=>1000, 31450=>1000,
- 31451=>1000, 31452=>1000, 31453=>1000, 31455=>1000, 31456=>1000, 31457=>1000, 31458=>1000, 31459=>1000, 31461=>1000, 31462=>1000, 31463=>1000, 31464=>1000, 31465=>1000, 31466=>1000, 31467=>1000, 31468=>1000,
- 31469=>1000, 31471=>1000, 31472=>1000, 31473=>1000, 31476=>1000, 31478=>1000, 31480=>1000, 31481=>1000, 31482=>1000, 31483=>1000, 31485=>1000, 31486=>1000, 31487=>1000, 31490=>1000, 31492=>1000, 31494=>1000,
- 31495=>1000, 31496=>1000, 31498=>1000, 31499=>1000, 31503=>1000, 31505=>1000, 31508=>1000, 31512=>1000, 31513=>1000, 31515=>1000, 31518=>1000, 31519=>1000, 31520=>1000, 31523=>1000, 31525=>1000, 31526=>1000,
- 31527=>1000, 31528=>1000, 31529=>1000, 31530=>1000, 31531=>1000, 31532=>1000, 31533=>1000, 31534=>1000, 31535=>1000, 31536=>1000, 31537=>1000, 31539=>1000, 31540=>1000, 31541=>1000, 31542=>1000, 31545=>1000,
- 31549=>1000, 31551=>1000, 31552=>1000, 31553=>1000, 31557=>1000, 31558=>1000, 31559=>1000, 31560=>1000, 31561=>1000, 31563=>1000, 31564=>1000, 31565=>1000, 31566=>1000, 31567=>1000, 31568=>1000, 31569=>1000,
- 31570=>1000, 31572=>1000, 31573=>1000, 31574=>1000, 31581=>1000, 31584=>1000, 31588=>1000, 31589=>1000, 31590=>1000, 31591=>1000, 31593=>1000, 31594=>1000, 31596=>1000, 31597=>1000, 31598=>1000, 31599=>1000,
- 31600=>1000, 31601=>1000, 31602=>1000, 31603=>1000, 31604=>1000, 31605=>1000, 31607=>1000, 31610=>1000, 31620=>1000, 31622=>1000, 31623=>1000, 31625=>1000, 31627=>1000, 31629=>1000, 31630=>1000, 31631=>1000,
- 31632=>1000, 31633=>1000, 31634=>1000, 31636=>1000, 31637=>1000, 31638=>1000, 31639=>1000, 31640=>1000, 31641=>1000, 31642=>1000, 31643=>1000, 31644=>1000, 31645=>1000, 31646=>1000, 31647=>1000, 31648=>1000,
- 31649=>1000, 31653=>1000, 31658=>1000, 31660=>1000, 31661=>1000, 31663=>1000, 31664=>1000, 31665=>1000, 31666=>1000, 31668=>1000, 31669=>1000, 31670=>1000, 31672=>1000, 31674=>1000, 31675=>1000, 31676=>1000,
- 31677=>1000, 31680=>1000, 31681=>1000, 31682=>1000, 31684=>1000, 31685=>1000, 31686=>1000, 31687=>1000, 31688=>1000, 31689=>1000, 31690=>1000, 31691=>1000, 31692=>1000, 31695=>1000, 31700=>1000, 31702=>1000,
- 31703=>1000, 31705=>1000, 31706=>1000, 31707=>1000, 31709=>1000, 31712=>1000, 31716=>1000, 31717=>1000, 31718=>1000, 31720=>1000, 31721=>1000, 31722=>1000, 31725=>1000, 31730=>1000, 31731=>1000, 31732=>1000,
- 31733=>1000, 31734=>1000, 31735=>1000, 31736=>1000, 31737=>1000, 31738=>1000, 31740=>1000, 31742=>1000, 31744=>1000, 31745=>1000, 31746=>1000, 31747=>1000, 31748=>1000, 31750=>1000, 31751=>1000, 31753=>1000,
- 31755=>1000, 31756=>1000, 31757=>1000, 31758=>1000, 31759=>1000, 31761=>1000, 31762=>1000, 31763=>1000, 31764=>1000, 31767=>1000, 31769=>1000, 31771=>1000, 31775=>1000, 31776=>1000, 31777=>1000, 31779=>1000,
- 31781=>1000, 31782=>1000, 31783=>1000, 31784=>1000, 31786=>1000, 31787=>1000, 31788=>1000, 31793=>1000, 31795=>1000, 31796=>1000, 31798=>1000, 31799=>1000, 31800=>1000, 31801=>1000, 31802=>1000, 31805=>1000,
- 31806=>1000, 31807=>1000, 31808=>1000, 31811=>1000, 31814=>1000, 31818=>1000, 31820=>1000, 31821=>1000, 31823=>1000, 31824=>1000, 31825=>1000, 31826=>1000, 31827=>1000, 31828=>1000, 31829=>1000, 31830=>1000,
- 31832=>1000, 31833=>1000, 31834=>1000, 31835=>1000, 31836=>1000, 31837=>1000, 31838=>1000, 31839=>1000, 31840=>1000, 31841=>1000, 31843=>1000, 31844=>1000, 31845=>1000, 31847=>1000, 31849=>1000, 31852=>1000,
- 31853=>1000, 31854=>1000, 31856=>1000, 31858=>1000, 31859=>1000, 31861=>1000, 31865=>1000, 31868=>1000, 31869=>1000, 31870=>1000, 31873=>1000, 31874=>1000, 31875=>1000, 31878=>1000, 31879=>1000, 31881=>1000,
- 31883=>1000, 31885=>1000, 31887=>1000, 31888=>1000, 31890=>1000, 31892=>1000, 31893=>1000, 31895=>1000, 31896=>1000, 31899=>1000, 31902=>1000, 31903=>1000, 31904=>1000, 31905=>1000, 31906=>1000, 31908=>1000,
- 31909=>1000, 31910=>1000, 31911=>1000, 31912=>1000, 31915=>1000, 31917=>1000, 31918=>1000, 31920=>1000, 31921=>1000, 31922=>1000, 31923=>1000, 31926=>1000, 31927=>1000, 31929=>1000, 31930=>1000, 31931=>1000,
- 31932=>1000, 31933=>1000, 31934=>1000, 31935=>1000, 31936=>1000, 31938=>1000, 31940=>1000, 31941=>1000, 31943=>1000, 31944=>1000, 31945=>1000, 31946=>1000, 31949=>1000, 31950=>1000, 31951=>1000, 31954=>1000,
- 31955=>1000, 31956=>1000, 31957=>1000, 31958=>1000, 31959=>1000, 31960=>1000, 31961=>1000, 31962=>1000, 31964=>1000, 31965=>1000, 31966=>1000, 31967=>1000, 31968=>1000, 31970=>1000, 31974=>1000, 31975=>1000,
- 31977=>1000, 31979=>1000, 31983=>1000, 31986=>1000, 31988=>1000, 31989=>1000, 31990=>1000, 31992=>1000, 31994=>1000, 31995=>1000, 31998=>1000, 32000=>1000, 32002=>1000, 32003=>1000, 32004=>1000, 32005=>1000,
- 32006=>1000, 32007=>1000, 32008=>1000, 32009=>1000, 32010=>1000, 32011=>1000, 32013=>1000, 32015=>1000, 32016=>1000, 32017=>1000, 32018=>1000, 32019=>1000, 32020=>1000, 32021=>1000, 32022=>1000, 32023=>1000,
- 32024=>1000, 32025=>1000, 32026=>1000, 32027=>1000, 32028=>1000, 32029=>1000, 32030=>1000, 32032=>1000, 32033=>1000, 32034=>1000, 32035=>1000, 32038=>1000, 32042=>1000, 32043=>1000, 32044=>1000, 32045=>1000,
- 32046=>1000, 32047=>1000, 32048=>1000, 32049=>1000, 32050=>1000, 32051=>1000, 32053=>1000, 32057=>1000, 32058=>1000, 32060=>1000, 32061=>1000, 32062=>1000, 32063=>1000, 32064=>1000, 32065=>1000, 32066=>1000,
- 32067=>1000, 32068=>1000, 32069=>1000, 32070=>1000, 32071=>1000, 32072=>1000, 32075=>1000, 32076=>1000, 32077=>1000, 32078=>1000, 32079=>1000, 32080=>1000, 32081=>1000, 32083=>1000, 32086=>1000, 32087=>1000,
- 32089=>1000, 32090=>1000, 32091=>1000, 32092=>1000, 32093=>1000, 32094=>1000, 32097=>1000, 32098=>1000, 32099=>1000, 32101=>1000, 32102=>1000, 32103=>1000, 32104=>1000, 32106=>1000, 32110=>1000, 32112=>1000,
- 32113=>1000, 32114=>1000, 32115=>1000, 32117=>1000, 32118=>1000, 32120=>1000, 32121=>1000, 32122=>1000, 32123=>1000, 32125=>1000, 32127=>1000, 32129=>1000, 32130=>1000, 32131=>1000, 32133=>1000, 32134=>1000,
- 32136=>1000, 32137=>1000, 32139=>1000, 32140=>1000, 32141=>1000, 32143=>1000, 32145=>1000, 32147=>1000, 32150=>1000, 32151=>1000, 32153=>1000, 32154=>1000, 32155=>1000, 32156=>1000, 32157=>1000, 32158=>1000,
- 32159=>1000, 32160=>1000, 32162=>1000, 32163=>1000, 32166=>1000, 32167=>1000, 32170=>1000, 32171=>1000, 32172=>1000, 32173=>1000, 32174=>1000, 32175=>1000, 32176=>1000, 32177=>1000, 32178=>1000, 32179=>1000,
- 32180=>1000, 32181=>1000, 32182=>1000, 32183=>1000, 32184=>1000, 32185=>1000, 32186=>1000, 32187=>1000, 32189=>1000, 32190=>1000, 32191=>1000, 32194=>1000, 32195=>1000, 32196=>1000, 32197=>1000, 32198=>1000,
- 32199=>1000, 32202=>1000, 32203=>1000, 32204=>1000, 32205=>1000, 32206=>1000, 32207=>1000, 32209=>1000, 32210=>1000, 32213=>1000, 32214=>1000, 32215=>1000, 32216=>1000, 32217=>1000, 32218=>1000, 32220=>1000,
- 32221=>1000, 32222=>1000, 32224=>1000, 32225=>1000, 32226=>1000, 32228=>1000, 32229=>1000, 32230=>1000, 32232=>1000, 32233=>1000, 32234=>1000, 32235=>1000, 32236=>1000, 32237=>1000, 32239=>1000, 32241=>1000,
- 32242=>1000, 32244=>1000, 32245=>1000, 32246=>1000, 32249=>1000, 32250=>1000, 32251=>1000, 32256=>1000, 32257=>1000, 32260=>1000, 32261=>1000, 32264=>1000, 32265=>1000, 32266=>1000, 32267=>1000, 32272=>1000,
- 32273=>1000, 32274=>1000, 32277=>1000, 32279=>1000, 32283=>1000, 32284=>1000, 32285=>1000, 32286=>1000, 32287=>1000, 32288=>1000, 32289=>1000, 32290=>1000, 32291=>1000, 32294=>1000, 32295=>1000, 32296=>1000,
- 32299=>1000, 32300=>1000, 32301=>1000, 32302=>1000, 32303=>1000, 32305=>1000, 32306=>1000, 32307=>1000, 32309=>1000, 32310=>1000, 32311=>1000, 32313=>1000, 32314=>1000, 32315=>1000, 32317=>1000, 32318=>1000,
- 32319=>1000, 32321=>1000, 32323=>1000, 32324=>1000, 32325=>1000, 32326=>1000, 32327=>1000, 32330=>1000, 32331=>1000, 32333=>1000, 32334=>1000, 32336=>1000, 32338=>1000, 32340=>1000, 32341=>1000, 32342=>1000,
- 32344=>1000, 32345=>1000, 32346=>1000, 32349=>1000, 32350=>1000, 32351=>1000, 32353=>1000, 32354=>1000, 32357=>1000, 32358=>1000, 32359=>1000, 32361=>1000, 32362=>1000, 32363=>1000, 32365=>1000, 32366=>1000,
- 32367=>1000, 32368=>1000, 32371=>1000, 32376=>1000, 32377=>1000, 32379=>1000, 32380=>1000, 32381=>1000, 32382=>1000, 32383=>1000, 32385=>1000, 32386=>1000, 32387=>1000, 32390=>1000, 32391=>1000, 32392=>1000,
- 32393=>1000, 32394=>1000, 32396=>1000, 32397=>1000, 32398=>1000, 32399=>1000, 32400=>1000, 32401=>1000, 32402=>1000, 32403=>1000, 32404=>1000, 32405=>1000, 32406=>1000, 32408=>1000, 32410=>1000, 32411=>1000,
- 32412=>1000, 32413=>1000, 32414=>1000, 32566=>1000, 32568=>1000, 32570=>1000, 32571=>1000, 32572=>1000, 32573=>1000, 32574=>1000, 32575=>1000, 32579=>1000, 32580=>1000, 32581=>1000, 32583=>1000, 32588=>1000,
- 32589=>1000, 32590=>1000, 32591=>1000, 32592=>1000, 32593=>1000, 32594=>1000, 32595=>1000, 32596=>1000, 32597=>1000, 32600=>1000, 32603=>1000, 32604=>1000, 32605=>1000, 32607=>1000, 32608=>1000, 32609=>1000,
- 32611=>1000, 32612=>1000, 32613=>1000, 32614=>1000, 32615=>1000, 32616=>1000, 32617=>1000, 32618=>1000, 32619=>1000, 32621=>1000, 32622=>1000, 32624=>1000, 32625=>1000, 32626=>1000, 32629=>1000, 32631=>1000,
- 32632=>1000, 32633=>1000, 32637=>1000, 32638=>1000, 32639=>1000, 32640=>1000, 32642=>1000, 32643=>1000, 32645=>1000, 32646=>1000, 32647=>1000, 32648=>1000, 32650=>1000, 32651=>1000, 32652=>1000, 32653=>1000,
- 32654=>1000, 32655=>1000, 32656=>1000, 32657=>1000, 32660=>1000, 32662=>1000, 32663=>1000, 32666=>1000, 32668=>1000, 32669=>1000, 32670=>1000, 32673=>1000, 32674=>1000, 32675=>1000, 32676=>1000, 32678=>1000,
- 32680=>1000, 32681=>1000, 32682=>1000, 32685=>1000, 32686=>1000, 32687=>1000, 32690=>1000, 32692=>1000, 32694=>1000, 32696=>1000, 32697=>1000, 32700=>1000, 32701=>1000, 32703=>1000, 32704=>1000, 32705=>1000,
- 32707=>1000, 32709=>1000, 32710=>1000, 32712=>1000, 32714=>1000, 32716=>1000, 32718=>1000, 32719=>1000, 32722=>1000, 32724=>1000, 32725=>1000, 32731=>1000, 32735=>1000, 32736=>1000, 32737=>1000, 32739=>1000,
- 32741=>1000, 32742=>1000, 32744=>1000, 32745=>1000, 32747=>1000, 32748=>1000, 32750=>1000, 32751=>1000, 32752=>1000, 32754=>1000, 32755=>1000, 32761=>1000, 32762=>1000, 32763=>1000, 32764=>1000, 32765=>1000,
- 32766=>1000, 32767=>1000, 32768=>1000, 32769=>1000, 32771=>1000, 32772=>1000, 32773=>1000, 32774=>1000, 32775=>1000, 32776=>1000, 32778=>1000, 32779=>1000, 32780=>1000, 32781=>1000, 32782=>1000, 32783=>1000,
- 32784=>1000, 32785=>1000, 32786=>1000, 32787=>1000, 32788=>1000, 32789=>1000, 32790=>1000, 32791=>1000, 32792=>1000, 32793=>1000, 32796=>1000, 32797=>1000, 32798=>1000, 32799=>1000, 32800=>1000, 32801=>1000,
- 32804=>1000, 32806=>1000, 32808=>1000, 32812=>1000, 32814=>1000, 32816=>1000, 32819=>1000, 32820=>1000, 32821=>1000, 32822=>1000, 32823=>1000, 32825=>1000, 32826=>1000, 32827=>1000, 32828=>1000, 32829=>1000,
- 32830=>1000, 32831=>1000, 32832=>1000, 32836=>1000, 32838=>1000, 32842=>1000, 32850=>1000, 32854=>1000, 32856=>1000, 32858=>1000, 32862=>1000, 32863=>1000, 32864=>1000, 32865=>1000, 32866=>1000, 32868=>1000,
- 32870=>1000, 32872=>1000, 32877=>1000, 32879=>1000, 32880=>1000, 32881=>1000, 32882=>1000, 32883=>1000, 32884=>1000, 32885=>1000, 32886=>1000, 32887=>1000, 32889=>1000, 32893=>1000, 32894=>1000, 32895=>1000,
- 32897=>1000, 32900=>1000, 32901=>1000, 32902=>1000, 32903=>1000, 32904=>1000, 32905=>1000, 32907=>1000, 32908=>1000, 32910=>1000, 32915=>1000, 32918=>1000, 32920=>1000, 32922=>1000, 32923=>1000, 32924=>1000,
- 32925=>1000, 32926=>1000, 32929=>1000, 32930=>1000, 32933=>1000, 32934=>1000, 32935=>1000, 32937=>1000, 32938=>1000, 32939=>1000, 32940=>1000, 32941=>1000, 32943=>1000, 32945=>1000, 32946=>1000, 32948=>1000,
- 32952=>1000, 32953=>1000, 32954=>1000, 32963=>1000, 32964=>1000, 32966=>1000, 32968=>1000, 32972=>1000, 32973=>1000, 32974=>1000, 32975=>1000, 32978=>1000, 32980=>1000, 32981=>1000, 32982=>1000, 32983=>1000,
- 32984=>1000, 32985=>1000, 32986=>1000, 32987=>1000, 32989=>1000, 32990=>1000, 32992=>1000, 32993=>1000, 32996=>1000, 32997=>1000, 33005=>1000, 33006=>1000, 33007=>1000, 33008=>1000, 33009=>1000, 33010=>1000,
- 33011=>1000, 33012=>1000, 33014=>1000, 33016=>1000, 33017=>1000, 33018=>1000, 33020=>1000, 33021=>1000, 33022=>1000, 33026=>1000, 33027=>1000, 33029=>1000, 33030=>1000, 33031=>1000, 33032=>1000, 33033=>1000,
- 33034=>1000, 33035=>1000, 33046=>1000, 33047=>1000, 33048=>1000, 33050=>1000, 33051=>1000, 33052=>1000, 33054=>1000, 33056=>1000, 33059=>1000, 33060=>1000, 33063=>1000, 33065=>1000, 33068=>1000, 33071=>1000,
- 33072=>1000, 33073=>1000, 33075=>1000, 33077=>1000, 33081=>1000, 33082=>1000, 33084=>1000, 33086=>1000, 33093=>1000, 33094=>1000, 33095=>1000, 33098=>1000, 33099=>1000, 33100=>1000, 33102=>1000, 33104=>1000,
- 33105=>1000, 33106=>1000, 33107=>1000, 33108=>1000, 33109=>1000, 33111=>1000, 33119=>1000, 33120=>1000, 33121=>1000, 33125=>1000, 33126=>1000, 33127=>1000, 33128=>1000, 33129=>1000, 33131=>1000, 33133=>1000,
- 33134=>1000, 33135=>1000, 33136=>1000, 33137=>1000, 33140=>1000, 33143=>1000, 33144=>1000, 33145=>1000, 33146=>1000, 33151=>1000, 33152=>1000, 33153=>1000, 33154=>1000, 33155=>1000, 33156=>1000, 33157=>1000,
- 33158=>1000, 33160=>1000, 33162=>1000, 33163=>1000, 33166=>1000, 33167=>1000, 33168=>1000, 33171=>1000, 33173=>1000, 33174=>1000, 33176=>1000, 33178=>1000, 33179=>1000, 33180=>1000, 33181=>1000, 33182=>1000,
- 33184=>1000, 33186=>1000, 33187=>1000, 33188=>1000, 33192=>1000, 33193=>1000, 33198=>1000, 33200=>1000, 33202=>1000, 33203=>1000, 33204=>1000, 33205=>1000, 33208=>1000, 33210=>1000, 33211=>1000, 33213=>1000,
- 33214=>1000, 33215=>1000, 33216=>1000, 33218=>1000, 33219=>1000, 33221=>1000, 33222=>1000, 33224=>1000, 33225=>1000, 33226=>1000, 33227=>1000, 33229=>1000, 33230=>1000, 33231=>1000, 33233=>1000, 33235=>1000,
- 33237=>1000, 33239=>1000, 33240=>1000, 33241=>1000, 33242=>1000, 33243=>1000, 33245=>1000, 33246=>1000, 33247=>1000, 33248=>1000, 33249=>1000, 33251=>1000, 33252=>1000, 33253=>1000, 33255=>1000, 33256=>1000,
- 33258=>1000, 33259=>1000, 33260=>1000, 33261=>1000, 33264=>1000, 33265=>1000, 33266=>1000, 33267=>1000, 33268=>1000, 33269=>1000, 33270=>1000, 33272=>1000, 33273=>1000, 33274=>1000, 33275=>1000, 33276=>1000,
- 33277=>1000, 33278=>1000, 33279=>1000, 33280=>1000, 33281=>1000, 33282=>1000, 33283=>1000, 33285=>1000, 33287=>1000, 33288=>1000, 33289=>1000, 33290=>1000, 33292=>1000, 33293=>1000, 33294=>1000, 33295=>1000,
- 33296=>1000, 33298=>1000, 33299=>1000, 33300=>1000, 33302=>1000, 33303=>1000, 33304=>1000, 33305=>1000, 33306=>1000, 33307=>1000, 33308=>1000, 33309=>1000, 33310=>1000, 33311=>1000, 33313=>1000, 33314=>1000,
- 33320=>1000, 33321=>1000, 33322=>1000, 33323=>1000, 33324=>1000, 33326=>1000, 33330=>1000, 33331=>1000, 33332=>1000, 33333=>1000, 33334=>1000, 33335=>1000, 33336=>1000, 33337=>1000, 33338=>1000, 33344=>1000,
- 33347=>1000, 33348=>1000, 33349=>1000, 33350=>1000, 33351=>1000, 33355=>1000, 33358=>1000, 33359=>1000, 33361=>1000, 33366=>1000, 33368=>1000, 33369=>1000, 33370=>1000, 33372=>1000, 33373=>1000, 33375=>1000,
- 33376=>1000, 33378=>1000, 33379=>1000, 33380=>1000, 33382=>1000, 33383=>1000, 33384=>1000, 33386=>1000, 33387=>1000, 33389=>1000, 33390=>1000, 33391=>1000, 33393=>1000, 33394=>1000, 33396=>1000, 33398=>1000,
- 33399=>1000, 33400=>1000, 33403=>1000, 33405=>1000, 33406=>1000, 33407=>1000, 33408=>1000, 33409=>1000, 33411=>1000, 33412=>1000, 33415=>1000, 33417=>1000, 33418=>1000, 33419=>1000, 33421=>1000, 33422=>1000,
- 33425=>1000, 33426=>1000, 33428=>1000, 33430=>1000, 33432=>1000, 33433=>1000, 33434=>1000, 33435=>1000, 33437=>1000, 33439=>1000, 33440=>1000, 33441=>1000, 33443=>1000, 33444=>1000, 33445=>1000, 33446=>1000,
- 33447=>1000, 33448=>1000, 33449=>1000, 33450=>1000, 33451=>1000, 33452=>1000, 33453=>1000, 33454=>1000, 33455=>1000, 33456=>1000, 33457=>1000, 33458=>1000, 33459=>1000, 33460=>1000, 33463=>1000, 33464=>1000,
- 33465=>1000, 33466=>1000, 33467=>1000, 33468=>1000, 33469=>1000, 33470=>1000, 33471=>1000, 33477=>1000, 33478=>1000, 33488=>1000, 33489=>1000, 33490=>1000, 33491=>1000, 33492=>1000, 33493=>1000, 33495=>1000,
- 33497=>1000, 33498=>1000, 33499=>1000, 33500=>1000, 33502=>1000, 33503=>1000, 33504=>1000, 33505=>1000, 33506=>1000, 33507=>1000, 33508=>1000, 33509=>1000, 33510=>1000, 33511=>1000, 33512=>1000, 33514=>1000,
- 33515=>1000, 33517=>1000, 33519=>1000, 33521=>1000, 33523=>1000, 33524=>1000, 33526=>1000, 33527=>1000, 33529=>1000, 33530=>1000, 33531=>1000, 33533=>1000, 33534=>1000, 33536=>1000, 33537=>1000, 33538=>1000,
- 33539=>1000, 33540=>1000, 33541=>1000, 33542=>1000, 33543=>1000, 33544=>1000, 33545=>1000, 33546=>1000, 33547=>1000, 33550=>1000, 33558=>1000, 33559=>1000, 33560=>1000, 33563=>1000, 33564=>1000, 33565=>1000,
- 33566=>1000, 33567=>1000, 33569=>1000, 33570=>1000, 33571=>1000, 33576=>1000, 33579=>1000, 33580=>1000, 33581=>1000, 33582=>1000, 33583=>1000, 33584=>1000, 33585=>1000, 33586=>1000, 33587=>1000, 33588=>1000,
- 33589=>1000, 33590=>1000, 33591=>1000, 33592=>1000, 33593=>1000, 33594=>1000, 33596=>1000, 33597=>1000, 33600=>1000, 33602=>1000, 33603=>1000, 33604=>1000, 33605=>1000, 33607=>1000, 33609=>1000, 33610=>1000,
- 33613=>1000, 33614=>1000, 33615=>1000, 33616=>1000, 33617=>1000, 33618=>1000, 33619=>1000, 33620=>1000, 33621=>1000, 33622=>1000, 33623=>1000, 33624=>1000, 33634=>1000, 33648=>1000, 33651=>1000, 33653=>1000,
- 33655=>1000, 33656=>1000, 33659=>1000, 33660=>1000, 33661=>1000, 33663=>1000, 33664=>1000, 33666=>1000, 33668=>1000, 33669=>1000, 33670=>1000, 33671=>1000, 33673=>1000, 33674=>1000, 33677=>1000, 33678=>1000,
- 33682=>1000, 33683=>1000, 33684=>1000, 33685=>1000, 33686=>1000, 33688=>1000, 33689=>1000, 33690=>1000, 33691=>1000, 33692=>1000, 33693=>1000, 33694=>1000, 33695=>1000, 33696=>1000, 33698=>1000, 33702=>1000,
- 33703=>1000, 33704=>1000, 33705=>1000, 33706=>1000, 33707=>1000, 33708=>1000, 33709=>1000, 33713=>1000, 33717=>1000, 33725=>1000, 33726=>1000, 33727=>1000, 33728=>1000, 33729=>1000, 33733=>1000, 33735=>1000,
- 33737=>1000, 33738=>1000, 33740=>1000, 33742=>1000, 33743=>1000, 33744=>1000, 33745=>1000, 33747=>1000, 33748=>1000, 33750=>1000, 33752=>1000, 33756=>1000, 33757=>1000, 33759=>1000, 33760=>1000, 33768=>1000,
- 33769=>1000, 33770=>1000, 33771=>1000, 33775=>1000, 33776=>1000, 33777=>1000, 33778=>1000, 33780=>1000, 33782=>1000, 33783=>1000, 33784=>1000, 33785=>1000, 33787=>1000, 33788=>1000, 33789=>1000, 33793=>1000,
- 33795=>1000, 33796=>1000, 33798=>1000, 33799=>1000, 33802=>1000, 33803=>1000, 33804=>1000, 33805=>1000, 33806=>1000, 33807=>1000, 33809=>1000, 33811=>1000, 33813=>1000, 33817=>1000, 33824=>1000, 33826=>1000,
- 33833=>1000, 33834=>1000, 33836=>1000, 33839=>1000, 33841=>1000, 33845=>1000, 33848=>1000, 33849=>1000, 33852=>1000, 33853=>1000, 33861=>1000, 33862=>1000, 33863=>1000, 33864=>1000, 33865=>1000, 33866=>1000,
- 33869=>1000, 33870=>1000, 33871=>1000, 33873=>1000, 33874=>1000, 33878=>1000, 33879=>1000, 33880=>1000, 33881=>1000, 33882=>1000, 33883=>1000, 33884=>1000, 33888=>1000, 33889=>1000, 33890=>1000, 33891=>1000,
- 33892=>1000, 33893=>1000, 33894=>1000, 33895=>1000, 33897=>1000, 33898=>1000, 33899=>1000, 33900=>1000, 33901=>1000, 33902=>1000, 33903=>1000, 33904=>1000, 33905=>1000, 33907=>1000, 33908=>1000, 33909=>1000,
- 33910=>1000, 33911=>1000, 33912=>1000, 33913=>1000, 33914=>1000, 33916=>1000, 33917=>1000, 33921=>1000, 33922=>1000, 33924=>1000, 33925=>1000, 33931=>1000, 33936=>1000, 33938=>1000, 33939=>1000, 33940=>1000,
- 33941=>1000, 33945=>1000, 33948=>1000, 33950=>1000, 33951=>1000, 33953=>1000, 33958=>1000, 33960=>1000, 33961=>1000, 33962=>1000, 33965=>1000, 33967=>1000, 33969=>1000, 33970=>1000, 33972=>1000, 33976=>1000,
- 33977=>1000, 33978=>1000, 33979=>1000, 33980=>1000, 33981=>1000, 33982=>1000, 33983=>1000, 33984=>1000, 33985=>1000, 33986=>1000, 33988=>1000, 33990=>1000, 33991=>1000, 33992=>1000, 33993=>1000, 33994=>1000,
- 33995=>1000, 33996=>1000, 33997=>1000, 33999=>1000, 34000=>1000, 34001=>1000, 34003=>1000, 34006=>1000, 34009=>1000, 34010=>1000, 34012=>1000, 34023=>1000, 34026=>1000, 34028=>1000, 34030=>1000, 34031=>1000,
- 34032=>1000, 34033=>1000, 34034=>1000, 34036=>1000, 34039=>1000, 34042=>1000, 34043=>1000, 34044=>1000, 34045=>1000, 34047=>1000, 34048=>1000, 34050=>1000, 34051=>1000, 34054=>1000, 34055=>1000, 34060=>1000,
- 34062=>1000, 34064=>1000, 34065=>1000, 34067=>1000, 34068=>1000, 34069=>1000, 34071=>1000, 34072=>1000, 34074=>1000, 34076=>1000, 34078=>1000, 34079=>1000, 34081=>1000, 34082=>1000, 34083=>1000, 34084=>1000,
- 34085=>1000, 34086=>1000, 34087=>1000, 34090=>1000, 34091=>1000, 34092=>1000, 34093=>1000, 34095=>1000, 34098=>1000, 34099=>1000, 34100=>1000, 34101=>1000, 34102=>1000, 34109=>1000, 34111=>1000, 34112=>1000,
- 34113=>1000, 34115=>1000, 34118=>1000, 34120=>1000, 34121=>1000, 34122=>1000, 34123=>1000, 34126=>1000, 34127=>1000, 34128=>1000, 34129=>1000, 34130=>1000, 34131=>1000, 34133=>1000, 34134=>1000, 34135=>1000,
- 34136=>1000, 34137=>1000, 34138=>1000, 34140=>1000, 34141=>1000, 34142=>1000, 34143=>1000, 34144=>1000, 34145=>1000, 34146=>1000, 34147=>1000, 34148=>1000, 34152=>1000, 34153=>1000, 34154=>1000, 34155=>1000,
- 34157=>1000, 34159=>1000, 34167=>1000, 34169=>1000, 34170=>1000, 34171=>1000, 34173=>1000, 34174=>1000, 34175=>1000, 34176=>1000, 34177=>1000, 34180=>1000, 34181=>1000, 34182=>1000, 34183=>1000, 34184=>1000,
- 34185=>1000, 34186=>1000, 34187=>1000, 34188=>1000, 34191=>1000, 34192=>1000, 34193=>1000, 34195=>1000, 34196=>1000, 34199=>1000, 34200=>1000, 34201=>1000, 34203=>1000, 34204=>1000, 34205=>1000, 34207=>1000,
- 34208=>1000, 34210=>1000, 34212=>1000, 34213=>1000, 34214=>1000, 34215=>1000, 34216=>1000, 34217=>1000, 34218=>1000, 34219=>1000, 34220=>1000, 34221=>1000, 34222=>1000, 34223=>1000, 34224=>1000, 34228=>1000,
- 34230=>1000, 34231=>1000, 34232=>1000, 34233=>1000, 34234=>1000, 34236=>1000, 34237=>1000, 34238=>1000, 34239=>1000, 34241=>1000, 34242=>1000, 34247=>1000, 34249=>1000, 34250=>1000, 34251=>1000, 34253=>1000,
- 34254=>1000, 34255=>1000, 34256=>1000, 34261=>1000, 34264=>1000, 34266=>1000, 34268=>1000, 34269=>1000, 34271=>1000, 34272=>1000, 34276=>1000, 34277=>1000, 34278=>1000, 34280=>1000, 34281=>1000, 34282=>1000,
- 34285=>1000, 34291=>1000, 34294=>1000, 34295=>1000, 34297=>1000, 34298=>1000, 34299=>1000, 34300=>1000, 34302=>1000, 34303=>1000, 34304=>1000, 34306=>1000, 34308=>1000, 34309=>1000, 34310=>1000, 34311=>1000,
- 34314=>1000, 34315=>1000, 34317=>1000, 34318=>1000, 34320=>1000, 34321=>1000, 34322=>1000, 34323=>1000, 34326=>1000, 34327=>1000, 34328=>1000, 34329=>1000, 34330=>1000, 34331=>1000, 34334=>1000, 34337=>1000,
- 34338=>1000, 34343=>1000, 34345=>1000, 34349=>1000, 34351=>1000, 34352=>1000, 34358=>1000, 34360=>1000, 34362=>1000, 34364=>1000, 34365=>1000, 34367=>1000, 34368=>1000, 34369=>1000, 34370=>1000, 34374=>1000,
- 34381=>1000, 34382=>1000, 34384=>1000, 34386=>1000, 34387=>1000, 34388=>1000, 34389=>1000, 34390=>1000, 34391=>1000, 34392=>1000, 34393=>1000, 34394=>1000, 34396=>1000, 34397=>1000, 34398=>1000, 34399=>1000,
- 34400=>1000, 34401=>1000, 34402=>1000, 34403=>1000, 34404=>1000, 34407=>1000, 34409=>1000, 34411=>1000, 34412=>1000, 34415=>1000, 34417=>1000, 34421=>1000, 34422=>1000, 34423=>1000, 34425=>1000, 34426=>1000,
- 34427=>1000, 34440=>1000, 34442=>1000, 34443=>1000, 34444=>1000, 34445=>1000, 34449=>1000, 34451=>1000, 34453=>1000, 34454=>1000, 34456=>1000, 34458=>1000, 34460=>1000, 34465=>1000, 34467=>1000, 34468=>1000,
- 34470=>1000, 34471=>1000, 34472=>1000, 34473=>1000, 34474=>1000, 34475=>1000, 34477=>1000, 34479=>1000, 34480=>1000, 34481=>1000, 34483=>1000, 34484=>1000, 34485=>1000, 34486=>1000, 34487=>1000, 34488=>1000,
- 34489=>1000, 34495=>1000, 34496=>1000, 34497=>1000, 34499=>1000, 34500=>1000, 34501=>1000, 34502=>1000, 34503=>1000, 34505=>1000, 34507=>1000, 34509=>1000, 34510=>1000, 34513=>1000, 34514=>1000, 34516=>1000,
- 34517=>1000, 34519=>1000, 34521=>1000, 34522=>1000, 34523=>1000, 34524=>1000, 34526=>1000, 34527=>1000, 34528=>1000, 34531=>1000, 34532=>1000, 34533=>1000, 34535=>1000, 34537=>1000, 34540=>1000, 34541=>1000,
- 34542=>1000, 34543=>1000, 34552=>1000, 34553=>1000, 34554=>1000, 34555=>1000, 34556=>1000, 34557=>1000, 34558=>1000, 34560=>1000, 34562=>1000, 34563=>1000, 34564=>1000, 34565=>1000, 34566=>1000, 34567=>1000,
- 34568=>1000, 34569=>1000, 34570=>1000, 34571=>1000, 34573=>1000, 34574=>1000, 34575=>1000, 34576=>1000, 34577=>1000, 34578=>1000, 34579=>1000, 34580=>1000, 34584=>1000, 34585=>1000, 34586=>1000, 34588=>1000,
- 34590=>1000, 34591=>1000, 34593=>1000, 34595=>1000, 34597=>1000, 34600=>1000, 34601=>1000, 34606=>1000, 34607=>1000, 34609=>1000, 34610=>1000, 34612=>1000, 34615=>1000, 34617=>1000, 34618=>1000, 34619=>1000,
- 34620=>1000, 34621=>1000, 34622=>1000, 34623=>1000, 34624=>1000, 34627=>1000, 34629=>1000, 34633=>1000, 34635=>1000, 34636=>1000, 34637=>1000, 34638=>1000, 34643=>1000, 34645=>1000, 34647=>1000, 34648=>1000,
- 34649=>1000, 34653=>1000, 34655=>1000, 34656=>1000, 34657=>1000, 34659=>1000, 34660=>1000, 34661=>1000, 34662=>1000, 34664=>1000, 34666=>1000, 34670=>1000, 34671=>1000, 34673=>1000, 34674=>1000, 34676=>1000,
- 34678=>1000, 34680=>1000, 34683=>1000, 34687=>1000, 34690=>1000, 34691=>1000, 34692=>1000, 34693=>1000, 34694=>1000, 34695=>1000, 34696=>1000, 34697=>1000, 34699=>1000, 34700=>1000, 34701=>1000, 34704=>1000,
- 34707=>1000, 34709=>1000, 34711=>1000, 34712=>1000, 34713=>1000, 34718=>1000, 34719=>1000, 34720=>1000, 34722=>1000, 34723=>1000, 34727=>1000, 34731=>1000, 34732=>1000, 34733=>1000, 34734=>1000, 34735=>1000,
- 34737=>1000, 34739=>1000, 34741=>1000, 34746=>1000, 34747=>1000, 34749=>1000, 34750=>1000, 34751=>1000, 34752=>1000, 34753=>1000, 34756=>1000, 34758=>1000, 34759=>1000, 34760=>1000, 34761=>1000, 34762=>1000,
- 34763=>1000, 34766=>1000, 34768=>1000, 34770=>1000, 34773=>1000, 34774=>1000, 34777=>1000, 34778=>1000, 34780=>1000, 34783=>1000, 34784=>1000, 34786=>1000, 34787=>1000, 34788=>1000, 34794=>1000, 34795=>1000,
- 34797=>1000, 34799=>1000, 34801=>1000, 34802=>1000, 34803=>1000, 34806=>1000, 34807=>1000, 34808=>1000, 34809=>1000, 34810=>1000, 34811=>1000, 34814=>1000, 34815=>1000, 34817=>1000, 34819=>1000, 34821=>1000,
- 34822=>1000, 34823=>1000, 34825=>1000, 34826=>1000, 34827=>1000, 34829=>1000, 34830=>1000, 34831=>1000, 34832=>1000, 34833=>1000, 34834=>1000, 34835=>1000, 34836=>1000, 34837=>1000, 34838=>1000, 34840=>1000,
- 34841=>1000, 34842=>1000, 34843=>1000, 34844=>1000, 34846=>1000, 34847=>1000, 34849=>1000, 34850=>1000, 34851=>1000, 34855=>1000, 34856=>1000, 34861=>1000, 34862=>1000, 34864=>1000, 34865=>1000, 34866=>1000,
- 34869=>1000, 34870=>1000, 34873=>1000, 34874=>1000, 34875=>1000, 34876=>1000, 34880=>1000, 34881=>1000, 34882=>1000, 34883=>1000, 34884=>1000, 34885=>1000, 34886=>1000, 34888=>1000, 34889=>1000, 34890=>1000,
- 34891=>1000, 34892=>1000, 34893=>1000, 34894=>1000, 34897=>1000, 34898=>1000, 34899=>1000, 34901=>1000, 34902=>1000, 34903=>1000, 34904=>1000, 34905=>1000, 34906=>1000, 34907=>1000, 34908=>1000, 34909=>1000,
- 34910=>1000, 34911=>1000, 34912=>1000, 34913=>1000, 34914=>1000, 34915=>1000, 34916=>1000, 34920=>1000, 34921=>1000, 34923=>1000, 34928=>1000, 34929=>1000, 34930=>1000, 34933=>1000, 34935=>1000, 34937=>1000,
- 34939=>1000, 34941=>1000, 34942=>1000, 34943=>1000, 34944=>1000, 34945=>1000, 34946=>1000, 34952=>1000, 34955=>1000, 34957=>1000, 34962=>1000, 34966=>1000, 34967=>1000, 34968=>1000, 34969=>1000, 34970=>1000,
- 34971=>1000, 34972=>1000, 34974=>1000, 34975=>1000, 34976=>1000, 34978=>1000, 34980=>1000, 34984=>1000, 34986=>1000, 34987=>1000, 34990=>1000, 34992=>1000, 34993=>1000, 34996=>1000, 34997=>1000, 34999=>1000,
- 35002=>1000, 35005=>1000, 35006=>1000, 35007=>1000, 35008=>1000, 35009=>1000, 35010=>1000, 35011=>1000, 35012=>1000, 35013=>1000, 35018=>1000, 35019=>1000, 35020=>1000, 35021=>1000, 35022=>1000, 35023=>1000,
- 35025=>1000, 35026=>1000, 35027=>1000, 35028=>1000, 35029=>1000, 35032=>1000, 35033=>1000, 35035=>1000, 35036=>1000, 35037=>1000, 35038=>1000, 35039=>1000, 35041=>1000, 35047=>1000, 35048=>1000, 35055=>1000,
- 35056=>1000, 35057=>1000, 35058=>1000, 35059=>1000, 35060=>1000, 35061=>1000, 35063=>1000, 35064=>1000, 35065=>1000, 35068=>1000, 35069=>1000, 35070=>1000, 35073=>1000, 35074=>1000, 35076=>1000, 35078=>1000,
- 35079=>1000, 35082=>1000, 35084=>1000, 35085=>1000, 35086=>1000, 35087=>1000, 35088=>1000, 35090=>1000, 35091=>1000, 35093=>1000, 35094=>1000, 35096=>1000, 35097=>1000, 35098=>1000, 35100=>1000, 35101=>1000,
- 35102=>1000, 35104=>1000, 35109=>1000, 35110=>1000, 35111=>1000, 35112=>1000, 35114=>1000, 35115=>1000, 35120=>1000, 35121=>1000, 35122=>1000, 35125=>1000, 35126=>1000, 35128=>1000, 35129=>1000, 35130=>1000,
- 35131=>1000, 35134=>1000, 35136=>1000, 35137=>1000, 35138=>1000, 35139=>1000, 35140=>1000, 35141=>1000, 35142=>1000, 35145=>1000, 35148=>1000, 35149=>1000, 35151=>1000, 35154=>1000, 35158=>1000, 35159=>1000,
- 35162=>1000, 35163=>1000, 35164=>1000, 35166=>1000, 35167=>1000, 35168=>1000, 35169=>1000, 35170=>1000, 35171=>1000, 35172=>1000, 35174=>1000, 35178=>1000, 35179=>1000, 35181=>1000, 35182=>1000, 35183=>1000,
- 35184=>1000, 35186=>1000, 35187=>1000, 35188=>1000, 35189=>1000, 35191=>1000, 35194=>1000, 35195=>1000, 35196=>1000, 35197=>1000, 35198=>1000, 35199=>1000, 35201=>1000, 35203=>1000, 35206=>1000, 35207=>1000,
- 35208=>1000, 35209=>1000, 35210=>1000, 35211=>1000, 35213=>1000, 35215=>1000, 35216=>1000, 35219=>1000, 35220=>1000, 35221=>1000, 35222=>1000, 35223=>1000, 35224=>1000, 35226=>1000, 35227=>1000, 35228=>1000,
- 35231=>1000, 35232=>1000, 35233=>1000, 35237=>1000, 35238=>1000, 35239=>1000, 35241=>1000, 35242=>1000, 35244=>1000, 35247=>1000, 35248=>1000, 35250=>1000, 35251=>1000, 35252=>1000, 35253=>1000, 35254=>1000,
- 35255=>1000, 35258=>1000, 35260=>1000, 35261=>1000, 35263=>1000, 35264=>1000, 35282=>1000, 35284=>1000, 35285=>1000, 35286=>1000, 35287=>1000, 35288=>1000, 35290=>1000, 35292=>1000, 35293=>1000, 35299=>1000,
- 35301=>1000, 35302=>1000, 35303=>1000, 35305=>1000, 35307=>1000, 35309=>1000, 35313=>1000, 35315=>1000, 35316=>1000, 35318=>1000, 35320=>1000, 35321=>1000, 35325=>1000, 35327=>1000, 35328=>1000, 35330=>1000,
- 35331=>1000, 35332=>1000, 35333=>1000, 35335=>1000, 35336=>1000, 35338=>1000, 35340=>1000, 35342=>1000, 35343=>1000, 35344=>1000, 35345=>1000, 35346=>1000, 35347=>1000, 35348=>1000, 35349=>1000, 35350=>1000,
- 35351=>1000, 35352=>1000, 35355=>1000, 35357=>1000, 35358=>1000, 35359=>1000, 35360=>1000, 35362=>1000, 35363=>1000, 35364=>1000, 35365=>1000, 35366=>1000, 35370=>1000, 35371=>1000, 35372=>1000, 35373=>1000,
- 35375=>1000, 35377=>1000, 35379=>1000, 35380=>1000, 35381=>1000, 35382=>1000, 35383=>1000, 35386=>1000, 35387=>1000, 35388=>1000, 35389=>1000, 35390=>1000, 35392=>1000, 35393=>1000, 35395=>1000, 35397=>1000,
- 35398=>1000, 35399=>1000, 35400=>1000, 35401=>1000, 35405=>1000, 35406=>1000, 35408=>1000, 35409=>1000, 35410=>1000, 35411=>1000, 35412=>1000, 35413=>1000, 35414=>1000, 35415=>1000, 35416=>1000, 35419=>1000,
- 35420=>1000, 35421=>1000, 35422=>1000, 35424=>1000, 35425=>1000, 35426=>1000, 35427=>1000, 35429=>1000, 35430=>1000, 35431=>1000, 35433=>1000, 35435=>1000, 35436=>1000, 35437=>1000, 35438=>1000, 35440=>1000,
- 35441=>1000, 35442=>1000, 35443=>1000, 35445=>1000, 35446=>1000, 35447=>1000, 35449=>1000, 35450=>1000, 35451=>1000, 35452=>1000, 35454=>1000, 35455=>1000, 35456=>1000, 35458=>1000, 35459=>1000, 35460=>1000,
- 35461=>1000, 35462=>1000, 35463=>1000, 35465=>1000, 35467=>1000, 35468=>1000, 35469=>1000, 35471=>1000, 35472=>1000, 35473=>1000, 35474=>1000, 35475=>1000, 35477=>1000, 35478=>1000, 35479=>1000, 35480=>1000,
- 35481=>1000, 35482=>1000, 35486=>1000, 35487=>1000, 35488=>1000, 35489=>1000, 35491=>1000, 35492=>1000, 35493=>1000, 35494=>1000, 35495=>1000, 35496=>1000, 35497=>1000, 35500=>1000, 35501=>1000, 35502=>1000,
- 35503=>1000, 35504=>1000, 35506=>1000, 35507=>1000, 35510=>1000, 35511=>1000, 35513=>1000, 35515=>1000, 35516=>1000, 35518=>1000, 35519=>1000, 35522=>1000, 35523=>1000, 35524=>1000, 35526=>1000, 35527=>1000,
- 35528=>1000, 35529=>1000, 35530=>1000, 35531=>1000, 35532=>1000, 35533=>1000, 35535=>1000, 35537=>1000, 35538=>1000, 35539=>1000, 35540=>1000, 35541=>1000, 35542=>1000, 35543=>1000, 35546=>1000, 35547=>1000,
- 35548=>1000, 35549=>1000, 35550=>1000, 35551=>1000, 35552=>1000, 35553=>1000, 35554=>1000, 35556=>1000, 35558=>1000, 35559=>1000, 35563=>1000, 35564=>1000, 35565=>1000, 35566=>1000, 35568=>1000, 35569=>1000,
- 35571=>1000, 35572=>1000, 35573=>1000, 35574=>1000, 35575=>1000, 35576=>1000, 35578=>1000, 35580=>1000, 35582=>1000, 35583=>1000, 35584=>1000, 35585=>1000, 35586=>1000, 35588=>1000, 35589=>1000, 35590=>1000,
- 35591=>1000, 35594=>1000, 35595=>1000, 35596=>1000, 35598=>1000, 35600=>1000, 35601=>1000, 35604=>1000, 35606=>1000, 35607=>1000, 35609=>1000, 35610=>1000, 35611=>1000, 35612=>1000, 35613=>1000, 35614=>1000,
- 35615=>1000, 35616=>1000, 35617=>1000, 35622=>1000, 35624=>1000, 35627=>1000, 35628=>1000, 35629=>1000, 35632=>1000, 35635=>1000, 35639=>1000, 35641=>1000, 35644=>1000, 35646=>1000, 35649=>1000, 35650=>1000,
- 35651=>1000, 35652=>1000, 35653=>1000, 35654=>1000, 35656=>1000, 35657=>1000, 35660=>1000, 35661=>1000, 35662=>1000, 35663=>1000, 35666=>1000, 35667=>1000, 35668=>1000, 35670=>1000, 35672=>1000, 35673=>1000,
- 35674=>1000, 35675=>1000, 35676=>1000, 35678=>1000, 35679=>1000, 35683=>1000, 35686=>1000, 35691=>1000, 35692=>1000, 35693=>1000, 35695=>1000, 35696=>1000, 35697=>1000, 35698=>1000, 35700=>1000, 35702=>1000,
- 35703=>1000, 35704=>1000, 35705=>1000, 35708=>1000, 35709=>1000, 35710=>1000, 35711=>1000, 35712=>1000, 35713=>1000, 35715=>1000, 35716=>1000, 35717=>1000, 35722=>1000, 35723=>1000, 35724=>1000, 35725=>1000,
- 35726=>1000, 35727=>1000, 35728=>1000, 35730=>1000, 35731=>1000, 35732=>1000, 35733=>1000, 35734=>1000, 35737=>1000, 35738=>1000, 35740=>1000, 35742=>1000, 35743=>1000, 35895=>1000, 35896=>1000, 35897=>1000,
- 35898=>1000, 35901=>1000, 35902=>1000, 35903=>1000, 35905=>1000, 35909=>1000, 35910=>1000, 35911=>1000, 35912=>1000, 35913=>1000, 35914=>1000, 35915=>1000, 35916=>1000, 35918=>1000, 35919=>1000, 35920=>1000,
- 35921=>1000, 35923=>1000, 35924=>1000, 35925=>1000, 35927=>1000, 35928=>1000, 35929=>1000, 35930=>1000, 35931=>1000, 35933=>1000, 35937=>1000, 35938=>1000, 35939=>1000, 35940=>1000, 35942=>1000, 35944=>1000,
- 35945=>1000, 35946=>1000, 35947=>1000, 35948=>1000, 35949=>1000, 35955=>1000, 35957=>1000, 35958=>1000, 35960=>1000, 35961=>1000, 35962=>1000, 35963=>1000, 35964=>1000, 35966=>1000, 35970=>1000, 35973=>1000,
- 35974=>1000, 35975=>1000, 35977=>1000, 35978=>1000, 35979=>1000, 35980=>1000, 35981=>1000, 35982=>1000, 35984=>1000, 35986=>1000, 35987=>1000, 35988=>1000, 35992=>1000, 35993=>1000, 35995=>1000, 35996=>1000,
- 35997=>1000, 35998=>1000, 36000=>1000, 36001=>1000, 36002=>1000, 36004=>1000, 36007=>1000, 36008=>1000, 36009=>1000, 36010=>1000, 36011=>1000, 36012=>1000, 36013=>1000, 36014=>1000, 36015=>1000, 36016=>1000,
- 36018=>1000, 36019=>1000, 36020=>1000, 36022=>1000, 36023=>1000, 36024=>1000, 36025=>1000, 36026=>1000, 36027=>1000, 36028=>1000, 36029=>1000, 36031=>1000, 36032=>1000, 36033=>1000, 36034=>1000, 36035=>1000,
- 36036=>1000, 36037=>1000, 36038=>1000, 36039=>1000, 36040=>1000, 36041=>1000, 36042=>1000, 36043=>1000, 36045=>1000, 36046=>1000, 36047=>1000, 36049=>1000, 36051=>1000, 36053=>1000, 36054=>1000, 36057=>1000,
- 36058=>1000, 36059=>1000, 36060=>1000, 36061=>1000, 36062=>1000, 36064=>1000, 36065=>1000, 36066=>1000, 36067=>1000, 36068=>1000, 36070=>1000, 36072=>1000, 36074=>1000, 36076=>1000, 36077=>1000, 36079=>1000,
- 36080=>1000, 36082=>1000, 36084=>1000, 36085=>1000, 36087=>1000, 36088=>1000, 36090=>1000, 36091=>1000, 36092=>1000, 36093=>1000, 36094=>1000, 36095=>1000, 36097=>1000, 36099=>1000, 36100=>1000, 36101=>1000,
- 36103=>1000, 36104=>1000, 36105=>1000, 36106=>1000, 36107=>1000, 36109=>1000, 36111=>1000, 36112=>1000, 36114=>1000, 36115=>1000, 36116=>1000, 36118=>1000, 36119=>1000, 36123=>1000, 36196=>1000, 36197=>1000,
- 36198=>1000, 36199=>1000, 36201=>1000, 36203=>1000, 36204=>1000, 36205=>1000, 36206=>1000, 36208=>1000, 36209=>1000, 36211=>1000, 36212=>1000, 36214=>1000, 36215=>1000, 36223=>1000, 36225=>1000, 36226=>1000,
- 36228=>1000, 36229=>1000, 36232=>1000, 36234=>1000, 36237=>1000, 36240=>1000, 36241=>1000, 36245=>1000, 36249=>1000, 36254=>1000, 36255=>1000, 36256=>1000, 36259=>1000, 36262=>1000, 36264=>1000, 36267=>1000,
- 36268=>1000, 36271=>1000, 36274=>1000, 36275=>1000, 36277=>1000, 36279=>1000, 36281=>1000, 36282=>1000, 36283=>1000, 36284=>1000, 36286=>1000, 36288=>1000, 36290=>1000, 36293=>1000, 36294=>1000, 36295=>1000,
- 36296=>1000, 36298=>1000, 36299=>1000, 36300=>1000, 36302=>1000, 36303=>1000, 36305=>1000, 36308=>1000, 36309=>1000, 36310=>1000, 36311=>1000, 36313=>1000, 36314=>1000, 36315=>1000, 36317=>1000, 36319=>1000,
- 36321=>1000, 36323=>1000, 36324=>1000, 36325=>1000, 36327=>1000, 36328=>1000, 36330=>1000, 36331=>1000, 36332=>1000, 36335=>1000, 36336=>1000, 36337=>1000, 36338=>1000, 36339=>1000, 36340=>1000, 36341=>1000,
- 36348=>1000, 36349=>1000, 36351=>1000, 36353=>1000, 36356=>1000, 36357=>1000, 36358=>1000, 36360=>1000, 36361=>1000, 36362=>1000, 36363=>1000, 36367=>1000, 36368=>1000, 36369=>1000, 36372=>1000, 36374=>1000,
- 36381=>1000, 36382=>1000, 36383=>1000, 36384=>1000, 36385=>1000, 36386=>1000, 36387=>1000, 36390=>1000, 36391=>1000, 36394=>1000, 36400=>1000, 36401=>1000, 36403=>1000, 36404=>1000, 36405=>1000, 36406=>1000,
- 36407=>1000, 36408=>1000, 36409=>1000, 36413=>1000, 36416=>1000, 36417=>1000, 36418=>1000, 36420=>1000, 36423=>1000, 36424=>1000, 36425=>1000, 36426=>1000, 36427=>1000, 36428=>1000, 36429=>1000, 36430=>1000,
- 36431=>1000, 36432=>1000, 36436=>1000, 36437=>1000, 36441=>1000, 36443=>1000, 36444=>1000, 36445=>1000, 36446=>1000, 36447=>1000, 36448=>1000, 36449=>1000, 36450=>1000, 36451=>1000, 36452=>1000, 36457=>1000,
- 36460=>1000, 36461=>1000, 36463=>1000, 36464=>1000, 36465=>1000, 36466=>1000, 36468=>1000, 36470=>1000, 36473=>1000, 36474=>1000, 36475=>1000, 36476=>1000, 36481=>1000, 36482=>1000, 36483=>1000, 36484=>1000,
- 36485=>1000, 36487=>1000, 36489=>1000, 36490=>1000, 36491=>1000, 36493=>1000, 36496=>1000, 36497=>1000, 36498=>1000, 36499=>1000, 36500=>1000, 36501=>1000, 36505=>1000, 36506=>1000, 36507=>1000, 36509=>1000,
- 36510=>1000, 36513=>1000, 36514=>1000, 36519=>1000, 36521=>1000, 36522=>1000, 36523=>1000, 36524=>1000, 36525=>1000, 36526=>1000, 36527=>1000, 36528=>1000, 36529=>1000, 36531=>1000, 36533=>1000, 36538=>1000,
- 36539=>1000, 36542=>1000, 36544=>1000, 36545=>1000, 36547=>1000, 36548=>1000, 36549=>1000, 36550=>1000, 36551=>1000, 36552=>1000, 36554=>1000, 36555=>1000, 36556=>1000, 36557=>1000, 36559=>1000, 36561=>1000,
- 36562=>1000, 36564=>1000, 36571=>1000, 36572=>1000, 36575=>1000, 36578=>1000, 36579=>1000, 36584=>1000, 36587=>1000, 36589=>1000, 36590=>1000, 36592=>1000, 36593=>1000, 36599=>1000, 36600=>1000, 36601=>1000,
- 36602=>1000, 36603=>1000, 36604=>1000, 36605=>1000, 36606=>1000, 36608=>1000, 36610=>1000, 36611=>1000, 36613=>1000, 36615=>1000, 36616=>1000, 36617=>1000, 36618=>1000, 36620=>1000, 36623=>1000, 36624=>1000,
- 36626=>1000, 36627=>1000, 36628=>1000, 36629=>1000, 36630=>1000, 36631=>1000, 36632=>1000, 36633=>1000, 36635=>1000, 36636=>1000, 36637=>1000, 36638=>1000, 36639=>1000, 36640=>1000, 36641=>1000, 36643=>1000,
- 36645=>1000, 36646=>1000, 36647=>1000, 36648=>1000, 36649=>1000, 36650=>1000, 36652=>1000, 36653=>1000, 36654=>1000, 36655=>1000, 36659=>1000, 36660=>1000, 36661=>1000, 36662=>1000, 36663=>1000, 36664=>1000,
- 36665=>1000, 36666=>1000, 36667=>1000, 36670=>1000, 36671=>1000, 36672=>1000, 36673=>1000, 36674=>1000, 36675=>1000, 36676=>1000, 36677=>1000, 36678=>1000, 36679=>1000, 36681=>1000, 36684=>1000, 36685=>1000,
- 36686=>1000, 36687=>1000, 36689=>1000, 36690=>1000, 36691=>1000, 36692=>1000, 36693=>1000, 36695=>1000, 36696=>1000, 36700=>1000, 36701=>1000, 36702=>1000, 36703=>1000, 36705=>1000, 36706=>1000, 36707=>1000,
- 36708=>1000, 36709=>1000, 36763=>1000, 36764=>1000, 36765=>1000, 36766=>1000, 36767=>1000, 36768=>1000, 36769=>1000, 36771=>1000, 36772=>1000, 36773=>1000, 36774=>1000, 36775=>1000, 36776=>1000, 36781=>1000,
- 36782=>1000, 36783=>1000, 36784=>1000, 36785=>1000, 36786=>1000, 36789=>1000, 36790=>1000, 36791=>1000, 36792=>1000, 36794=>1000, 36795=>1000, 36796=>1000, 36798=>1000, 36799=>1000, 36800=>1000, 36801=>1000,
- 36802=>1000, 36804=>1000, 36805=>1000, 36806=>1000, 36810=>1000, 36811=>1000, 36813=>1000, 36814=>1000, 36816=>1000, 36817=>1000, 36818=>1000, 36819=>1000, 36820=>1000, 36821=>1000, 36826=>1000, 36832=>1000,
- 36834=>1000, 36835=>1000, 36836=>1000, 36837=>1000, 36838=>1000, 36840=>1000, 36841=>1000, 36842=>1000, 36843=>1000, 36845=>1000, 36846=>1000, 36847=>1000, 36848=>1000, 36849=>1000, 36852=>1000, 36853=>1000,
- 36854=>1000, 36855=>1000, 36856=>1000, 36857=>1000, 36858=>1000, 36859=>1000, 36861=>1000, 36862=>1000, 36864=>1000, 36865=>1000, 36866=>1000, 36867=>1000, 36868=>1000, 36869=>1000, 36870=>1000, 36872=>1000,
- 36875=>1000, 36876=>1000, 36877=>1000, 36878=>1000, 36879=>1000, 36880=>1000, 36881=>1000, 36883=>1000, 36884=>1000, 36885=>1000, 36886=>1000, 36887=>1000, 36888=>1000, 36889=>1000, 36890=>1000, 36891=>1000,
- 36893=>1000, 36894=>1000, 36895=>1000, 36896=>1000, 36897=>1000, 36898=>1000, 36899=>1000, 36903=>1000, 36904=>1000, 36905=>1000, 36906=>1000, 36908=>1000, 36909=>1000, 36910=>1000, 36911=>1000, 36913=>1000,
- 36914=>1000, 36915=>1000, 36916=>1000, 36917=>1000, 36918=>1000, 36919=>1000, 36920=>1000, 36921=>1000, 36924=>1000, 36926=>1000, 36927=>1000, 36929=>1000, 36930=>1000, 36931=>1000, 36932=>1000, 36933=>1000,
- 36935=>1000, 36937=>1000, 36938=>1000, 36939=>1000, 36940=>1000, 36941=>1000, 36942=>1000, 36943=>1000, 36944=>1000, 36945=>1000, 36946=>1000, 36947=>1000, 36948=>1000, 36949=>1000, 36950=>1000, 36952=>1000,
- 36953=>1000, 36955=>1000, 36956=>1000, 36957=>1000, 36958=>1000, 36960=>1000, 36961=>1000, 36962=>1000, 36963=>1000, 36965=>1000, 36966=>1000, 36967=>1000, 36968=>1000, 36969=>1000, 36972=>1000, 36973=>1000,
- 36974=>1000, 36975=>1000, 36976=>1000, 36978=>1000, 36980=>1000, 36981=>1000, 36982=>1000, 36983=>1000, 36984=>1000, 36985=>1000, 36986=>1000, 36988=>1000, 36989=>1000, 36991=>1000, 36992=>1000, 36993=>1000,
- 36994=>1000, 36995=>1000, 36996=>1000, 36997=>1000, 36999=>1000, 37000=>1000, 37001=>1000, 37002=>1000, 37003=>1000, 37004=>1000, 37006=>1000, 37007=>1000, 37008=>1000, 37009=>1000, 37013=>1000, 37015=>1000,
- 37016=>1000, 37017=>1000, 37019=>1000, 37024=>1000, 37025=>1000, 37026=>1000, 37027=>1000, 37029=>1000, 37030=>1000, 37032=>1000, 37034=>1000, 37039=>1000, 37040=>1000, 37041=>1000, 37042=>1000, 37043=>1000,
- 37044=>1000, 37045=>1000, 37046=>1000, 37048=>1000, 37053=>1000, 37054=>1000, 37057=>1000, 37059=>1000, 37060=>1000, 37061=>1000, 37063=>1000, 37064=>1000, 37066=>1000, 37068=>1000, 37070=>1000, 37074=>1000,
- 37077=>1000, 37079=>1000, 37080=>1000, 37081=>1000, 37083=>1000, 37084=>1000, 37085=>1000, 37086=>1000, 37087=>1000, 37089=>1000, 37090=>1000, 37092=>1000, 37093=>1000, 37096=>1000, 37099=>1000, 37101=>1000,
- 37103=>1000, 37104=>1000, 37108=>1000, 37109=>1000, 37110=>1000, 37111=>1000, 37117=>1000, 37118=>1000, 37119=>1000, 37120=>1000, 37122=>1000, 37124=>1000, 37125=>1000, 37126=>1000, 37128=>1000, 37133=>1000,
- 37136=>1000, 37138=>1000, 37140=>1000, 37141=>1000, 37142=>1000, 37143=>1000, 37144=>1000, 37145=>1000, 37146=>1000, 37148=>1000, 37150=>1000, 37152=>1000, 37154=>1000, 37155=>1000, 37157=>1000, 37159=>1000,
- 37161=>1000, 37165=>1000, 37166=>1000, 37167=>1000, 37168=>1000, 37169=>1000, 37170=>1000, 37172=>1000, 37174=>1000, 37175=>1000, 37177=>1000, 37178=>1000, 37180=>1000, 37181=>1000, 37187=>1000, 37191=>1000,
- 37192=>1000, 37193=>1000, 37194=>1000, 37195=>1000, 37196=>1000, 37197=>1000, 37198=>1000, 37199=>1000, 37202=>1000, 37203=>1000, 37204=>1000, 37206=>1000, 37207=>1000, 37208=>1000, 37209=>1000, 37210=>1000,
- 37211=>1000, 37217=>1000, 37218=>1000, 37219=>1000, 37220=>1000, 37221=>1000, 37223=>1000, 37225=>1000, 37226=>1000, 37228=>1000, 37229=>1000, 37234=>1000, 37235=>1000, 37236=>1000, 37237=>1000, 37239=>1000,
- 37240=>1000, 37241=>1000, 37242=>1000, 37243=>1000, 37249=>1000, 37250=>1000, 37251=>1000, 37253=>1000, 37254=>1000, 37255=>1000, 37257=>1000, 37258=>1000, 37259=>1000, 37261=>1000, 37262=>1000, 37264=>1000,
- 37265=>1000, 37266=>1000, 37267=>1000, 37268=>1000, 37269=>1000, 37271=>1000, 37272=>1000, 37276=>1000, 37278=>1000, 37281=>1000, 37282=>1000, 37284=>1000, 37286=>1000, 37288=>1000, 37290=>1000, 37291=>1000,
- 37292=>1000, 37293=>1000, 37294=>1000, 37295=>1000, 37296=>1000, 37297=>1000, 37298=>1000, 37299=>1000, 37300=>1000, 37301=>1000, 37302=>1000, 37304=>1000, 37306=>1000, 37307=>1000, 37308=>1000, 37309=>1000,
- 37311=>1000, 37312=>1000, 37313=>1000, 37314=>1000, 37315=>1000, 37317=>1000, 37318=>1000, 37319=>1000, 37320=>1000, 37321=>1000, 37323=>1000, 37324=>1000, 37325=>1000, 37326=>1000, 37327=>1000, 37328=>1000,
- 37329=>1000, 37331=>1000, 37332=>1000, 37334=>1000, 37335=>1000, 37336=>1000, 37337=>1000, 37338=>1000, 37339=>1000, 37340=>1000, 37341=>1000, 37342=>1000, 37343=>1000, 37345=>1000, 37347=>1000, 37348=>1000,
- 37349=>1000, 37350=>1000, 37351=>1000, 37353=>1000, 37354=>1000, 37356=>1000, 37357=>1000, 37358=>1000, 37359=>1000, 37360=>1000, 37361=>1000, 37365=>1000, 37366=>1000, 37367=>1000, 37369=>1000, 37371=>1000,
- 37372=>1000, 37373=>1000, 37375=>1000, 37376=>1000, 37377=>1000, 37380=>1000, 37381=>1000, 37382=>1000, 37383=>1000, 37385=>1000, 37386=>1000, 37388=>1000, 37389=>1000, 37390=>1000, 37392=>1000, 37393=>1000,
- 37394=>1000, 37395=>1000, 37396=>1000, 37397=>1000, 37398=>1000, 37400=>1000, 37404=>1000, 37405=>1000, 37406=>1000, 37411=>1000, 37412=>1000, 37413=>1000, 37414=>1000, 37416=>1000, 37417=>1000, 37420=>1000,
- 37422=>1000, 37423=>1000, 37424=>1000, 37427=>1000, 37428=>1000, 37429=>1000, 37430=>1000, 37431=>1000, 37432=>1000, 37433=>1000, 37434=>1000, 37436=>1000, 37438=>1000, 37439=>1000, 37440=>1000, 37442=>1000,
- 37443=>1000, 37444=>1000, 37445=>1000, 37446=>1000, 37447=>1000, 37448=>1000, 37449=>1000, 37450=>1000, 37451=>1000, 37453=>1000, 37454=>1000, 37455=>1000, 37456=>1000, 37457=>1000, 37463=>1000, 37464=>1000,
- 37465=>1000, 37466=>1000, 37467=>1000, 37468=>1000, 37469=>1000, 37470=>1000, 37472=>1000, 37473=>1000, 37474=>1000, 37476=>1000, 37477=>1000, 37478=>1000, 37479=>1000, 37480=>1000, 37481=>1000, 37486=>1000,
- 37487=>1000, 37488=>1000, 37489=>1000, 37493=>1000, 37494=>1000, 37495=>1000, 37496=>1000, 37497=>1000, 37499=>1000, 37500=>1000, 37501=>1000, 37502=>1000, 37503=>1000, 37504=>1000, 37507=>1000, 37509=>1000,
- 37512=>1000, 37513=>1000, 37514=>1000, 37517=>1000, 37518=>1000, 37521=>1000, 37522=>1000, 37523=>1000, 37525=>1000, 37526=>1000, 37527=>1000, 37528=>1000, 37529=>1000, 37530=>1000, 37531=>1000, 37532=>1000,
- 37535=>1000, 37536=>1000, 37540=>1000, 37541=>1000, 37543=>1000, 37544=>1000, 37547=>1000, 37549=>1000, 37551=>1000, 37554=>1000, 37558=>1000, 37559=>1000, 37560=>1000, 37561=>1000, 37562=>1000, 37563=>1000,
- 37564=>1000, 37565=>1000, 37567=>1000, 37568=>1000, 37569=>1000, 37570=>1000, 37571=>1000, 37573=>1000, 37574=>1000, 37575=>1000, 37576=>1000, 37579=>1000, 37580=>1000, 37581=>1000, 37582=>1000, 37583=>1000,
- 37584=>1000, 37586=>1000, 37587=>1000, 37589=>1000, 37591=>1000, 37592=>1000, 37593=>1000, 37596=>1000, 37597=>1000, 37599=>1000, 37600=>1000, 37601=>1000, 37603=>1000, 37604=>1000, 37605=>1000, 37607=>1000,
- 37608=>1000, 37609=>1000, 37610=>1000, 37612=>1000, 37613=>1000, 37614=>1000, 37616=>1000, 37618=>1000, 37619=>1000, 37624=>1000, 37625=>1000, 37626=>1000, 37627=>1000, 37628=>1000, 37631=>1000, 37632=>1000,
- 37634=>1000, 37638=>1000, 37640=>1000, 37645=>1000, 37647=>1000, 37648=>1000, 37649=>1000, 37652=>1000, 37653=>1000, 37656=>1000, 37657=>1000, 37658=>1000, 37660=>1000, 37661=>1000, 37662=>1000, 37663=>1000,
- 37664=>1000, 37665=>1000, 37666=>1000, 37667=>1000, 37668=>1000, 37669=>1000, 37670=>1000, 37671=>1000, 37672=>1000, 37673=>1000, 37674=>1000, 37675=>1000, 37676=>1000, 37678=>1000, 37679=>1000, 37682=>1000,
- 37683=>1000, 37684=>1000, 37685=>1000, 37686=>1000, 37687=>1000, 37690=>1000, 37691=>1000, 37700=>1000, 37703=>1000, 37704=>1000, 37705=>1000, 37707=>1000, 37709=>1000, 37712=>1000, 37713=>1000, 37714=>1000,
- 37716=>1000, 37717=>1000, 37718=>1000, 37719=>1000, 37720=>1000, 37722=>1000, 37723=>1000, 37724=>1000, 37726=>1000, 37728=>1000, 37732=>1000, 37733=>1000, 37735=>1000, 37737=>1000, 37738=>1000, 37740=>1000,
- 37741=>1000, 37742=>1000, 37743=>1000, 37744=>1000, 37745=>1000, 37747=>1000, 37748=>1000, 37749=>1000, 37750=>1000, 37754=>1000, 37756=>1000, 37757=>1000, 37758=>1000, 37759=>1000, 37760=>1000, 37761=>1000,
- 37762=>1000, 37768=>1000, 37770=>1000, 37771=>1000, 37772=>1000, 37773=>1000, 37775=>1000, 37778=>1000, 37780=>1000, 37781=>1000, 37782=>1000, 37783=>1000, 37784=>1000, 37786=>1000, 37787=>1000, 37790=>1000,
- 37793=>1000, 37795=>1000, 37796=>1000, 37798=>1000, 37799=>1000, 37800=>1000, 37801=>1000, 37803=>1000, 37804=>1000, 37805=>1000, 37806=>1000, 37808=>1000, 37812=>1000, 37813=>1000, 37814=>1000, 37817=>1000,
- 37818=>1000, 37825=>1000, 37827=>1000, 37828=>1000, 37829=>1000, 37830=>1000, 37831=>1000, 37832=>1000, 37833=>1000, 37834=>1000, 37835=>1000, 37836=>1000, 37837=>1000, 37840=>1000, 37841=>1000, 37843=>1000,
- 37846=>1000, 37847=>1000, 37848=>1000, 37849=>1000, 37852=>1000, 37853=>1000, 37854=>1000, 37855=>1000, 37857=>1000, 37858=>1000, 37860=>1000, 37861=>1000, 37862=>1000, 37863=>1000, 37864=>1000, 37879=>1000,
- 37880=>1000, 37881=>1000, 37882=>1000, 37883=>1000, 37885=>1000, 37889=>1000, 37890=>1000, 37891=>1000, 37892=>1000, 37895=>1000, 37896=>1000, 37897=>1000, 37901=>1000, 37902=>1000, 37903=>1000, 37904=>1000,
- 37907=>1000, 37908=>1000, 37909=>1000, 37910=>1000, 37911=>1000, 37912=>1000, 37913=>1000, 37914=>1000, 37919=>1000, 37921=>1000, 37931=>1000, 37934=>1000, 37935=>1000, 37937=>1000, 37938=>1000, 37939=>1000,
- 37940=>1000, 37941=>1000, 37942=>1000, 37944=>1000, 37946=>1000, 37947=>1000, 37949=>1000, 37951=>1000, 37953=>1000, 37955=>1000, 37956=>1000, 37957=>1000, 37960=>1000, 37962=>1000, 37964=>1000, 37969=>1000,
- 37970=>1000, 37971=>1000, 37973=>1000, 37977=>1000, 37978=>1000, 37979=>1000, 37980=>1000, 37982=>1000, 37983=>1000, 37984=>1000, 37985=>1000, 37986=>1000, 37987=>1000, 37992=>1000, 37994=>1000, 37995=>1000,
- 37997=>1000, 37998=>1000, 37999=>1000, 38000=>1000, 38001=>1000, 38002=>1000, 38005=>1000, 38007=>1000, 38012=>1000, 38013=>1000, 38014=>1000, 38015=>1000, 38017=>1000, 38019=>1000, 38020=>1000, 38263=>1000,
- 38264=>1000, 38265=>1000, 38270=>1000, 38272=>1000, 38274=>1000, 38275=>1000, 38276=>1000, 38279=>1000, 38280=>1000, 38281=>1000, 38282=>1000, 38283=>1000, 38284=>1000, 38285=>1000, 38286=>1000, 38287=>1000,
- 38289=>1000, 38290=>1000, 38291=>1000, 38292=>1000, 38294=>1000, 38296=>1000, 38297=>1000, 38301=>1000, 38302=>1000, 38303=>1000, 38304=>1000, 38305=>1000, 38306=>1000, 38307=>1000, 38308=>1000, 38309=>1000,
- 38310=>1000, 38311=>1000, 38312=>1000, 38313=>1000, 38315=>1000, 38316=>1000, 38317=>1000, 38322=>1000, 38324=>1000, 38326=>1000, 38329=>1000, 38330=>1000, 38331=>1000, 38332=>1000, 38333=>1000, 38334=>1000,
- 38335=>1000, 38339=>1000, 38342=>1000, 38343=>1000, 38344=>1000, 38345=>1000, 38346=>1000, 38347=>1000, 38348=>1000, 38349=>1000, 38352=>1000, 38353=>1000, 38354=>1000, 38355=>1000, 38356=>1000, 38357=>1000,
- 38358=>1000, 38360=>1000, 38361=>1000, 38362=>1000, 38364=>1000, 38365=>1000, 38366=>1000, 38367=>1000, 38368=>1000, 38369=>1000, 38370=>1000, 38372=>1000, 38373=>1000, 38374=>1000, 38428=>1000, 38429=>1000,
- 38430=>1000, 38433=>1000, 38434=>1000, 38436=>1000, 38437=>1000, 38438=>1000, 38440=>1000, 38442=>1000, 38444=>1000, 38446=>1000, 38447=>1000, 38449=>1000, 38450=>1000, 38451=>1000, 38455=>1000, 38456=>1000,
- 38457=>1000, 38458=>1000, 38459=>1000, 38460=>1000, 38461=>1000, 38463=>1000, 38464=>1000, 38465=>1000, 38466=>1000, 38468=>1000, 38475=>1000, 38476=>1000, 38477=>1000, 38479=>1000, 38480=>1000, 38482=>1000,
- 38484=>1000, 38486=>1000, 38487=>1000, 38488=>1000, 38491=>1000, 38492=>1000, 38493=>1000, 38494=>1000, 38495=>1000, 38497=>1000, 38498=>1000, 38499=>1000, 38500=>1000, 38501=>1000, 38502=>1000, 38506=>1000,
- 38508=>1000, 38510=>1000, 38512=>1000, 38514=>1000, 38515=>1000, 38516=>1000, 38517=>1000, 38518=>1000, 38519=>1000, 38520=>1000, 38522=>1000, 38523=>1000, 38524=>1000, 38525=>1000, 38526=>1000, 38527=>1000,
- 38529=>1000, 38530=>1000, 38531=>1000, 38532=>1000, 38533=>1000, 38534=>1000, 38536=>1000, 38537=>1000, 38538=>1000, 38539=>1000, 38541=>1000, 38542=>1000, 38543=>1000, 38545=>1000, 38548=>1000, 38549=>1000,
- 38550=>1000, 38551=>1000, 38552=>1000, 38553=>1000, 38554=>1000, 38555=>1000, 38556=>1000, 38557=>1000, 38559=>1000, 38560=>1000, 38563=>1000, 38564=>1000, 38565=>1000, 38566=>1000, 38567=>1000, 38568=>1000,
- 38569=>1000, 38570=>1000, 38574=>1000, 38575=>1000, 38576=>1000, 38577=>1000, 38578=>1000, 38579=>1000, 38580=>1000, 38582=>1000, 38583=>1000, 38584=>1000, 38585=>1000, 38586=>1000, 38587=>1000, 38588=>1000,
- 38592=>1000, 38593=>1000, 38596=>1000, 38597=>1000, 38598=>1000, 38599=>1000, 38601=>1000, 38602=>1000, 38603=>1000, 38604=>1000, 38605=>1000, 38606=>1000, 38609=>1000, 38610=>1000, 38613=>1000, 38614=>1000,
- 38616=>1000, 38617=>1000, 38618=>1000, 38619=>1000, 38620=>1000, 38621=>1000, 38622=>1000, 38623=>1000, 38626=>1000, 38627=>1000, 38632=>1000, 38633=>1000, 38634=>1000, 38635=>1000, 38639=>1000, 38640=>1000,
- 38641=>1000, 38642=>1000, 38646=>1000, 38647=>1000, 38649=>1000, 38650=>1000, 38651=>1000, 38656=>1000, 38658=>1000, 38659=>1000, 38660=>1000, 38661=>1000, 38662=>1000, 38663=>1000, 38664=>1000, 38665=>1000,
- 38666=>1000, 38669=>1000, 38670=>1000, 38671=>1000, 38673=>1000, 38675=>1000, 38678=>1000, 38681=>1000, 38682=>1000, 38683=>1000, 38684=>1000, 38685=>1000, 38686=>1000, 38689=>1000, 38690=>1000, 38691=>1000,
- 38692=>1000, 38695=>1000, 38696=>1000, 38698=>1000, 38704=>1000, 38705=>1000, 38706=>1000, 38707=>1000, 38712=>1000, 38713=>1000, 38715=>1000, 38717=>1000, 38718=>1000, 38721=>1000, 38722=>1000, 38723=>1000,
- 38724=>1000, 38726=>1000, 38728=>1000, 38729=>1000, 38730=>1000, 38733=>1000, 38734=>1000, 38735=>1000, 38737=>1000, 38738=>1000, 38741=>1000, 38742=>1000, 38743=>1000, 38744=>1000, 38745=>1000, 38746=>1000,
- 38747=>1000, 38748=>1000, 38750=>1000, 38752=>1000, 38753=>1000, 38754=>1000, 38755=>1000, 38756=>1000, 38758=>1000, 38759=>1000, 38760=>1000, 38761=>1000, 38762=>1000, 38763=>1000, 38765=>1000, 38766=>1000,
- 38769=>1000, 38771=>1000, 38772=>1000, 38774=>1000, 38775=>1000, 38776=>1000, 38777=>1000, 38778=>1000, 38779=>1000, 38780=>1000, 38781=>1000, 38783=>1000, 38784=>1000, 38785=>1000, 38788=>1000, 38789=>1000,
- 38790=>1000, 38793=>1000, 38795=>1000, 38797=>1000, 38799=>1000, 38800=>1000, 38805=>1000, 38806=>1000, 38807=>1000, 38808=>1000, 38809=>1000, 38810=>1000, 38812=>1000, 38814=>1000, 38815=>1000, 38816=>1000,
- 38818=>1000, 38819=>1000, 38822=>1000, 38824=>1000, 38827=>1000, 38828=>1000, 38829=>1000, 38830=>1000, 38833=>1000, 38834=>1000, 38835=>1000, 38836=>1000, 38837=>1000, 38838=>1000, 38840=>1000, 38841=>1000,
- 38842=>1000, 38844=>1000, 38846=>1000, 38847=>1000, 38849=>1000, 38851=>1000, 38852=>1000, 38853=>1000, 38854=>1000, 38855=>1000, 38856=>1000, 38857=>1000, 38858=>1000, 38859=>1000, 38860=>1000, 38861=>1000,
- 38862=>1000, 38864=>1000, 38865=>1000, 38867=>1000, 38868=>1000, 38871=>1000, 38872=>1000, 38873=>1000, 38875=>1000, 38876=>1000, 38877=>1000, 38878=>1000, 38880=>1000, 38881=>1000, 38884=>1000, 38893=>1000,
- 38894=>1000, 38895=>1000, 38897=>1000, 38898=>1000, 38899=>1000, 38900=>1000, 38901=>1000, 38902=>1000, 38903=>1000, 38904=>1000, 38906=>1000, 38907=>1000, 38911=>1000, 38913=>1000, 38914=>1000, 38915=>1000,
- 38917=>1000, 38918=>1000, 38919=>1000, 38920=>1000, 38922=>1000, 38924=>1000, 38925=>1000, 38926=>1000, 38927=>1000, 38928=>1000, 38929=>1000, 38930=>1000, 38931=>1000, 38932=>1000, 38934=>1000, 38935=>1000,
- 38936=>1000, 38937=>1000, 38938=>1000, 38940=>1000, 38942=>1000, 38944=>1000, 38945=>1000, 38947=>1000, 38948=>1000, 38949=>1000, 38950=>1000, 38955=>1000, 38956=>1000, 38957=>1000, 38958=>1000, 38959=>1000,
- 38960=>1000, 38962=>1000, 38963=>1000, 38964=>1000, 38965=>1000, 38967=>1000, 38968=>1000, 38971=>1000, 38972=>1000, 38973=>1000, 38974=>1000, 38980=>1000, 38982=>1000, 38983=>1000, 38986=>1000, 38987=>1000,
- 38988=>1000, 38989=>1000, 38990=>1000, 38991=>1000, 38993=>1000, 38994=>1000, 38995=>1000, 38996=>1000, 38997=>1000, 38998=>1000, 38999=>1000, 39000=>1000, 39001=>1000, 39002=>1000, 39003=>1000, 39006=>1000,
- 39010=>1000, 39011=>1000, 39013=>1000, 39014=>1000, 39015=>1000, 39018=>1000, 39019=>1000, 39020=>1000, 39023=>1000, 39024=>1000, 39025=>1000, 39027=>1000, 39028=>1000, 39080=>1000, 39082=>1000, 39083=>1000,
- 39085=>1000, 39086=>1000, 39087=>1000, 39088=>1000, 39089=>1000, 39092=>1000, 39094=>1000, 39095=>1000, 39096=>1000, 39098=>1000, 39099=>1000, 39103=>1000, 39106=>1000, 39107=>1000, 39108=>1000, 39109=>1000,
- 39110=>1000, 39112=>1000, 39116=>1000, 39131=>1000, 39132=>1000, 39135=>1000, 39137=>1000, 39138=>1000, 39139=>1000, 39141=>1000, 39142=>1000, 39143=>1000, 39145=>1000, 39146=>1000, 39147=>1000, 39149=>1000,
- 39150=>1000, 39151=>1000, 39154=>1000, 39155=>1000, 39156=>1000, 39158=>1000, 39164=>1000, 39165=>1000, 39166=>1000, 39170=>1000, 39171=>1000, 39173=>1000, 39175=>1000, 39176=>1000, 39177=>1000, 39178=>1000,
- 39180=>1000, 39184=>1000, 39185=>1000, 39186=>1000, 39187=>1000, 39188=>1000, 39189=>1000, 39190=>1000, 39191=>1000, 39192=>1000, 39194=>1000, 39195=>1000, 39196=>1000, 39197=>1000, 39198=>1000, 39199=>1000,
- 39200=>1000, 39201=>1000, 39202=>1000, 39204=>1000, 39206=>1000, 39207=>1000, 39208=>1000, 39211=>1000, 39212=>1000, 39214=>1000, 39217=>1000, 39218=>1000, 39219=>1000, 39220=>1000, 39221=>1000, 39225=>1000,
- 39226=>1000, 39227=>1000, 39228=>1000, 39229=>1000, 39230=>1000, 39232=>1000, 39233=>1000, 39234=>1000, 39237=>1000, 39238=>1000, 39239=>1000, 39240=>1000, 39241=>1000, 39243=>1000, 39244=>1000, 39245=>1000,
- 39246=>1000, 39248=>1000, 39249=>1000, 39250=>1000, 39252=>1000, 39253=>1000, 39255=>1000, 39256=>1000, 39257=>1000, 39259=>1000, 39260=>1000, 39262=>1000, 39263=>1000, 39264=>1000, 39318=>1000, 39319=>1000,
- 39320=>1000, 39321=>1000, 39323=>1000, 39325=>1000, 39326=>1000, 39327=>1000, 39333=>1000, 39334=>1000, 39336=>1000, 39340=>1000, 39341=>1000, 39342=>1000, 39344=>1000, 39345=>1000, 39346=>1000, 39347=>1000,
- 39348=>1000, 39349=>1000, 39353=>1000, 39354=>1000, 39356=>1000, 39357=>1000, 39359=>1000, 39361=>1000, 39363=>1000, 39364=>1000, 39365=>1000, 39366=>1000, 39368=>1000, 39369=>1000, 39376=>1000, 39377=>1000,
- 39378=>1000, 39379=>1000, 39380=>1000, 39381=>1000, 39384=>1000, 39385=>1000, 39386=>1000, 39387=>1000, 39388=>1000, 39389=>1000, 39390=>1000, 39391=>1000, 39394=>1000, 39399=>1000, 39402=>1000, 39403=>1000,
- 39404=>1000, 39405=>1000, 39406=>1000, 39408=>1000, 39409=>1000, 39410=>1000, 39412=>1000, 39413=>1000, 39416=>1000, 39417=>1000, 39419=>1000, 39421=>1000, 39422=>1000, 39423=>1000, 39425=>1000, 39426=>1000,
- 39427=>1000, 39428=>1000, 39429=>1000, 39435=>1000, 39436=>1000, 39438=>1000, 39439=>1000, 39440=>1000, 39441=>1000, 39442=>1000, 39443=>1000, 39446=>1000, 39449=>1000, 39454=>1000, 39456=>1000, 39458=>1000,
- 39459=>1000, 39460=>1000, 39463=>1000, 39464=>1000, 39467=>1000, 39469=>1000, 39470=>1000, 39472=>1000, 39475=>1000, 39477=>1000, 39478=>1000, 39479=>1000, 39480=>1000, 39486=>1000, 39488=>1000, 39489=>1000,
- 39490=>1000, 39491=>1000, 39492=>1000, 39493=>1000, 39495=>1000, 39498=>1000, 39499=>1000, 39500=>1000, 39501=>1000, 39502=>1000, 39505=>1000, 39508=>1000, 39509=>1000, 39510=>1000, 39511=>1000, 39514=>1000,
- 39515=>1000, 39517=>1000, 39519=>1000, 39522=>1000, 39524=>1000, 39525=>1000, 39529=>1000, 39530=>1000, 39531=>1000, 39592=>1000, 39594=>1000, 39596=>1000, 39597=>1000, 39598=>1000, 39599=>1000, 39600=>1000,
- 39602=>1000, 39604=>1000, 39605=>1000, 39606=>1000, 39608=>1000, 39609=>1000, 39611=>1000, 39612=>1000, 39614=>1000, 39615=>1000, 39616=>1000, 39617=>1000, 39619=>1000, 39620=>1000, 39622=>1000, 39624=>1000,
- 39630=>1000, 39631=>1000, 39632=>1000, 39633=>1000, 39634=>1000, 39635=>1000, 39636=>1000, 39637=>1000, 39638=>1000, 39639=>1000, 39640=>1000, 39641=>1000, 39643=>1000, 39644=>1000, 39646=>1000, 39647=>1000,
- 39648=>1000, 39650=>1000, 39651=>1000, 39652=>1000, 39653=>1000, 39654=>1000, 39655=>1000, 39657=>1000, 39658=>1000, 39659=>1000, 39660=>1000, 39661=>1000, 39662=>1000, 39663=>1000, 39665=>1000, 39666=>1000,
- 39667=>1000, 39668=>1000, 39669=>1000, 39671=>1000, 39673=>1000, 39674=>1000, 39675=>1000, 39677=>1000, 39679=>1000, 39680=>1000, 39681=>1000, 39682=>1000, 39683=>1000, 39684=>1000, 39685=>1000, 39686=>1000,
- 39688=>1000, 39689=>1000, 39691=>1000, 39692=>1000, 39693=>1000, 39694=>1000, 39696=>1000, 39698=>1000, 39702=>1000, 39704=>1000, 39705=>1000, 39706=>1000, 39707=>1000, 39708=>1000, 39711=>1000, 39712=>1000,
- 39714=>1000, 39715=>1000, 39717=>1000, 39718=>1000, 39719=>1000, 39720=>1000, 39721=>1000, 39722=>1000, 39723=>1000, 39725=>1000, 39726=>1000, 39727=>1000, 39729=>1000, 39730=>1000, 39731=>1000, 39732=>1000,
- 39733=>1000, 39735=>1000, 39737=>1000, 39738=>1000, 39739=>1000, 39740=>1000, 39741=>1000, 39745=>1000, 39746=>1000, 39747=>1000, 39748=>1000, 39749=>1000, 39752=>1000, 39755=>1000, 39756=>1000, 39757=>1000,
- 39758=>1000, 39759=>1000, 39761=>1000, 39764=>1000, 39765=>1000, 39766=>1000, 39767=>1000, 39768=>1000, 39770=>1000, 39771=>1000, 39774=>1000, 39777=>1000, 39779=>1000, 39781=>1000, 39782=>1000, 39784=>1000,
- 39786=>1000, 39787=>1000, 39788=>1000, 39789=>1000, 39790=>1000, 39791=>1000, 39794=>1000, 39795=>1000, 39796=>1000, 39797=>1000, 39799=>1000, 39800=>1000, 39801=>1000, 39807=>1000, 39808=>1000, 39811=>1000,
- 39812=>1000, 39813=>1000, 39814=>1000, 39815=>1000, 39817=>1000, 39818=>1000, 39819=>1000, 39821=>1000, 39822=>1000, 39823=>1000, 39824=>1000, 39825=>1000, 39826=>1000, 39827=>1000, 39828=>1000, 39830=>1000,
- 39831=>1000, 39834=>1000, 39837=>1000, 39838=>1000, 39839=>1000, 39840=>1000, 39846=>1000, 39847=>1000, 39848=>1000, 39849=>1000, 39850=>1000, 39851=>1000, 39852=>1000, 39853=>1000, 39854=>1000, 39856=>1000,
- 39857=>1000, 39858=>1000, 39860=>1000, 39863=>1000, 39864=>1000, 39865=>1000, 39867=>1000, 39868=>1000, 39870=>1000, 39871=>1000, 39872=>1000, 39873=>1000, 39878=>1000, 39879=>1000, 39880=>1000, 39881=>1000,
- 39882=>1000, 39886=>1000, 39887=>1000, 39888=>1000, 39889=>1000, 39890=>1000, 39892=>1000, 39894=>1000, 39895=>1000, 39896=>1000, 39899=>1000, 39901=>1000, 39903=>1000, 39905=>1000, 39906=>1000, 39907=>1000,
- 39908=>1000, 39909=>1000, 39911=>1000, 39912=>1000, 39914=>1000, 39915=>1000, 39919=>1000, 39920=>1000, 39921=>1000, 39922=>1000, 39923=>1000, 39925=>1000, 39927=>1000, 39928=>1000, 39929=>1000, 39930=>1000,
- 39933=>1000, 39935=>1000, 39936=>1000, 39938=>1000, 39940=>1000, 39942=>1000, 39944=>1000, 39945=>1000, 39946=>1000, 39947=>1000, 39948=>1000, 39949=>1000, 39951=>1000, 39952=>1000, 39953=>1000, 39954=>1000,
- 39955=>1000, 39956=>1000, 39957=>1000, 39958=>1000, 39960=>1000, 39961=>1000, 39962=>1000, 39963=>1000, 39964=>1000, 39966=>1000, 39969=>1000, 39970=>1000, 39971=>1000, 39972=>1000, 39973=>1000, 39974=>1000,
- 39975=>1000, 39976=>1000, 39977=>1000, 39978=>1000, 39981=>1000, 39982=>1000, 39983=>1000, 39984=>1000, 39985=>1000, 39986=>1000, 39989=>1000, 39990=>1000, 39991=>1000, 39993=>1000, 39994=>1000, 39995=>1000,
- 39997=>1000, 39998=>1000, 40001=>1000, 40003=>1000, 40004=>1000, 40005=>1000, 40006=>1000, 40007=>1000, 40008=>1000, 40009=>1000, 40010=>1000, 40014=>1000, 40015=>1000, 40016=>1000, 40018=>1000, 40019=>1000,
- 40020=>1000, 40022=>1000, 40023=>1000, 40024=>1000, 40026=>1000, 40027=>1000, 40028=>1000, 40029=>1000, 40030=>1000, 40031=>1000, 40032=>1000, 40035=>1000, 40039=>1000, 40040=>1000, 40041=>1000, 40042=>1000,
- 40043=>1000, 40046=>1000, 40048=>1000, 40050=>1000, 40053=>1000, 40054=>1000, 40055=>1000, 40056=>1000, 40059=>1000, 40165=>1000, 40166=>1000, 40167=>1000, 40169=>1000, 40171=>1000, 40172=>1000, 40176=>1000,
- 40178=>1000, 40179=>1000, 40180=>1000, 40182=>1000, 40183=>1000, 40185=>1000, 40194=>1000, 40195=>1000, 40198=>1000, 40199=>1000, 40200=>1000, 40201=>1000, 40203=>1000, 40206=>1000, 40209=>1000, 40210=>1000,
- 40213=>1000, 40215=>1000, 40216=>1000, 40219=>1000, 40220=>1000, 40221=>1000, 40222=>1000, 40223=>1000, 40227=>1000, 40230=>1000, 40232=>1000, 40234=>1000, 40235=>1000, 40236=>1000, 40239=>1000, 40240=>1000,
- 40242=>1000, 40243=>1000, 40244=>1000, 40250=>1000, 40251=>1000, 40252=>1000, 40253=>1000, 40254=>1000, 40255=>1000, 40257=>1000, 40258=>1000, 40259=>1000, 40260=>1000, 40261=>1000, 40262=>1000, 40263=>1000,
- 40264=>1000, 40266=>1000, 40272=>1000, 40273=>1000, 40275=>1000, 40276=>1000, 40281=>1000, 40284=>1000, 40285=>1000, 40286=>1000, 40287=>1000, 40288=>1000, 40289=>1000, 40290=>1000, 40291=>1000, 40292=>1000,
- 40293=>1000, 40297=>1000, 40298=>1000, 40299=>1000, 40300=>1000, 40303=>1000, 40304=>1000, 40306=>1000, 40310=>1000, 40311=>1000, 40314=>1000, 40315=>1000, 40316=>1000, 40318=>1000, 40323=>1000, 40324=>1000,
- 40326=>1000, 40327=>1000, 40329=>1000, 40330=>1000, 40333=>1000, 40334=>1000, 40335=>1000, 40338=>1000, 40339=>1000, 40341=>1000, 40342=>1000, 40343=>1000, 40344=>1000, 40346=>1000, 40353=>1000, 40356=>1000,
- 40361=>1000, 40362=>1000, 40363=>1000, 40364=>1000, 40366=>1000, 40367=>1000, 40369=>1000, 40370=>1000, 40372=>1000, 40373=>1000, 40376=>1000, 40377=>1000, 40378=>1000, 40379=>1000, 40380=>1000, 40383=>1000,
- 40385=>1000, 40386=>1000, 40387=>1000, 40388=>1000, 40390=>1000, 40391=>1000, 40393=>1000, 40394=>1000, 40399=>1000, 40403=>1000, 40404=>1000, 40405=>1000, 40406=>1000, 40407=>1000, 40409=>1000, 40410=>1000,
- 40414=>1000, 40415=>1000, 40416=>1000, 40421=>1000, 40422=>1000, 40423=>1000, 40425=>1000, 40427=>1000, 40429=>1000, 40430=>1000, 40431=>1000, 40432=>1000, 40434=>1000, 40435=>1000, 40436=>1000, 40440=>1000,
- 40441=>1000, 40442=>1000, 40445=>1000, 40446=>1000, 40450=>1000, 40455=>1000, 40458=>1000, 40462=>1000, 40464=>1000, 40465=>1000, 40466=>1000, 40469=>1000, 40470=>1000, 40473=>1000, 40474=>1000, 40475=>1000,
- 40476=>1000, 40477=>1000, 40478=>1000, 40565=>1000, 40568=>1000, 40569=>1000, 40570=>1000, 40571=>1000, 40572=>1000, 40573=>1000, 40575=>1000, 40576=>1000, 40577=>1000, 40578=>1000, 40579=>1000, 40580=>1000,
- 40581=>1000, 40583=>1000, 40584=>1000, 40587=>1000, 40588=>1000, 40590=>1000, 40591=>1000, 40593=>1000, 40594=>1000, 40595=>1000, 40597=>1000, 40598=>1000, 40599=>1000, 40600=>1000, 40603=>1000, 40605=>1000,
- 40606=>1000, 40607=>1000, 40612=>1000, 40613=>1000, 40614=>1000, 40616=>1000, 40617=>1000, 40618=>1000, 40620=>1000, 40621=>1000, 40622=>1000, 40623=>1000, 40624=>1000, 40627=>1000, 40628=>1000, 40629=>1000,
- 40632=>1000, 40633=>1000, 40634=>1000, 40635=>1000, 40636=>1000, 40638=>1000, 40639=>1000, 40644=>1000, 40646=>1000, 40648=>1000, 40651=>1000, 40652=>1000, 40653=>1000, 40654=>1000, 40655=>1000, 40656=>1000,
- 40657=>1000, 40658=>1000, 40660=>1000, 40661=>1000, 40664=>1000, 40665=>1000, 40667=>1000, 40668=>1000, 40669=>1000, 40670=>1000, 40671=>1000, 40672=>1000, 40676=>1000, 40677=>1000, 40679=>1000, 40680=>1000,
- 40684=>1000, 40685=>1000, 40686=>1000, 40687=>1000, 40688=>1000, 40689=>1000, 40690=>1000, 40692=>1000, 40693=>1000, 40694=>1000, 40695=>1000, 40696=>1000, 40697=>1000, 40699=>1000, 40700=>1000, 40701=>1000,
- 40703=>1000, 40706=>1000, 40707=>1000, 40711=>1000, 40712=>1000, 40713=>1000, 40718=>1000, 40719=>1000, 40720=>1000, 40721=>1000, 40722=>1000, 40723=>1000, 40724=>1000, 40725=>1000, 40726=>1000, 40727=>1000,
- 40729=>1000, 40730=>1000, 40731=>1000, 40735=>1000, 40736=>1000, 40737=>1000, 40738=>1000, 40742=>1000, 40746=>1000, 40747=>1000, 40748=>1000, 40751=>1000, 40753=>1000, 40754=>1000, 40756=>1000, 40759=>1000,
- 40761=>1000, 40762=>1000, 40763=>1000, 40764=>1000, 40765=>1000, 40766=>1000, 40767=>1000, 40769=>1000, 40771=>1000, 40772=>1000, 40773=>1000, 40774=>1000, 40775=>1000, 40778=>1000, 40779=>1000, 40782=>1000,
- 40783=>1000, 40786=>1000, 40787=>1000, 40788=>1000, 40789=>1000, 40790=>1000, 40791=>1000, 40792=>1000, 40794=>1000, 40797=>1000, 40798=>1000, 40799=>1000, 40800=>1000, 40801=>1000, 40802=>1000, 40803=>1000,
- 40806=>1000, 40807=>1000, 40808=>1000, 40809=>1000, 40810=>1000, 40812=>1000, 40813=>1000, 40814=>1000, 40815=>1000, 40816=>1000, 40817=>1000, 40818=>1000, 40819=>1000, 40821=>1000, 40822=>1000, 40823=>1000,
- 40826=>1000, 40829=>1000, 40845=>1000, 40847=>1000, 40848=>1000, 40849=>1000, 40850=>1000, 40852=>1000, 40853=>1000, 40854=>1000, 40855=>1000, 40860=>1000, 40861=>1000, 40862=>1000, 40864=>1000, 40865=>1000,
- 40866=>1000, 40867=>1000, 40869=>1000, 63785=>1000, 63964=>1000, 64014=>1000, 64015=>1000, 64016=>1000, 64017=>1000, 64018=>1000, 64019=>1000, 64020=>1000, 64021=>1000, 64022=>1000, 64023=>1000, 64024=>1000,
- 64025=>1000, 64026=>1000, 64027=>1000, 64028=>1000, 64029=>1000, 64030=>1000, 64031=>1000, 64032=>1000, 64033=>1000, 64034=>1000, 64035=>1000, 64036=>1000, 64037=>1000, 64038=>1000, 64039=>1000, 64040=>1000,
- 64041=>1000, 64042=>1000, 64043=>1000, 64044=>1000, 64045=>1000, 65281=>1000, 65282=>1000, 65283=>1000, 65284=>1000, 65285=>1000, 65286=>1000, 65287=>1000, 65288=>1000, 65289=>1000, 65290=>1000, 65291=>1000,
- 65292=>1000, 65293=>1000, 65294=>1000, 65295=>1000, 65296=>1000, 65297=>1000, 65298=>1000, 65299=>1000, 65300=>1000, 65301=>1000, 65302=>1000, 65303=>1000, 65304=>1000, 65305=>1000, 65306=>1000, 65307=>1000,
- 65308=>1000, 65309=>1000, 65310=>1000, 65311=>1000, 65312=>1000, 65313=>1000, 65314=>1000, 65315=>1000, 65316=>1000, 65317=>1000, 65318=>1000, 65319=>1000, 65320=>1000, 65321=>1000, 65322=>1000, 65323=>1000,
- 65324=>1000, 65325=>1000, 65326=>1000, 65327=>1000, 65328=>1000, 65329=>1000, 65330=>1000, 65331=>1000, 65332=>1000, 65333=>1000, 65334=>1000, 65335=>1000, 65336=>1000, 65337=>1000, 65338=>1000, 65339=>1000,
- 65340=>1000, 65341=>1000, 65342=>1000, 65343=>1000, 65344=>1000, 65345=>1000, 65346=>1000, 65347=>1000, 65348=>1000, 65349=>1000, 65350=>1000, 65351=>1000, 65352=>1000, 65353=>1000, 65354=>1000, 65355=>1000,
- 65356=>1000, 65357=>1000, 65358=>1000, 65359=>1000, 65360=>1000, 65361=>1000, 65362=>1000, 65363=>1000, 65364=>1000, 65365=>1000, 65366=>1000, 65367=>1000, 65368=>1000, 65369=>1000, 65370=>1000, 65371=>1000,
- 65372=>1000, 65373=>1000, 65374=>1000, 65377=>500, 65378=>500, 65379=>500, 65380=>500, 65381=>500, 65382=>500, 65383=>500, 65384=>500, 65385=>500, 65386=>500, 65387=>500, 65388=>500, 65389=>500,
- 65390=>500, 65391=>500, 65392=>500, 65393=>500, 65394=>500, 65395=>500, 65396=>500, 65397=>500, 65398=>500, 65399=>500, 65400=>500, 65401=>500, 65402=>500, 65403=>500, 65404=>500, 65405=>500,
- 65406=>500, 65407=>500, 65408=>500, 65409=>500, 65410=>500, 65411=>500, 65412=>500, 65413=>500, 65414=>500, 65415=>500, 65416=>500, 65417=>500, 65418=>500, 65419=>500, 65420=>500, 65421=>500,
- 65422=>500, 65423=>500, 65424=>500, 65425=>500, 65426=>500, 65427=>500, 65428=>500, 65429=>500, 65430=>500, 65431=>500, 65432=>500, 65433=>500, 65434=>500, 65435=>500, 65436=>500, 65437=>500,
- 65438=>500, 65439=>500, 65504=>1000, 65505=>1000, 65506=>1000, 65507=>1000, 65509=>1000}
+ 0=>1000, 32=>500, 33=>500, 34=>500, 35=>500, 36=>500, 37=>500, 38=>500, 39=>500, 40=>500, 41=>500, 42=>500, 43=>500, 44=>500, 45=>500, 46=>500,
+ 47=>500, 48=>500, 49=>500, 50=>500, 51=>500, 52=>500, 53=>500, 54=>500, 55=>500, 56=>500, 57=>500, 58=>500, 59=>500, 60=>500, 61=>500, 62=>500,
+ 63=>500, 64=>500, 65=>500, 66=>500, 67=>500, 68=>500, 69=>500, 70=>500, 71=>500, 72=>500, 73=>500, 74=>500, 75=>500, 76=>500, 77=>500, 78=>500,
+ 79=>500, 80=>500, 81=>500, 82=>500, 83=>500, 84=>500, 85=>500, 86=>500, 87=>500, 88=>500, 89=>500, 90=>500, 91=>500, 92=>500, 93=>500, 94=>500,
+ 95=>500, 96=>500, 97=>500, 98=>500, 99=>500, 100=>500, 101=>500, 102=>500, 103=>500, 104=>500, 105=>500, 106=>500, 107=>500, 108=>500, 109=>500, 110=>500,
+ 111=>500, 112=>500, 113=>500, 114=>500, 115=>500, 116=>500, 117=>500, 118=>500, 119=>500, 120=>500, 121=>500, 122=>500, 123=>500, 124=>500, 125=>500, 126=>500,
+ 8364=>1000, 402=>500, 8230=>1000, 8224=>1000, 8225=>1000, 710=>500, 8240=>1000, 338=>875, 8216=>1000, 8217=>1000, 8220=>1000, 8221=>1000, 732=>500, 339=>875, 160=>446, 161=>500,
+ 162=>500, 163=>500, 164=>1000, 165=>500, 166=>500, 167=>1000, 168=>1000, 169=>500, 170=>500, 171=>500, 172=>490, 173=>500, 174=>500, 175=>500, 176=>1000, 177=>1000,
+ 178=>500, 179=>500, 180=>1000, 181=>500, 182=>1000, 183=>500, 184=>500, 185=>500, 186=>500, 187=>500, 188=>500, 189=>500, 190=>500, 191=>500, 192=>500, 193=>500,
+ 194=>500, 195=>500, 196=>500, 197=>500, 198=>875, 199=>500, 200=>500, 201=>500, 202=>500, 203=>500, 204=>500, 205=>500, 206=>500, 207=>500, 208=>500, 209=>500,
+ 210=>500, 211=>500, 212=>500, 213=>500, 214=>500, 215=>1000, 216=>500, 217=>500, 218=>500, 219=>500, 220=>500, 221=>500, 222=>500, 223=>500, 224=>500, 225=>500,
+ 226=>500, 227=>500, 228=>500, 229=>500, 230=>813, 231=>500, 232=>500, 233=>500, 234=>500, 235=>500, 236=>500, 237=>500, 238=>500, 239=>500, 240=>500, 241=>500,
+ 242=>500, 243=>500, 244=>500, 245=>500, 246=>500, 247=>1000, 248=>500, 249=>500, 250=>500, 251=>500, 252=>500, 253=>500, 254=>500, 255=>500, 305=>500, 321=>500,
+ 322=>500, 331=>500, 593=>500, 602=>500, 658=>500, 711=>500, 714=>500, 715=>500, 728=>500, 730=>500, 913=>1000, 914=>1000, 915=>1000, 916=>1000, 917=>1000, 918=>1000,
+ 919=>1000, 920=>1000, 921=>1000, 922=>1000, 923=>1000, 924=>1000, 925=>1000, 926=>1000, 927=>1000, 928=>1000, 929=>1000, 931=>1000, 932=>1000, 933=>1000, 934=>1000, 935=>1000,
+ 936=>1000, 937=>1000, 945=>1000, 946=>1000, 947=>1000, 948=>1000, 949=>1000, 950=>1000, 951=>1000, 952=>1000, 953=>1000, 954=>1000, 955=>1000, 956=>1000, 957=>1000, 958=>1000,
+ 959=>1000, 960=>1000, 961=>1000, 962=>1000, 963=>1000, 964=>1000, 965=>1000, 966=>1000, 967=>1000, 968=>1000, 969=>1000, 977=>1000, 981=>1000, 1025=>1000, 1040=>1000, 1041=>1000,
+ 1042=>1000, 1043=>1000, 1044=>1000, 1045=>1000, 1046=>1000, 1047=>1000, 1048=>1000, 1049=>1000, 1050=>1000, 1051=>1000, 1052=>1000, 1053=>1000, 1054=>1000, 1055=>1000, 1056=>1000, 1057=>1000,
+ 1058=>1000, 1059=>1000, 1060=>1000, 1061=>1000, 1062=>1000, 1063=>1000, 1064=>1000, 1065=>1000, 1066=>1000, 1067=>1000, 1068=>1000, 1069=>1000, 1070=>1000, 1071=>1000, 1072=>1000, 1073=>1000,
+ 1074=>1000, 1075=>1000, 1076=>1000, 1077=>1000, 1078=>1000, 1079=>1000, 1080=>1000, 1081=>1000, 1082=>1000, 1083=>1000, 1084=>1000, 1085=>1000, 1086=>1000, 1087=>1000, 1088=>1000, 1089=>1000,
+ 1090=>1000, 1091=>1000, 1092=>1000, 1093=>1000, 1094=>1000, 1095=>1000, 1096=>1000, 1097=>1000, 1098=>1000, 1099=>1000, 1100=>1000, 1101=>1000, 1102=>1000, 1103=>1000, 1105=>1000, 8195=>915,
+ 8208=>1000, 8213=>1000, 8214=>915, 8215=>500, 8229=>1000, 8242=>1000, 8243=>1000, 8251=>1000, 8254=>766, 8451=>1000, 8467=>1000, 8470=>915, 8481=>1000, 8491=>1000, 8544=>915, 8545=>915,
+ 8546=>915, 8547=>915, 8548=>915, 8549=>915, 8550=>915, 8551=>915, 8552=>915, 8553=>915, 8592=>1000, 8593=>1000, 8594=>1000, 8595=>1000, 8658=>1000, 8660=>1000, 8704=>1000, 8706=>1000,
+ 8707=>1000, 8711=>1000, 8712=>1000, 8715=>1000, 8722=>915, 8730=>1000, 8733=>1000, 8734=>1000, 8735=>915, 8736=>1000, 8741=>1000, 8743=>1000, 8744=>1000, 8745=>1000, 8746=>1000, 8747=>1000,
+ 8748=>1000, 8749=>1000, 8750=>915, 8756=>1000, 8757=>1000, 8765=>1000, 8771=>1000, 8786=>1000, 8800=>1000, 8801=>1000, 8806=>1000, 8807=>1000, 8810=>1000, 8811=>1000, 8818=>977, 8819=>977,
+ 8834=>1000, 8835=>1000, 8838=>1000, 8839=>1000, 8869=>1000, 8895=>915, 8978=>1000, 9312=>1000, 9313=>1000, 9314=>1000, 9315=>1000, 9316=>1000, 9317=>1000, 9318=>1000, 9319=>1000, 9320=>1000,
+ 9321=>1000, 9322=>1000, 9323=>1000, 9324=>1000, 9325=>1000, 9326=>1000, 9327=>1000, 9328=>1000, 9329=>1000, 9330=>1000, 9331=>1000, 9472=>1000, 9473=>1000, 9474=>1000, 9475=>1000, 9484=>1000,
+ 9487=>1000, 9488=>1000, 9491=>1000, 9492=>1000, 9495=>1000, 9496=>1000, 9499=>1000, 9500=>1000, 9501=>1000, 9504=>1000, 9507=>1000, 9508=>1000, 9509=>1000, 9512=>1000, 9515=>1000, 9516=>1000,
+ 9519=>1000, 9520=>1000, 9523=>1000, 9524=>1000, 9527=>1000, 9528=>1000, 9531=>1000, 9532=>1000, 9535=>1000, 9538=>1000, 9547=>1000, 9632=>1000, 9633=>1000, 9634=>977, 9650=>1000, 9651=>1000,
+ 9660=>1000, 9661=>1000, 9670=>1000, 9671=>1000, 9675=>1000, 9678=>1000, 9679=>1000, 9711=>1000, 9733=>1000, 9734=>1000, 9792=>1000, 9794=>1000, 9825=>977, 9826=>977, 9828=>977, 9831=>977,
+ 9834=>1000, 9837=>1000, 9839=>1000, 12288=>1000, 12289=>1000, 12290=>1000, 12291=>1000, 12293=>1000, 12294=>1000, 12295=>1000, 12296=>1000, 12297=>1000, 12298=>1000, 12299=>1000, 12300=>1000, 12301=>1000,
+ 12302=>1000, 12303=>1000, 12304=>1000, 12305=>1000, 12306=>1000, 12307=>1000, 12308=>1000, 12309=>1000, 12316=>1000, 12339=>1000, 12340=>1000, 12341=>1000, 12353=>1000, 12354=>1000, 12355=>1000, 12356=>1000,
+ 12357=>1000, 12358=>1000, 12359=>1000, 12360=>1000, 12361=>1000, 12362=>1000, 12363=>1000, 12364=>1000, 12365=>1000, 12366=>1000, 12367=>1000, 12368=>1000, 12369=>1000, 12370=>1000, 12371=>1000, 12372=>1000,
+ 12373=>1000, 12374=>1000, 12375=>1000, 12376=>1000, 12377=>1000, 12378=>1000, 12379=>1000, 12380=>1000, 12381=>1000, 12382=>1000, 12383=>1000, 12384=>1000, 12385=>1000, 12386=>1000, 12387=>1000, 12388=>1000,
+ 12389=>1000, 12390=>1000, 12391=>1000, 12392=>1000, 12393=>1000, 12394=>1000, 12395=>1000, 12396=>1000, 12397=>1000, 12398=>1000, 12399=>1000, 12400=>1000, 12401=>1000, 12402=>1000, 12403=>1000, 12404=>1000,
+ 12405=>1000, 12406=>1000, 12407=>1000, 12408=>1000, 12409=>1000, 12410=>1000, 12411=>1000, 12412=>1000, 12413=>1000, 12414=>1000, 12415=>1000, 12416=>1000, 12417=>1000, 12418=>1000, 12419=>1000, 12420=>1000,
+ 12421=>1000, 12422=>1000, 12423=>1000, 12424=>1000, 12425=>1000, 12426=>1000, 12427=>1000, 12428=>1000, 12429=>1000, 12430=>1000, 12431=>1000, 12432=>1000, 12433=>1000, 12434=>1000, 12435=>1000, 12436=>1000,
+ 12437=>1000, 12438=>1000, 12443=>1000, 12444=>1000, 12445=>1000, 12446=>1000, 12449=>1000, 12450=>1000, 12451=>1000, 12452=>1000, 12453=>1000, 12454=>1000, 12455=>1000, 12456=>1000, 12457=>1000, 12458=>1000,
+ 12459=>1000, 12460=>1000, 12461=>1000, 12462=>1000, 12463=>1000, 12464=>1000, 12465=>1000, 12466=>1000, 12467=>1000, 12468=>1000, 12469=>1000, 12470=>1000, 12471=>1000, 12472=>1000, 12473=>1000, 12474=>1000,
+ 12475=>1000, 12476=>1000, 12477=>1000, 12478=>1000, 12479=>1000, 12480=>1000, 12481=>1000, 12482=>1000, 12483=>1000, 12484=>1000, 12485=>1000, 12486=>1000, 12487=>1000, 12488=>1000, 12489=>1000, 12490=>1000,
+ 12491=>1000, 12492=>1000, 12493=>1000, 12494=>1000, 12495=>1000, 12496=>1000, 12497=>1000, 12498=>1000, 12499=>1000, 12500=>1000, 12501=>1000, 12502=>1000, 12503=>1000, 12504=>1000, 12505=>1000, 12506=>1000,
+ 12507=>1000, 12508=>1000, 12509=>1000, 12510=>1000, 12511=>1000, 12512=>1000, 12513=>1000, 12514=>1000, 12515=>1000, 12516=>1000, 12517=>1000, 12518=>1000, 12519=>1000, 12520=>1000, 12521=>1000, 12522=>1000,
+ 12523=>1000, 12524=>1000, 12525=>1000, 12526=>1000, 12527=>1000, 12528=>1000, 12529=>1000, 12530=>1000, 12531=>1000, 12532=>1000, 12533=>1000, 12534=>1000, 12535=>1000, 12536=>1000, 12537=>1000, 12538=>1000,
+ 12539=>1000, 12540=>1000, 12541=>1000, 12542=>1000, 12849=>1000, 12850=>915, 12857=>915, 12964=>915, 12965=>915, 12966=>915, 12967=>915, 12968=>915, 13059=>915, 13069=>915, 13076=>915, 13080=>915,
+ 13090=>915, 13091=>915, 13094=>915, 13095=>915, 13099=>915, 13110=>915, 13115=>915, 13129=>915, 13130=>915, 13133=>915, 13137=>915, 13143=>915, 13179=>915, 13180=>915, 13181=>915, 13182=>915,
+ 13198=>915, 13199=>915, 13212=>915, 13213=>915, 13214=>915, 13217=>915, 13252=>915, 13259=>1000, 13261=>915, 19968=>1000, 19969=>1000, 19970=>1000, 19971=>1000, 19972=>1000, 19973=>1000, 19975=>1000,
+ 19976=>1000, 19977=>1000, 19978=>1000, 19979=>1000, 19980=>1000, 19981=>1000, 19982=>1000, 19984=>1000, 19985=>1000, 19986=>1000, 19988=>1000, 19989=>1000, 19990=>1000, 19991=>1000, 19992=>1000, 19993=>1000,
+ 19998=>1000, 19999=>1000, 20001=>1000, 20003=>1000, 20004=>1000, 20006=>1000, 20008=>1000, 20010=>1000, 20011=>1000, 20013=>1000, 20014=>1000, 20015=>1000, 20016=>1000, 20017=>1000, 20018=>1000, 20021=>1000,
+ 20022=>1000, 20024=>1000, 20025=>1000, 20027=>1000, 20028=>1000, 20031=>1000, 20032=>1000, 20033=>1000, 20034=>1000, 20035=>1000, 20036=>1000, 20037=>1000, 20039=>1000, 20043=>1000, 20045=>1000, 20046=>1000,
+ 20047=>1000, 20049=>1000, 20053=>1000, 20054=>1000, 20055=>1000, 20056=>1000, 20057=>1000, 20058=>1000, 20060=>1000, 20061=>1000, 20062=>1000, 20063=>1000, 20066=>1000, 20067=>1000, 20072=>1000, 20073=>1000,
+ 20081=>1000, 20083=>1000, 20084=>1000, 20085=>1000, 20089=>1000, 20094=>1000, 20095=>1000, 20096=>1000, 20098=>1000, 20101=>1000, 20102=>1000, 20104=>1000, 20105=>1000, 20106=>1000, 20107=>1000, 20108=>1000,
+ 20109=>1000, 20110=>1000, 20113=>1000, 20114=>1000, 20116=>1000, 20117=>1000, 20118=>1000, 20119=>1000, 20120=>1000, 20121=>1000, 20123=>1000, 20124=>1000, 20125=>1000, 20126=>1000, 20127=>1000, 20128=>1000,
+ 20129=>1000, 20130=>1000, 20132=>1000, 20133=>1000, 20134=>1000, 20136=>1000, 20139=>1000, 20140=>1000, 20141=>1000, 20142=>1000, 20143=>1000, 20144=>1000, 20147=>1000, 20150=>1000, 20153=>1000, 20154=>1000,
+ 20160=>1000, 20161=>1000, 20162=>1000, 20163=>1000, 20164=>1000, 20166=>1000, 20167=>1000, 20170=>1000, 20171=>1000, 20173=>1000, 20174=>1000, 20175=>1000, 20176=>1000, 20180=>1000, 20181=>1000, 20182=>1000,
+ 20183=>1000, 20184=>1000, 20185=>1000, 20186=>1000, 20187=>1000, 20189=>1000, 20190=>1000, 20191=>1000, 20192=>1000, 20193=>1000, 20194=>1000, 20195=>1000, 20196=>1000, 20197=>1000, 20200=>1000, 20205=>1000,
+ 20206=>1000, 20207=>1000, 20208=>1000, 20209=>1000, 20210=>1000, 20211=>1000, 20213=>1000, 20214=>1000, 20215=>1000, 20219=>1000, 20220=>1000, 20221=>1000, 20222=>1000, 20223=>1000, 20224=>1000, 20225=>1000,
+ 20226=>1000, 20227=>1000, 20232=>1000, 20233=>1000, 20234=>1000, 20235=>1000, 20236=>1000, 20237=>1000, 20238=>1000, 20239=>1000, 20240=>1000, 20241=>1000, 20242=>1000, 20245=>1000, 20246=>1000, 20247=>1000,
+ 20249=>1000, 20250=>1000, 20252=>1000, 20253=>1000, 20270=>1000, 20271=>1000, 20272=>1000, 20273=>1000, 20275=>1000, 20276=>1000, 20277=>1000, 20278=>1000, 20279=>1000, 20280=>1000, 20281=>1000, 20282=>1000,
+ 20283=>1000, 20284=>1000, 20285=>1000, 20286=>1000, 20288=>1000, 20290=>1000, 20291=>1000, 20294=>1000, 20295=>1000, 20296=>1000, 20297=>1000, 20299=>1000, 20300=>1000, 20301=>1000, 20302=>1000, 20303=>1000,
+ 20304=>1000, 20305=>1000, 20306=>1000, 20307=>1000, 20308=>1000, 20309=>1000, 20310=>1000, 20311=>1000, 20312=>1000, 20313=>1000, 20314=>1000, 20315=>1000, 20316=>1000, 20317=>1000, 20318=>1000, 20319=>1000,
+ 20320=>1000, 20323=>1000, 20329=>1000, 20330=>1000, 20332=>1000, 20334=>1000, 20335=>1000, 20336=>1000, 20337=>1000, 20339=>1000, 20341=>1000, 20342=>1000, 20343=>1000, 20344=>1000, 20345=>1000, 20346=>1000,
+ 20347=>1000, 20348=>1000, 20349=>1000, 20350=>1000, 20351=>1000, 20353=>1000, 20354=>1000, 20355=>1000, 20356=>1000, 20357=>1000, 20358=>1000, 20360=>1000, 20361=>1000, 20362=>1000, 20363=>1000, 20364=>1000,
+ 20365=>1000, 20366=>1000, 20367=>1000, 20368=>1000, 20369=>1000, 20370=>1000, 20371=>1000, 20372=>1000, 20374=>1000, 20375=>1000, 20376=>1000, 20377=>1000, 20378=>1000, 20379=>1000, 20381=>1000, 20382=>1000,
+ 20383=>1000, 20384=>1000, 20385=>1000, 20395=>1000, 20397=>1000, 20398=>1000, 20399=>1000, 20402=>1000, 20405=>1000, 20406=>1000, 20407=>1000, 20409=>1000, 20411=>1000, 20412=>1000, 20413=>1000, 20414=>1000,
+ 20415=>1000, 20416=>1000, 20417=>1000, 20418=>1000, 20419=>1000, 20420=>1000, 20421=>1000, 20422=>1000, 20424=>1000, 20425=>1000, 20426=>1000, 20427=>1000, 20428=>1000, 20429=>1000, 20430=>1000, 20431=>1000,
+ 20432=>1000, 20433=>1000, 20434=>1000, 20436=>1000, 20439=>1000, 20440=>1000, 20442=>1000, 20443=>1000, 20444=>1000, 20445=>1000, 20447=>1000, 20448=>1000, 20449=>1000, 20450=>1000, 20451=>1000, 20452=>1000,
+ 20453=>1000, 20462=>1000, 20463=>1000, 20464=>1000, 20466=>1000, 20467=>1000, 20469=>1000, 20470=>1000, 20472=>1000, 20474=>1000, 20476=>1000, 20477=>1000, 20478=>1000, 20479=>1000, 20480=>1000, 20481=>1000,
+ 20484=>1000, 20485=>1000, 20486=>1000, 20487=>1000, 20489=>1000, 20490=>1000, 20491=>1000, 20492=>1000, 20493=>1000, 20494=>1000, 20495=>1000, 20496=>1000, 20497=>1000, 20498=>1000, 20499=>1000, 20500=>1000,
+ 20502=>1000, 20503=>1000, 20504=>1000, 20505=>1000, 20506=>1000, 20507=>1000, 20508=>1000, 20509=>1000, 20510=>1000, 20511=>1000, 20513=>1000, 20514=>1000, 20515=>1000, 20516=>1000, 20517=>1000, 20518=>1000,
+ 20519=>1000, 20520=>1000, 20521=>1000, 20522=>1000, 20523=>1000, 20524=>1000, 20525=>1000, 20526=>1000, 20528=>1000, 20530=>1000, 20531=>1000, 20533=>1000, 20534=>1000, 20537=>1000, 20539=>1000, 20544=>1000,
+ 20545=>1000, 20546=>1000, 20547=>1000, 20549=>1000, 20550=>1000, 20551=>1000, 20552=>1000, 20553=>1000, 20554=>1000, 20556=>1000, 20558=>1000, 20559=>1000, 20560=>1000, 20561=>1000, 20562=>1000, 20563=>1000,
+ 20565=>1000, 20566=>1000, 20567=>1000, 20569=>1000, 20570=>1000, 20572=>1000, 20575=>1000, 20576=>1000, 20578=>1000, 20579=>1000, 20581=>1000, 20582=>1000, 20583=>1000, 20586=>1000, 20588=>1000, 20589=>1000,
+ 20592=>1000, 20593=>1000, 20594=>1000, 20596=>1000, 20597=>1000, 20598=>1000, 20600=>1000, 20605=>1000, 20608=>1000, 20609=>1000, 20611=>1000, 20612=>1000, 20613=>1000, 20614=>1000, 20618=>1000, 20621=>1000,
+ 20622=>1000, 20623=>1000, 20624=>1000, 20625=>1000, 20626=>1000, 20627=>1000, 20628=>1000, 20630=>1000, 20632=>1000, 20633=>1000, 20634=>1000, 20635=>1000, 20636=>1000, 20638=>1000, 20639=>1000, 20640=>1000,
+ 20641=>1000, 20642=>1000, 20650=>1000, 20652=>1000, 20653=>1000, 20655=>1000, 20656=>1000, 20658=>1000, 20659=>1000, 20660=>1000, 20661=>1000, 20663=>1000, 20665=>1000, 20666=>1000, 20669=>1000, 20670=>1000,
+ 20672=>1000, 20674=>1000, 20675=>1000, 20676=>1000, 20677=>1000, 20679=>1000, 20681=>1000, 20682=>1000, 20684=>1000, 20685=>1000, 20686=>1000, 20687=>1000, 20688=>1000, 20689=>1000, 20691=>1000, 20692=>1000,
+ 20693=>1000, 20694=>1000, 20696=>1000, 20698=>1000, 20700=>1000, 20701=>1000, 20702=>1000, 20703=>1000, 20706=>1000, 20707=>1000, 20708=>1000, 20709=>1000, 20710=>1000, 20711=>1000, 20712=>1000, 20713=>1000,
+ 20717=>1000, 20718=>1000, 20719=>1000, 20721=>1000, 20722=>1000, 20724=>1000, 20725=>1000, 20726=>1000, 20729=>1000, 20730=>1000, 20731=>1000, 20734=>1000, 20736=>1000, 20737=>1000, 20738=>1000, 20739=>1000,
+ 20740=>1000, 20742=>1000, 20743=>1000, 20744=>1000, 20745=>1000, 20747=>1000, 20748=>1000, 20749=>1000, 20750=>1000, 20752=>1000, 20754=>1000, 20756=>1000, 20757=>1000, 20758=>1000, 20759=>1000, 20760=>1000,
+ 20761=>1000, 20762=>1000, 20763=>1000, 20764=>1000, 20765=>1000, 20766=>1000, 20767=>1000, 20769=>1000, 20771=>1000, 20775=>1000, 20776=>1000, 20778=>1000, 20780=>1000, 20781=>1000, 20783=>1000, 20785=>1000,
+ 20786=>1000, 20787=>1000, 20788=>1000, 20789=>1000, 20791=>1000, 20792=>1000, 20793=>1000, 20794=>1000, 20795=>1000, 20796=>1000, 20799=>1000, 20800=>1000, 20801=>1000, 20802=>1000, 20803=>1000, 20804=>1000,
+ 20805=>1000, 20806=>1000, 20807=>1000, 20808=>1000, 20809=>1000, 20810=>1000, 20811=>1000, 20812=>1000, 20813=>1000, 20814=>1000, 20815=>1000, 20816=>1000, 20818=>1000, 20819=>1000, 20820=>1000, 20821=>1000,
+ 20823=>1000, 20824=>1000, 20826=>1000, 20828=>1000, 20831=>1000, 20834=>1000, 20836=>1000, 20837=>1000, 20838=>1000, 20840=>1000, 20841=>1000, 20842=>1000, 20843=>1000, 20844=>1000, 20845=>1000, 20846=>1000,
+ 20849=>1000, 20853=>1000, 20854=>1000, 20855=>1000, 20856=>1000, 20860=>1000, 20862=>1000, 20864=>1000, 20866=>1000, 20867=>1000, 20868=>1000, 20869=>1000, 20870=>1000, 20873=>1000, 20874=>1000, 20875=>1000,
+ 20876=>1000, 20877=>1000, 20878=>1000, 20879=>1000, 20880=>1000, 20881=>1000, 20882=>1000, 20883=>1000, 20885=>1000, 20886=>1000, 20887=>1000, 20888=>1000, 20889=>1000, 20893=>1000, 20896=>1000, 20897=>1000,
+ 20898=>1000, 20899=>1000, 20900=>1000, 20901=>1000, 20902=>1000, 20904=>1000, 20905=>1000, 20906=>1000, 20907=>1000, 20908=>1000, 20909=>1000, 20912=>1000, 20913=>1000, 20914=>1000, 20915=>1000, 20916=>1000,
+ 20917=>1000, 20918=>1000, 20919=>1000, 20920=>1000, 20922=>1000, 20924=>1000, 20925=>1000, 20926=>1000, 20927=>1000, 20930=>1000, 20932=>1000, 20933=>1000, 20934=>1000, 20936=>1000, 20937=>1000, 20939=>1000,
+ 20940=>1000, 20941=>1000, 20943=>1000, 20945=>1000, 20946=>1000, 20947=>1000, 20949=>1000, 20950=>1000, 20952=>1000, 20955=>1000, 20956=>1000, 20957=>1000, 20958=>1000, 20960=>1000, 20961=>1000, 20962=>1000,
+ 20965=>1000, 20966=>1000, 20967=>1000, 20969=>1000, 20970=>1000, 20972=>1000, 20973=>1000, 20974=>1000, 20976=>1000, 20977=>1000, 20978=>1000, 20979=>1000, 20980=>1000, 20981=>1000, 20982=>1000, 20983=>1000,
+ 20984=>1000, 20985=>1000, 20986=>1000, 20989=>1000, 20990=>1000, 20992=>1000, 20993=>1000, 20994=>1000, 20995=>1000, 20996=>1000, 20997=>1000, 20998=>1000, 20999=>1000, 21000=>1000, 21002=>1000, 21003=>1000,
+ 21006=>1000, 21009=>1000, 21010=>1000, 21011=>1000, 21012=>1000, 21013=>1000, 21014=>1000, 21015=>1000, 21016=>1000, 21021=>1000, 21026=>1000, 21028=>1000, 21029=>1000, 21031=>1000, 21032=>1000, 21033=>1000,
+ 21034=>1000, 21038=>1000, 21040=>1000, 21041=>1000, 21042=>1000, 21043=>1000, 21045=>1000, 21046=>1000, 21047=>1000, 21048=>1000, 21049=>1000, 21050=>1000, 21051=>1000, 21052=>1000, 21059=>1000, 21060=>1000,
+ 21061=>1000, 21063=>1000, 21065=>1000, 21066=>1000, 21067=>1000, 21068=>1000, 21069=>1000, 21071=>1000, 21076=>1000, 21077=>1000, 21078=>1000, 21079=>1000, 21080=>1000, 21082=>1000, 21083=>1000, 21084=>1000,
+ 21086=>1000, 21087=>1000, 21088=>1000, 21089=>1000, 21091=>1000, 21092=>1000, 21093=>1000, 21094=>1000, 21097=>1000, 21098=>1000, 21102=>1000, 21103=>1000, 21104=>1000, 21105=>1000, 21106=>1000, 21107=>1000,
+ 21108=>1000, 21109=>1000, 21111=>1000, 21112=>1000, 21113=>1000, 21117=>1000, 21119=>1000, 21120=>1000, 21122=>1000, 21123=>1000, 21125=>1000, 21127=>1000, 21128=>1000, 21129=>1000, 21130=>1000, 21132=>1000,
+ 21133=>1000, 21137=>1000, 21138=>1000, 21139=>1000, 21140=>1000, 21141=>1000, 21142=>1000, 21143=>1000, 21144=>1000, 21146=>1000, 21147=>1000, 21148=>1000, 21151=>1000, 21152=>1000, 21155=>1000, 21156=>1000,
+ 21157=>1000, 21158=>1000, 21159=>1000, 21161=>1000, 21162=>1000, 21163=>1000, 21164=>1000, 21165=>1000, 21167=>1000, 21168=>1000, 21169=>1000, 21172=>1000, 21173=>1000, 21174=>1000, 21175=>1000, 21176=>1000,
+ 21177=>1000, 21178=>1000, 21179=>1000, 21180=>1000, 21181=>1000, 21182=>1000, 21184=>1000, 21185=>1000, 21187=>1000, 21188=>1000, 21189=>1000, 21190=>1000, 21191=>1000, 21192=>1000, 21193=>1000, 21196=>1000,
+ 21197=>1000, 21199=>1000, 21201=>1000, 21202=>1000, 21204=>1000, 21205=>1000, 21206=>1000, 21207=>1000, 21208=>1000, 21209=>1000, 21211=>1000, 21212=>1000, 21213=>1000, 21214=>1000, 21215=>1000, 21216=>1000,
+ 21217=>1000, 21218=>1000, 21219=>1000, 21220=>1000, 21221=>1000, 21222=>1000, 21223=>1000, 21224=>1000, 21225=>1000, 21226=>1000, 21228=>1000, 21232=>1000, 21233=>1000, 21234=>1000, 21235=>1000, 21236=>1000,
+ 21237=>1000, 21238=>1000, 21239=>1000, 21240=>1000, 21241=>1000, 21242=>1000, 21246=>1000, 21247=>1000, 21248=>1000, 21249=>1000, 21250=>1000, 21251=>1000, 21253=>1000, 21254=>1000, 21255=>1000, 21256=>1000,
+ 21258=>1000, 21259=>1000, 21260=>1000, 21261=>1000, 21263=>1000, 21264=>1000, 21265=>1000, 21267=>1000, 21269=>1000, 21270=>1000, 21271=>1000, 21272=>1000, 21273=>1000, 21274=>1000, 21275=>1000, 21276=>1000,
+ 21277=>1000, 21278=>1000, 21279=>1000, 21280=>1000, 21281=>1000, 21283=>1000, 21284=>1000, 21285=>1000, 21287=>1000, 21288=>1000, 21289=>1000, 21290=>1000, 21291=>1000, 21292=>1000, 21293=>1000, 21295=>1000,
+ 21296=>1000, 21297=>1000, 21298=>1000, 21299=>1000, 21301=>1000, 21304=>1000, 21305=>1000, 21306=>1000, 21307=>1000, 21308=>1000, 21309=>1000, 21310=>1000, 21311=>1000, 21312=>1000, 21313=>1000, 21314=>1000,
+ 21315=>1000, 21317=>1000, 21318=>1000, 21319=>1000, 21320=>1000, 21321=>1000, 21322=>1000, 21323=>1000, 21324=>1000, 21325=>1000, 21329=>1000, 21330=>1000, 21331=>1000, 21332=>1000, 21335=>1000, 21336=>1000,
+ 21337=>1000, 21338=>1000, 21339=>1000, 21340=>1000, 21342=>1000, 21344=>1000, 21345=>1000, 21347=>1000, 21349=>1000, 21350=>1000, 21353=>1000, 21356=>1000, 21357=>1000, 21358=>1000, 21359=>1000, 21360=>1000,
+ 21361=>1000, 21362=>1000, 21363=>1000, 21364=>1000, 21365=>1000, 21367=>1000, 21368=>1000, 21369=>1000, 21371=>1000, 21374=>1000, 21375=>1000, 21378=>1000, 21379=>1000, 21380=>1000, 21383=>1000, 21384=>1000,
+ 21390=>1000, 21395=>1000, 21396=>1000, 21398=>1000, 21400=>1000, 21401=>1000, 21402=>1000, 21405=>1000, 21407=>1000, 21408=>1000, 21409=>1000, 21412=>1000, 21413=>1000, 21414=>1000, 21416=>1000, 21417=>1000,
+ 21418=>1000, 21419=>1000, 21421=>1000, 21422=>1000, 21423=>1000, 21424=>1000, 21426=>1000, 21427=>1000, 21428=>1000, 21429=>1000, 21430=>1000, 21431=>1000, 21432=>1000, 21434=>1000, 21435=>1000, 21437=>1000,
+ 21440=>1000, 21442=>1000, 21443=>1000, 21445=>1000, 21448=>1000, 21449=>1000, 21450=>1000, 21451=>1000, 21452=>1000, 21453=>1000, 21454=>1000, 21455=>1000, 21458=>1000, 21459=>1000, 21460=>1000, 21461=>1000,
+ 21462=>1000, 21463=>1000, 21465=>1000, 21466=>1000, 21467=>1000, 21469=>1000, 21470=>1000, 21471=>1000, 21472=>1000, 21473=>1000, 21474=>1000, 21475=>1000, 21476=>1000, 21477=>1000, 21478=>1000, 21479=>1000,
+ 21480=>1000, 21481=>1000, 21482=>1000, 21483=>1000, 21484=>1000, 21485=>1000, 21486=>1000, 21487=>1000, 21488=>1000, 21489=>1000, 21490=>1000, 21491=>1000, 21493=>1000, 21494=>1000, 21495=>1000, 21496=>1000,
+ 21498=>1000, 21505=>1000, 21506=>1000, 21507=>1000, 21508=>1000, 21512=>1000, 21513=>1000, 21514=>1000, 21515=>1000, 21516=>1000, 21517=>1000, 21518=>1000, 21519=>1000, 21520=>1000, 21521=>1000, 21523=>1000,
+ 21530=>1000, 21531=>1000, 21533=>1000, 21535=>1000, 21536=>1000, 21537=>1000, 21542=>1000, 21543=>1000, 21544=>1000, 21545=>1000, 21546=>1000, 21547=>1000, 21548=>1000, 21549=>1000, 21550=>1000, 21551=>1000,
+ 21553=>1000, 21556=>1000, 21557=>1000, 21558=>1000, 21560=>1000, 21561=>1000, 21563=>1000, 21564=>1000, 21565=>1000, 21566=>1000, 21568=>1000, 21570=>1000, 21571=>1000, 21572=>1000, 21574=>1000, 21575=>1000,
+ 21576=>1000, 21577=>1000, 21578=>1000, 21581=>1000, 21582=>1000, 21583=>1000, 21585=>1000, 21598=>1000, 21599=>1000, 21602=>1000, 21604=>1000, 21606=>1000, 21607=>1000, 21608=>1000, 21609=>1000, 21610=>1000,
+ 21611=>1000, 21613=>1000, 21614=>1000, 21616=>1000, 21617=>1000, 21619=>1000, 21620=>1000, 21621=>1000, 21622=>1000, 21623=>1000, 21627=>1000, 21628=>1000, 21629=>1000, 21631=>1000, 21632=>1000, 21633=>1000,
+ 21635=>1000, 21636=>1000, 21637=>1000, 21638=>1000, 21640=>1000, 21641=>1000, 21642=>1000, 21643=>1000, 21644=>1000, 21645=>1000, 21646=>1000, 21647=>1000, 21648=>1000, 21649=>1000, 21650=>1000, 21653=>1000,
+ 21654=>1000, 21660=>1000, 21663=>1000, 21665=>1000, 21666=>1000, 21668=>1000, 21669=>1000, 21670=>1000, 21671=>1000, 21672=>1000, 21673=>1000, 21674=>1000, 21675=>1000, 21676=>1000, 21677=>1000, 21678=>1000,
+ 21679=>1000, 21681=>1000, 21682=>1000, 21683=>1000, 21687=>1000, 21688=>1000, 21689=>1000, 21690=>1000, 21691=>1000, 21692=>1000, 21693=>1000, 21694=>1000, 21695=>1000, 21696=>1000, 21697=>1000, 21698=>1000,
+ 21700=>1000, 21702=>1000, 21703=>1000, 21704=>1000, 21705=>1000, 21706=>1000, 21709=>1000, 21710=>1000, 21720=>1000, 21728=>1000, 21729=>1000, 21730=>1000, 21733=>1000, 21734=>1000, 21736=>1000, 21737=>1000,
+ 21738=>1000, 21740=>1000, 21741=>1000, 21742=>1000, 21743=>1000, 21746=>1000, 21750=>1000, 21754=>1000, 21756=>1000, 21757=>1000, 21758=>1000, 21759=>1000, 21760=>1000, 21761=>1000, 21764=>1000, 21765=>1000,
+ 21766=>1000, 21767=>1000, 21768=>1000, 21769=>1000, 21772=>1000, 21773=>1000, 21774=>1000, 21775=>1000, 21776=>1000, 21780=>1000, 21781=>1000, 21782=>1000, 21802=>1000, 21803=>1000, 21806=>1000, 21807=>1000,
+ 21809=>1000, 21810=>1000, 21811=>1000, 21813=>1000, 21814=>1000, 21816=>1000, 21817=>1000, 21819=>1000, 21820=>1000, 21821=>1000, 21822=>1000, 21824=>1000, 21825=>1000, 21828=>1000, 21829=>1000, 21830=>1000,
+ 21831=>1000, 21833=>1000, 21834=>1000, 21836=>1000, 21837=>1000, 21839=>1000, 21840=>1000, 21841=>1000, 21843=>1000, 21846=>1000, 21847=>1000, 21848=>1000, 21850=>1000, 21851=>1000, 21852=>1000, 21853=>1000,
+ 21854=>1000, 21856=>1000, 21857=>1000, 21859=>1000, 21860=>1000, 21862=>1000, 21883=>1000, 21884=>1000, 21886=>1000, 21887=>1000, 21888=>1000, 21889=>1000, 21890=>1000, 21891=>1000, 21892=>1000, 21894=>1000,
+ 21895=>1000, 21896=>1000, 21897=>1000, 21898=>1000, 21899=>1000, 21902=>1000, 21903=>1000, 21905=>1000, 21906=>1000, 21907=>1000, 21908=>1000, 21911=>1000, 21912=>1000, 21913=>1000, 21914=>1000, 21916=>1000,
+ 21917=>1000, 21918=>1000, 21919=>1000, 21923=>1000, 21924=>1000, 21927=>1000, 21928=>1000, 21929=>1000, 21930=>1000, 21931=>1000, 21932=>1000, 21933=>1000, 21934=>1000, 21936=>1000, 21938=>1000, 21942=>1000,
+ 21951=>1000, 21953=>1000, 21955=>1000, 21956=>1000, 21957=>1000, 21958=>1000, 21959=>1000, 21961=>1000, 21963=>1000, 21964=>1000, 21966=>1000, 21969=>1000, 21970=>1000, 21971=>1000, 21972=>1000, 21975=>1000,
+ 21976=>1000, 21978=>1000, 21979=>1000, 21980=>1000, 21982=>1000, 21983=>1000, 21986=>1000, 21987=>1000, 21988=>1000, 21993=>1000, 22006=>1000, 22007=>1000, 22009=>1000, 22013=>1000, 22014=>1000, 22015=>1000,
+ 22021=>1000, 22022=>1000, 22024=>1000, 22025=>1000, 22026=>1000, 22029=>1000, 22030=>1000, 22031=>1000, 22032=>1000, 22033=>1000, 22034=>1000, 22036=>1000, 22038=>1000, 22039=>1000, 22040=>1000, 22041=>1000,
+ 22043=>1000, 22057=>1000, 22060=>1000, 22063=>1000, 22064=>1000, 22065=>1000, 22066=>1000, 22067=>1000, 22068=>1000, 22069=>1000, 22070=>1000, 22071=>1000, 22072=>1000, 22073=>1000, 22075=>1000, 22076=>1000,
+ 22077=>1000, 22079=>1000, 22080=>1000, 22081=>1000, 22082=>1000, 22083=>1000, 22084=>1000, 22086=>1000, 22089=>1000, 22091=>1000, 22092=>1000, 22093=>1000, 22094=>1000, 22095=>1000, 22096=>1000, 22100=>1000,
+ 22107=>1000, 22110=>1000, 22112=>1000, 22113=>1000, 22114=>1000, 22115=>1000, 22116=>1000, 22118=>1000, 22120=>1000, 22121=>1000, 22122=>1000, 22123=>1000, 22124=>1000, 22125=>1000, 22127=>1000, 22129=>1000,
+ 22130=>1000, 22132=>1000, 22133=>1000, 22136=>1000, 22138=>1000, 22144=>1000, 22148=>1000, 22149=>1000, 22150=>1000, 22151=>1000, 22152=>1000, 22154=>1000, 22155=>1000, 22156=>1000, 22159=>1000, 22164=>1000,
+ 22165=>1000, 22169=>1000, 22170=>1000, 22173=>1000, 22174=>1000, 22175=>1000, 22176=>1000, 22178=>1000, 22181=>1000, 22182=>1000, 22183=>1000, 22184=>1000, 22185=>1000, 22187=>1000, 22188=>1000, 22189=>1000,
+ 22190=>1000, 22193=>1000, 22195=>1000, 22196=>1000, 22198=>1000, 22199=>1000, 22204=>1000, 22206=>1000, 22208=>1000, 22209=>1000, 22210=>1000, 22211=>1000, 22213=>1000, 22216=>1000, 22217=>1000, 22218=>1000,
+ 22219=>1000, 22220=>1000, 22221=>1000, 22222=>1000, 22223=>1000, 22224=>1000, 22225=>1000, 22227=>1000, 22231=>1000, 22232=>1000, 22233=>1000, 22234=>1000, 22235=>1000, 22236=>1000, 22237=>1000, 22238=>1000,
+ 22239=>1000, 22240=>1000, 22241=>1000, 22243=>1000, 22244=>1000, 22245=>1000, 22246=>1000, 22247=>1000, 22248=>1000, 22251=>1000, 22253=>1000, 22254=>1000, 22256=>1000, 22257=>1000, 22258=>1000, 22259=>1000,
+ 22262=>1000, 22263=>1000, 22265=>1000, 22266=>1000, 22269=>1000, 22271=>1000, 22272=>1000, 22273=>1000, 22274=>1000, 22275=>1000, 22276=>1000, 22279=>1000, 22280=>1000, 22281=>1000, 22282=>1000, 22283=>1000,
+ 22284=>1000, 22285=>1000, 22287=>1000, 22289=>1000, 22290=>1000, 22291=>1000, 22293=>1000, 22294=>1000, 22296=>1000, 22298=>1000, 22299=>1000, 22300=>1000, 22301=>1000, 22303=>1000, 22304=>1000, 22306=>1000,
+ 22307=>1000, 22308=>1000, 22309=>1000, 22310=>1000, 22311=>1000, 22312=>1000, 22313=>1000, 22314=>1000, 22316=>1000, 22317=>1000, 22318=>1000, 22319=>1000, 22320=>1000, 22323=>1000, 22324=>1000, 22327=>1000,
+ 22328=>1000, 22331=>1000, 22333=>1000, 22334=>1000, 22335=>1000, 22336=>1000, 22338=>1000, 22341=>1000, 22342=>1000, 22343=>1000, 22346=>1000, 22348=>1000, 22349=>1000, 22350=>1000, 22351=>1000, 22352=>1000,
+ 22353=>1000, 22354=>1000, 22361=>1000, 22369=>1000, 22370=>1000, 22372=>1000, 22373=>1000, 22374=>1000, 22375=>1000, 22376=>1000, 22377=>1000, 22378=>1000, 22379=>1000, 22381=>1000, 22382=>1000, 22383=>1000,
+ 22384=>1000, 22385=>1000, 22387=>1000, 22388=>1000, 22389=>1000, 22391=>1000, 22393=>1000, 22394=>1000, 22395=>1000, 22396=>1000, 22398=>1000, 22399=>1000, 22401=>1000, 22402=>1000, 22403=>1000, 22408=>1000,
+ 22409=>1000, 22411=>1000, 22412=>1000, 22419=>1000, 22420=>1000, 22421=>1000, 22423=>1000, 22425=>1000, 22426=>1000, 22428=>1000, 22429=>1000, 22430=>1000, 22431=>1000, 22432=>1000, 22433=>1000, 22434=>1000,
+ 22435=>1000, 22436=>1000, 22439=>1000, 22440=>1000, 22441=>1000, 22442=>1000, 22444=>1000, 22448=>1000, 22451=>1000, 22456=>1000, 22461=>1000, 22464=>1000, 22467=>1000, 22470=>1000, 22471=>1000, 22472=>1000,
+ 22475=>1000, 22476=>1000, 22478=>1000, 22479=>1000, 22482=>1000, 22483=>1000, 22484=>1000, 22485=>1000, 22486=>1000, 22492=>1000, 22493=>1000, 22494=>1000, 22495=>1000, 22496=>1000, 22497=>1000, 22499=>1000,
+ 22500=>1000, 22502=>1000, 22503=>1000, 22505=>1000, 22509=>1000, 22512=>1000, 22516=>1000, 22517=>1000, 22518=>1000, 22519=>1000, 22520=>1000, 22521=>1000, 22522=>1000, 22524=>1000, 22525=>1000, 22526=>1000,
+ 22527=>1000, 22528=>1000, 22530=>1000, 22531=>1000, 22532=>1000, 22533=>1000, 22534=>1000, 22536=>1000, 22537=>1000, 22538=>1000, 22539=>1000, 22540=>1000, 22541=>1000, 22549=>1000, 22553=>1000, 22555=>1000,
+ 22557=>1000, 22558=>1000, 22559=>1000, 22560=>1000, 22561=>1000, 22564=>1000, 22566=>1000, 22567=>1000, 22570=>1000, 22573=>1000, 22575=>1000, 22576=>1000, 22577=>1000, 22578=>1000, 22580=>1000, 22581=>1000,
+ 22585=>1000, 22586=>1000, 22589=>1000, 22591=>1000, 22592=>1000, 22593=>1000, 22601=>1000, 22602=>1000, 22603=>1000, 22604=>1000, 22605=>1000, 22607=>1000, 22608=>1000, 22609=>1000, 22610=>1000, 22612=>1000,
+ 22613=>1000, 22615=>1000, 22616=>1000, 22617=>1000, 22618=>1000, 22622=>1000, 22623=>1000, 22625=>1000, 22626=>1000, 22628=>1000, 22631=>1000, 22632=>1000, 22633=>1000, 22635=>1000, 22640=>1000, 22642=>1000,
+ 22645=>1000, 22648=>1000, 22649=>1000, 22652=>1000, 22654=>1000, 22655=>1000, 22656=>1000, 22657=>1000, 22659=>1000, 22661=>1000, 22663=>1000, 22664=>1000, 22665=>1000, 22666=>1000, 22668=>1000, 22669=>1000,
+ 22671=>1000, 22672=>1000, 22675=>1000, 22676=>1000, 22678=>1000, 22679=>1000, 22684=>1000, 22685=>1000, 22686=>1000, 22687=>1000, 22688=>1000, 22689=>1000, 22690=>1000, 22694=>1000, 22696=>1000, 22697=>1000,
+ 22699=>1000, 22702=>1000, 22705=>1000, 22706=>1000, 22707=>1000, 22712=>1000, 22713=>1000, 22714=>1000, 22715=>1000, 22716=>1000, 22718=>1000, 22721=>1000, 22722=>1000, 22724=>1000, 22725=>1000, 22727=>1000,
+ 22728=>1000, 22730=>1000, 22732=>1000, 22733=>1000, 22734=>1000, 22736=>1000, 22737=>1000, 22738=>1000, 22739=>1000, 22740=>1000, 22741=>1000, 22742=>1000, 22743=>1000, 22744=>1000, 22745=>1000, 22746=>1000,
+ 22748=>1000, 22749=>1000, 22750=>1000, 22751=>1000, 22753=>1000, 22754=>1000, 22756=>1000, 22757=>1000, 22761=>1000, 22763=>1000, 22764=>1000, 22766=>1000, 22767=>1000, 22768=>1000, 22769=>1000, 22770=>1000,
+ 22771=>1000, 22775=>1000, 22777=>1000, 22778=>1000, 22779=>1000, 22780=>1000, 22781=>1000, 22786=>1000, 22789=>1000, 22790=>1000, 22793=>1000, 22794=>1000, 22795=>1000, 22796=>1000, 22799=>1000, 22800=>1000,
+ 22802=>1000, 22803=>1000, 22804=>1000, 22805=>1000, 22806=>1000, 22808=>1000, 22809=>1000, 22810=>1000, 22811=>1000, 22812=>1000, 22813=>1000, 22817=>1000, 22818=>1000, 22819=>1000, 22820=>1000, 22821=>1000,
+ 22823=>1000, 22824=>1000, 22825=>1000, 22826=>1000, 22827=>1000, 22828=>1000, 22829=>1000, 22830=>1000, 22831=>1000, 22832=>1000, 22833=>1000, 22834=>1000, 22835=>1000, 22837=>1000, 22838=>1000, 22839=>1000,
+ 22840=>1000, 22846=>1000, 22847=>1000, 22851=>1000, 22852=>1000, 22854=>1000, 22855=>1000, 22856=>1000, 22857=>1000, 22862=>1000, 22863=>1000, 22864=>1000, 22865=>1000, 22866=>1000, 22867=>1000, 22868=>1000,
+ 22869=>1000, 22871=>1000, 22872=>1000, 22873=>1000, 22874=>1000, 22875=>1000, 22877=>1000, 22878=>1000, 22879=>1000, 22880=>1000, 22881=>1000, 22882=>1000, 22883=>1000, 22885=>1000, 22887=>1000, 22888=>1000,
+ 22889=>1000, 22890=>1000, 22891=>1000, 22892=>1000, 22893=>1000, 22894=>1000, 22895=>1000, 22898=>1000, 22899=>1000, 22900=>1000, 22901=>1000, 22902=>1000, 22904=>1000, 22905=>1000, 22907=>1000, 22908=>1000,
+ 22909=>1000, 22913=>1000, 22914=>1000, 22915=>1000, 22916=>1000, 22922=>1000, 22923=>1000, 22924=>1000, 22925=>1000, 22926=>1000, 22930=>1000, 22931=>1000, 22933=>1000, 22934=>1000, 22935=>1000, 22937=>1000,
+ 22939=>1000, 22941=>1000, 22943=>1000, 22947=>1000, 22948=>1000, 22949=>1000, 22951=>1000, 22952=>1000, 22956=>1000, 22957=>1000, 22958=>1000, 22959=>1000, 22960=>1000, 22962=>1000, 22963=>1000, 22967=>1000,
+ 22969=>1000, 22970=>1000, 22971=>1000, 22972=>1000, 22974=>1000, 22977=>1000, 22979=>1000, 22980=>1000, 22982=>1000, 22984=>1000, 22985=>1000, 22986=>1000, 22987=>1000, 22989=>1000, 22992=>1000, 22993=>1000,
+ 22994=>1000, 22995=>1000, 22996=>1000, 23001=>1000, 23002=>1000, 23004=>1000, 23005=>1000, 23006=>1000, 23007=>1000, 23011=>1000, 23012=>1000, 23013=>1000, 23014=>1000, 23015=>1000, 23016=>1000, 23018=>1000,
+ 23019=>1000, 23022=>1000, 23023=>1000, 23025=>1000, 23026=>1000, 23028=>1000, 23030=>1000, 23031=>1000, 23035=>1000, 23039=>1000, 23040=>1000, 23041=>1000, 23043=>1000, 23044=>1000, 23049=>1000, 23052=>1000,
+ 23053=>1000, 23054=>1000, 23057=>1000, 23058=>1000, 23059=>1000, 23064=>1000, 23066=>1000, 23068=>1000, 23070=>1000, 23071=>1000, 23072=>1000, 23075=>1000, 23076=>1000, 23077=>1000, 23079=>1000, 23080=>1000,
+ 23081=>1000, 23082=>1000, 23085=>1000, 23087=>1000, 23088=>1000, 23093=>1000, 23094=>1000, 23100=>1000, 23104=>1000, 23105=>1000, 23108=>1000, 23109=>1000, 23110=>1000, 23111=>1000, 23112=>1000, 23113=>1000,
+ 23116=>1000, 23120=>1000, 23125=>1000, 23130=>1000, 23134=>1000, 23138=>1000, 23139=>1000, 23141=>1000, 23142=>1000, 23143=>1000, 23146=>1000, 23148=>1000, 23149=>1000, 23159=>1000, 23162=>1000, 23163=>1000,
+ 23166=>1000, 23167=>1000, 23179=>1000, 23184=>1000, 23186=>1000, 23187=>1000, 23190=>1000, 23193=>1000, 23194=>1000, 23195=>1000, 23196=>1000, 23198=>1000, 23199=>1000, 23200=>1000, 23202=>1000, 23207=>1000,
+ 23212=>1000, 23217=>1000, 23218=>1000, 23219=>1000, 23221=>1000, 23224=>1000, 23226=>1000, 23227=>1000, 23228=>1000, 23229=>1000, 23230=>1000, 23231=>1000, 23233=>1000, 23234=>1000, 23236=>1000, 23238=>1000,
+ 23240=>1000, 23241=>1000, 23243=>1000, 23244=>1000, 23247=>1000, 23248=>1000, 23254=>1000, 23255=>1000, 23258=>1000, 23260=>1000, 23264=>1000, 23265=>1000, 23267=>1000, 23269=>1000, 23270=>1000, 23273=>1000,
+ 23274=>1000, 23278=>1000, 23285=>1000, 23286=>1000, 23290=>1000, 23291=>1000, 23293=>1000, 23296=>1000, 23297=>1000, 23304=>1000, 23305=>1000, 23307=>1000, 23308=>1000, 23318=>1000, 23319=>1000, 23321=>1000,
+ 23323=>1000, 23325=>1000, 23329=>1000, 23330=>1000, 23333=>1000, 23338=>1000, 23340=>1000, 23341=>1000, 23344=>1000, 23346=>1000, 23348=>1000, 23350=>1000, 23352=>1000, 23358=>1000, 23360=>1000, 23361=>1000,
+ 23363=>1000, 23365=>1000, 23371=>1000, 23372=>1000, 23376=>1000, 23377=>1000, 23378=>1000, 23380=>1000, 23381=>1000, 23382=>1000, 23383=>1000, 23384=>1000, 23386=>1000, 23387=>1000, 23388=>1000, 23389=>1000,
+ 23390=>1000, 23391=>1000, 23395=>1000, 23396=>1000, 23397=>1000, 23398=>1000, 23400=>1000, 23401=>1000, 23403=>1000, 23406=>1000, 23407=>1000, 23408=>1000, 23409=>1000, 23411=>1000, 23413=>1000, 23416=>1000,
+ 23418=>1000, 23420=>1000, 23421=>1000, 23422=>1000, 23423=>1000, 23424=>1000, 23425=>1000, 23427=>1000, 23428=>1000, 23429=>1000, 23430=>1000, 23431=>1000, 23432=>1000, 23433=>1000, 23434=>1000, 23435=>1000,
+ 23436=>1000, 23437=>1000, 23438=>1000, 23439=>1000, 23440=>1000, 23441=>1000, 23443=>1000, 23444=>1000, 23445=>1000, 23446=>1000, 23447=>1000, 23448=>1000, 23449=>1000, 23450=>1000, 23451=>1000, 23452=>1000,
+ 23453=>1000, 23455=>1000, 23458=>1000, 23459=>1000, 23460=>1000, 23461=>1000, 23462=>1000, 23464=>1000, 23465=>1000, 23468=>1000, 23469=>1000, 23470=>1000, 23471=>1000, 23472=>1000, 23473=>1000, 23474=>1000,
+ 23475=>1000, 23476=>1000, 23477=>1000, 23478=>1000, 23479=>1000, 23480=>1000, 23481=>1000, 23482=>1000, 23484=>1000, 23487=>1000, 23488=>1000, 23489=>1000, 23490=>1000, 23491=>1000, 23492=>1000, 23493=>1000,
+ 23494=>1000, 23495=>1000, 23497=>1000, 23500=>1000, 23501=>1000, 23503=>1000, 23504=>1000, 23506=>1000, 23507=>1000, 23508=>1000, 23510=>1000, 23511=>1000, 23512=>1000, 23513=>1000, 23514=>1000, 23515=>1000,
+ 23517=>1000, 23518=>1000, 23519=>1000, 23520=>1000, 23521=>1000, 23522=>1000, 23524=>1000, 23525=>1000, 23526=>1000, 23527=>1000, 23528=>1000, 23529=>1000, 23531=>1000, 23532=>1000, 23534=>1000, 23535=>1000,
+ 23536=>1000, 23537=>1000, 23539=>1000, 23540=>1000, 23541=>1000, 23542=>1000, 23544=>1000, 23546=>1000, 23549=>1000, 23550=>1000, 23551=>1000, 23553=>1000, 23554=>1000, 23556=>1000, 23557=>1000, 23558=>1000,
+ 23559=>1000, 23560=>1000, 23561=>1000, 23562=>1000, 23563=>1000, 23564=>1000, 23565=>1000, 23566=>1000, 23567=>1000, 23569=>1000, 23571=>1000, 23574=>1000, 23575=>1000, 23578=>1000, 23582=>1000, 23583=>1000,
+ 23584=>1000, 23586=>1000, 23587=>1000, 23588=>1000, 23590=>1000, 23592=>1000, 23593=>1000, 23595=>1000, 23596=>1000, 23597=>1000, 23598=>1000, 23600=>1000, 23601=>1000, 23602=>1000, 23605=>1000, 23606=>1000,
+ 23608=>1000, 23609=>1000, 23610=>1000, 23611=>1000, 23612=>1000, 23613=>1000, 23614=>1000, 23615=>1000, 23616=>1000, 23617=>1000, 23621=>1000, 23622=>1000, 23624=>1000, 23626=>1000, 23627=>1000, 23629=>1000,
+ 23630=>1000, 23631=>1000, 23632=>1000, 23633=>1000, 23635=>1000, 23637=>1000, 23641=>1000, 23642=>1000, 23644=>1000, 23646=>1000, 23648=>1000, 23649=>1000, 23650=>1000, 23651=>1000, 23652=>1000, 23653=>1000,
+ 23655=>1000, 23656=>1000, 23657=>1000, 23660=>1000, 23661=>1000, 23662=>1000, 23663=>1000, 23664=>1000, 23665=>1000, 23668=>1000, 23669=>1000, 23670=>1000, 23673=>1000, 23674=>1000, 23675=>1000, 23676=>1000,
+ 23677=>1000, 23687=>1000, 23688=>1000, 23690=>1000, 23692=>1000, 23695=>1000, 23696=>1000, 23697=>1000, 23698=>1000, 23700=>1000, 23709=>1000, 23711=>1000, 23712=>1000, 23713=>1000, 23714=>1000, 23715=>1000,
+ 23718=>1000, 23720=>1000, 23721=>1000, 23722=>1000, 23723=>1000, 23724=>1000, 23729=>1000, 23730=>1000, 23731=>1000, 23732=>1000, 23733=>1000, 23734=>1000, 23735=>1000, 23736=>1000, 23738=>1000, 23739=>1000,
+ 23740=>1000, 23742=>1000, 23749=>1000, 23751=>1000, 23753=>1000, 23755=>1000, 23762=>1000, 23767=>1000, 23769=>1000, 23773=>1000, 23776=>1000, 23777=>1000, 23784=>1000, 23785=>1000, 23786=>1000, 23789=>1000,
+ 23790=>1000, 23791=>1000, 23792=>1000, 23793=>1000, 23794=>1000, 23796=>1000, 23797=>1000, 23798=>1000, 23802=>1000, 23803=>1000, 23805=>1000, 23809=>1000, 23814=>1000, 23815=>1000, 23819=>1000, 23821=>1000,
+ 23822=>1000, 23825=>1000, 23826=>1000, 23828=>1000, 23829=>1000, 23830=>1000, 23831=>1000, 23832=>1000, 23833=>1000, 23834=>1000, 23835=>1000, 23839=>1000, 23842=>1000, 23843=>1000, 23844=>1000, 23846=>1000,
+ 23847=>1000, 23849=>1000, 23851=>1000, 23857=>1000, 23860=>1000, 23865=>1000, 23869=>1000, 23871=>1000, 23874=>1000, 23875=>1000, 23878=>1000, 23880=>1000, 23882=>1000, 23883=>1000, 23884=>1000, 23886=>1000,
+ 23888=>1000, 23889=>1000, 23890=>1000, 23893=>1000, 23897=>1000, 23900=>1000, 23903=>1000, 23904=>1000, 23905=>1000, 23906=>1000, 23908=>1000, 23913=>1000, 23914=>1000, 23916=>1000, 23917=>1000, 23919=>1000,
+ 23920=>1000, 23923=>1000, 23926=>1000, 23929=>1000, 23930=>1000, 23934=>1000, 23935=>1000, 23937=>1000, 23938=>1000, 23939=>1000, 23940=>1000, 23943=>1000, 23944=>1000, 23946=>1000, 23947=>1000, 23948=>1000,
+ 23952=>1000, 23954=>1000, 23955=>1000, 23956=>1000, 23957=>1000, 23961=>1000, 23963=>1000, 23965=>1000, 23967=>1000, 23968=>1000, 23970=>1000, 23975=>1000, 23979=>1000, 23980=>1000, 23982=>1000, 23984=>1000,
+ 23986=>1000, 23988=>1000, 23991=>1000, 23992=>1000, 23993=>1000, 23994=>1000, 23996=>1000, 23997=>1000, 24003=>1000, 24007=>1000, 24009=>1000, 24011=>1000, 24012=>1000, 24013=>1000, 24014=>1000, 24016=>1000,
+ 24018=>1000, 24019=>1000, 24022=>1000, 24024=>1000, 24025=>1000, 24027=>1000, 24029=>1000, 24030=>1000, 24032=>1000, 24033=>1000, 24035=>1000, 24036=>1000, 24037=>1000, 24038=>1000, 24039=>1000, 24040=>1000,
+ 24041=>1000, 24043=>1000, 24046=>1000, 24049=>1000, 24050=>1000, 24051=>1000, 24052=>1000, 24053=>1000, 24055=>1000, 24056=>1000, 24057=>1000, 24059=>1000, 24061=>1000, 24062=>1000, 24064=>1000, 24066=>1000,
+ 24067=>1000, 24070=>1000, 24071=>1000, 24075=>1000, 24076=>1000, 24077=>1000, 24081=>1000, 24082=>1000, 24084=>1000, 24085=>1000, 24086=>1000, 24088=>1000, 24089=>1000, 24090=>1000, 24091=>1000, 24093=>1000,
+ 24095=>1000, 24096=>1000, 24101=>1000, 24104=>1000, 24107=>1000, 24109=>1000, 24110=>1000, 24111=>1000, 24112=>1000, 24114=>1000, 24115=>1000, 24117=>1000, 24118=>1000, 24119=>1000, 24120=>1000, 24125=>1000,
+ 24126=>1000, 24128=>1000, 24131=>1000, 24132=>1000, 24133=>1000, 24135=>1000, 24137=>1000, 24139=>1000, 24140=>1000, 24142=>1000, 24144=>1000, 24145=>1000, 24148=>1000, 24149=>1000, 24150=>1000, 24151=>1000,
+ 24152=>1000, 24155=>1000, 24156=>1000, 24158=>1000, 24159=>1000, 24161=>1000, 24162=>1000, 24163=>1000, 24164=>1000, 24168=>1000, 24170=>1000, 24171=>1000, 24172=>1000, 24173=>1000, 24174=>1000, 24176=>1000,
+ 24178=>1000, 24179=>1000, 24180=>1000, 24181=>1000, 24182=>1000, 24184=>1000, 24185=>1000, 24186=>1000, 24187=>1000, 24188=>1000, 24189=>1000, 24190=>1000, 24191=>1000, 24192=>1000, 24193=>1000, 24195=>1000,
+ 24196=>1000, 24199=>1000, 24202=>1000, 24203=>1000, 24206=>1000, 24207=>1000, 24213=>1000, 24214=>1000, 24215=>1000, 24218=>1000, 24220=>1000, 24224=>1000, 24226=>1000, 24228=>1000, 24229=>1000, 24230=>1000,
+ 24231=>1000, 24232=>1000, 24234=>1000, 24235=>1000, 24236=>1000, 24237=>1000, 24241=>1000, 24243=>1000, 24245=>1000, 24246=>1000, 24247=>1000, 24248=>1000, 24253=>1000, 24254=>1000, 24255=>1000, 24257=>1000,
+ 24258=>1000, 24259=>1000, 24262=>1000, 24264=>1000, 24265=>1000, 24266=>1000, 24267=>1000, 24268=>1000, 24270=>1000, 24271=>1000, 24272=>1000, 24273=>1000, 24274=>1000, 24275=>1000, 24276=>1000, 24277=>1000,
+ 24278=>1000, 24282=>1000, 24283=>1000, 24284=>1000, 24285=>1000, 24286=>1000, 24287=>1000, 24288=>1000, 24289=>1000, 24290=>1000, 24291=>1000, 24293=>1000, 24296=>1000, 24297=>1000, 24299=>1000, 24300=>1000,
+ 24304=>1000, 24305=>1000, 24307=>1000, 24308=>1000, 24310=>1000, 24311=>1000, 24312=>1000, 24314=>1000, 24315=>1000, 24316=>1000, 24318=>1000, 24319=>1000, 24321=>1000, 24322=>1000, 24323=>1000, 24324=>1000,
+ 24326=>1000, 24327=>1000, 24328=>1000, 24329=>1000, 24330=>1000, 24331=>1000, 24332=>1000, 24333=>1000, 24334=>1000, 24335=>1000, 24336=>1000, 24337=>1000, 24339=>1000, 24340=>1000, 24341=>1000, 24342=>1000,
+ 24343=>1000, 24344=>1000, 24345=>1000, 24347=>1000, 24348=>1000, 24349=>1000, 24351=>1000, 24353=>1000, 24354=>1000, 24355=>1000, 24356=>1000, 24357=>1000, 24358=>1000, 24359=>1000, 24360=>1000, 24361=>1000,
+ 24363=>1000, 24364=>1000, 24365=>1000, 24366=>1000, 24367=>1000, 24368=>1000, 24369=>1000, 24372=>1000, 24373=>1000, 24374=>1000, 24375=>1000, 24376=>1000, 24379=>1000, 24380=>1000, 24381=>1000, 24382=>1000,
+ 24383=>1000, 24384=>1000, 24385=>1000, 24388=>1000, 24389=>1000, 24391=>1000, 24392=>1000, 24394=>1000, 24396=>1000, 24397=>1000, 24398=>1000, 24400=>1000, 24401=>1000, 24403=>1000, 24404=>1000, 24406=>1000,
+ 24407=>1000, 24408=>1000, 24409=>1000, 24411=>1000, 24412=>1000, 24413=>1000, 24416=>1000, 24417=>1000, 24418=>1000, 24419=>1000, 24420=>1000, 24422=>1000, 24423=>1000, 24425=>1000, 24426=>1000, 24427=>1000,
+ 24428=>1000, 24429=>1000, 24431=>1000, 24432=>1000, 24433=>1000, 24434=>1000, 24435=>1000, 24436=>1000, 24437=>1000, 24439=>1000, 24440=>1000, 24441=>1000, 24442=>1000, 24444=>1000, 24445=>1000, 24446=>1000,
+ 24447=>1000, 24448=>1000, 24449=>1000, 24450=>1000, 24451=>1000, 24452=>1000, 24453=>1000, 24455=>1000, 24456=>1000, 24457=>1000, 24458=>1000, 24459=>1000, 24460=>1000, 24461=>1000, 24463=>1000, 24464=>1000,
+ 24465=>1000, 24466=>1000, 24467=>1000, 24470=>1000, 24471=>1000, 24472=>1000, 24473=>1000, 24476=>1000, 24477=>1000, 24478=>1000, 24480=>1000, 24481=>1000, 24482=>1000, 24484=>1000, 24487=>1000, 24488=>1000,
+ 24489=>1000, 24490=>1000, 24491=>1000, 24492=>1000, 24493=>1000, 24494=>1000, 24495=>1000, 24496=>1000, 24497=>1000, 24499=>1000, 24500=>1000, 24503=>1000, 24504=>1000, 24505=>1000, 24508=>1000, 24509=>1000,
+ 24515=>1000, 24516=>1000, 24517=>1000, 24519=>1000, 24520=>1000, 24521=>1000, 24523=>1000, 24524=>1000, 24525=>1000, 24528=>1000, 24529=>1000, 24530=>1000, 24531=>1000, 24532=>1000, 24534=>1000, 24535=>1000,
+ 24536=>1000, 24537=>1000, 24540=>1000, 24541=>1000, 24542=>1000, 24544=>1000, 24545=>1000, 24546=>1000, 24548=>1000, 24552=>1000, 24553=>1000, 24554=>1000, 24555=>1000, 24556=>1000, 24557=>1000, 24558=>1000,
+ 24559=>1000, 24560=>1000, 24561=>1000, 24562=>1000, 24563=>1000, 24565=>1000, 24566=>1000, 24568=>1000, 24570=>1000, 24571=>1000, 24572=>1000, 24573=>1000, 24575=>1000, 24583=>1000, 24586=>1000, 24589=>1000,
+ 24590=>1000, 24591=>1000, 24592=>1000, 24594=>1000, 24595=>1000, 24596=>1000, 24597=>1000, 24598=>1000, 24599=>1000, 24600=>1000, 24601=>1000, 24602=>1000, 24603=>1000, 24604=>1000, 24605=>1000, 24607=>1000,
+ 24608=>1000, 24609=>1000, 24612=>1000, 24613=>1000, 24614=>1000, 24615=>1000, 24616=>1000, 24617=>1000, 24618=>1000, 24619=>1000, 24621=>1000, 24623=>1000, 24625=>1000, 24627=>1000, 24629=>1000, 24634=>1000,
+ 24640=>1000, 24641=>1000, 24642=>1000, 24643=>1000, 24646=>1000, 24647=>1000, 24648=>1000, 24649=>1000, 24650=>1000, 24651=>1000, 24652=>1000, 24653=>1000, 24656=>1000, 24657=>1000, 24658=>1000, 24660=>1000,
+ 24661=>1000, 24662=>1000, 24663=>1000, 24665=>1000, 24666=>1000, 24669=>1000, 24671=>1000, 24672=>1000, 24673=>1000, 24674=>1000, 24675=>1000, 24676=>1000, 24677=>1000, 24679=>1000, 24680=>1000, 24681=>1000,
+ 24682=>1000, 24683=>1000, 24684=>1000, 24685=>1000, 24687=>1000, 24688=>1000, 24689=>1000, 24693=>1000, 24695=>1000, 24702=>1000, 24703=>1000, 24705=>1000, 24706=>1000, 24707=>1000, 24708=>1000, 24709=>1000,
+ 24710=>1000, 24712=>1000, 24713=>1000, 24714=>1000, 24715=>1000, 24716=>1000, 24717=>1000, 24718=>1000, 24721=>1000, 24722=>1000, 24723=>1000, 24724=>1000, 24725=>1000, 24726=>1000, 24727=>1000, 24728=>1000,
+ 24730=>1000, 24731=>1000, 24733=>1000, 24734=>1000, 24735=>1000, 24736=>1000, 24738=>1000, 24739=>1000, 24740=>1000, 24741=>1000, 24742=>1000, 24743=>1000, 24744=>1000, 24745=>1000, 24746=>1000, 24752=>1000,
+ 24753=>1000, 24754=>1000, 24755=>1000, 24756=>1000, 24757=>1000, 24758=>1000, 24759=>1000, 24760=>1000, 24763=>1000, 24764=>1000, 24765=>1000, 24766=>1000, 24770=>1000, 24772=>1000, 24773=>1000, 24774=>1000,
+ 24775=>1000, 24776=>1000, 24777=>1000, 24778=>1000, 24779=>1000, 24782=>1000, 24783=>1000, 24785=>1000, 24787=>1000, 24788=>1000, 24789=>1000, 24792=>1000, 24793=>1000, 24794=>1000, 24795=>1000, 24796=>1000,
+ 24797=>1000, 24798=>1000, 24799=>1000, 24800=>1000, 24801=>1000, 24802=>1000, 24803=>1000, 24805=>1000, 24807=>1000, 24808=>1000, 24816=>1000, 24817=>1000, 24818=>1000, 24819=>1000, 24820=>1000, 24821=>1000,
+ 24822=>1000, 24823=>1000, 24824=>1000, 24825=>1000, 24826=>1000, 24827=>1000, 24828=>1000, 24829=>1000, 24832=>1000, 24833=>1000, 24834=>1000, 24835=>1000, 24838=>1000, 24839=>1000, 24840=>1000, 24841=>1000,
+ 24842=>1000, 24844=>1000, 24845=>1000, 24846=>1000, 24847=>1000, 24848=>1000, 24849=>1000, 24850=>1000, 24851=>1000, 24852=>1000, 24853=>1000, 24854=>1000, 24855=>1000, 24857=>1000, 24858=>1000, 24859=>1000,
+ 24860=>1000, 24862=>1000, 24863=>1000, 24864=>1000, 24865=>1000, 24866=>1000, 24871=>1000, 24872=>1000, 24874=>1000, 24875=>1000, 24876=>1000, 24880=>1000, 24881=>1000, 24884=>1000, 24885=>1000, 24886=>1000,
+ 24887=>1000, 24889=>1000, 24892=>1000, 24893=>1000, 24894=>1000, 24895=>1000, 24897=>1000, 24898=>1000, 24900=>1000, 24901=>1000, 24902=>1000, 24903=>1000, 24904=>1000, 24905=>1000, 24906=>1000, 24907=>1000,
+ 24908=>1000, 24909=>1000, 24910=>1000, 24915=>1000, 24917=>1000, 24920=>1000, 24921=>1000, 24922=>1000, 24925=>1000, 24926=>1000, 24927=>1000, 24928=>1000, 24930=>1000, 24931=>1000, 24933=>1000, 24935=>1000,
+ 24936=>1000, 24939=>1000, 24940=>1000, 24942=>1000, 24943=>1000, 24944=>1000, 24945=>1000, 24946=>1000, 24947=>1000, 24948=>1000, 24949=>1000, 24950=>1000, 24951=>1000, 24952=>1000, 24955=>1000, 24956=>1000,
+ 24958=>1000, 24959=>1000, 24960=>1000, 24961=>1000, 24962=>1000, 24963=>1000, 24964=>1000, 24967=>1000, 24970=>1000, 24971=>1000, 24973=>1000, 24974=>1000, 24976=>1000, 24977=>1000, 24978=>1000, 24979=>1000,
+ 24980=>1000, 24982=>1000, 24983=>1000, 24984=>1000, 24985=>1000, 24986=>1000, 24988=>1000, 24989=>1000, 24991=>1000, 24992=>1000, 24996=>1000, 24997=>1000, 24999=>1000, 25000=>1000, 25001=>1000, 25002=>1000,
+ 25003=>1000, 25004=>1000, 25005=>1000, 25006=>1000, 25010=>1000, 25014=>1000, 25016=>1000, 25017=>1000, 25018=>1000, 25020=>1000, 25022=>1000, 25024=>1000, 25025=>1000, 25026=>1000, 25027=>1000, 25030=>1000,
+ 25031=>1000, 25032=>1000, 25033=>1000, 25034=>1000, 25035=>1000, 25036=>1000, 25037=>1000, 25038=>1000, 25039=>1000, 25040=>1000, 25045=>1000, 25052=>1000, 25053=>1000, 25054=>1000, 25055=>1000, 25057=>1000,
+ 25058=>1000, 25059=>1000, 25061=>1000, 25062=>1000, 25063=>1000, 25065=>1000, 25068=>1000, 25069=>1000, 25071=>1000, 25074=>1000, 25076=>1000, 25078=>1000, 25079=>1000, 25080=>1000, 25082=>1000, 25084=>1000,
+ 25085=>1000, 25086=>1000, 25087=>1000, 25088=>1000, 25089=>1000, 25091=>1000, 25092=>1000, 25095=>1000, 25096=>1000, 25097=>1000, 25098=>1000, 25100=>1000, 25101=>1000, 25102=>1000, 25104=>1000, 25105=>1000,
+ 25106=>1000, 25107=>1000, 25108=>1000, 25109=>1000, 25110=>1000, 25114=>1000, 25115=>1000, 25116=>1000, 25117=>1000, 25118=>1000, 25119=>1000, 25120=>1000, 25121=>1000, 25122=>1000, 25123=>1000, 25126=>1000,
+ 25127=>1000, 25129=>1000, 25130=>1000, 25131=>1000, 25134=>1000, 25135=>1000, 25136=>1000, 25138=>1000, 25139=>1000, 25140=>1000, 25144=>1000, 25145=>1000, 25147=>1000, 25149=>1000, 25151=>1000, 25152=>1000,
+ 25153=>1000, 25154=>1000, 25155=>1000, 25156=>1000, 25158=>1000, 25159=>1000, 25160=>1000, 25161=>1000, 25163=>1000, 25164=>1000, 25165=>1000, 25166=>1000, 25168=>1000, 25169=>1000, 25170=>1000, 25171=>1000,
+ 25172=>1000, 25173=>1000, 25174=>1000, 25176=>1000, 25178=>1000, 25179=>1000, 25180=>1000, 25182=>1000, 25184=>1000, 25187=>1000, 25188=>1000, 25192=>1000, 25197=>1000, 25198=>1000, 25199=>1000, 25201=>1000,
+ 25203=>1000, 25206=>1000, 25209=>1000, 25210=>1000, 25212=>1000, 25213=>1000, 25214=>1000, 25215=>1000, 25216=>1000, 25218=>1000, 25219=>1000, 25220=>1000, 25225=>1000, 25226=>1000, 25229=>1000, 25230=>1000,
+ 25231=>1000, 25232=>1000, 25233=>1000, 25234=>1000, 25235=>1000, 25236=>1000, 25237=>1000, 25238=>1000, 25239=>1000, 25240=>1000, 25243=>1000, 25244=>1000, 25246=>1000, 25254=>1000, 25256=>1000, 25259=>1000,
+ 25260=>1000, 25265=>1000, 25267=>1000, 25269=>1000, 25270=>1000, 25271=>1000, 25273=>1000, 25274=>1000, 25275=>1000, 25276=>1000, 25277=>1000, 25278=>1000, 25279=>1000, 25282=>1000, 25284=>1000, 25285=>1000,
+ 25286=>1000, 25287=>1000, 25288=>1000, 25289=>1000, 25290=>1000, 25292=>1000, 25293=>1000, 25294=>1000, 25295=>1000, 25296=>1000, 25297=>1000, 25298=>1000, 25299=>1000, 25300=>1000, 25301=>1000, 25302=>1000,
+ 25303=>1000, 25304=>1000, 25305=>1000, 25306=>1000, 25307=>1000, 25308=>1000, 25309=>1000, 25312=>1000, 25313=>1000, 25322=>1000, 25324=>1000, 25325=>1000, 25326=>1000, 25327=>1000, 25329=>1000, 25330=>1000,
+ 25331=>1000, 25332=>1000, 25333=>1000, 25334=>1000, 25335=>1000, 25340=>1000, 25341=>1000, 25342=>1000, 25343=>1000, 25345=>1000, 25346=>1000, 25347=>1000, 25348=>1000, 25351=>1000, 25352=>1000, 25353=>1000,
+ 25354=>1000, 25355=>1000, 25356=>1000, 25357=>1000, 25360=>1000, 25361=>1000, 25363=>1000, 25366=>1000, 25368=>1000, 25369=>1000, 25375=>1000, 25383=>1000, 25384=>1000, 25385=>1000, 25386=>1000, 25387=>1000,
+ 25389=>1000, 25391=>1000, 25397=>1000, 25398=>1000, 25401=>1000, 25402=>1000, 25404=>1000, 25405=>1000, 25406=>1000, 25407=>1000, 25409=>1000, 25410=>1000, 25411=>1000, 25412=>1000, 25414=>1000, 25417=>1000,
+ 25418=>1000, 25419=>1000, 25420=>1000, 25421=>1000, 25422=>1000, 25423=>1000, 25424=>1000, 25426=>1000, 25427=>1000, 25428=>1000, 25429=>1000, 25431=>1000, 25432=>1000, 25435=>1000, 25436=>1000, 25445=>1000,
+ 25446=>1000, 25447=>1000, 25448=>1000, 25449=>1000, 25451=>1000, 25452=>1000, 25453=>1000, 25454=>1000, 25457=>1000, 25458=>1000, 25460=>1000, 25461=>1000, 25462=>1000, 25463=>1000, 25464=>1000, 25466=>1000,
+ 25467=>1000, 25468=>1000, 25469=>1000, 25471=>1000, 25472=>1000, 25474=>1000, 25475=>1000, 25476=>1000, 25479=>1000, 25480=>1000, 25481=>1000, 25482=>1000, 25484=>1000, 25486=>1000, 25487=>1000, 25488=>1000,
+ 25490=>1000, 25492=>1000, 25493=>1000, 25494=>1000, 25496=>1000, 25497=>1000, 25498=>1000, 25499=>1000, 25502=>1000, 25503=>1000, 25504=>1000, 25505=>1000, 25506=>1000, 25507=>1000, 25508=>1000, 25509=>1000,
+ 25510=>1000, 25511=>1000, 25512=>1000, 25513=>1000, 25514=>1000, 25515=>1000, 25516=>1000, 25517=>1000, 25518=>1000, 25519=>1000, 25522=>1000, 25524=>1000, 25525=>1000, 25531=>1000, 25533=>1000, 25534=>1000,
+ 25536=>1000, 25537=>1000, 25539=>1000, 25540=>1000, 25541=>1000, 25542=>1000, 25544=>1000, 25545=>1000, 25550=>1000, 25551=>1000, 25552=>1000, 25553=>1000, 25554=>1000, 25555=>1000, 25556=>1000, 25557=>1000,
+ 25558=>1000, 25562=>1000, 25563=>1000, 25564=>1000, 25568=>1000, 25569=>1000, 25571=>1000, 25573=>1000, 25577=>1000, 25578=>1000, 25580=>1000, 25582=>1000, 25586=>1000, 25587=>1000, 25588=>1000, 25589=>1000,
+ 25590=>1000, 25592=>1000, 25593=>1000, 25594=>1000, 25606=>1000, 25609=>1000, 25610=>1000, 25613=>1000, 25615=>1000, 25616=>1000, 25618=>1000, 25619=>1000, 25620=>1000, 25622=>1000, 25623=>1000, 25624=>1000,
+ 25628=>1000, 25630=>1000, 25632=>1000, 25634=>1000, 25636=>1000, 25637=>1000, 25638=>1000, 25640=>1000, 25641=>1000, 25642=>1000, 25644=>1000, 25645=>1000, 25647=>1000, 25648=>1000, 25652=>1000, 25653=>1000,
+ 25654=>1000, 25658=>1000, 25661=>1000, 25662=>1000, 25663=>1000, 25666=>1000, 25675=>1000, 25678=>1000, 25679=>1000, 25681=>1000, 25682=>1000, 25683=>1000, 25684=>1000, 25688=>1000, 25690=>1000, 25691=>1000,
+ 25692=>1000, 25693=>1000, 25695=>1000, 25696=>1000, 25697=>1000, 25699=>1000, 25703=>1000, 25705=>1000, 25709=>1000, 25711=>1000, 25715=>1000, 25716=>1000, 25718=>1000, 25720=>1000, 25722=>1000, 25723=>1000,
+ 25725=>1000, 25731=>1000, 25733=>1000, 25735=>1000, 25736=>1000, 25743=>1000, 25744=>1000, 25745=>1000, 25746=>1000, 25747=>1000, 25749=>1000, 25752=>1000, 25753=>1000, 25754=>1000, 25755=>1000, 25757=>1000,
+ 25758=>1000, 25759=>1000, 25761=>1000, 25763=>1000, 25764=>1000, 25765=>1000, 25766=>1000, 25768=>1000, 25769=>1000, 25771=>1000, 25772=>1000, 25773=>1000, 25774=>1000, 25776=>1000, 25778=>1000, 25779=>1000,
+ 25785=>1000, 25787=>1000, 25788=>1000, 25789=>1000, 25790=>1000, 25791=>1000, 25793=>1000, 25794=>1000, 25796=>1000, 25797=>1000, 25799=>1000, 25801=>1000, 25802=>1000, 25803=>1000, 25804=>1000, 25805=>1000,
+ 25806=>1000, 25808=>1000, 25809=>1000, 25810=>1000, 25812=>1000, 25813=>1000, 25815=>1000, 25816=>1000, 25818=>1000, 25824=>1000, 25825=>1000, 25826=>1000, 25827=>1000, 25828=>1000, 25829=>1000, 25830=>1000,
+ 25831=>1000, 25833=>1000, 25834=>1000, 25836=>1000, 25837=>1000, 25839=>1000, 25840=>1000, 25841=>1000, 25842=>1000, 25844=>1000, 25845=>1000, 25846=>1000, 25847=>1000, 25850=>1000, 25851=>1000, 25853=>1000,
+ 25854=>1000, 25855=>1000, 25856=>1000, 25857=>1000, 25860=>1000, 25861=>1000, 25864=>1000, 25865=>1000, 25866=>1000, 25871=>1000, 25875=>1000, 25876=>1000, 25878=>1000, 25880=>1000, 25881=>1000, 25883=>1000,
+ 25884=>1000, 25885=>1000, 25886=>1000, 25887=>1000, 25890=>1000, 25891=>1000, 25892=>1000, 25894=>1000, 25897=>1000, 25898=>1000, 25899=>1000, 25900=>1000, 25902=>1000, 25903=>1000, 25905=>1000, 25908=>1000,
+ 25909=>1000, 25910=>1000, 25911=>1000, 25912=>1000, 25913=>1000, 25914=>1000, 25915=>1000, 25916=>1000, 25917=>1000, 25918=>1000, 25919=>1000, 25923=>1000, 25925=>1000, 25927=>1000, 25928=>1000, 25929=>1000,
+ 25933=>1000, 25934=>1000, 25935=>1000, 25936=>1000, 25937=>1000, 25938=>1000, 25940=>1000, 25941=>1000, 25942=>1000, 25943=>1000, 25944=>1000, 25945=>1000, 25949=>1000, 25950=>1000, 25951=>1000, 25952=>1000,
+ 25954=>1000, 25955=>1000, 25958=>1000, 25959=>1000, 25963=>1000, 25964=>1000, 25968=>1000, 25970=>1000, 25972=>1000, 25973=>1000, 25975=>1000, 25976=>1000, 25978=>1000, 25981=>1000, 25985=>1000, 25986=>1000,
+ 25987=>1000, 25989=>1000, 25991=>1000, 25992=>1000, 25993=>1000, 25994=>1000, 25996=>1000, 25998=>1000, 26000=>1000, 26001=>1000, 26002=>1000, 26005=>1000, 26007=>1000, 26008=>1000, 26009=>1000, 26011=>1000,
+ 26012=>1000, 26013=>1000, 26015=>1000, 26016=>1000, 26017=>1000, 26019=>1000, 26020=>1000, 26021=>1000, 26022=>1000, 26023=>1000, 26027=>1000, 26028=>1000, 26029=>1000, 26030=>1000, 26031=>1000, 26032=>1000,
+ 26034=>1000, 26035=>1000, 26036=>1000, 26039=>1000, 26041=>1000, 26044=>1000, 26045=>1000, 26047=>1000, 26049=>1000, 26050=>1000, 26051=>1000, 26052=>1000, 26053=>1000, 26054=>1000, 26056=>1000, 26057=>1000,
+ 26059=>1000, 26060=>1000, 26062=>1000, 26063=>1000, 26064=>1000, 26066=>1000, 26068=>1000, 26070=>1000, 26071=>1000, 26072=>1000, 26073=>1000, 26075=>1000, 26079=>1000, 26080=>1000, 26081=>1000, 26082=>1000,
+ 26085=>1000, 26086=>1000, 26087=>1000, 26088=>1000, 26089=>1000, 26092=>1000, 26093=>1000, 26096=>1000, 26097=>1000, 26098=>1000, 26100=>1000, 26101=>1000, 26105=>1000, 26106=>1000, 26107=>1000, 26110=>1000,
+ 26111=>1000, 26112=>1000, 26114=>1000, 26115=>1000, 26116=>1000, 26118=>1000, 26119=>1000, 26120=>1000, 26121=>1000, 26122=>1000, 26124=>1000, 26125=>1000, 26126=>1000, 26127=>1000, 26129=>1000, 26130=>1000,
+ 26131=>1000, 26132=>1000, 26133=>1000, 26134=>1000, 26140=>1000, 26141=>1000, 26142=>1000, 26143=>1000, 26144=>1000, 26145=>1000, 26146=>1000, 26147=>1000, 26148=>1000, 26149=>1000, 26150=>1000, 26151=>1000,
+ 26152=>1000, 26153=>1000, 26154=>1000, 26155=>1000, 26156=>1000, 26157=>1000, 26158=>1000, 26159=>1000, 26160=>1000, 26161=>1000, 26163=>1000, 26164=>1000, 26165=>1000, 26166=>1000, 26167=>1000, 26169=>1000,
+ 26172=>1000, 26175=>1000, 26176=>1000, 26177=>1000, 26178=>1000, 26179=>1000, 26180=>1000, 26181=>1000, 26182=>1000, 26185=>1000, 26186=>1000, 26187=>1000, 26188=>1000, 26190=>1000, 26191=>1000, 26193=>1000,
+ 26194=>1000, 26199=>1000, 26200=>1000, 26201=>1000, 26203=>1000, 26204=>1000, 26205=>1000, 26206=>1000, 26207=>1000, 26208=>1000, 26209=>1000, 26210=>1000, 26212=>1000, 26213=>1000, 26214=>1000, 26215=>1000,
+ 26216=>1000, 26217=>1000, 26218=>1000, 26219=>1000, 26220=>1000, 26222=>1000, 26223=>1000, 26224=>1000, 26227=>1000, 26228=>1000, 26229=>1000, 26230=>1000, 26231=>1000, 26232=>1000, 26233=>1000, 26234=>1000,
+ 26235=>1000, 26236=>1000, 26238=>1000, 26239=>1000, 26240=>1000, 26241=>1000, 26243=>1000, 26244=>1000, 26247=>1000, 26248=>1000, 26249=>1000, 26251=>1000, 26252=>1000, 26253=>1000, 26254=>1000, 26256=>1000,
+ 26257=>1000, 26258=>1000, 26262=>1000, 26263=>1000, 26264=>1000, 26265=>1000, 26266=>1000, 26267=>1000, 26268=>1000, 26269=>1000, 26271=>1000, 26272=>1000, 26274=>1000, 26276=>1000, 26278=>1000, 26283=>1000,
+ 26285=>1000, 26286=>1000, 26289=>1000, 26290=>1000, 26292=>1000, 26293=>1000, 26296=>1000, 26297=>1000, 26299=>1000, 26300=>1000, 26302=>1000, 26303=>1000, 26304=>1000, 26305=>1000, 26306=>1000, 26307=>1000,
+ 26308=>1000, 26311=>1000, 26312=>1000, 26313=>1000, 26316=>1000, 26318=>1000, 26319=>1000, 26324=>1000, 26326=>1000, 26329=>1000, 26330=>1000, 26331=>1000, 26332=>1000, 26333=>1000, 26335=>1000, 26336=>1000,
+ 26342=>1000, 26344=>1000, 26345=>1000, 26347=>1000, 26348=>1000, 26350=>1000, 26352=>1000, 26354=>1000, 26355=>1000, 26356=>1000, 26357=>1000, 26359=>1000, 26360=>1000, 26361=>1000, 26362=>1000, 26363=>1000,
+ 26364=>1000, 26365=>1000, 26366=>1000, 26367=>1000, 26368=>1000, 26371=>1000, 26373=>1000, 26375=>1000, 26376=>1000, 26377=>1000, 26379=>1000, 26381=>1000, 26382=>1000, 26383=>1000, 26387=>1000, 26388=>1000,
+ 26389=>1000, 26390=>1000, 26391=>1000, 26393=>1000, 26395=>1000, 26396=>1000, 26397=>1000, 26398=>1000, 26399=>1000, 26400=>1000, 26402=>1000, 26406=>1000, 26407=>1000, 26408=>1000, 26410=>1000, 26411=>1000,
+ 26412=>1000, 26413=>1000, 26414=>1000, 26417=>1000, 26419=>1000, 26420=>1000, 26422=>1000, 26423=>1000, 26424=>1000, 26426=>1000, 26429=>1000, 26430=>1000, 26431=>1000, 26433=>1000, 26437=>1000, 26438=>1000,
+ 26439=>1000, 26440=>1000, 26441=>1000, 26444=>1000, 26446=>1000, 26447=>1000, 26448=>1000, 26449=>1000, 26451=>1000, 26452=>1000, 26453=>1000, 26454=>1000, 26457=>1000, 26460=>1000, 26461=>1000, 26462=>1000,
+ 26463=>1000, 26464=>1000, 26465=>1000, 26466=>1000, 26467=>1000, 26468=>1000, 26469=>1000, 26470=>1000, 26474=>1000, 26476=>1000, 26477=>1000, 26478=>1000, 26479=>1000, 26480=>1000, 26481=>1000, 26482=>1000,
+ 26483=>1000, 26484=>1000, 26485=>1000, 26486=>1000, 26487=>1000, 26491=>1000, 26492=>1000, 26494=>1000, 26495=>1000, 26497=>1000, 26500=>1000, 26501=>1000, 26503=>1000, 26505=>1000, 26507=>1000, 26508=>1000,
+ 26510=>1000, 26511=>1000, 26512=>1000, 26513=>1000, 26515=>1000, 26517=>1000, 26518=>1000, 26519=>1000, 26520=>1000, 26521=>1000, 26522=>1000, 26523=>1000, 26524=>1000, 26525=>1000, 26528=>1000, 26529=>1000,
+ 26530=>1000, 26534=>1000, 26537=>1000, 26543=>1000, 26544=>1000, 26545=>1000, 26546=>1000, 26547=>1000, 26548=>1000, 26549=>1000, 26550=>1000, 26551=>1000, 26552=>1000, 26553=>1000, 26555=>1000, 26556=>1000,
+ 26557=>1000, 26560=>1000, 26561=>1000, 26562=>1000, 26563=>1000, 26564=>1000, 26565=>1000, 26566=>1000, 26568=>1000, 26569=>1000, 26570=>1000, 26574=>1000, 26575=>1000, 26576=>1000, 26577=>1000, 26578=>1000,
+ 26579=>1000, 26580=>1000, 26583=>1000, 26584=>1000, 26585=>1000, 26586=>1000, 26588=>1000, 26589=>1000, 26590=>1000, 26593=>1000, 26594=>1000, 26596=>1000, 26598=>1000, 26599=>1000, 26601=>1000, 26604=>1000,
+ 26606=>1000, 26607=>1000, 26608=>1000, 26609=>1000, 26610=>1000, 26611=>1000, 26612=>1000, 26613=>1000, 26614=>1000, 26615=>1000, 26617=>1000, 26619=>1000, 26622=>1000, 26623=>1000, 26625=>1000, 26626=>1000,
+ 26627=>1000, 26628=>1000, 26643=>1000, 26644=>1000, 26646=>1000, 26647=>1000, 26649=>1000, 26653=>1000, 26654=>1000, 26655=>1000, 26657=>1000, 26658=>1000, 26663=>1000, 26664=>1000, 26665=>1000, 26666=>1000,
+ 26667=>1000, 26668=>1000, 26669=>1000, 26671=>1000, 26672=>1000, 26673=>1000, 26674=>1000, 26675=>1000, 26676=>1000, 26680=>1000, 26681=>1000, 26683=>1000, 26684=>1000, 26685=>1000, 26687=>1000, 26688=>1000,
+ 26689=>1000, 26690=>1000, 26691=>1000, 26692=>1000, 26693=>1000, 26694=>1000, 26696=>1000, 26698=>1000, 26700=>1000, 26701=>1000, 26702=>1000, 26704=>1000, 26705=>1000, 26706=>1000, 26707=>1000, 26708=>1000,
+ 26709=>1000, 26711=>1000, 26712=>1000, 26713=>1000, 26715=>1000, 26716=>1000, 26717=>1000, 26719=>1000, 26723=>1000, 26727=>1000, 26731=>1000, 26734=>1000, 26735=>1000, 26736=>1000, 26737=>1000, 26738=>1000,
+ 26740=>1000, 26741=>1000, 26742=>1000, 26743=>1000, 26745=>1000, 26746=>1000, 26747=>1000, 26748=>1000, 26750=>1000, 26751=>1000, 26753=>1000, 26754=>1000, 26755=>1000, 26756=>1000, 26757=>1000, 26758=>1000,
+ 26760=>1000, 26765=>1000, 26767=>1000, 26771=>1000, 26772=>1000, 26774=>1000, 26775=>1000, 26776=>1000, 26778=>1000, 26779=>1000, 26780=>1000, 26781=>1000, 26783=>1000, 26784=>1000, 26785=>1000, 26786=>1000,
+ 26787=>1000, 26789=>1000, 26790=>1000, 26791=>1000, 26792=>1000, 26793=>1000, 26794=>1000, 26797=>1000, 26798=>1000, 26799=>1000, 26800=>1000, 26801=>1000, 26802=>1000, 26803=>1000, 26805=>1000, 26806=>1000,
+ 26809=>1000, 26810=>1000, 26811=>1000, 26812=>1000, 26820=>1000, 26821=>1000, 26822=>1000, 26824=>1000, 26825=>1000, 26826=>1000, 26827=>1000, 26828=>1000, 26829=>1000, 26831=>1000, 26832=>1000, 26833=>1000,
+ 26834=>1000, 26835=>1000, 26836=>1000, 26837=>1000, 26838=>1000, 26839=>1000, 26840=>1000, 26841=>1000, 26842=>1000, 26844=>1000, 26845=>1000, 26847=>1000, 26848=>1000, 26849=>1000, 26851=>1000, 26853=>1000,
+ 26855=>1000, 26856=>1000, 26858=>1000, 26859=>1000, 26860=>1000, 26861=>1000, 26862=>1000, 26863=>1000, 26864=>1000, 26865=>1000, 26866=>1000, 26869=>1000, 26870=>1000, 26873=>1000, 26874=>1000, 26875=>1000,
+ 26876=>1000, 26877=>1000, 26880=>1000, 26881=>1000, 26884=>1000, 26885=>1000, 26886=>1000, 26888=>1000, 26889=>1000, 26890=>1000, 26891=>1000, 26892=>1000, 26893=>1000, 26894=>1000, 26895=>1000, 26896=>1000,
+ 26897=>1000, 26898=>1000, 26899=>1000, 26902=>1000, 26903=>1000, 26905=>1000, 26906=>1000, 26907=>1000, 26908=>1000, 26913=>1000, 26914=>1000, 26915=>1000, 26917=>1000, 26918=>1000, 26920=>1000, 26922=>1000,
+ 26928=>1000, 26929=>1000, 26931=>1000, 26932=>1000, 26933=>1000, 26934=>1000, 26936=>1000, 26937=>1000, 26939=>1000, 26941=>1000, 26943=>1000, 26946=>1000, 26949=>1000, 26953=>1000, 26954=>1000, 26958=>1000,
+ 26963=>1000, 26964=>1000, 26965=>1000, 26967=>1000, 26969=>1000, 26970=>1000, 26971=>1000, 26972=>1000, 26973=>1000, 26974=>1000, 26976=>1000, 26977=>1000, 26978=>1000, 26979=>1000, 26980=>1000, 26981=>1000,
+ 26982=>1000, 26984=>1000, 26985=>1000, 26986=>1000, 26987=>1000, 26988=>1000, 26989=>1000, 26990=>1000, 26991=>1000, 26992=>1000, 26993=>1000, 26994=>1000, 26995=>1000, 26996=>1000, 26997=>1000, 26999=>1000,
+ 27000=>1000, 27001=>1000, 27002=>1000, 27003=>1000, 27004=>1000, 27005=>1000, 27006=>1000, 27007=>1000, 27008=>1000, 27009=>1000, 27010=>1000, 27018=>1000, 27021=>1000, 27022=>1000, 27025=>1000, 27026=>1000,
+ 27028=>1000, 27029=>1000, 27030=>1000, 27032=>1000, 27035=>1000, 27036=>1000, 27040=>1000, 27041=>1000, 27045=>1000, 27046=>1000, 27047=>1000, 27048=>1000, 27051=>1000, 27053=>1000, 27054=>1000, 27055=>1000,
+ 27057=>1000, 27058=>1000, 27060=>1000, 27063=>1000, 27064=>1000, 27066=>1000, 27067=>1000, 27068=>1000, 27070=>1000, 27071=>1000, 27073=>1000, 27075=>1000, 27077=>1000, 27079=>1000, 27080=>1000, 27082=>1000,
+ 27083=>1000, 27084=>1000, 27085=>1000, 27086=>1000, 27088=>1000, 27089=>1000, 27091=>1000, 27094=>1000, 27095=>1000, 27096=>1000, 27097=>1000, 27101=>1000, 27102=>1000, 27106=>1000, 27109=>1000, 27111=>1000,
+ 27112=>1000, 27115=>1000, 27117=>1000, 27118=>1000, 27119=>1000, 27121=>1000, 27122=>1000, 27123=>1000, 27125=>1000, 27129=>1000, 27131=>1000, 27133=>1000, 27134=>1000, 27135=>1000, 27136=>1000, 27137=>1000,
+ 27138=>1000, 27139=>1000, 27141=>1000, 27146=>1000, 27147=>1000, 27148=>1000, 27151=>1000, 27153=>1000, 27154=>1000, 27155=>1000, 27156=>1000, 27157=>1000, 27159=>1000, 27161=>1000, 27162=>1000, 27163=>1000,
+ 27165=>1000, 27166=>1000, 27167=>1000, 27168=>1000, 27169=>1000, 27170=>1000, 27171=>1000, 27172=>1000, 27176=>1000, 27177=>1000, 27178=>1000, 27179=>1000, 27182=>1000, 27184=>1000, 27186=>1000, 27188=>1000,
+ 27189=>1000, 27190=>1000, 27191=>1000, 27192=>1000, 27193=>1000, 27194=>1000, 27195=>1000, 27197=>1000, 27198=>1000, 27199=>1000, 27204=>1000, 27205=>1000, 27206=>1000, 27207=>1000, 27208=>1000, 27209=>1000,
+ 27210=>1000, 27211=>1000, 27214=>1000, 27216=>1000, 27217=>1000, 27218=>1000, 27221=>1000, 27222=>1000, 27224=>1000, 27225=>1000, 27227=>1000, 27231=>1000, 27233=>1000, 27234=>1000, 27236=>1000, 27238=>1000,
+ 27239=>1000, 27242=>1000, 27243=>1000, 27249=>1000, 27250=>1000, 27251=>1000, 27256=>1000, 27262=>1000, 27263=>1000, 27264=>1000, 27265=>1000, 27267=>1000, 27268=>1000, 27270=>1000, 27271=>1000, 27273=>1000,
+ 27275=>1000, 27277=>1000, 27278=>1000, 27280=>1000, 27281=>1000, 27287=>1000, 27291=>1000, 27292=>1000, 27293=>1000, 27294=>1000, 27295=>1000, 27296=>1000, 27298=>1000, 27299=>1000, 27301=>1000, 27306=>1000,
+ 27307=>1000, 27308=>1000, 27310=>1000, 27311=>1000, 27312=>1000, 27313=>1000, 27315=>1000, 27316=>1000, 27320=>1000, 27323=>1000, 27325=>1000, 27326=>1000, 27327=>1000, 27329=>1000, 27330=>1000, 27331=>1000,
+ 27334=>1000, 27336=>1000, 27337=>1000, 27340=>1000, 27344=>1000, 27345=>1000, 27347=>1000, 27348=>1000, 27349=>1000, 27350=>1000, 27354=>1000, 27355=>1000, 27356=>1000, 27357=>1000, 27358=>1000, 27359=>1000,
+ 27362=>1000, 27364=>1000, 27367=>1000, 27368=>1000, 27370=>1000, 27372=>1000, 27376=>1000, 27377=>1000, 27378=>1000, 27386=>1000, 27387=>1000, 27388=>1000, 27389=>1000, 27394=>1000, 27395=>1000, 27396=>1000,
+ 27397=>1000, 27398=>1000, 27399=>1000, 27401=>1000, 27402=>1000, 27407=>1000, 27408=>1000, 27409=>1000, 27410=>1000, 27414=>1000, 27415=>1000, 27419=>1000, 27421=>1000, 27422=>1000, 27423=>1000, 27424=>1000,
+ 27425=>1000, 27427=>1000, 27428=>1000, 27431=>1000, 27432=>1000, 27435=>1000, 27436=>1000, 27439=>1000, 27442=>1000, 27445=>1000, 27446=>1000, 27447=>1000, 27448=>1000, 27449=>1000, 27450=>1000, 27451=>1000,
+ 27453=>1000, 27454=>1000, 27455=>1000, 27459=>1000, 27462=>1000, 27463=>1000, 27465=>1000, 27466=>1000, 27468=>1000, 27469=>1000, 27470=>1000, 27472=>1000, 27474=>1000, 27475=>1000, 27476=>1000, 27478=>1000,
+ 27480=>1000, 27481=>1000, 27483=>1000, 27485=>1000, 27487=>1000, 27488=>1000, 27489=>1000, 27490=>1000, 27491=>1000, 27492=>1000, 27494=>1000, 27495=>1000, 27497=>1000, 27498=>1000, 27499=>1000, 27502=>1000,
+ 27503=>1000, 27504=>1000, 27507=>1000, 27508=>1000, 27509=>1000, 27512=>1000, 27513=>1000, 27515=>1000, 27517=>1000, 27518=>1000, 27519=>1000, 27520=>1000, 27522=>1000, 27523=>1000, 27524=>1000, 27525=>1000,
+ 27526=>1000, 27529=>1000, 27530=>1000, 27531=>1000, 27533=>1000, 27541=>1000, 27542=>1000, 27543=>1000, 27544=>1000, 27547=>1000, 27550=>1000, 27551=>1000, 27552=>1000, 27554=>1000, 27555=>1000, 27556=>1000,
+ 27560=>1000, 27561=>1000, 27562=>1000, 27563=>1000, 27564=>1000, 27565=>1000, 27566=>1000, 27567=>1000, 27568=>1000, 27569=>1000, 27570=>1000, 27571=>1000, 27572=>1000, 27573=>1000, 27575=>1000, 27576=>1000,
+ 27577=>1000, 27578=>1000, 27579=>1000, 27580=>1000, 27581=>1000, 27582=>1000, 27583=>1000, 27584=>1000, 27587=>1000, 27588=>1000, 27589=>1000, 27590=>1000, 27593=>1000, 27595=>1000, 27596=>1000, 27597=>1000,
+ 27598=>1000, 27602=>1000, 27603=>1000, 27604=>1000, 27606=>1000, 27608=>1000, 27610=>1000, 27611=>1000, 27615=>1000, 27617=>1000, 27619=>1000, 27622=>1000, 27623=>1000, 27627=>1000, 27628=>1000, 27630=>1000,
+ 27631=>1000, 27633=>1000, 27635=>1000, 27639=>1000, 27641=>1000, 27647=>1000, 27650=>1000, 27652=>1000, 27653=>1000, 27656=>1000, 27657=>1000, 27661=>1000, 27662=>1000, 27663=>1000, 27664=>1000, 27665=>1000,
+ 27666=>1000, 27667=>1000, 27668=>1000, 27671=>1000, 27673=>1000, 27675=>1000, 27679=>1000, 27683=>1000, 27684=>1000, 27686=>1000, 27687=>1000, 27688=>1000, 27692=>1000, 27694=>1000, 27699=>1000, 27700=>1000,
+ 27701=>1000, 27702=>1000, 27703=>1000, 27704=>1000, 27706=>1000, 27707=>1000, 27710=>1000, 27711=>1000, 27712=>1000, 27713=>1000, 27714=>1000, 27722=>1000, 27723=>1000, 27725=>1000, 27726=>1000, 27727=>1000,
+ 27728=>1000, 27730=>1000, 27732=>1000, 27733=>1000, 27735=>1000, 27737=>1000, 27738=>1000, 27739=>1000, 27740=>1000, 27741=>1000, 27742=>1000, 27743=>1000, 27744=>1000, 27746=>1000, 27751=>1000, 27752=>1000,
+ 27754=>1000, 27755=>1000, 27757=>1000, 27759=>1000, 27760=>1000, 27762=>1000, 27763=>1000, 27764=>1000, 27766=>1000, 27768=>1000, 27769=>1000, 27770=>1000, 27771=>1000, 27773=>1000, 27774=>1000, 27777=>1000,
+ 27778=>1000, 27779=>1000, 27781=>1000, 27782=>1000, 27783=>1000, 27784=>1000, 27785=>1000, 27788=>1000, 27789=>1000, 27792=>1000, 27794=>1000, 27795=>1000, 27796=>1000, 27797=>1000, 27798=>1000, 27799=>1000,
+ 27800=>1000, 27801=>1000, 27802=>1000, 27803=>1000, 27804=>1000, 27807=>1000, 27809=>1000, 27810=>1000, 27819=>1000, 27822=>1000, 27824=>1000, 27825=>1000, 27826=>1000, 27827=>1000, 27828=>1000, 27832=>1000,
+ 27833=>1000, 27834=>1000, 27835=>1000, 27836=>1000, 27837=>1000, 27838=>1000, 27839=>1000, 27841=>1000, 27842=>1000, 27844=>1000, 27845=>1000, 27846=>1000, 27849=>1000, 27850=>1000, 27852=>1000, 27853=>1000,
+ 27855=>1000, 27856=>1000, 27857=>1000, 27858=>1000, 27859=>1000, 27860=>1000, 27861=>1000, 27862=>1000, 27863=>1000, 27865=>1000, 27866=>1000, 27867=>1000, 27868=>1000, 27869=>1000, 27872=>1000, 27873=>1000,
+ 27874=>1000, 27875=>1000, 27877=>1000, 27879=>1000, 27880=>1000, 27881=>1000, 27882=>1000, 27883=>1000, 27884=>1000, 27886=>1000, 27887=>1000, 27888=>1000, 27889=>1000, 27890=>1000, 27891=>1000, 27892=>1000,
+ 27908=>1000, 27911=>1000, 27914=>1000, 27915=>1000, 27916=>1000, 27918=>1000, 27919=>1000, 27921=>1000, 27922=>1000, 27923=>1000, 27927=>1000, 27929=>1000, 27930=>1000, 27931=>1000, 27934=>1000, 27935=>1000,
+ 27941=>1000, 27942=>1000, 27943=>1000, 27944=>1000, 27945=>1000, 27946=>1000, 27947=>1000, 27950=>1000, 27951=>1000, 27953=>1000, 27954=>1000, 27955=>1000, 27957=>1000, 27958=>1000, 27960=>1000, 27961=>1000,
+ 27963=>1000, 27964=>1000, 27965=>1000, 27966=>1000, 27967=>1000, 27969=>1000, 27972=>1000, 27973=>1000, 27991=>1000, 27993=>1000, 27994=>1000, 27996=>1000, 27998=>1000, 27999=>1000, 28001=>1000, 28003=>1000,
+ 28004=>1000, 28005=>1000, 28006=>1000, 28007=>1000, 28009=>1000, 28010=>1000, 28012=>1000, 28014=>1000, 28015=>1000, 28016=>1000, 28020=>1000, 28023=>1000, 28024=>1000, 28025=>1000, 28028=>1000, 28034=>1000,
+ 28037=>1000, 28039=>1000, 28040=>1000, 28044=>1000, 28046=>1000, 28049=>1000, 28050=>1000, 28051=>1000, 28052=>1000, 28053=>1000, 28054=>1000, 28055=>1000, 28056=>1000, 28057=>1000, 28059=>1000, 28060=>1000,
+ 28074=>1000, 28076=>1000, 28079=>1000, 28082=>1000, 28084=>1000, 28085=>1000, 28087=>1000, 28088=>1000, 28089=>1000, 28092=>1000, 28093=>1000, 28095=>1000, 28096=>1000, 28100=>1000, 28101=>1000, 28102=>1000,
+ 28103=>1000, 28104=>1000, 28106=>1000, 28107=>1000, 28108=>1000, 28110=>1000, 28111=>1000, 28113=>1000, 28114=>1000, 28117=>1000, 28118=>1000, 28120=>1000, 28121=>1000, 28123=>1000, 28125=>1000, 28126=>1000,
+ 28127=>1000, 28128=>1000, 28129=>1000, 28130=>1000, 28132=>1000, 28133=>1000, 28134=>1000, 28136=>1000, 28137=>1000, 28138=>1000, 28139=>1000, 28140=>1000, 28142=>1000, 28143=>1000, 28144=>1000, 28145=>1000,
+ 28146=>1000, 28147=>1000, 28148=>1000, 28149=>1000, 28150=>1000, 28151=>1000, 28152=>1000, 28153=>1000, 28154=>1000, 28155=>1000, 28156=>1000, 28160=>1000, 28164=>1000, 28165=>1000, 28167=>1000, 28168=>1000,
+ 28169=>1000, 28170=>1000, 28171=>1000, 28179=>1000, 28181=>1000, 28185=>1000, 28186=>1000, 28187=>1000, 28189=>1000, 28190=>1000, 28191=>1000, 28192=>1000, 28193=>1000, 28194=>1000, 28195=>1000, 28196=>1000,
+ 28197=>1000, 28198=>1000, 28199=>1000, 28201=>1000, 28203=>1000, 28204=>1000, 28205=>1000, 28206=>1000, 28207=>1000, 28210=>1000, 28214=>1000, 28216=>1000, 28217=>1000, 28218=>1000, 28219=>1000, 28220=>1000,
+ 28222=>1000, 28227=>1000, 28228=>1000, 28229=>1000, 28232=>1000, 28233=>1000, 28234=>1000, 28235=>1000, 28237=>1000, 28238=>1000, 28239=>1000, 28241=>1000, 28242=>1000, 28243=>1000, 28244=>1000, 28246=>1000,
+ 28247=>1000, 28248=>1000, 28251=>1000, 28252=>1000, 28253=>1000, 28254=>1000, 28255=>1000, 28258=>1000, 28259=>1000, 28263=>1000, 28264=>1000, 28267=>1000, 28270=>1000, 28271=>1000, 28274=>1000, 28275=>1000,
+ 28278=>1000, 28283=>1000, 28285=>1000, 28286=>1000, 28287=>1000, 28288=>1000, 28290=>1000, 28300=>1000, 28301=>1000, 28303=>1000, 28304=>1000, 28307=>1000, 28310=>1000, 28312=>1000, 28313=>1000, 28316=>1000,
+ 28317=>1000, 28319=>1000, 28320=>1000, 28322=>1000, 28325=>1000, 28327=>1000, 28330=>1000, 28333=>1000, 28334=>1000, 28335=>1000, 28337=>1000, 28338=>1000, 28339=>1000, 28342=>1000, 28343=>1000, 28346=>1000,
+ 28347=>1000, 28349=>1000, 28351=>1000, 28352=>1000, 28353=>1000, 28354=>1000, 28355=>1000, 28356=>1000, 28357=>1000, 28359=>1000, 28360=>1000, 28361=>1000, 28362=>1000, 28363=>1000, 28364=>1000, 28365=>1000,
+ 28366=>1000, 28367=>1000, 28369=>1000, 28371=>1000, 28372=>1000, 28373=>1000, 28381=>1000, 28382=>1000, 28395=>1000, 28396=>1000, 28397=>1000, 28398=>1000, 28399=>1000, 28402=>1000, 28404=>1000, 28407=>1000,
+ 28408=>1000, 28409=>1000, 28411=>1000, 28413=>1000, 28414=>1000, 28415=>1000, 28417=>1000, 28418=>1000, 28420=>1000, 28422=>1000, 28424=>1000, 28425=>1000, 28426=>1000, 28428=>1000, 28429=>1000, 28431=>1000,
+ 28433=>1000, 28435=>1000, 28436=>1000, 28437=>1000, 28438=>1000, 28440=>1000, 28442=>1000, 28443=>1000, 28448=>1000, 28450=>1000, 28451=>1000, 28454=>1000, 28457=>1000, 28458=>1000, 28459=>1000, 28460=>1000,
+ 28461=>1000, 28463=>1000, 28464=>1000, 28465=>1000, 28466=>1000, 28467=>1000, 28470=>1000, 28472=>1000, 28475=>1000, 28476=>1000, 28478=>1000, 28479=>1000, 28481=>1000, 28485=>1000, 28495=>1000, 28497=>1000,
+ 28498=>1000, 28499=>1000, 28500=>1000, 28503=>1000, 28504=>1000, 28505=>1000, 28506=>1000, 28507=>1000, 28508=>1000, 28509=>1000, 28510=>1000, 28511=>1000, 28513=>1000, 28514=>1000, 28516=>1000, 28518=>1000,
+ 28520=>1000, 28524=>1000, 28525=>1000, 28526=>1000, 28527=>1000, 28528=>1000, 28532=>1000, 28536=>1000, 28538=>1000, 28540=>1000, 28541=>1000, 28542=>1000, 28544=>1000, 28545=>1000, 28546=>1000, 28547=>1000,
+ 28548=>1000, 28550=>1000, 28551=>1000, 28552=>1000, 28555=>1000, 28556=>1000, 28557=>1000, 28558=>1000, 28560=>1000, 28561=>1000, 28562=>1000, 28563=>1000, 28564=>1000, 28566=>1000, 28567=>1000, 28570=>1000,
+ 28575=>1000, 28576=>1000, 28577=>1000, 28579=>1000, 28580=>1000, 28581=>1000, 28582=>1000, 28583=>1000, 28584=>1000, 28586=>1000, 28590=>1000, 28591=>1000, 28592=>1000, 28593=>1000, 28595=>1000, 28597=>1000,
+ 28598=>1000, 28601=>1000, 28604=>1000, 28608=>1000, 28609=>1000, 28610=>1000, 28611=>1000, 28613=>1000, 28614=>1000, 28615=>1000, 28616=>1000, 28618=>1000, 28628=>1000, 28629=>1000, 28632=>1000, 28634=>1000,
+ 28635=>1000, 28638=>1000, 28639=>1000, 28640=>1000, 28641=>1000, 28644=>1000, 28648=>1000, 28649=>1000, 28651=>1000, 28652=>1000, 28654=>1000, 28655=>1000, 28656=>1000, 28657=>1000, 28659=>1000, 28661=>1000,
+ 28662=>1000, 28665=>1000, 28666=>1000, 28668=>1000, 28669=>1000, 28670=>1000, 28672=>1000, 28673=>1000, 28677=>1000, 28678=>1000, 28679=>1000, 28681=>1000, 28683=>1000, 28685=>1000, 28687=>1000, 28689=>1000,
+ 28693=>1000, 28695=>1000, 28696=>1000, 28698=>1000, 28699=>1000, 28701=>1000, 28702=>1000, 28703=>1000, 28704=>1000, 28707=>1000, 28710=>1000, 28711=>1000, 28712=>1000, 28716=>1000, 28719=>1000, 28720=>1000,
+ 28722=>1000, 28724=>1000, 28727=>1000, 28729=>1000, 28732=>1000, 28734=>1000, 28739=>1000, 28740=>1000, 28744=>1000, 28745=>1000, 28746=>1000, 28747=>1000, 28748=>1000, 28750=>1000, 28753=>1000, 28756=>1000,
+ 28757=>1000, 28760=>1000, 28765=>1000, 28766=>1000, 28771=>1000, 28772=>1000, 28773=>1000, 28779=>1000, 28780=>1000, 28782=>1000, 28783=>1000, 28784=>1000, 28789=>1000, 28790=>1000, 28792=>1000, 28796=>1000,
+ 28797=>1000, 28798=>1000, 28801=>1000, 28805=>1000, 28806=>1000, 28809=>1000, 28810=>1000, 28814=>1000, 28818=>1000, 28820=>1000, 28821=>1000, 28822=>1000, 28823=>1000, 28824=>1000, 28825=>1000, 28827=>1000,
+ 28836=>1000, 28843=>1000, 28844=>1000, 28845=>1000, 28846=>1000, 28847=>1000, 28848=>1000, 28849=>1000, 28851=>1000, 28852=>1000, 28855=>1000, 28856=>1000, 28857=>1000, 28858=>1000, 28859=>1000, 28872=>1000,
+ 28874=>1000, 28875=>1000, 28879=>1000, 28881=>1000, 28883=>1000, 28884=>1000, 28885=>1000, 28886=>1000, 28888=>1000, 28889=>1000, 28892=>1000, 28893=>1000, 28895=>1000, 28900=>1000, 28913=>1000, 28921=>1000,
+ 28922=>1000, 28925=>1000, 28931=>1000, 28932=>1000, 28933=>1000, 28934=>1000, 28935=>1000, 28937=>1000, 28939=>1000, 28940=>1000, 28943=>1000, 28948=>1000, 28953=>1000, 28954=>1000, 28956=>1000, 28958=>1000,
+ 28960=>1000, 28961=>1000, 28966=>1000, 28971=>1000, 28973=>1000, 28975=>1000, 28976=>1000, 28977=>1000, 28982=>1000, 28984=>1000, 28988=>1000, 28993=>1000, 28997=>1000, 28998=>1000, 28999=>1000, 29001=>1000,
+ 29002=>1000, 29003=>1000, 29004=>1000, 29006=>1000, 29008=>1000, 29010=>1000, 29013=>1000, 29014=>1000, 29015=>1000, 29017=>1000, 29018=>1000, 29020=>1000, 29022=>1000, 29024=>1000, 29026=>1000, 29028=>1000,
+ 29029=>1000, 29030=>1000, 29031=>1000, 29032=>1000, 29033=>1000, 29036=>1000, 29038=>1000, 29049=>1000, 29053=>1000, 29056=>1000, 29060=>1000, 29061=>1000, 29063=>1000, 29064=>1000, 29066=>1000, 29068=>1000,
+ 29071=>1000, 29074=>1000, 29076=>1000, 29077=>1000, 29081=>1000, 29082=>1000, 29083=>1000, 29087=>1000, 29088=>1000, 29090=>1000, 29096=>1000, 29100=>1000, 29103=>1000, 29104=>1000, 29105=>1000, 29106=>1000,
+ 29107=>1000, 29113=>1000, 29114=>1000, 29118=>1000, 29119=>1000, 29120=>1000, 29121=>1000, 29123=>1000, 29124=>1000, 29128=>1000, 29129=>1000, 29131=>1000, 29132=>1000, 29134=>1000, 29136=>1000, 29138=>1000,
+ 29139=>1000, 29140=>1000, 29141=>1000, 29142=>1000, 29143=>1000, 29145=>1000, 29146=>1000, 29148=>1000, 29151=>1000, 29152=>1000, 29157=>1000, 29158=>1000, 29159=>1000, 29164=>1000, 29165=>1000, 29166=>1000,
+ 29173=>1000, 29176=>1000, 29177=>1000, 29179=>1000, 29180=>1000, 29182=>1000, 29183=>1000, 29184=>1000, 29190=>1000, 29191=>1000, 29192=>1000, 29193=>1000, 29197=>1000, 29200=>1000, 29203=>1000, 29207=>1000,
+ 29210=>1000, 29211=>1000, 29213=>1000, 29215=>1000, 29220=>1000, 29224=>1000, 29226=>1000, 29227=>1000, 29228=>1000, 29229=>1000, 29231=>1000, 29232=>1000, 29234=>1000, 29236=>1000, 29237=>1000, 29238=>1000,
+ 29240=>1000, 29241=>1000, 29242=>1000, 29243=>1000, 29244=>1000, 29245=>1000, 29246=>1000, 29247=>1000, 29248=>1000, 29249=>1000, 29250=>1000, 29251=>1000, 29253=>1000, 29254=>1000, 29255=>1000, 29256=>1000,
+ 29259=>1000, 29260=>1000, 29262=>1000, 29263=>1000, 29264=>1000, 29266=>1000, 29267=>1000, 29269=>1000, 29270=>1000, 29272=>1000, 29273=>1000, 29274=>1000, 29275=>1000, 29276=>1000, 29277=>1000, 29278=>1000,
+ 29279=>1000, 29280=>1000, 29281=>1000, 29282=>1000, 29283=>1000, 29287=>1000, 29288=>1000, 29289=>1000, 29291=>1000, 29294=>1000, 29295=>1000, 29297=>1000, 29298=>1000, 29300=>1000, 29303=>1000, 29304=>1000,
+ 29305=>1000, 29307=>1000, 29308=>1000, 29309=>1000, 29310=>1000, 29311=>1000, 29312=>1000, 29313=>1000, 29314=>1000, 29316=>1000, 29319=>1000, 29321=>1000, 29325=>1000, 29326=>1000, 29330=>1000, 29331=>1000,
+ 29334=>1000, 29339=>1000, 29344=>1000, 29346=>1000, 29351=>1000, 29352=>1000, 29356=>1000, 29357=>1000, 29358=>1000, 29359=>1000, 29361=>1000, 29362=>1000, 29364=>1000, 29366=>1000, 29369=>1000, 29374=>1000,
+ 29377=>1000, 29378=>1000, 29379=>1000, 29380=>1000, 29382=>1000, 29383=>1000, 29385=>1000, 29388=>1000, 29390=>1000, 29392=>1000, 29394=>1000, 29397=>1000, 29398=>1000, 29399=>1000, 29400=>1000, 29401=>1000,
+ 29403=>1000, 29407=>1000, 29408=>1000, 29409=>1000, 29410=>1000, 29413=>1000, 29417=>1000, 29420=>1000, 29421=>1000, 29427=>1000, 29428=>1000, 29431=>1000, 29432=>1000, 29433=>1000, 29434=>1000, 29435=>1000,
+ 29436=>1000, 29437=>1000, 29438=>1000, 29442=>1000, 29444=>1000, 29445=>1000, 29447=>1000, 29450=>1000, 29451=>1000, 29453=>1000, 29458=>1000, 29459=>1000, 29462=>1000, 29463=>1000, 29464=>1000, 29465=>1000,
+ 29467=>1000, 29468=>1000, 29469=>1000, 29470=>1000, 29471=>1000, 29474=>1000, 29476=>1000, 29477=>1000, 29479=>1000, 29480=>1000, 29481=>1000, 29482=>1000, 29483=>1000, 29484=>1000, 29486=>1000, 29487=>1000,
+ 29489=>1000, 29490=>1000, 29492=>1000, 29493=>1000, 29494=>1000, 29495=>1000, 29498=>1000, 29499=>1000, 29501=>1000, 29502=>1000, 29503=>1000, 29507=>1000, 29508=>1000, 29509=>1000, 29517=>1000, 29518=>1000,
+ 29519=>1000, 29520=>1000, 29522=>1000, 29526=>1000, 29527=>1000, 29528=>1000, 29533=>1000, 29534=>1000, 29535=>1000, 29536=>1000, 29539=>1000, 29542=>1000, 29543=>1000, 29544=>1000, 29545=>1000, 29546=>1000,
+ 29547=>1000, 29548=>1000, 29550=>1000, 29551=>1000, 29552=>1000, 29553=>1000, 29554=>1000, 29557=>1000, 29559=>1000, 29560=>1000, 29561=>1000, 29562=>1000, 29563=>1000, 29564=>1000, 29568=>1000, 29569=>1000,
+ 29571=>1000, 29572=>1000, 29573=>1000, 29574=>1000, 29575=>1000, 29577=>1000, 29579=>1000, 29582=>1000, 29584=>1000, 29587=>1000, 29589=>1000, 29590=>1000, 29591=>1000, 29592=>1000, 29596=>1000, 29598=>1000,
+ 29599=>1000, 29600=>1000, 29602=>1000, 29605=>1000, 29606=>1000, 29609=>1000, 29610=>1000, 29611=>1000, 29613=>1000, 29618=>1000, 29619=>1000, 29621=>1000, 29623=>1000, 29625=>1000, 29627=>1000, 29628=>1000,
+ 29629=>1000, 29631=>1000, 29632=>1000, 29634=>1000, 29637=>1000, 29638=>1000, 29640=>1000, 29641=>1000, 29642=>1000, 29643=>1000, 29644=>1000, 29645=>1000, 29646=>1000, 29647=>1000, 29650=>1000, 29651=>1000,
+ 29654=>1000, 29657=>1000, 29661=>1000, 29662=>1000, 29664=>1000, 29665=>1000, 29667=>1000, 29669=>1000, 29670=>1000, 29671=>1000, 29673=>1000, 29674=>1000, 29677=>1000, 29678=>1000, 29681=>1000, 29684=>1000,
+ 29685=>1000, 29687=>1000, 29688=>1000, 29689=>1000, 29690=>1000, 29691=>1000, 29693=>1000, 29694=>1000, 29695=>1000, 29696=>1000, 29697=>1000, 29699=>1000, 29700=>1000, 29701=>1000, 29702=>1000, 29703=>1000,
+ 29705=>1000, 29706=>1000, 29713=>1000, 29722=>1000, 29723=>1000, 29730=>1000, 29732=>1000, 29733=>1000, 29734=>1000, 29736=>1000, 29737=>1000, 29738=>1000, 29739=>1000, 29740=>1000, 29741=>1000, 29742=>1000,
+ 29743=>1000, 29744=>1000, 29745=>1000, 29746=>1000, 29747=>1000, 29748=>1000, 29749=>1000, 29750=>1000, 29753=>1000, 29754=>1000, 29759=>1000, 29760=>1000, 29761=>1000, 29763=>1000, 29764=>1000, 29766=>1000,
+ 29767=>1000, 29771=>1000, 29773=>1000, 29777=>1000, 29778=>1000, 29781=>1000, 29783=>1000, 29785=>1000, 29786=>1000, 29787=>1000, 29788=>1000, 29789=>1000, 29790=>1000, 29791=>1000, 29792=>1000, 29794=>1000,
+ 29795=>1000, 29796=>1000, 29798=>1000, 29799=>1000, 29800=>1000, 29801=>1000, 29802=>1000, 29803=>1000, 29805=>1000, 29806=>1000, 29807=>1000, 29808=>1000, 29809=>1000, 29810=>1000, 29811=>1000, 29814=>1000,
+ 29822=>1000, 29824=>1000, 29825=>1000, 29827=>1000, 29829=>1000, 29830=>1000, 29831=>1000, 29833=>1000, 29835=>1000, 29839=>1000, 29840=>1000, 29841=>1000, 29842=>1000, 29848=>1000, 29849=>1000, 29850=>1000,
+ 29852=>1000, 29854=>1000, 29855=>1000, 29856=>1000, 29857=>1000, 29858=>1000, 29859=>1000, 29862=>1000, 29863=>1000, 29864=>1000, 29865=>1000, 29866=>1000, 29867=>1000, 29870=>1000, 29871=>1000, 29872=>1000,
+ 29873=>1000, 29874=>1000, 29877=>1000, 29881=>1000, 29883=>1000, 29885=>1000, 29887=>1000, 29896=>1000, 29897=>1000, 29898=>1000, 29900=>1000, 29903=>1000, 29904=>1000, 29907=>1000, 29908=>1000, 29912=>1000,
+ 29914=>1000, 29915=>1000, 29916=>1000, 29918=>1000, 29919=>1000, 29920=>1000, 29922=>1000, 29923=>1000, 29924=>1000, 29926=>1000, 29927=>1000, 29928=>1000, 29929=>1000, 29930=>1000, 29931=>1000, 29934=>1000,
+ 29935=>1000, 29936=>1000, 29937=>1000, 29938=>1000, 29940=>1000, 29942=>1000, 29943=>1000, 29944=>1000, 29946=>1000, 29947=>1000, 29948=>1000, 29951=>1000, 29953=>1000, 29955=>1000, 29956=>1000, 29957=>1000,
+ 29958=>1000, 29964=>1000, 29965=>1000, 29966=>1000, 29969=>1000, 29970=>1000, 29971=>1000, 29973=>1000, 29974=>1000, 29975=>1000, 29976=>1000, 29978=>1000, 29980=>1000, 29982=>1000, 29983=>1000, 29984=>1000,
+ 29985=>1000, 29987=>1000, 29988=>1000, 29989=>1000, 29990=>1000, 29991=>1000, 29992=>1000, 29993=>1000, 29994=>1000, 29995=>1000, 29996=>1000, 29999=>1000, 30000=>1000, 30001=>1000, 30002=>1000, 30003=>1000,
+ 30006=>1000, 30007=>1000, 30008=>1000, 30009=>1000, 30010=>1000, 30011=>1000, 30012=>1000, 30013=>1000, 30014=>1000, 30015=>1000, 30016=>1000, 30019=>1000, 30020=>1000, 30022=>1000, 30023=>1000, 30024=>1000,
+ 30025=>1000, 30026=>1000, 30027=>1000, 30028=>1000, 30029=>1000, 30030=>1000, 30031=>1000, 30032=>1000, 30033=>1000, 30034=>1000, 30036=>1000, 30039=>1000, 30041=>1000, 30042=>1000, 30043=>1000, 30044=>1000,
+ 30045=>1000, 30046=>1000, 30047=>1000, 30048=>1000, 30049=>1000, 30050=>1000, 30052=>1000, 30053=>1000, 30054=>1000, 30055=>1000, 30057=>1000, 30058=>1000, 30059=>1000, 30061=>1000, 30063=>1000, 30064=>1000,
+ 30065=>1000, 30067=>1000, 30068=>1000, 30070=>1000, 30071=>1000, 30072=>1000, 30073=>1000, 30074=>1000, 30075=>1000, 30076=>1000, 30077=>1000, 30078=>1000, 30079=>1000, 30081=>1000, 30082=>1000, 30085=>1000,
+ 30086=>1000, 30087=>1000, 30089=>1000, 30090=>1000, 30091=>1000, 30094=>1000, 30095=>1000, 30096=>1000, 30097=>1000, 30098=>1000, 30099=>1000, 30100=>1000, 30101=>1000, 30105=>1000, 30106=>1000, 30108=>1000,
+ 30109=>1000, 30114=>1000, 30115=>1000, 30116=>1000, 30117=>1000, 30123=>1000, 30129=>1000, 30130=>1000, 30131=>1000, 30132=>1000, 30133=>1000, 30136=>1000, 30137=>1000, 30138=>1000, 30140=>1000, 30141=>1000,
+ 30142=>1000, 30143=>1000, 30144=>1000, 30145=>1000, 30146=>1000, 30147=>1000, 30148=>1000, 30149=>1000, 30150=>1000, 30151=>1000, 30154=>1000, 30156=>1000, 30157=>1000, 30158=>1000, 30159=>1000, 30162=>1000,
+ 30164=>1000, 30165=>1000, 30167=>1000, 30168=>1000, 30169=>1000, 30171=>1000, 30172=>1000, 30174=>1000, 30175=>1000, 30176=>1000, 30177=>1000, 30178=>1000, 30179=>1000, 30180=>1000, 30183=>1000, 30185=>1000,
+ 30188=>1000, 30190=>1000, 30191=>1000, 30192=>1000, 30193=>1000, 30194=>1000, 30195=>1000, 30196=>1000, 30201=>1000, 30202=>1000, 30204=>1000, 30206=>1000, 30207=>1000, 30208=>1000, 30209=>1000, 30210=>1000,
+ 30211=>1000, 30212=>1000, 30215=>1000, 30216=>1000, 30217=>1000, 30218=>1000, 30219=>1000, 30220=>1000, 30221=>1000, 30223=>1000, 30226=>1000, 30227=>1000, 30229=>1000, 30230=>1000, 30233=>1000, 30235=>1000,
+ 30236=>1000, 30237=>1000, 30238=>1000, 30239=>1000, 30240=>1000, 30241=>1000, 30242=>1000, 30243=>1000, 30244=>1000, 30245=>1000, 30246=>1000, 30247=>1000, 30249=>1000, 30253=>1000, 30256=>1000, 30258=>1000,
+ 30259=>1000, 30260=>1000, 30261=>1000, 30264=>1000, 30265=>1000, 30266=>1000, 30267=>1000, 30268=>1000, 30272=>1000, 30273=>1000, 30274=>1000, 30275=>1000, 30276=>1000, 30277=>1000, 30278=>1000, 30279=>1000,
+ 30280=>1000, 30281=>1000, 30282=>1000, 30283=>1000, 30284=>1000, 30290=>1000, 30293=>1000, 30294=>1000, 30296=>1000, 30297=>1000, 30300=>1000, 30303=>1000, 30305=>1000, 30306=>1000, 30308=>1000, 30309=>1000,
+ 30311=>1000, 30312=>1000, 30313=>1000, 30314=>1000, 30316=>1000, 30317=>1000, 30318=>1000, 30319=>1000, 30320=>1000, 30321=>1000, 30322=>1000, 30324=>1000, 30326=>1000, 30328=>1000, 30330=>1000, 30331=>1000,
+ 30332=>1000, 30333=>1000, 30334=>1000, 30336=>1000, 30337=>1000, 30338=>1000, 30339=>1000, 30340=>1000, 30341=>1000, 30342=>1000, 30343=>1000, 30344=>1000, 30347=>1000, 30348=>1000, 30349=>1000, 30350=>1000,
+ 30352=>1000, 30355=>1000, 30357=>1000, 30358=>1000, 30361=>1000, 30362=>1000, 30363=>1000, 30364=>1000, 30365=>1000, 30366=>1000, 30367=>1000, 30368=>1000, 30370=>1000, 30371=>1000, 30372=>1000, 30373=>1000,
+ 30374=>1000, 30375=>1000, 30376=>1000, 30378=>1000, 30381=>1000, 30382=>1000, 30384=>1000, 30388=>1000, 30391=>1000, 30392=>1000, 30393=>1000, 30394=>1000, 30397=>1000, 30399=>1000, 30401=>1000, 30402=>1000,
+ 30403=>1000, 30405=>1000, 30406=>1000, 30408=>1000, 30409=>1000, 30410=>1000, 30411=>1000, 30412=>1000, 30413=>1000, 30414=>1000, 30418=>1000, 30420=>1000, 30422=>1000, 30423=>1000, 30425=>1000, 30427=>1000,
+ 30428=>1000, 30430=>1000, 30431=>1000, 30432=>1000, 30433=>1000, 30435=>1000, 30436=>1000, 30437=>1000, 30438=>1000, 30439=>1000, 30440=>1000, 30442=>1000, 30444=>1000, 30446=>1000, 30448=>1000, 30449=>1000,
+ 30450=>1000, 30452=>1000, 30454=>1000, 30456=>1000, 30457=>1000, 30459=>1000, 30460=>1000, 30462=>1000, 30464=>1000, 30465=>1000, 30468=>1000, 30470=>1000, 30471=>1000, 30472=>1000, 30473=>1000, 30474=>1000,
+ 30475=>1000, 30476=>1000, 30478=>1000, 30482=>1000, 30484=>1000, 30485=>1000, 30487=>1000, 30489=>1000, 30490=>1000, 30491=>1000, 30492=>1000, 30494=>1000, 30495=>1000, 30496=>1000, 30498=>1000, 30500=>1000,
+ 30501=>1000, 30502=>1000, 30504=>1000, 30505=>1000, 30509=>1000, 30510=>1000, 30511=>1000, 30516=>1000, 30517=>1000, 30518=>1000, 30519=>1000, 30520=>1000, 30521=>1000, 30522=>1000, 30524=>1000, 30525=>1000,
+ 30526=>1000, 30528=>1000, 30530=>1000, 30533=>1000, 30534=>1000, 30535=>1000, 30538=>1000, 30541=>1000, 30542=>1000, 30543=>1000, 30546=>1000, 30550=>1000, 30551=>1000, 30554=>1000, 30555=>1000, 30556=>1000,
+ 30558=>1000, 30559=>1000, 30560=>1000, 30561=>1000, 30562=>1000, 30563=>1000, 30564=>1000, 30565=>1000, 30566=>1000, 30567=>1000, 30568=>1000, 30570=>1000, 30571=>1000, 30572=>1000, 30576=>1000, 30578=>1000,
+ 30579=>1000, 30580=>1000, 30585=>1000, 30586=>1000, 30589=>1000, 30590=>1000, 30591=>1000, 30592=>1000, 30596=>1000, 30603=>1000, 30604=>1000, 30605=>1000, 30606=>1000, 30609=>1000, 30612=>1000, 30613=>1000,
+ 30614=>1000, 30618=>1000, 30622=>1000, 30623=>1000, 30624=>1000, 30626=>1000, 30629=>1000, 30631=>1000, 30634=>1000, 30636=>1000, 30637=>1000, 30638=>1000, 30639=>1000, 30640=>1000, 30641=>1000, 30643=>1000,
+ 30645=>1000, 30646=>1000, 30649=>1000, 30651=>1000, 30652=>1000, 30653=>1000, 30654=>1000, 30655=>1000, 30659=>1000, 30663=>1000, 30665=>1000, 30669=>1000, 30673=>1000, 30674=>1000, 30677=>1000, 30679=>1000,
+ 30681=>1000, 30682=>1000, 30683=>1000, 30684=>1000, 30686=>1000, 30687=>1000, 30688=>1000, 30690=>1000, 30691=>1000, 30692=>1000, 30693=>1000, 30694=>1000, 30695=>1000, 30697=>1000, 30698=>1000, 30700=>1000,
+ 30701=>1000, 30702=>1000, 30703=>1000, 30704=>1000, 30705=>1000, 30707=>1000, 30708=>1000, 30712=>1000, 30715=>1000, 30716=>1000, 30722=>1000, 30725=>1000, 30726=>1000, 30729=>1000, 30732=>1000, 30733=>1000,
+ 30734=>1000, 30737=>1000, 30738=>1000, 30740=>1000, 30741=>1000, 30749=>1000, 30752=>1000, 30753=>1000, 30754=>1000, 30755=>1000, 30757=>1000, 30758=>1000, 30759=>1000, 30765=>1000, 30766=>1000, 30768=>1000,
+ 30770=>1000, 30772=>1000, 30773=>1000, 30775=>1000, 30778=>1000, 30783=>1000, 30787=>1000, 30788=>1000, 30789=>1000, 30791=>1000, 30792=>1000, 30796=>1000, 30798=>1000, 30802=>1000, 30812=>1000, 30813=>1000,
+ 30814=>1000, 30816=>1000, 30817=>1000, 30819=>1000, 30820=>1000, 30824=>1000, 30826=>1000, 30827=>1000, 30828=>1000, 30830=>1000, 30831=>1000, 30834=>1000, 30836=>1000, 30842=>1000, 30844=>1000, 30846=>1000,
+ 30849=>1000, 30854=>1000, 30855=>1000, 30858=>1000, 30860=>1000, 30861=>1000, 30862=>1000, 30863=>1000, 30865=>1000, 30867=>1000, 30868=>1000, 30869=>1000, 30871=>1000, 30872=>1000, 30874=>1000, 30877=>1000,
+ 30878=>1000, 30879=>1000, 30881=>1000, 30883=>1000, 30884=>1000, 30887=>1000, 30888=>1000, 30889=>1000, 30890=>1000, 30892=>1000, 30893=>1000, 30895=>1000, 30896=>1000, 30897=>1000, 30898=>1000, 30899=>1000,
+ 30901=>1000, 30906=>1000, 30907=>1000, 30908=>1000, 30909=>1000, 30910=>1000, 30911=>1000, 30913=>1000, 30917=>1000, 30918=>1000, 30919=>1000, 30920=>1000, 30921=>1000, 30922=>1000, 30923=>1000, 30924=>1000,
+ 30926=>1000, 30928=>1000, 30929=>1000, 30930=>1000, 30931=>1000, 30932=>1000, 30933=>1000, 30934=>1000, 30938=>1000, 30939=>1000, 30943=>1000, 30944=>1000, 30945=>1000, 30948=>1000, 30950=>1000, 30951=>1000,
+ 30952=>1000, 30954=>1000, 30956=>1000, 30959=>1000, 30962=>1000, 30963=>1000, 30964=>1000, 30966=>1000, 30967=>1000, 30970=>1000, 30971=>1000, 30973=>1000, 30975=>1000, 30976=>1000, 30977=>1000, 30982=>1000,
+ 30983=>1000, 30988=>1000, 30990=>1000, 30992=>1000, 30993=>1000, 30994=>1000, 31001=>1000, 31002=>1000, 31004=>1000, 31006=>1000, 31007=>1000, 31008=>1000, 31013=>1000, 31014=>1000, 31015=>1000, 31017=>1000,
+ 31018=>1000, 31019=>1000, 31020=>1000, 31021=>1000, 31024=>1000, 31025=>1000, 31028=>1000, 31029=>1000, 31034=>1000, 31035=>1000, 31036=>1000, 31037=>1000, 31038=>1000, 31039=>1000, 31040=>1000, 31041=>1000,
+ 31044=>1000, 31045=>1000, 31046=>1000, 31047=>1000, 31048=>1000, 31049=>1000, 31050=>1000, 31051=>1000, 31055=>1000, 31056=>1000, 31057=>1000, 31059=>1000, 31060=>1000, 31061=>1000, 31062=>1000, 31063=>1000,
+ 31064=>1000, 31066=>1000, 31067=>1000, 31068=>1000, 31069=>1000, 31070=>1000, 31071=>1000, 31072=>1000, 31074=>1000, 31077=>1000, 31079=>1000, 31080=>1000, 31081=>1000, 31083=>1000, 31085=>1000, 31090=>1000,
+ 31095=>1000, 31097=>1000, 31098=>1000, 31099=>1000, 31100=>1000, 31102=>1000, 31103=>1000, 31104=>1000, 31105=>1000, 31108=>1000, 31109=>1000, 31114=>1000, 31115=>1000, 31116=>1000, 31117=>1000, 31118=>1000,
+ 31119=>1000, 31121=>1000, 31123=>1000, 31124=>1000, 31125=>1000, 31126=>1000, 31128=>1000, 31131=>1000, 31132=>1000, 31133=>1000, 31137=>1000, 31142=>1000, 31143=>1000, 31144=>1000, 31145=>1000, 31146=>1000,
+ 31147=>1000, 31150=>1000, 31151=>1000, 31152=>1000, 31153=>1000, 31155=>1000, 31156=>1000, 31160=>1000, 31161=>1000, 31162=>1000, 31163=>1000, 31165=>1000, 31166=>1000, 31167=>1000, 31168=>1000, 31169=>1000,
+ 31170=>1000, 31172=>1000, 31175=>1000, 31176=>1000, 31177=>1000, 31178=>1000, 31179=>1000, 31183=>1000, 31185=>1000, 31186=>1000, 31188=>1000, 31189=>1000, 31190=>1000, 31192=>1000, 31194=>1000, 31197=>1000,
+ 31198=>1000, 31199=>1000, 31200=>1000, 31201=>1000, 31202=>1000, 31203=>1000, 31204=>1000, 31205=>1000, 31206=>1000, 31207=>1000, 31209=>1000, 31210=>1000, 31211=>1000, 31212=>1000, 31213=>1000, 31216=>1000,
+ 31217=>1000, 31224=>1000, 31227=>1000, 31228=>1000, 31232=>1000, 31234=>1000, 31235=>1000, 31239=>1000, 31240=>1000, 31241=>1000, 31242=>1000, 31243=>1000, 31244=>1000, 31245=>1000, 31246=>1000, 31249=>1000,
+ 31252=>1000, 31253=>1000, 31255=>1000, 31256=>1000, 31257=>1000, 31258=>1000, 31259=>1000, 31260=>1000, 31262=>1000, 31263=>1000, 31264=>1000, 31265=>1000, 31271=>1000, 31275=>1000, 31277=>1000, 31278=>1000,
+ 31279=>1000, 31280=>1000, 31281=>1000, 31282=>1000, 31284=>1000, 31285=>1000, 31287=>1000, 31288=>1000, 31289=>1000, 31290=>1000, 31291=>1000, 31292=>1000, 31293=>1000, 31294=>1000, 31295=>1000, 31296=>1000,
+ 31298=>1000, 31299=>1000, 31300=>1000, 31301=>1000, 31302=>1000, 31303=>1000, 31304=>1000, 31305=>1000, 31308=>1000, 31309=>1000, 31310=>1000, 31311=>1000, 31312=>1000, 31317=>1000, 31318=>1000, 31319=>1000,
+ 31321=>1000, 31324=>1000, 31325=>1000, 31327=>1000, 31328=>1000, 31329=>1000, 31330=>1000, 31331=>1000, 31333=>1000, 31335=>1000, 31337=>1000, 31338=>1000, 31339=>1000, 31341=>1000, 31344=>1000, 31348=>1000,
+ 31349=>1000, 31350=>1000, 31352=>1000, 31353=>1000, 31354=>1000, 31357=>1000, 31358=>1000, 31359=>1000, 31360=>1000, 31361=>1000, 31362=>1000, 31363=>1000, 31364=>1000, 31365=>1000, 31366=>1000, 31368=>1000,
+ 31370=>1000, 31371=>1000, 31376=>1000, 31377=>1000, 31378=>1000, 31379=>1000, 31380=>1000, 31381=>1000, 31382=>1000, 31383=>1000, 31384=>1000, 31390=>1000, 31391=>1000, 31392=>1000, 31395=>1000, 31401=>1000,
+ 31402=>1000, 31404=>1000, 31406=>1000, 31407=>1000, 31408=>1000, 31411=>1000, 31413=>1000, 31414=>1000, 31417=>1000, 31418=>1000, 31419=>1000, 31420=>1000, 31423=>1000, 31427=>1000, 31428=>1000, 31429=>1000,
+ 31430=>1000, 31431=>1000, 31432=>1000, 31433=>1000, 31434=>1000, 31435=>1000, 31436=>1000, 31437=>1000, 31438=>1000, 31439=>1000, 31441=>1000, 31442=>1000, 31443=>1000, 31445=>1000, 31449=>1000, 31450=>1000,
+ 31451=>1000, 31452=>1000, 31453=>1000, 31455=>1000, 31456=>1000, 31457=>1000, 31458=>1000, 31459=>1000, 31461=>1000, 31462=>1000, 31463=>1000, 31464=>1000, 31465=>1000, 31466=>1000, 31467=>1000, 31468=>1000,
+ 31469=>1000, 31471=>1000, 31472=>1000, 31473=>1000, 31476=>1000, 31478=>1000, 31480=>1000, 31481=>1000, 31482=>1000, 31483=>1000, 31485=>1000, 31486=>1000, 31487=>1000, 31490=>1000, 31492=>1000, 31494=>1000,
+ 31495=>1000, 31496=>1000, 31498=>1000, 31499=>1000, 31503=>1000, 31505=>1000, 31508=>1000, 31512=>1000, 31513=>1000, 31515=>1000, 31518=>1000, 31519=>1000, 31520=>1000, 31523=>1000, 31525=>1000, 31526=>1000,
+ 31527=>1000, 31528=>1000, 31529=>1000, 31530=>1000, 31531=>1000, 31532=>1000, 31533=>1000, 31534=>1000, 31535=>1000, 31536=>1000, 31537=>1000, 31539=>1000, 31540=>1000, 31541=>1000, 31542=>1000, 31545=>1000,
+ 31549=>1000, 31551=>1000, 31552=>1000, 31553=>1000, 31557=>1000, 31558=>1000, 31559=>1000, 31560=>1000, 31561=>1000, 31563=>1000, 31564=>1000, 31565=>1000, 31566=>1000, 31567=>1000, 31568=>1000, 31569=>1000,
+ 31570=>1000, 31572=>1000, 31573=>1000, 31574=>1000, 31581=>1000, 31584=>1000, 31588=>1000, 31589=>1000, 31590=>1000, 31591=>1000, 31593=>1000, 31594=>1000, 31596=>1000, 31597=>1000, 31598=>1000, 31599=>1000,
+ 31600=>1000, 31601=>1000, 31602=>1000, 31603=>1000, 31604=>1000, 31605=>1000, 31607=>1000, 31610=>1000, 31620=>1000, 31622=>1000, 31623=>1000, 31625=>1000, 31627=>1000, 31629=>1000, 31630=>1000, 31631=>1000,
+ 31632=>1000, 31633=>1000, 31634=>1000, 31636=>1000, 31637=>1000, 31638=>1000, 31639=>1000, 31640=>1000, 31641=>1000, 31642=>1000, 31643=>1000, 31644=>1000, 31645=>1000, 31646=>1000, 31647=>1000, 31648=>1000,
+ 31649=>1000, 31653=>1000, 31658=>1000, 31660=>1000, 31661=>1000, 31663=>1000, 31664=>1000, 31665=>1000, 31666=>1000, 31668=>1000, 31669=>1000, 31670=>1000, 31672=>1000, 31674=>1000, 31675=>1000, 31676=>1000,
+ 31677=>1000, 31680=>1000, 31681=>1000, 31682=>1000, 31684=>1000, 31685=>1000, 31686=>1000, 31687=>1000, 31688=>1000, 31689=>1000, 31690=>1000, 31691=>1000, 31692=>1000, 31695=>1000, 31700=>1000, 31702=>1000,
+ 31703=>1000, 31705=>1000, 31706=>1000, 31707=>1000, 31709=>1000, 31712=>1000, 31716=>1000, 31717=>1000, 31718=>1000, 31720=>1000, 31721=>1000, 31722=>1000, 31725=>1000, 31730=>1000, 31731=>1000, 31732=>1000,
+ 31733=>1000, 31734=>1000, 31735=>1000, 31736=>1000, 31737=>1000, 31738=>1000, 31740=>1000, 31742=>1000, 31744=>1000, 31745=>1000, 31746=>1000, 31747=>1000, 31748=>1000, 31750=>1000, 31751=>1000, 31753=>1000,
+ 31755=>1000, 31756=>1000, 31757=>1000, 31758=>1000, 31759=>1000, 31761=>1000, 31762=>1000, 31763=>1000, 31764=>1000, 31767=>1000, 31769=>1000, 31771=>1000, 31775=>1000, 31776=>1000, 31777=>1000, 31779=>1000,
+ 31781=>1000, 31782=>1000, 31783=>1000, 31784=>1000, 31786=>1000, 31787=>1000, 31788=>1000, 31793=>1000, 31795=>1000, 31796=>1000, 31798=>1000, 31799=>1000, 31800=>1000, 31801=>1000, 31802=>1000, 31805=>1000,
+ 31806=>1000, 31807=>1000, 31808=>1000, 31811=>1000, 31814=>1000, 31818=>1000, 31820=>1000, 31821=>1000, 31823=>1000, 31824=>1000, 31825=>1000, 31826=>1000, 31827=>1000, 31828=>1000, 31829=>1000, 31830=>1000,
+ 31832=>1000, 31833=>1000, 31834=>1000, 31835=>1000, 31836=>1000, 31837=>1000, 31838=>1000, 31839=>1000, 31840=>1000, 31841=>1000, 31843=>1000, 31844=>1000, 31845=>1000, 31847=>1000, 31849=>1000, 31852=>1000,
+ 31853=>1000, 31854=>1000, 31856=>1000, 31858=>1000, 31859=>1000, 31861=>1000, 31865=>1000, 31868=>1000, 31869=>1000, 31870=>1000, 31873=>1000, 31874=>1000, 31875=>1000, 31878=>1000, 31879=>1000, 31881=>1000,
+ 31883=>1000, 31885=>1000, 31887=>1000, 31888=>1000, 31890=>1000, 31892=>1000, 31893=>1000, 31895=>1000, 31896=>1000, 31899=>1000, 31902=>1000, 31903=>1000, 31904=>1000, 31905=>1000, 31906=>1000, 31908=>1000,
+ 31909=>1000, 31910=>1000, 31911=>1000, 31912=>1000, 31915=>1000, 31917=>1000, 31918=>1000, 31920=>1000, 31921=>1000, 31922=>1000, 31923=>1000, 31926=>1000, 31927=>1000, 31929=>1000, 31930=>1000, 31931=>1000,
+ 31932=>1000, 31933=>1000, 31934=>1000, 31935=>1000, 31936=>1000, 31938=>1000, 31940=>1000, 31941=>1000, 31943=>1000, 31944=>1000, 31945=>1000, 31946=>1000, 31949=>1000, 31950=>1000, 31951=>1000, 31954=>1000,
+ 31955=>1000, 31956=>1000, 31957=>1000, 31958=>1000, 31959=>1000, 31960=>1000, 31961=>1000, 31962=>1000, 31964=>1000, 31965=>1000, 31966=>1000, 31967=>1000, 31968=>1000, 31970=>1000, 31974=>1000, 31975=>1000,
+ 31977=>1000, 31979=>1000, 31983=>1000, 31986=>1000, 31988=>1000, 31989=>1000, 31990=>1000, 31992=>1000, 31994=>1000, 31995=>1000, 31998=>1000, 32000=>1000, 32002=>1000, 32003=>1000, 32004=>1000, 32005=>1000,
+ 32006=>1000, 32007=>1000, 32008=>1000, 32009=>1000, 32010=>1000, 32011=>1000, 32013=>1000, 32015=>1000, 32016=>1000, 32017=>1000, 32018=>1000, 32019=>1000, 32020=>1000, 32021=>1000, 32022=>1000, 32023=>1000,
+ 32024=>1000, 32025=>1000, 32026=>1000, 32027=>1000, 32028=>1000, 32029=>1000, 32030=>1000, 32032=>1000, 32033=>1000, 32034=>1000, 32035=>1000, 32038=>1000, 32042=>1000, 32043=>1000, 32044=>1000, 32045=>1000,
+ 32046=>1000, 32047=>1000, 32048=>1000, 32049=>1000, 32050=>1000, 32051=>1000, 32053=>1000, 32057=>1000, 32058=>1000, 32060=>1000, 32061=>1000, 32062=>1000, 32063=>1000, 32064=>1000, 32065=>1000, 32066=>1000,
+ 32067=>1000, 32068=>1000, 32069=>1000, 32070=>1000, 32071=>1000, 32072=>1000, 32075=>1000, 32076=>1000, 32077=>1000, 32078=>1000, 32079=>1000, 32080=>1000, 32081=>1000, 32083=>1000, 32086=>1000, 32087=>1000,
+ 32089=>1000, 32090=>1000, 32091=>1000, 32092=>1000, 32093=>1000, 32094=>1000, 32097=>1000, 32098=>1000, 32099=>1000, 32101=>1000, 32102=>1000, 32103=>1000, 32104=>1000, 32106=>1000, 32110=>1000, 32112=>1000,
+ 32113=>1000, 32114=>1000, 32115=>1000, 32117=>1000, 32118=>1000, 32120=>1000, 32121=>1000, 32122=>1000, 32123=>1000, 32125=>1000, 32127=>1000, 32129=>1000, 32130=>1000, 32131=>1000, 32133=>1000, 32134=>1000,
+ 32136=>1000, 32137=>1000, 32139=>1000, 32140=>1000, 32141=>1000, 32143=>1000, 32145=>1000, 32147=>1000, 32150=>1000, 32151=>1000, 32153=>1000, 32154=>1000, 32155=>1000, 32156=>1000, 32157=>1000, 32158=>1000,
+ 32159=>1000, 32160=>1000, 32162=>1000, 32163=>1000, 32166=>1000, 32167=>1000, 32170=>1000, 32171=>1000, 32172=>1000, 32173=>1000, 32174=>1000, 32175=>1000, 32176=>1000, 32177=>1000, 32178=>1000, 32179=>1000,
+ 32180=>1000, 32181=>1000, 32182=>1000, 32183=>1000, 32184=>1000, 32185=>1000, 32186=>1000, 32187=>1000, 32189=>1000, 32190=>1000, 32191=>1000, 32194=>1000, 32195=>1000, 32196=>1000, 32197=>1000, 32198=>1000,
+ 32199=>1000, 32202=>1000, 32203=>1000, 32204=>1000, 32205=>1000, 32206=>1000, 32207=>1000, 32209=>1000, 32210=>1000, 32213=>1000, 32214=>1000, 32215=>1000, 32216=>1000, 32217=>1000, 32218=>1000, 32220=>1000,
+ 32221=>1000, 32222=>1000, 32224=>1000, 32225=>1000, 32226=>1000, 32228=>1000, 32229=>1000, 32230=>1000, 32232=>1000, 32233=>1000, 32234=>1000, 32235=>1000, 32236=>1000, 32237=>1000, 32239=>1000, 32241=>1000,
+ 32242=>1000, 32244=>1000, 32245=>1000, 32246=>1000, 32249=>1000, 32250=>1000, 32251=>1000, 32256=>1000, 32257=>1000, 32260=>1000, 32261=>1000, 32264=>1000, 32265=>1000, 32266=>1000, 32267=>1000, 32272=>1000,
+ 32273=>1000, 32274=>1000, 32277=>1000, 32279=>1000, 32283=>1000, 32284=>1000, 32285=>1000, 32286=>1000, 32287=>1000, 32288=>1000, 32289=>1000, 32290=>1000, 32291=>1000, 32294=>1000, 32295=>1000, 32296=>1000,
+ 32299=>1000, 32300=>1000, 32301=>1000, 32302=>1000, 32303=>1000, 32305=>1000, 32306=>1000, 32307=>1000, 32309=>1000, 32310=>1000, 32311=>1000, 32313=>1000, 32314=>1000, 32315=>1000, 32317=>1000, 32318=>1000,
+ 32319=>1000, 32321=>1000, 32323=>1000, 32324=>1000, 32325=>1000, 32326=>1000, 32327=>1000, 32330=>1000, 32331=>1000, 32333=>1000, 32334=>1000, 32336=>1000, 32338=>1000, 32340=>1000, 32341=>1000, 32342=>1000,
+ 32344=>1000, 32345=>1000, 32346=>1000, 32349=>1000, 32350=>1000, 32351=>1000, 32353=>1000, 32354=>1000, 32357=>1000, 32358=>1000, 32359=>1000, 32361=>1000, 32362=>1000, 32363=>1000, 32365=>1000, 32366=>1000,
+ 32367=>1000, 32368=>1000, 32371=>1000, 32376=>1000, 32377=>1000, 32379=>1000, 32380=>1000, 32381=>1000, 32382=>1000, 32383=>1000, 32385=>1000, 32386=>1000, 32387=>1000, 32390=>1000, 32391=>1000, 32392=>1000,
+ 32393=>1000, 32394=>1000, 32396=>1000, 32397=>1000, 32398=>1000, 32399=>1000, 32400=>1000, 32401=>1000, 32402=>1000, 32403=>1000, 32404=>1000, 32405=>1000, 32406=>1000, 32408=>1000, 32410=>1000, 32411=>1000,
+ 32412=>1000, 32413=>1000, 32414=>1000, 32566=>1000, 32568=>1000, 32570=>1000, 32571=>1000, 32572=>1000, 32573=>1000, 32574=>1000, 32575=>1000, 32579=>1000, 32580=>1000, 32581=>1000, 32583=>1000, 32588=>1000,
+ 32589=>1000, 32590=>1000, 32591=>1000, 32592=>1000, 32593=>1000, 32594=>1000, 32595=>1000, 32596=>1000, 32597=>1000, 32600=>1000, 32603=>1000, 32604=>1000, 32605=>1000, 32607=>1000, 32608=>1000, 32609=>1000,
+ 32611=>1000, 32612=>1000, 32613=>1000, 32614=>1000, 32615=>1000, 32616=>1000, 32617=>1000, 32618=>1000, 32619=>1000, 32621=>1000, 32622=>1000, 32624=>1000, 32625=>1000, 32626=>1000, 32629=>1000, 32631=>1000,
+ 32632=>1000, 32633=>1000, 32637=>1000, 32638=>1000, 32639=>1000, 32640=>1000, 32642=>1000, 32643=>1000, 32645=>1000, 32646=>1000, 32647=>1000, 32648=>1000, 32650=>1000, 32651=>1000, 32652=>1000, 32653=>1000,
+ 32654=>1000, 32655=>1000, 32656=>1000, 32657=>1000, 32660=>1000, 32662=>1000, 32663=>1000, 32666=>1000, 32668=>1000, 32669=>1000, 32670=>1000, 32673=>1000, 32674=>1000, 32675=>1000, 32676=>1000, 32678=>1000,
+ 32680=>1000, 32681=>1000, 32682=>1000, 32685=>1000, 32686=>1000, 32687=>1000, 32690=>1000, 32692=>1000, 32694=>1000, 32696=>1000, 32697=>1000, 32700=>1000, 32701=>1000, 32703=>1000, 32704=>1000, 32705=>1000,
+ 32707=>1000, 32709=>1000, 32710=>1000, 32712=>1000, 32714=>1000, 32716=>1000, 32718=>1000, 32719=>1000, 32722=>1000, 32724=>1000, 32725=>1000, 32731=>1000, 32735=>1000, 32736=>1000, 32737=>1000, 32739=>1000,
+ 32741=>1000, 32742=>1000, 32744=>1000, 32745=>1000, 32747=>1000, 32748=>1000, 32750=>1000, 32751=>1000, 32752=>1000, 32754=>1000, 32755=>1000, 32761=>1000, 32762=>1000, 32763=>1000, 32764=>1000, 32765=>1000,
+ 32766=>1000, 32767=>1000, 32768=>1000, 32769=>1000, 32771=>1000, 32772=>1000, 32773=>1000, 32774=>1000, 32775=>1000, 32776=>1000, 32778=>1000, 32779=>1000, 32780=>1000, 32781=>1000, 32782=>1000, 32783=>1000,
+ 32784=>1000, 32785=>1000, 32786=>1000, 32787=>1000, 32788=>1000, 32789=>1000, 32790=>1000, 32791=>1000, 32792=>1000, 32793=>1000, 32796=>1000, 32797=>1000, 32798=>1000, 32799=>1000, 32800=>1000, 32801=>1000,
+ 32804=>1000, 32806=>1000, 32808=>1000, 32812=>1000, 32814=>1000, 32816=>1000, 32819=>1000, 32820=>1000, 32821=>1000, 32822=>1000, 32823=>1000, 32825=>1000, 32826=>1000, 32827=>1000, 32828=>1000, 32829=>1000,
+ 32830=>1000, 32831=>1000, 32832=>1000, 32836=>1000, 32838=>1000, 32842=>1000, 32850=>1000, 32854=>1000, 32856=>1000, 32858=>1000, 32862=>1000, 32863=>1000, 32864=>1000, 32865=>1000, 32866=>1000, 32868=>1000,
+ 32870=>1000, 32872=>1000, 32877=>1000, 32879=>1000, 32880=>1000, 32881=>1000, 32882=>1000, 32883=>1000, 32884=>1000, 32885=>1000, 32886=>1000, 32887=>1000, 32889=>1000, 32893=>1000, 32894=>1000, 32895=>1000,
+ 32897=>1000, 32900=>1000, 32901=>1000, 32902=>1000, 32903=>1000, 32904=>1000, 32905=>1000, 32907=>1000, 32908=>1000, 32910=>1000, 32915=>1000, 32918=>1000, 32920=>1000, 32922=>1000, 32923=>1000, 32924=>1000,
+ 32925=>1000, 32926=>1000, 32929=>1000, 32930=>1000, 32933=>1000, 32934=>1000, 32935=>1000, 32937=>1000, 32938=>1000, 32939=>1000, 32940=>1000, 32941=>1000, 32943=>1000, 32945=>1000, 32946=>1000, 32948=>1000,
+ 32952=>1000, 32953=>1000, 32954=>1000, 32963=>1000, 32964=>1000, 32966=>1000, 32968=>1000, 32972=>1000, 32973=>1000, 32974=>1000, 32975=>1000, 32978=>1000, 32980=>1000, 32981=>1000, 32982=>1000, 32983=>1000,
+ 32984=>1000, 32985=>1000, 32986=>1000, 32987=>1000, 32989=>1000, 32990=>1000, 32992=>1000, 32993=>1000, 32996=>1000, 32997=>1000, 33005=>1000, 33006=>1000, 33007=>1000, 33008=>1000, 33009=>1000, 33010=>1000,
+ 33011=>1000, 33012=>1000, 33014=>1000, 33016=>1000, 33017=>1000, 33018=>1000, 33020=>1000, 33021=>1000, 33022=>1000, 33026=>1000, 33027=>1000, 33029=>1000, 33030=>1000, 33031=>1000, 33032=>1000, 33033=>1000,
+ 33034=>1000, 33035=>1000, 33046=>1000, 33047=>1000, 33048=>1000, 33050=>1000, 33051=>1000, 33052=>1000, 33054=>1000, 33056=>1000, 33059=>1000, 33060=>1000, 33063=>1000, 33065=>1000, 33068=>1000, 33071=>1000,
+ 33072=>1000, 33073=>1000, 33075=>1000, 33077=>1000, 33081=>1000, 33082=>1000, 33084=>1000, 33086=>1000, 33093=>1000, 33094=>1000, 33095=>1000, 33098=>1000, 33099=>1000, 33100=>1000, 33102=>1000, 33104=>1000,
+ 33105=>1000, 33106=>1000, 33107=>1000, 33108=>1000, 33109=>1000, 33111=>1000, 33119=>1000, 33120=>1000, 33121=>1000, 33125=>1000, 33126=>1000, 33127=>1000, 33128=>1000, 33129=>1000, 33131=>1000, 33133=>1000,
+ 33134=>1000, 33135=>1000, 33136=>1000, 33137=>1000, 33140=>1000, 33143=>1000, 33144=>1000, 33145=>1000, 33146=>1000, 33151=>1000, 33152=>1000, 33153=>1000, 33154=>1000, 33155=>1000, 33156=>1000, 33157=>1000,
+ 33158=>1000, 33160=>1000, 33162=>1000, 33163=>1000, 33166=>1000, 33167=>1000, 33168=>1000, 33171=>1000, 33173=>1000, 33174=>1000, 33176=>1000, 33178=>1000, 33179=>1000, 33180=>1000, 33181=>1000, 33182=>1000,
+ 33184=>1000, 33186=>1000, 33187=>1000, 33188=>1000, 33192=>1000, 33193=>1000, 33198=>1000, 33200=>1000, 33202=>1000, 33203=>1000, 33204=>1000, 33205=>1000, 33208=>1000, 33210=>1000, 33211=>1000, 33213=>1000,
+ 33214=>1000, 33215=>1000, 33216=>1000, 33218=>1000, 33219=>1000, 33221=>1000, 33222=>1000, 33224=>1000, 33225=>1000, 33226=>1000, 33227=>1000, 33229=>1000, 33230=>1000, 33231=>1000, 33233=>1000, 33235=>1000,
+ 33237=>1000, 33239=>1000, 33240=>1000, 33241=>1000, 33242=>1000, 33243=>1000, 33245=>1000, 33246=>1000, 33247=>1000, 33248=>1000, 33249=>1000, 33251=>1000, 33252=>1000, 33253=>1000, 33255=>1000, 33256=>1000,
+ 33258=>1000, 33259=>1000, 33260=>1000, 33261=>1000, 33264=>1000, 33265=>1000, 33266=>1000, 33267=>1000, 33268=>1000, 33269=>1000, 33270=>1000, 33272=>1000, 33273=>1000, 33274=>1000, 33275=>1000, 33276=>1000,
+ 33277=>1000, 33278=>1000, 33279=>1000, 33280=>1000, 33281=>1000, 33282=>1000, 33283=>1000, 33285=>1000, 33287=>1000, 33288=>1000, 33289=>1000, 33290=>1000, 33292=>1000, 33293=>1000, 33294=>1000, 33295=>1000,
+ 33296=>1000, 33298=>1000, 33299=>1000, 33300=>1000, 33302=>1000, 33303=>1000, 33304=>1000, 33305=>1000, 33306=>1000, 33307=>1000, 33308=>1000, 33309=>1000, 33310=>1000, 33311=>1000, 33313=>1000, 33314=>1000,
+ 33320=>1000, 33321=>1000, 33322=>1000, 33323=>1000, 33324=>1000, 33326=>1000, 33330=>1000, 33331=>1000, 33332=>1000, 33333=>1000, 33334=>1000, 33335=>1000, 33336=>1000, 33337=>1000, 33338=>1000, 33344=>1000,
+ 33347=>1000, 33348=>1000, 33349=>1000, 33350=>1000, 33351=>1000, 33355=>1000, 33358=>1000, 33359=>1000, 33361=>1000, 33366=>1000, 33368=>1000, 33369=>1000, 33370=>1000, 33372=>1000, 33373=>1000, 33375=>1000,
+ 33376=>1000, 33378=>1000, 33379=>1000, 33380=>1000, 33382=>1000, 33383=>1000, 33384=>1000, 33386=>1000, 33387=>1000, 33389=>1000, 33390=>1000, 33391=>1000, 33393=>1000, 33394=>1000, 33396=>1000, 33398=>1000,
+ 33399=>1000, 33400=>1000, 33403=>1000, 33405=>1000, 33406=>1000, 33407=>1000, 33408=>1000, 33409=>1000, 33411=>1000, 33412=>1000, 33415=>1000, 33417=>1000, 33418=>1000, 33419=>1000, 33421=>1000, 33422=>1000,
+ 33425=>1000, 33426=>1000, 33428=>1000, 33430=>1000, 33432=>1000, 33433=>1000, 33434=>1000, 33435=>1000, 33437=>1000, 33439=>1000, 33440=>1000, 33441=>1000, 33443=>1000, 33444=>1000, 33445=>1000, 33446=>1000,
+ 33447=>1000, 33448=>1000, 33449=>1000, 33450=>1000, 33451=>1000, 33452=>1000, 33453=>1000, 33454=>1000, 33455=>1000, 33456=>1000, 33457=>1000, 33458=>1000, 33459=>1000, 33460=>1000, 33463=>1000, 33464=>1000,
+ 33465=>1000, 33466=>1000, 33467=>1000, 33468=>1000, 33469=>1000, 33470=>1000, 33471=>1000, 33477=>1000, 33478=>1000, 33488=>1000, 33489=>1000, 33490=>1000, 33491=>1000, 33492=>1000, 33493=>1000, 33495=>1000,
+ 33497=>1000, 33498=>1000, 33499=>1000, 33500=>1000, 33502=>1000, 33503=>1000, 33504=>1000, 33505=>1000, 33506=>1000, 33507=>1000, 33508=>1000, 33509=>1000, 33510=>1000, 33511=>1000, 33512=>1000, 33514=>1000,
+ 33515=>1000, 33517=>1000, 33519=>1000, 33521=>1000, 33523=>1000, 33524=>1000, 33526=>1000, 33527=>1000, 33529=>1000, 33530=>1000, 33531=>1000, 33533=>1000, 33534=>1000, 33536=>1000, 33537=>1000, 33538=>1000,
+ 33539=>1000, 33540=>1000, 33541=>1000, 33542=>1000, 33543=>1000, 33544=>1000, 33545=>1000, 33546=>1000, 33547=>1000, 33550=>1000, 33558=>1000, 33559=>1000, 33560=>1000, 33563=>1000, 33564=>1000, 33565=>1000,
+ 33566=>1000, 33567=>1000, 33569=>1000, 33570=>1000, 33571=>1000, 33576=>1000, 33579=>1000, 33580=>1000, 33581=>1000, 33582=>1000, 33583=>1000, 33584=>1000, 33585=>1000, 33586=>1000, 33587=>1000, 33588=>1000,
+ 33589=>1000, 33590=>1000, 33591=>1000, 33592=>1000, 33593=>1000, 33594=>1000, 33596=>1000, 33597=>1000, 33600=>1000, 33602=>1000, 33603=>1000, 33604=>1000, 33605=>1000, 33607=>1000, 33609=>1000, 33610=>1000,
+ 33613=>1000, 33614=>1000, 33615=>1000, 33616=>1000, 33617=>1000, 33618=>1000, 33619=>1000, 33620=>1000, 33621=>1000, 33622=>1000, 33623=>1000, 33624=>1000, 33634=>1000, 33648=>1000, 33651=>1000, 33653=>1000,
+ 33655=>1000, 33656=>1000, 33659=>1000, 33660=>1000, 33661=>1000, 33663=>1000, 33664=>1000, 33666=>1000, 33668=>1000, 33669=>1000, 33670=>1000, 33671=>1000, 33673=>1000, 33674=>1000, 33677=>1000, 33678=>1000,
+ 33682=>1000, 33683=>1000, 33684=>1000, 33685=>1000, 33686=>1000, 33688=>1000, 33689=>1000, 33690=>1000, 33691=>1000, 33692=>1000, 33693=>1000, 33694=>1000, 33695=>1000, 33696=>1000, 33698=>1000, 33702=>1000,
+ 33703=>1000, 33704=>1000, 33705=>1000, 33706=>1000, 33707=>1000, 33708=>1000, 33709=>1000, 33713=>1000, 33717=>1000, 33725=>1000, 33726=>1000, 33727=>1000, 33728=>1000, 33729=>1000, 33733=>1000, 33735=>1000,
+ 33737=>1000, 33738=>1000, 33740=>1000, 33742=>1000, 33743=>1000, 33744=>1000, 33745=>1000, 33747=>1000, 33748=>1000, 33750=>1000, 33752=>1000, 33756=>1000, 33757=>1000, 33759=>1000, 33760=>1000, 33768=>1000,
+ 33769=>1000, 33770=>1000, 33771=>1000, 33775=>1000, 33776=>1000, 33777=>1000, 33778=>1000, 33780=>1000, 33782=>1000, 33783=>1000, 33784=>1000, 33785=>1000, 33787=>1000, 33788=>1000, 33789=>1000, 33793=>1000,
+ 33795=>1000, 33796=>1000, 33798=>1000, 33799=>1000, 33802=>1000, 33803=>1000, 33804=>1000, 33805=>1000, 33806=>1000, 33807=>1000, 33809=>1000, 33811=>1000, 33813=>1000, 33817=>1000, 33824=>1000, 33826=>1000,
+ 33833=>1000, 33834=>1000, 33836=>1000, 33839=>1000, 33841=>1000, 33845=>1000, 33848=>1000, 33849=>1000, 33852=>1000, 33853=>1000, 33861=>1000, 33862=>1000, 33863=>1000, 33864=>1000, 33865=>1000, 33866=>1000,
+ 33869=>1000, 33870=>1000, 33871=>1000, 33873=>1000, 33874=>1000, 33878=>1000, 33879=>1000, 33880=>1000, 33881=>1000, 33882=>1000, 33883=>1000, 33884=>1000, 33888=>1000, 33889=>1000, 33890=>1000, 33891=>1000,
+ 33892=>1000, 33893=>1000, 33894=>1000, 33895=>1000, 33897=>1000, 33898=>1000, 33899=>1000, 33900=>1000, 33901=>1000, 33902=>1000, 33903=>1000, 33904=>1000, 33905=>1000, 33907=>1000, 33908=>1000, 33909=>1000,
+ 33910=>1000, 33911=>1000, 33912=>1000, 33913=>1000, 33914=>1000, 33916=>1000, 33917=>1000, 33921=>1000, 33922=>1000, 33924=>1000, 33925=>1000, 33931=>1000, 33936=>1000, 33938=>1000, 33939=>1000, 33940=>1000,
+ 33941=>1000, 33945=>1000, 33948=>1000, 33950=>1000, 33951=>1000, 33953=>1000, 33958=>1000, 33960=>1000, 33961=>1000, 33962=>1000, 33965=>1000, 33967=>1000, 33969=>1000, 33970=>1000, 33972=>1000, 33976=>1000,
+ 33977=>1000, 33978=>1000, 33979=>1000, 33980=>1000, 33981=>1000, 33982=>1000, 33983=>1000, 33984=>1000, 33985=>1000, 33986=>1000, 33988=>1000, 33990=>1000, 33991=>1000, 33992=>1000, 33993=>1000, 33994=>1000,
+ 33995=>1000, 33996=>1000, 33997=>1000, 33999=>1000, 34000=>1000, 34001=>1000, 34003=>1000, 34006=>1000, 34009=>1000, 34010=>1000, 34012=>1000, 34023=>1000, 34026=>1000, 34028=>1000, 34030=>1000, 34031=>1000,
+ 34032=>1000, 34033=>1000, 34034=>1000, 34036=>1000, 34039=>1000, 34042=>1000, 34043=>1000, 34044=>1000, 34045=>1000, 34047=>1000, 34048=>1000, 34050=>1000, 34051=>1000, 34054=>1000, 34055=>1000, 34060=>1000,
+ 34062=>1000, 34064=>1000, 34065=>1000, 34067=>1000, 34068=>1000, 34069=>1000, 34071=>1000, 34072=>1000, 34074=>1000, 34076=>1000, 34078=>1000, 34079=>1000, 34081=>1000, 34082=>1000, 34083=>1000, 34084=>1000,
+ 34085=>1000, 34086=>1000, 34087=>1000, 34090=>1000, 34091=>1000, 34092=>1000, 34093=>1000, 34095=>1000, 34098=>1000, 34099=>1000, 34100=>1000, 34101=>1000, 34102=>1000, 34109=>1000, 34111=>1000, 34112=>1000,
+ 34113=>1000, 34115=>1000, 34118=>1000, 34120=>1000, 34121=>1000, 34122=>1000, 34123=>1000, 34126=>1000, 34127=>1000, 34128=>1000, 34129=>1000, 34130=>1000, 34131=>1000, 34133=>1000, 34134=>1000, 34135=>1000,
+ 34136=>1000, 34137=>1000, 34138=>1000, 34140=>1000, 34141=>1000, 34142=>1000, 34143=>1000, 34144=>1000, 34145=>1000, 34146=>1000, 34147=>1000, 34148=>1000, 34152=>1000, 34153=>1000, 34154=>1000, 34155=>1000,
+ 34157=>1000, 34159=>1000, 34167=>1000, 34169=>1000, 34170=>1000, 34171=>1000, 34173=>1000, 34174=>1000, 34175=>1000, 34176=>1000, 34177=>1000, 34180=>1000, 34181=>1000, 34182=>1000, 34183=>1000, 34184=>1000,
+ 34185=>1000, 34186=>1000, 34187=>1000, 34188=>1000, 34191=>1000, 34192=>1000, 34193=>1000, 34195=>1000, 34196=>1000, 34199=>1000, 34200=>1000, 34201=>1000, 34203=>1000, 34204=>1000, 34205=>1000, 34207=>1000,
+ 34208=>1000, 34210=>1000, 34212=>1000, 34213=>1000, 34214=>1000, 34215=>1000, 34216=>1000, 34217=>1000, 34218=>1000, 34219=>1000, 34220=>1000, 34221=>1000, 34222=>1000, 34223=>1000, 34224=>1000, 34228=>1000,
+ 34230=>1000, 34231=>1000, 34232=>1000, 34233=>1000, 34234=>1000, 34236=>1000, 34237=>1000, 34238=>1000, 34239=>1000, 34241=>1000, 34242=>1000, 34247=>1000, 34249=>1000, 34250=>1000, 34251=>1000, 34253=>1000,
+ 34254=>1000, 34255=>1000, 34256=>1000, 34261=>1000, 34264=>1000, 34266=>1000, 34268=>1000, 34269=>1000, 34271=>1000, 34272=>1000, 34276=>1000, 34277=>1000, 34278=>1000, 34280=>1000, 34281=>1000, 34282=>1000,
+ 34285=>1000, 34291=>1000, 34294=>1000, 34295=>1000, 34297=>1000, 34298=>1000, 34299=>1000, 34300=>1000, 34302=>1000, 34303=>1000, 34304=>1000, 34306=>1000, 34308=>1000, 34309=>1000, 34310=>1000, 34311=>1000,
+ 34314=>1000, 34315=>1000, 34317=>1000, 34318=>1000, 34320=>1000, 34321=>1000, 34322=>1000, 34323=>1000, 34326=>1000, 34327=>1000, 34328=>1000, 34329=>1000, 34330=>1000, 34331=>1000, 34334=>1000, 34337=>1000,
+ 34338=>1000, 34343=>1000, 34345=>1000, 34349=>1000, 34351=>1000, 34352=>1000, 34358=>1000, 34360=>1000, 34362=>1000, 34364=>1000, 34365=>1000, 34367=>1000, 34368=>1000, 34369=>1000, 34370=>1000, 34374=>1000,
+ 34381=>1000, 34382=>1000, 34384=>1000, 34386=>1000, 34387=>1000, 34388=>1000, 34389=>1000, 34390=>1000, 34391=>1000, 34392=>1000, 34393=>1000, 34394=>1000, 34396=>1000, 34397=>1000, 34398=>1000, 34399=>1000,
+ 34400=>1000, 34401=>1000, 34402=>1000, 34403=>1000, 34404=>1000, 34407=>1000, 34409=>1000, 34411=>1000, 34412=>1000, 34415=>1000, 34417=>1000, 34421=>1000, 34422=>1000, 34423=>1000, 34425=>1000, 34426=>1000,
+ 34427=>1000, 34440=>1000, 34442=>1000, 34443=>1000, 34444=>1000, 34445=>1000, 34449=>1000, 34451=>1000, 34453=>1000, 34454=>1000, 34456=>1000, 34458=>1000, 34460=>1000, 34465=>1000, 34467=>1000, 34468=>1000,
+ 34470=>1000, 34471=>1000, 34472=>1000, 34473=>1000, 34474=>1000, 34475=>1000, 34477=>1000, 34479=>1000, 34480=>1000, 34481=>1000, 34483=>1000, 34484=>1000, 34485=>1000, 34486=>1000, 34487=>1000, 34488=>1000,
+ 34489=>1000, 34495=>1000, 34496=>1000, 34497=>1000, 34499=>1000, 34500=>1000, 34501=>1000, 34502=>1000, 34503=>1000, 34505=>1000, 34507=>1000, 34509=>1000, 34510=>1000, 34513=>1000, 34514=>1000, 34516=>1000,
+ 34517=>1000, 34519=>1000, 34521=>1000, 34522=>1000, 34523=>1000, 34524=>1000, 34526=>1000, 34527=>1000, 34528=>1000, 34531=>1000, 34532=>1000, 34533=>1000, 34535=>1000, 34537=>1000, 34540=>1000, 34541=>1000,
+ 34542=>1000, 34543=>1000, 34552=>1000, 34553=>1000, 34554=>1000, 34555=>1000, 34556=>1000, 34557=>1000, 34558=>1000, 34560=>1000, 34562=>1000, 34563=>1000, 34564=>1000, 34565=>1000, 34566=>1000, 34567=>1000,
+ 34568=>1000, 34569=>1000, 34570=>1000, 34571=>1000, 34573=>1000, 34574=>1000, 34575=>1000, 34576=>1000, 34577=>1000, 34578=>1000, 34579=>1000, 34580=>1000, 34584=>1000, 34585=>1000, 34586=>1000, 34588=>1000,
+ 34590=>1000, 34591=>1000, 34593=>1000, 34595=>1000, 34597=>1000, 34600=>1000, 34601=>1000, 34606=>1000, 34607=>1000, 34609=>1000, 34610=>1000, 34612=>1000, 34615=>1000, 34617=>1000, 34618=>1000, 34619=>1000,
+ 34620=>1000, 34621=>1000, 34622=>1000, 34623=>1000, 34624=>1000, 34627=>1000, 34629=>1000, 34633=>1000, 34635=>1000, 34636=>1000, 34637=>1000, 34638=>1000, 34643=>1000, 34645=>1000, 34647=>1000, 34648=>1000,
+ 34649=>1000, 34653=>1000, 34655=>1000, 34656=>1000, 34657=>1000, 34659=>1000, 34660=>1000, 34661=>1000, 34662=>1000, 34664=>1000, 34666=>1000, 34670=>1000, 34671=>1000, 34673=>1000, 34674=>1000, 34676=>1000,
+ 34678=>1000, 34680=>1000, 34683=>1000, 34687=>1000, 34690=>1000, 34691=>1000, 34692=>1000, 34693=>1000, 34694=>1000, 34695=>1000, 34696=>1000, 34697=>1000, 34699=>1000, 34700=>1000, 34701=>1000, 34704=>1000,
+ 34707=>1000, 34709=>1000, 34711=>1000, 34712=>1000, 34713=>1000, 34718=>1000, 34719=>1000, 34720=>1000, 34722=>1000, 34723=>1000, 34727=>1000, 34731=>1000, 34732=>1000, 34733=>1000, 34734=>1000, 34735=>1000,
+ 34737=>1000, 34739=>1000, 34741=>1000, 34746=>1000, 34747=>1000, 34749=>1000, 34750=>1000, 34751=>1000, 34752=>1000, 34753=>1000, 34756=>1000, 34758=>1000, 34759=>1000, 34760=>1000, 34761=>1000, 34762=>1000,
+ 34763=>1000, 34766=>1000, 34768=>1000, 34770=>1000, 34773=>1000, 34774=>1000, 34777=>1000, 34778=>1000, 34780=>1000, 34783=>1000, 34784=>1000, 34786=>1000, 34787=>1000, 34788=>1000, 34794=>1000, 34795=>1000,
+ 34797=>1000, 34799=>1000, 34801=>1000, 34802=>1000, 34803=>1000, 34806=>1000, 34807=>1000, 34808=>1000, 34809=>1000, 34810=>1000, 34811=>1000, 34814=>1000, 34815=>1000, 34817=>1000, 34819=>1000, 34821=>1000,
+ 34822=>1000, 34823=>1000, 34825=>1000, 34826=>1000, 34827=>1000, 34829=>1000, 34830=>1000, 34831=>1000, 34832=>1000, 34833=>1000, 34834=>1000, 34835=>1000, 34836=>1000, 34837=>1000, 34838=>1000, 34840=>1000,
+ 34841=>1000, 34842=>1000, 34843=>1000, 34844=>1000, 34846=>1000, 34847=>1000, 34849=>1000, 34850=>1000, 34851=>1000, 34855=>1000, 34856=>1000, 34861=>1000, 34862=>1000, 34864=>1000, 34865=>1000, 34866=>1000,
+ 34869=>1000, 34870=>1000, 34873=>1000, 34874=>1000, 34875=>1000, 34876=>1000, 34880=>1000, 34881=>1000, 34882=>1000, 34883=>1000, 34884=>1000, 34885=>1000, 34886=>1000, 34888=>1000, 34889=>1000, 34890=>1000,
+ 34891=>1000, 34892=>1000, 34893=>1000, 34894=>1000, 34897=>1000, 34898=>1000, 34899=>1000, 34901=>1000, 34902=>1000, 34903=>1000, 34904=>1000, 34905=>1000, 34906=>1000, 34907=>1000, 34908=>1000, 34909=>1000,
+ 34910=>1000, 34911=>1000, 34912=>1000, 34913=>1000, 34914=>1000, 34915=>1000, 34916=>1000, 34920=>1000, 34921=>1000, 34923=>1000, 34928=>1000, 34929=>1000, 34930=>1000, 34933=>1000, 34935=>1000, 34937=>1000,
+ 34939=>1000, 34941=>1000, 34942=>1000, 34943=>1000, 34944=>1000, 34945=>1000, 34946=>1000, 34952=>1000, 34955=>1000, 34957=>1000, 34962=>1000, 34966=>1000, 34967=>1000, 34968=>1000, 34969=>1000, 34970=>1000,
+ 34971=>1000, 34972=>1000, 34974=>1000, 34975=>1000, 34976=>1000, 34978=>1000, 34980=>1000, 34984=>1000, 34986=>1000, 34987=>1000, 34990=>1000, 34992=>1000, 34993=>1000, 34996=>1000, 34997=>1000, 34999=>1000,
+ 35002=>1000, 35005=>1000, 35006=>1000, 35007=>1000, 35008=>1000, 35009=>1000, 35010=>1000, 35011=>1000, 35012=>1000, 35013=>1000, 35018=>1000, 35019=>1000, 35020=>1000, 35021=>1000, 35022=>1000, 35023=>1000,
+ 35025=>1000, 35026=>1000, 35027=>1000, 35028=>1000, 35029=>1000, 35032=>1000, 35033=>1000, 35035=>1000, 35036=>1000, 35037=>1000, 35038=>1000, 35039=>1000, 35041=>1000, 35047=>1000, 35048=>1000, 35055=>1000,
+ 35056=>1000, 35057=>1000, 35058=>1000, 35059=>1000, 35060=>1000, 35061=>1000, 35063=>1000, 35064=>1000, 35065=>1000, 35068=>1000, 35069=>1000, 35070=>1000, 35073=>1000, 35074=>1000, 35076=>1000, 35078=>1000,
+ 35079=>1000, 35082=>1000, 35084=>1000, 35085=>1000, 35086=>1000, 35087=>1000, 35088=>1000, 35090=>1000, 35091=>1000, 35093=>1000, 35094=>1000, 35096=>1000, 35097=>1000, 35098=>1000, 35100=>1000, 35101=>1000,
+ 35102=>1000, 35104=>1000, 35109=>1000, 35110=>1000, 35111=>1000, 35112=>1000, 35114=>1000, 35115=>1000, 35120=>1000, 35121=>1000, 35122=>1000, 35125=>1000, 35126=>1000, 35128=>1000, 35129=>1000, 35130=>1000,
+ 35131=>1000, 35134=>1000, 35136=>1000, 35137=>1000, 35138=>1000, 35139=>1000, 35140=>1000, 35141=>1000, 35142=>1000, 35145=>1000, 35148=>1000, 35149=>1000, 35151=>1000, 35154=>1000, 35158=>1000, 35159=>1000,
+ 35162=>1000, 35163=>1000, 35164=>1000, 35166=>1000, 35167=>1000, 35168=>1000, 35169=>1000, 35170=>1000, 35171=>1000, 35172=>1000, 35174=>1000, 35178=>1000, 35179=>1000, 35181=>1000, 35182=>1000, 35183=>1000,
+ 35184=>1000, 35186=>1000, 35187=>1000, 35188=>1000, 35189=>1000, 35191=>1000, 35194=>1000, 35195=>1000, 35196=>1000, 35197=>1000, 35198=>1000, 35199=>1000, 35201=>1000, 35203=>1000, 35206=>1000, 35207=>1000,
+ 35208=>1000, 35209=>1000, 35210=>1000, 35211=>1000, 35213=>1000, 35215=>1000, 35216=>1000, 35219=>1000, 35220=>1000, 35221=>1000, 35222=>1000, 35223=>1000, 35224=>1000, 35226=>1000, 35227=>1000, 35228=>1000,
+ 35231=>1000, 35232=>1000, 35233=>1000, 35237=>1000, 35238=>1000, 35239=>1000, 35241=>1000, 35242=>1000, 35244=>1000, 35247=>1000, 35248=>1000, 35250=>1000, 35251=>1000, 35252=>1000, 35253=>1000, 35254=>1000,
+ 35255=>1000, 35258=>1000, 35260=>1000, 35261=>1000, 35263=>1000, 35264=>1000, 35282=>1000, 35284=>1000, 35285=>1000, 35286=>1000, 35287=>1000, 35288=>1000, 35290=>1000, 35292=>1000, 35293=>1000, 35299=>1000,
+ 35301=>1000, 35302=>1000, 35303=>1000, 35305=>1000, 35307=>1000, 35309=>1000, 35313=>1000, 35315=>1000, 35316=>1000, 35318=>1000, 35320=>1000, 35321=>1000, 35325=>1000, 35327=>1000, 35328=>1000, 35330=>1000,
+ 35331=>1000, 35332=>1000, 35333=>1000, 35335=>1000, 35336=>1000, 35338=>1000, 35340=>1000, 35342=>1000, 35343=>1000, 35344=>1000, 35345=>1000, 35346=>1000, 35347=>1000, 35348=>1000, 35349=>1000, 35350=>1000,
+ 35351=>1000, 35352=>1000, 35355=>1000, 35357=>1000, 35358=>1000, 35359=>1000, 35360=>1000, 35362=>1000, 35363=>1000, 35364=>1000, 35365=>1000, 35366=>1000, 35370=>1000, 35371=>1000, 35372=>1000, 35373=>1000,
+ 35375=>1000, 35377=>1000, 35379=>1000, 35380=>1000, 35381=>1000, 35382=>1000, 35383=>1000, 35386=>1000, 35387=>1000, 35388=>1000, 35389=>1000, 35390=>1000, 35392=>1000, 35393=>1000, 35395=>1000, 35397=>1000,
+ 35398=>1000, 35399=>1000, 35400=>1000, 35401=>1000, 35405=>1000, 35406=>1000, 35408=>1000, 35409=>1000, 35410=>1000, 35411=>1000, 35412=>1000, 35413=>1000, 35414=>1000, 35415=>1000, 35416=>1000, 35419=>1000,
+ 35420=>1000, 35421=>1000, 35422=>1000, 35424=>1000, 35425=>1000, 35426=>1000, 35427=>1000, 35429=>1000, 35430=>1000, 35431=>1000, 35433=>1000, 35435=>1000, 35436=>1000, 35437=>1000, 35438=>1000, 35440=>1000,
+ 35441=>1000, 35442=>1000, 35443=>1000, 35445=>1000, 35446=>1000, 35447=>1000, 35449=>1000, 35450=>1000, 35451=>1000, 35452=>1000, 35454=>1000, 35455=>1000, 35456=>1000, 35458=>1000, 35459=>1000, 35460=>1000,
+ 35461=>1000, 35462=>1000, 35463=>1000, 35465=>1000, 35467=>1000, 35468=>1000, 35469=>1000, 35471=>1000, 35472=>1000, 35473=>1000, 35474=>1000, 35475=>1000, 35477=>1000, 35478=>1000, 35479=>1000, 35480=>1000,
+ 35481=>1000, 35482=>1000, 35486=>1000, 35487=>1000, 35488=>1000, 35489=>1000, 35491=>1000, 35492=>1000, 35493=>1000, 35494=>1000, 35495=>1000, 35496=>1000, 35497=>1000, 35500=>1000, 35501=>1000, 35502=>1000,
+ 35503=>1000, 35504=>1000, 35506=>1000, 35507=>1000, 35510=>1000, 35511=>1000, 35513=>1000, 35515=>1000, 35516=>1000, 35518=>1000, 35519=>1000, 35522=>1000, 35523=>1000, 35524=>1000, 35526=>1000, 35527=>1000,
+ 35528=>1000, 35529=>1000, 35530=>1000, 35531=>1000, 35532=>1000, 35533=>1000, 35535=>1000, 35537=>1000, 35538=>1000, 35539=>1000, 35540=>1000, 35541=>1000, 35542=>1000, 35543=>1000, 35546=>1000, 35547=>1000,
+ 35548=>1000, 35549=>1000, 35550=>1000, 35551=>1000, 35552=>1000, 35553=>1000, 35554=>1000, 35556=>1000, 35558=>1000, 35559=>1000, 35563=>1000, 35564=>1000, 35565=>1000, 35566=>1000, 35568=>1000, 35569=>1000,
+ 35571=>1000, 35572=>1000, 35573=>1000, 35574=>1000, 35575=>1000, 35576=>1000, 35578=>1000, 35580=>1000, 35582=>1000, 35583=>1000, 35584=>1000, 35585=>1000, 35586=>1000, 35588=>1000, 35589=>1000, 35590=>1000,
+ 35591=>1000, 35594=>1000, 35595=>1000, 35596=>1000, 35598=>1000, 35600=>1000, 35601=>1000, 35604=>1000, 35606=>1000, 35607=>1000, 35609=>1000, 35610=>1000, 35611=>1000, 35612=>1000, 35613=>1000, 35614=>1000,
+ 35615=>1000, 35616=>1000, 35617=>1000, 35622=>1000, 35624=>1000, 35627=>1000, 35628=>1000, 35629=>1000, 35632=>1000, 35635=>1000, 35639=>1000, 35641=>1000, 35644=>1000, 35646=>1000, 35649=>1000, 35650=>1000,
+ 35651=>1000, 35652=>1000, 35653=>1000, 35654=>1000, 35656=>1000, 35657=>1000, 35660=>1000, 35661=>1000, 35662=>1000, 35663=>1000, 35666=>1000, 35667=>1000, 35668=>1000, 35670=>1000, 35672=>1000, 35673=>1000,
+ 35674=>1000, 35675=>1000, 35676=>1000, 35678=>1000, 35679=>1000, 35683=>1000, 35686=>1000, 35691=>1000, 35692=>1000, 35693=>1000, 35695=>1000, 35696=>1000, 35697=>1000, 35698=>1000, 35700=>1000, 35702=>1000,
+ 35703=>1000, 35704=>1000, 35705=>1000, 35708=>1000, 35709=>1000, 35710=>1000, 35711=>1000, 35712=>1000, 35713=>1000, 35715=>1000, 35716=>1000, 35717=>1000, 35722=>1000, 35723=>1000, 35724=>1000, 35725=>1000,
+ 35726=>1000, 35727=>1000, 35728=>1000, 35730=>1000, 35731=>1000, 35732=>1000, 35733=>1000, 35734=>1000, 35737=>1000, 35738=>1000, 35740=>1000, 35742=>1000, 35743=>1000, 35895=>1000, 35896=>1000, 35897=>1000,
+ 35898=>1000, 35901=>1000, 35902=>1000, 35903=>1000, 35905=>1000, 35909=>1000, 35910=>1000, 35911=>1000, 35912=>1000, 35913=>1000, 35914=>1000, 35915=>1000, 35916=>1000, 35918=>1000, 35919=>1000, 35920=>1000,
+ 35921=>1000, 35923=>1000, 35924=>1000, 35925=>1000, 35927=>1000, 35928=>1000, 35929=>1000, 35930=>1000, 35931=>1000, 35933=>1000, 35937=>1000, 35938=>1000, 35939=>1000, 35940=>1000, 35942=>1000, 35944=>1000,
+ 35945=>1000, 35946=>1000, 35947=>1000, 35948=>1000, 35949=>1000, 35955=>1000, 35957=>1000, 35958=>1000, 35960=>1000, 35961=>1000, 35962=>1000, 35963=>1000, 35964=>1000, 35966=>1000, 35970=>1000, 35973=>1000,
+ 35974=>1000, 35975=>1000, 35977=>1000, 35978=>1000, 35979=>1000, 35980=>1000, 35981=>1000, 35982=>1000, 35984=>1000, 35986=>1000, 35987=>1000, 35988=>1000, 35992=>1000, 35993=>1000, 35995=>1000, 35996=>1000,
+ 35997=>1000, 35998=>1000, 36000=>1000, 36001=>1000, 36002=>1000, 36004=>1000, 36007=>1000, 36008=>1000, 36009=>1000, 36010=>1000, 36011=>1000, 36012=>1000, 36013=>1000, 36014=>1000, 36015=>1000, 36016=>1000,
+ 36018=>1000, 36019=>1000, 36020=>1000, 36022=>1000, 36023=>1000, 36024=>1000, 36025=>1000, 36026=>1000, 36027=>1000, 36028=>1000, 36029=>1000, 36031=>1000, 36032=>1000, 36033=>1000, 36034=>1000, 36035=>1000,
+ 36036=>1000, 36037=>1000, 36038=>1000, 36039=>1000, 36040=>1000, 36041=>1000, 36042=>1000, 36043=>1000, 36045=>1000, 36046=>1000, 36047=>1000, 36049=>1000, 36051=>1000, 36053=>1000, 36054=>1000, 36057=>1000,
+ 36058=>1000, 36059=>1000, 36060=>1000, 36061=>1000, 36062=>1000, 36064=>1000, 36065=>1000, 36066=>1000, 36067=>1000, 36068=>1000, 36070=>1000, 36072=>1000, 36074=>1000, 36076=>1000, 36077=>1000, 36079=>1000,
+ 36080=>1000, 36082=>1000, 36084=>1000, 36085=>1000, 36087=>1000, 36088=>1000, 36090=>1000, 36091=>1000, 36092=>1000, 36093=>1000, 36094=>1000, 36095=>1000, 36097=>1000, 36099=>1000, 36100=>1000, 36101=>1000,
+ 36103=>1000, 36104=>1000, 36105=>1000, 36106=>1000, 36107=>1000, 36109=>1000, 36111=>1000, 36112=>1000, 36114=>1000, 36115=>1000, 36116=>1000, 36118=>1000, 36119=>1000, 36123=>1000, 36196=>1000, 36197=>1000,
+ 36198=>1000, 36199=>1000, 36201=>1000, 36203=>1000, 36204=>1000, 36205=>1000, 36206=>1000, 36208=>1000, 36209=>1000, 36211=>1000, 36212=>1000, 36214=>1000, 36215=>1000, 36223=>1000, 36225=>1000, 36226=>1000,
+ 36228=>1000, 36229=>1000, 36232=>1000, 36234=>1000, 36237=>1000, 36240=>1000, 36241=>1000, 36245=>1000, 36249=>1000, 36254=>1000, 36255=>1000, 36256=>1000, 36259=>1000, 36262=>1000, 36264=>1000, 36267=>1000,
+ 36268=>1000, 36271=>1000, 36274=>1000, 36275=>1000, 36277=>1000, 36279=>1000, 36281=>1000, 36282=>1000, 36283=>1000, 36284=>1000, 36286=>1000, 36288=>1000, 36290=>1000, 36293=>1000, 36294=>1000, 36295=>1000,
+ 36296=>1000, 36298=>1000, 36299=>1000, 36300=>1000, 36302=>1000, 36303=>1000, 36305=>1000, 36308=>1000, 36309=>1000, 36310=>1000, 36311=>1000, 36313=>1000, 36314=>1000, 36315=>1000, 36317=>1000, 36319=>1000,
+ 36321=>1000, 36323=>1000, 36324=>1000, 36325=>1000, 36327=>1000, 36328=>1000, 36330=>1000, 36331=>1000, 36332=>1000, 36335=>1000, 36336=>1000, 36337=>1000, 36338=>1000, 36339=>1000, 36340=>1000, 36341=>1000,
+ 36348=>1000, 36349=>1000, 36351=>1000, 36353=>1000, 36356=>1000, 36357=>1000, 36358=>1000, 36360=>1000, 36361=>1000, 36362=>1000, 36363=>1000, 36367=>1000, 36368=>1000, 36369=>1000, 36372=>1000, 36374=>1000,
+ 36381=>1000, 36382=>1000, 36383=>1000, 36384=>1000, 36385=>1000, 36386=>1000, 36387=>1000, 36390=>1000, 36391=>1000, 36394=>1000, 36400=>1000, 36401=>1000, 36403=>1000, 36404=>1000, 36405=>1000, 36406=>1000,
+ 36407=>1000, 36408=>1000, 36409=>1000, 36413=>1000, 36416=>1000, 36417=>1000, 36418=>1000, 36420=>1000, 36423=>1000, 36424=>1000, 36425=>1000, 36426=>1000, 36427=>1000, 36428=>1000, 36429=>1000, 36430=>1000,
+ 36431=>1000, 36432=>1000, 36436=>1000, 36437=>1000, 36441=>1000, 36443=>1000, 36444=>1000, 36445=>1000, 36446=>1000, 36447=>1000, 36448=>1000, 36449=>1000, 36450=>1000, 36451=>1000, 36452=>1000, 36457=>1000,
+ 36460=>1000, 36461=>1000, 36463=>1000, 36464=>1000, 36465=>1000, 36466=>1000, 36468=>1000, 36470=>1000, 36473=>1000, 36474=>1000, 36475=>1000, 36476=>1000, 36481=>1000, 36482=>1000, 36483=>1000, 36484=>1000,
+ 36485=>1000, 36487=>1000, 36489=>1000, 36490=>1000, 36491=>1000, 36493=>1000, 36496=>1000, 36497=>1000, 36498=>1000, 36499=>1000, 36500=>1000, 36501=>1000, 36505=>1000, 36506=>1000, 36507=>1000, 36509=>1000,
+ 36510=>1000, 36513=>1000, 36514=>1000, 36519=>1000, 36521=>1000, 36522=>1000, 36523=>1000, 36524=>1000, 36525=>1000, 36526=>1000, 36527=>1000, 36528=>1000, 36529=>1000, 36531=>1000, 36533=>1000, 36538=>1000,
+ 36539=>1000, 36542=>1000, 36544=>1000, 36545=>1000, 36547=>1000, 36548=>1000, 36549=>1000, 36550=>1000, 36551=>1000, 36552=>1000, 36554=>1000, 36555=>1000, 36556=>1000, 36557=>1000, 36559=>1000, 36561=>1000,
+ 36562=>1000, 36564=>1000, 36571=>1000, 36572=>1000, 36575=>1000, 36578=>1000, 36579=>1000, 36584=>1000, 36587=>1000, 36589=>1000, 36590=>1000, 36592=>1000, 36593=>1000, 36599=>1000, 36600=>1000, 36601=>1000,
+ 36602=>1000, 36603=>1000, 36604=>1000, 36605=>1000, 36606=>1000, 36608=>1000, 36610=>1000, 36611=>1000, 36613=>1000, 36615=>1000, 36616=>1000, 36617=>1000, 36618=>1000, 36620=>1000, 36623=>1000, 36624=>1000,
+ 36626=>1000, 36627=>1000, 36628=>1000, 36629=>1000, 36630=>1000, 36631=>1000, 36632=>1000, 36633=>1000, 36635=>1000, 36636=>1000, 36637=>1000, 36638=>1000, 36639=>1000, 36640=>1000, 36641=>1000, 36643=>1000,
+ 36645=>1000, 36646=>1000, 36647=>1000, 36648=>1000, 36649=>1000, 36650=>1000, 36652=>1000, 36653=>1000, 36654=>1000, 36655=>1000, 36659=>1000, 36660=>1000, 36661=>1000, 36662=>1000, 36663=>1000, 36664=>1000,
+ 36665=>1000, 36666=>1000, 36667=>1000, 36670=>1000, 36671=>1000, 36672=>1000, 36673=>1000, 36674=>1000, 36675=>1000, 36676=>1000, 36677=>1000, 36678=>1000, 36679=>1000, 36681=>1000, 36684=>1000, 36685=>1000,
+ 36686=>1000, 36687=>1000, 36689=>1000, 36690=>1000, 36691=>1000, 36692=>1000, 36693=>1000, 36695=>1000, 36696=>1000, 36700=>1000, 36701=>1000, 36702=>1000, 36703=>1000, 36705=>1000, 36706=>1000, 36707=>1000,
+ 36708=>1000, 36709=>1000, 36763=>1000, 36764=>1000, 36765=>1000, 36766=>1000, 36767=>1000, 36768=>1000, 36769=>1000, 36771=>1000, 36772=>1000, 36773=>1000, 36774=>1000, 36775=>1000, 36776=>1000, 36781=>1000,
+ 36782=>1000, 36783=>1000, 36784=>1000, 36785=>1000, 36786=>1000, 36789=>1000, 36790=>1000, 36791=>1000, 36792=>1000, 36794=>1000, 36795=>1000, 36796=>1000, 36798=>1000, 36799=>1000, 36800=>1000, 36801=>1000,
+ 36802=>1000, 36804=>1000, 36805=>1000, 36806=>1000, 36810=>1000, 36811=>1000, 36813=>1000, 36814=>1000, 36816=>1000, 36817=>1000, 36818=>1000, 36819=>1000, 36820=>1000, 36821=>1000, 36826=>1000, 36832=>1000,
+ 36834=>1000, 36835=>1000, 36836=>1000, 36837=>1000, 36838=>1000, 36840=>1000, 36841=>1000, 36842=>1000, 36843=>1000, 36845=>1000, 36846=>1000, 36847=>1000, 36848=>1000, 36849=>1000, 36852=>1000, 36853=>1000,
+ 36854=>1000, 36855=>1000, 36856=>1000, 36857=>1000, 36858=>1000, 36859=>1000, 36861=>1000, 36862=>1000, 36864=>1000, 36865=>1000, 36866=>1000, 36867=>1000, 36868=>1000, 36869=>1000, 36870=>1000, 36872=>1000,
+ 36875=>1000, 36876=>1000, 36877=>1000, 36878=>1000, 36879=>1000, 36880=>1000, 36881=>1000, 36883=>1000, 36884=>1000, 36885=>1000, 36886=>1000, 36887=>1000, 36888=>1000, 36889=>1000, 36890=>1000, 36891=>1000,
+ 36893=>1000, 36894=>1000, 36895=>1000, 36896=>1000, 36897=>1000, 36898=>1000, 36899=>1000, 36903=>1000, 36904=>1000, 36905=>1000, 36906=>1000, 36908=>1000, 36909=>1000, 36910=>1000, 36911=>1000, 36913=>1000,
+ 36914=>1000, 36915=>1000, 36916=>1000, 36917=>1000, 36918=>1000, 36919=>1000, 36920=>1000, 36921=>1000, 36924=>1000, 36926=>1000, 36927=>1000, 36929=>1000, 36930=>1000, 36931=>1000, 36932=>1000, 36933=>1000,
+ 36935=>1000, 36937=>1000, 36938=>1000, 36939=>1000, 36940=>1000, 36941=>1000, 36942=>1000, 36943=>1000, 36944=>1000, 36945=>1000, 36946=>1000, 36947=>1000, 36948=>1000, 36949=>1000, 36950=>1000, 36952=>1000,
+ 36953=>1000, 36955=>1000, 36956=>1000, 36957=>1000, 36958=>1000, 36960=>1000, 36961=>1000, 36962=>1000, 36963=>1000, 36965=>1000, 36966=>1000, 36967=>1000, 36968=>1000, 36969=>1000, 36972=>1000, 36973=>1000,
+ 36974=>1000, 36975=>1000, 36976=>1000, 36978=>1000, 36980=>1000, 36981=>1000, 36982=>1000, 36983=>1000, 36984=>1000, 36985=>1000, 36986=>1000, 36988=>1000, 36989=>1000, 36991=>1000, 36992=>1000, 36993=>1000,
+ 36994=>1000, 36995=>1000, 36996=>1000, 36997=>1000, 36999=>1000, 37000=>1000, 37001=>1000, 37002=>1000, 37003=>1000, 37004=>1000, 37006=>1000, 37007=>1000, 37008=>1000, 37009=>1000, 37013=>1000, 37015=>1000,
+ 37016=>1000, 37017=>1000, 37019=>1000, 37024=>1000, 37025=>1000, 37026=>1000, 37027=>1000, 37029=>1000, 37030=>1000, 37032=>1000, 37034=>1000, 37039=>1000, 37040=>1000, 37041=>1000, 37042=>1000, 37043=>1000,
+ 37044=>1000, 37045=>1000, 37046=>1000, 37048=>1000, 37053=>1000, 37054=>1000, 37057=>1000, 37059=>1000, 37060=>1000, 37061=>1000, 37063=>1000, 37064=>1000, 37066=>1000, 37068=>1000, 37070=>1000, 37074=>1000,
+ 37077=>1000, 37079=>1000, 37080=>1000, 37081=>1000, 37083=>1000, 37084=>1000, 37085=>1000, 37086=>1000, 37087=>1000, 37089=>1000, 37090=>1000, 37092=>1000, 37093=>1000, 37096=>1000, 37099=>1000, 37101=>1000,
+ 37103=>1000, 37104=>1000, 37108=>1000, 37109=>1000, 37110=>1000, 37111=>1000, 37117=>1000, 37118=>1000, 37119=>1000, 37120=>1000, 37122=>1000, 37124=>1000, 37125=>1000, 37126=>1000, 37128=>1000, 37133=>1000,
+ 37136=>1000, 37138=>1000, 37140=>1000, 37141=>1000, 37142=>1000, 37143=>1000, 37144=>1000, 37145=>1000, 37146=>1000, 37148=>1000, 37150=>1000, 37152=>1000, 37154=>1000, 37155=>1000, 37157=>1000, 37159=>1000,
+ 37161=>1000, 37165=>1000, 37166=>1000, 37167=>1000, 37168=>1000, 37169=>1000, 37170=>1000, 37172=>1000, 37174=>1000, 37175=>1000, 37177=>1000, 37178=>1000, 37180=>1000, 37181=>1000, 37187=>1000, 37191=>1000,
+ 37192=>1000, 37193=>1000, 37194=>1000, 37195=>1000, 37196=>1000, 37197=>1000, 37198=>1000, 37199=>1000, 37202=>1000, 37203=>1000, 37204=>1000, 37206=>1000, 37207=>1000, 37208=>1000, 37209=>1000, 37210=>1000,
+ 37211=>1000, 37217=>1000, 37218=>1000, 37219=>1000, 37220=>1000, 37221=>1000, 37223=>1000, 37225=>1000, 37226=>1000, 37228=>1000, 37229=>1000, 37234=>1000, 37235=>1000, 37236=>1000, 37237=>1000, 37239=>1000,
+ 37240=>1000, 37241=>1000, 37242=>1000, 37243=>1000, 37249=>1000, 37250=>1000, 37251=>1000, 37253=>1000, 37254=>1000, 37255=>1000, 37257=>1000, 37258=>1000, 37259=>1000, 37261=>1000, 37262=>1000, 37264=>1000,
+ 37265=>1000, 37266=>1000, 37267=>1000, 37268=>1000, 37269=>1000, 37271=>1000, 37272=>1000, 37276=>1000, 37278=>1000, 37281=>1000, 37282=>1000, 37284=>1000, 37286=>1000, 37288=>1000, 37290=>1000, 37291=>1000,
+ 37292=>1000, 37293=>1000, 37294=>1000, 37295=>1000, 37296=>1000, 37297=>1000, 37298=>1000, 37299=>1000, 37300=>1000, 37301=>1000, 37302=>1000, 37304=>1000, 37306=>1000, 37307=>1000, 37308=>1000, 37309=>1000,
+ 37311=>1000, 37312=>1000, 37313=>1000, 37314=>1000, 37315=>1000, 37317=>1000, 37318=>1000, 37319=>1000, 37320=>1000, 37321=>1000, 37323=>1000, 37324=>1000, 37325=>1000, 37326=>1000, 37327=>1000, 37328=>1000,
+ 37329=>1000, 37331=>1000, 37332=>1000, 37334=>1000, 37335=>1000, 37336=>1000, 37337=>1000, 37338=>1000, 37339=>1000, 37340=>1000, 37341=>1000, 37342=>1000, 37343=>1000, 37345=>1000, 37347=>1000, 37348=>1000,
+ 37349=>1000, 37350=>1000, 37351=>1000, 37353=>1000, 37354=>1000, 37356=>1000, 37357=>1000, 37358=>1000, 37359=>1000, 37360=>1000, 37361=>1000, 37365=>1000, 37366=>1000, 37367=>1000, 37369=>1000, 37371=>1000,
+ 37372=>1000, 37373=>1000, 37375=>1000, 37376=>1000, 37377=>1000, 37380=>1000, 37381=>1000, 37382=>1000, 37383=>1000, 37385=>1000, 37386=>1000, 37388=>1000, 37389=>1000, 37390=>1000, 37392=>1000, 37393=>1000,
+ 37394=>1000, 37395=>1000, 37396=>1000, 37397=>1000, 37398=>1000, 37400=>1000, 37404=>1000, 37405=>1000, 37406=>1000, 37411=>1000, 37412=>1000, 37413=>1000, 37414=>1000, 37416=>1000, 37417=>1000, 37420=>1000,
+ 37422=>1000, 37423=>1000, 37424=>1000, 37427=>1000, 37428=>1000, 37429=>1000, 37430=>1000, 37431=>1000, 37432=>1000, 37433=>1000, 37434=>1000, 37436=>1000, 37438=>1000, 37439=>1000, 37440=>1000, 37442=>1000,
+ 37443=>1000, 37444=>1000, 37445=>1000, 37446=>1000, 37447=>1000, 37448=>1000, 37449=>1000, 37450=>1000, 37451=>1000, 37453=>1000, 37454=>1000, 37455=>1000, 37456=>1000, 37457=>1000, 37463=>1000, 37464=>1000,
+ 37465=>1000, 37466=>1000, 37467=>1000, 37468=>1000, 37469=>1000, 37470=>1000, 37472=>1000, 37473=>1000, 37474=>1000, 37476=>1000, 37477=>1000, 37478=>1000, 37479=>1000, 37480=>1000, 37481=>1000, 37486=>1000,
+ 37487=>1000, 37488=>1000, 37489=>1000, 37493=>1000, 37494=>1000, 37495=>1000, 37496=>1000, 37497=>1000, 37499=>1000, 37500=>1000, 37501=>1000, 37502=>1000, 37503=>1000, 37504=>1000, 37507=>1000, 37509=>1000,
+ 37512=>1000, 37513=>1000, 37514=>1000, 37517=>1000, 37518=>1000, 37521=>1000, 37522=>1000, 37523=>1000, 37525=>1000, 37526=>1000, 37527=>1000, 37528=>1000, 37529=>1000, 37530=>1000, 37531=>1000, 37532=>1000,
+ 37535=>1000, 37536=>1000, 37540=>1000, 37541=>1000, 37543=>1000, 37544=>1000, 37547=>1000, 37549=>1000, 37551=>1000, 37554=>1000, 37558=>1000, 37559=>1000, 37560=>1000, 37561=>1000, 37562=>1000, 37563=>1000,
+ 37564=>1000, 37565=>1000, 37567=>1000, 37568=>1000, 37569=>1000, 37570=>1000, 37571=>1000, 37573=>1000, 37574=>1000, 37575=>1000, 37576=>1000, 37579=>1000, 37580=>1000, 37581=>1000, 37582=>1000, 37583=>1000,
+ 37584=>1000, 37586=>1000, 37587=>1000, 37589=>1000, 37591=>1000, 37592=>1000, 37593=>1000, 37596=>1000, 37597=>1000, 37599=>1000, 37600=>1000, 37601=>1000, 37603=>1000, 37604=>1000, 37605=>1000, 37607=>1000,
+ 37608=>1000, 37609=>1000, 37610=>1000, 37612=>1000, 37613=>1000, 37614=>1000, 37616=>1000, 37618=>1000, 37619=>1000, 37624=>1000, 37625=>1000, 37626=>1000, 37627=>1000, 37628=>1000, 37631=>1000, 37632=>1000,
+ 37634=>1000, 37638=>1000, 37640=>1000, 37645=>1000, 37647=>1000, 37648=>1000, 37649=>1000, 37652=>1000, 37653=>1000, 37656=>1000, 37657=>1000, 37658=>1000, 37660=>1000, 37661=>1000, 37662=>1000, 37663=>1000,
+ 37664=>1000, 37665=>1000, 37666=>1000, 37667=>1000, 37668=>1000, 37669=>1000, 37670=>1000, 37671=>1000, 37672=>1000, 37673=>1000, 37674=>1000, 37675=>1000, 37676=>1000, 37678=>1000, 37679=>1000, 37682=>1000,
+ 37683=>1000, 37684=>1000, 37685=>1000, 37686=>1000, 37687=>1000, 37690=>1000, 37691=>1000, 37700=>1000, 37703=>1000, 37704=>1000, 37705=>1000, 37707=>1000, 37709=>1000, 37712=>1000, 37713=>1000, 37714=>1000,
+ 37716=>1000, 37717=>1000, 37718=>1000, 37719=>1000, 37720=>1000, 37722=>1000, 37723=>1000, 37724=>1000, 37726=>1000, 37728=>1000, 37732=>1000, 37733=>1000, 37735=>1000, 37737=>1000, 37738=>1000, 37740=>1000,
+ 37741=>1000, 37742=>1000, 37743=>1000, 37744=>1000, 37745=>1000, 37747=>1000, 37748=>1000, 37749=>1000, 37750=>1000, 37754=>1000, 37756=>1000, 37757=>1000, 37758=>1000, 37759=>1000, 37760=>1000, 37761=>1000,
+ 37762=>1000, 37768=>1000, 37770=>1000, 37771=>1000, 37772=>1000, 37773=>1000, 37775=>1000, 37778=>1000, 37780=>1000, 37781=>1000, 37782=>1000, 37783=>1000, 37784=>1000, 37786=>1000, 37787=>1000, 37790=>1000,
+ 37793=>1000, 37795=>1000, 37796=>1000, 37798=>1000, 37799=>1000, 37800=>1000, 37801=>1000, 37803=>1000, 37804=>1000, 37805=>1000, 37806=>1000, 37808=>1000, 37812=>1000, 37813=>1000, 37814=>1000, 37817=>1000,
+ 37818=>1000, 37825=>1000, 37827=>1000, 37828=>1000, 37829=>1000, 37830=>1000, 37831=>1000, 37832=>1000, 37833=>1000, 37834=>1000, 37835=>1000, 37836=>1000, 37837=>1000, 37840=>1000, 37841=>1000, 37843=>1000,
+ 37846=>1000, 37847=>1000, 37848=>1000, 37849=>1000, 37852=>1000, 37853=>1000, 37854=>1000, 37855=>1000, 37857=>1000, 37858=>1000, 37860=>1000, 37861=>1000, 37862=>1000, 37863=>1000, 37864=>1000, 37879=>1000,
+ 37880=>1000, 37881=>1000, 37882=>1000, 37883=>1000, 37885=>1000, 37889=>1000, 37890=>1000, 37891=>1000, 37892=>1000, 37895=>1000, 37896=>1000, 37897=>1000, 37901=>1000, 37902=>1000, 37903=>1000, 37904=>1000,
+ 37907=>1000, 37908=>1000, 37909=>1000, 37910=>1000, 37911=>1000, 37912=>1000, 37913=>1000, 37914=>1000, 37919=>1000, 37921=>1000, 37931=>1000, 37934=>1000, 37935=>1000, 37937=>1000, 37938=>1000, 37939=>1000,
+ 37940=>1000, 37941=>1000, 37942=>1000, 37944=>1000, 37946=>1000, 37947=>1000, 37949=>1000, 37951=>1000, 37953=>1000, 37955=>1000, 37956=>1000, 37957=>1000, 37960=>1000, 37962=>1000, 37964=>1000, 37969=>1000,
+ 37970=>1000, 37971=>1000, 37973=>1000, 37977=>1000, 37978=>1000, 37979=>1000, 37980=>1000, 37982=>1000, 37983=>1000, 37984=>1000, 37985=>1000, 37986=>1000, 37987=>1000, 37992=>1000, 37994=>1000, 37995=>1000,
+ 37997=>1000, 37998=>1000, 37999=>1000, 38000=>1000, 38001=>1000, 38002=>1000, 38005=>1000, 38007=>1000, 38012=>1000, 38013=>1000, 38014=>1000, 38015=>1000, 38017=>1000, 38019=>1000, 38020=>1000, 38263=>1000,
+ 38264=>1000, 38265=>1000, 38270=>1000, 38272=>1000, 38274=>1000, 38275=>1000, 38276=>1000, 38279=>1000, 38280=>1000, 38281=>1000, 38282=>1000, 38283=>1000, 38284=>1000, 38285=>1000, 38286=>1000, 38287=>1000,
+ 38289=>1000, 38290=>1000, 38291=>1000, 38292=>1000, 38294=>1000, 38296=>1000, 38297=>1000, 38301=>1000, 38302=>1000, 38303=>1000, 38304=>1000, 38305=>1000, 38306=>1000, 38307=>1000, 38308=>1000, 38309=>1000,
+ 38310=>1000, 38311=>1000, 38312=>1000, 38313=>1000, 38315=>1000, 38316=>1000, 38317=>1000, 38322=>1000, 38324=>1000, 38326=>1000, 38329=>1000, 38330=>1000, 38331=>1000, 38332=>1000, 38333=>1000, 38334=>1000,
+ 38335=>1000, 38339=>1000, 38342=>1000, 38343=>1000, 38344=>1000, 38345=>1000, 38346=>1000, 38347=>1000, 38348=>1000, 38349=>1000, 38352=>1000, 38353=>1000, 38354=>1000, 38355=>1000, 38356=>1000, 38357=>1000,
+ 38358=>1000, 38360=>1000, 38361=>1000, 38362=>1000, 38364=>1000, 38365=>1000, 38366=>1000, 38367=>1000, 38368=>1000, 38369=>1000, 38370=>1000, 38372=>1000, 38373=>1000, 38374=>1000, 38428=>1000, 38429=>1000,
+ 38430=>1000, 38433=>1000, 38434=>1000, 38436=>1000, 38437=>1000, 38438=>1000, 38440=>1000, 38442=>1000, 38444=>1000, 38446=>1000, 38447=>1000, 38449=>1000, 38450=>1000, 38451=>1000, 38455=>1000, 38456=>1000,
+ 38457=>1000, 38458=>1000, 38459=>1000, 38460=>1000, 38461=>1000, 38463=>1000, 38464=>1000, 38465=>1000, 38466=>1000, 38468=>1000, 38475=>1000, 38476=>1000, 38477=>1000, 38479=>1000, 38480=>1000, 38482=>1000,
+ 38484=>1000, 38486=>1000, 38487=>1000, 38488=>1000, 38491=>1000, 38492=>1000, 38493=>1000, 38494=>1000, 38495=>1000, 38497=>1000, 38498=>1000, 38499=>1000, 38500=>1000, 38501=>1000, 38502=>1000, 38506=>1000,
+ 38508=>1000, 38510=>1000, 38512=>1000, 38514=>1000, 38515=>1000, 38516=>1000, 38517=>1000, 38518=>1000, 38519=>1000, 38520=>1000, 38522=>1000, 38523=>1000, 38524=>1000, 38525=>1000, 38526=>1000, 38527=>1000,
+ 38529=>1000, 38530=>1000, 38531=>1000, 38532=>1000, 38533=>1000, 38534=>1000, 38536=>1000, 38537=>1000, 38538=>1000, 38539=>1000, 38541=>1000, 38542=>1000, 38543=>1000, 38545=>1000, 38548=>1000, 38549=>1000,
+ 38550=>1000, 38551=>1000, 38552=>1000, 38553=>1000, 38554=>1000, 38555=>1000, 38556=>1000, 38557=>1000, 38559=>1000, 38560=>1000, 38563=>1000, 38564=>1000, 38565=>1000, 38566=>1000, 38567=>1000, 38568=>1000,
+ 38569=>1000, 38570=>1000, 38574=>1000, 38575=>1000, 38576=>1000, 38577=>1000, 38578=>1000, 38579=>1000, 38580=>1000, 38582=>1000, 38583=>1000, 38584=>1000, 38585=>1000, 38586=>1000, 38587=>1000, 38588=>1000,
+ 38592=>1000, 38593=>1000, 38596=>1000, 38597=>1000, 38598=>1000, 38599=>1000, 38601=>1000, 38602=>1000, 38603=>1000, 38604=>1000, 38605=>1000, 38606=>1000, 38609=>1000, 38610=>1000, 38613=>1000, 38614=>1000,
+ 38616=>1000, 38617=>1000, 38618=>1000, 38619=>1000, 38620=>1000, 38621=>1000, 38622=>1000, 38623=>1000, 38626=>1000, 38627=>1000, 38632=>1000, 38633=>1000, 38634=>1000, 38635=>1000, 38639=>1000, 38640=>1000,
+ 38641=>1000, 38642=>1000, 38646=>1000, 38647=>1000, 38649=>1000, 38650=>1000, 38651=>1000, 38656=>1000, 38658=>1000, 38659=>1000, 38660=>1000, 38661=>1000, 38662=>1000, 38663=>1000, 38664=>1000, 38665=>1000,
+ 38666=>1000, 38669=>1000, 38670=>1000, 38671=>1000, 38673=>1000, 38675=>1000, 38678=>1000, 38681=>1000, 38682=>1000, 38683=>1000, 38684=>1000, 38685=>1000, 38686=>1000, 38689=>1000, 38690=>1000, 38691=>1000,
+ 38692=>1000, 38695=>1000, 38696=>1000, 38698=>1000, 38704=>1000, 38705=>1000, 38706=>1000, 38707=>1000, 38712=>1000, 38713=>1000, 38715=>1000, 38717=>1000, 38718=>1000, 38721=>1000, 38722=>1000, 38723=>1000,
+ 38724=>1000, 38726=>1000, 38728=>1000, 38729=>1000, 38730=>1000, 38733=>1000, 38734=>1000, 38735=>1000, 38737=>1000, 38738=>1000, 38741=>1000, 38742=>1000, 38743=>1000, 38744=>1000, 38745=>1000, 38746=>1000,
+ 38747=>1000, 38748=>1000, 38750=>1000, 38752=>1000, 38753=>1000, 38754=>1000, 38755=>1000, 38756=>1000, 38758=>1000, 38759=>1000, 38760=>1000, 38761=>1000, 38762=>1000, 38763=>1000, 38765=>1000, 38766=>1000,
+ 38769=>1000, 38771=>1000, 38772=>1000, 38774=>1000, 38775=>1000, 38776=>1000, 38777=>1000, 38778=>1000, 38779=>1000, 38780=>1000, 38781=>1000, 38783=>1000, 38784=>1000, 38785=>1000, 38788=>1000, 38789=>1000,
+ 38790=>1000, 38793=>1000, 38795=>1000, 38797=>1000, 38799=>1000, 38800=>1000, 38805=>1000, 38806=>1000, 38807=>1000, 38808=>1000, 38809=>1000, 38810=>1000, 38812=>1000, 38814=>1000, 38815=>1000, 38816=>1000,
+ 38818=>1000, 38819=>1000, 38822=>1000, 38824=>1000, 38827=>1000, 38828=>1000, 38829=>1000, 38830=>1000, 38833=>1000, 38834=>1000, 38835=>1000, 38836=>1000, 38837=>1000, 38838=>1000, 38840=>1000, 38841=>1000,
+ 38842=>1000, 38844=>1000, 38846=>1000, 38847=>1000, 38849=>1000, 38851=>1000, 38852=>1000, 38853=>1000, 38854=>1000, 38855=>1000, 38856=>1000, 38857=>1000, 38858=>1000, 38859=>1000, 38860=>1000, 38861=>1000,
+ 38862=>1000, 38864=>1000, 38865=>1000, 38867=>1000, 38868=>1000, 38871=>1000, 38872=>1000, 38873=>1000, 38875=>1000, 38876=>1000, 38877=>1000, 38878=>1000, 38880=>1000, 38881=>1000, 38884=>1000, 38893=>1000,
+ 38894=>1000, 38895=>1000, 38897=>1000, 38898=>1000, 38899=>1000, 38900=>1000, 38901=>1000, 38902=>1000, 38903=>1000, 38904=>1000, 38906=>1000, 38907=>1000, 38911=>1000, 38913=>1000, 38914=>1000, 38915=>1000,
+ 38917=>1000, 38918=>1000, 38919=>1000, 38920=>1000, 38922=>1000, 38924=>1000, 38925=>1000, 38926=>1000, 38927=>1000, 38928=>1000, 38929=>1000, 38930=>1000, 38931=>1000, 38932=>1000, 38934=>1000, 38935=>1000,
+ 38936=>1000, 38937=>1000, 38938=>1000, 38940=>1000, 38942=>1000, 38944=>1000, 38945=>1000, 38947=>1000, 38948=>1000, 38949=>1000, 38950=>1000, 38955=>1000, 38956=>1000, 38957=>1000, 38958=>1000, 38959=>1000,
+ 38960=>1000, 38962=>1000, 38963=>1000, 38964=>1000, 38965=>1000, 38967=>1000, 38968=>1000, 38971=>1000, 38972=>1000, 38973=>1000, 38974=>1000, 38980=>1000, 38982=>1000, 38983=>1000, 38986=>1000, 38987=>1000,
+ 38988=>1000, 38989=>1000, 38990=>1000, 38991=>1000, 38993=>1000, 38994=>1000, 38995=>1000, 38996=>1000, 38997=>1000, 38998=>1000, 38999=>1000, 39000=>1000, 39001=>1000, 39002=>1000, 39003=>1000, 39006=>1000,
+ 39010=>1000, 39011=>1000, 39013=>1000, 39014=>1000, 39015=>1000, 39018=>1000, 39019=>1000, 39020=>1000, 39023=>1000, 39024=>1000, 39025=>1000, 39027=>1000, 39028=>1000, 39080=>1000, 39082=>1000, 39083=>1000,
+ 39085=>1000, 39086=>1000, 39087=>1000, 39088=>1000, 39089=>1000, 39092=>1000, 39094=>1000, 39095=>1000, 39096=>1000, 39098=>1000, 39099=>1000, 39103=>1000, 39106=>1000, 39107=>1000, 39108=>1000, 39109=>1000,
+ 39110=>1000, 39112=>1000, 39116=>1000, 39131=>1000, 39132=>1000, 39135=>1000, 39137=>1000, 39138=>1000, 39139=>1000, 39141=>1000, 39142=>1000, 39143=>1000, 39145=>1000, 39146=>1000, 39147=>1000, 39149=>1000,
+ 39150=>1000, 39151=>1000, 39154=>1000, 39155=>1000, 39156=>1000, 39158=>1000, 39164=>1000, 39165=>1000, 39166=>1000, 39170=>1000, 39171=>1000, 39173=>1000, 39175=>1000, 39176=>1000, 39177=>1000, 39178=>1000,
+ 39180=>1000, 39184=>1000, 39185=>1000, 39186=>1000, 39187=>1000, 39188=>1000, 39189=>1000, 39190=>1000, 39191=>1000, 39192=>1000, 39194=>1000, 39195=>1000, 39196=>1000, 39197=>1000, 39198=>1000, 39199=>1000,
+ 39200=>1000, 39201=>1000, 39202=>1000, 39204=>1000, 39206=>1000, 39207=>1000, 39208=>1000, 39211=>1000, 39212=>1000, 39214=>1000, 39217=>1000, 39218=>1000, 39219=>1000, 39220=>1000, 39221=>1000, 39225=>1000,
+ 39226=>1000, 39227=>1000, 39228=>1000, 39229=>1000, 39230=>1000, 39232=>1000, 39233=>1000, 39234=>1000, 39237=>1000, 39238=>1000, 39239=>1000, 39240=>1000, 39241=>1000, 39243=>1000, 39244=>1000, 39245=>1000,
+ 39246=>1000, 39248=>1000, 39249=>1000, 39250=>1000, 39252=>1000, 39253=>1000, 39255=>1000, 39256=>1000, 39257=>1000, 39259=>1000, 39260=>1000, 39262=>1000, 39263=>1000, 39264=>1000, 39318=>1000, 39319=>1000,
+ 39320=>1000, 39321=>1000, 39323=>1000, 39325=>1000, 39326=>1000, 39327=>1000, 39333=>1000, 39334=>1000, 39336=>1000, 39340=>1000, 39341=>1000, 39342=>1000, 39344=>1000, 39345=>1000, 39346=>1000, 39347=>1000,
+ 39348=>1000, 39349=>1000, 39353=>1000, 39354=>1000, 39356=>1000, 39357=>1000, 39359=>1000, 39361=>1000, 39363=>1000, 39364=>1000, 39365=>1000, 39366=>1000, 39368=>1000, 39369=>1000, 39376=>1000, 39377=>1000,
+ 39378=>1000, 39379=>1000, 39380=>1000, 39381=>1000, 39384=>1000, 39385=>1000, 39386=>1000, 39387=>1000, 39388=>1000, 39389=>1000, 39390=>1000, 39391=>1000, 39394=>1000, 39399=>1000, 39402=>1000, 39403=>1000,
+ 39404=>1000, 39405=>1000, 39406=>1000, 39408=>1000, 39409=>1000, 39410=>1000, 39412=>1000, 39413=>1000, 39416=>1000, 39417=>1000, 39419=>1000, 39421=>1000, 39422=>1000, 39423=>1000, 39425=>1000, 39426=>1000,
+ 39427=>1000, 39428=>1000, 39429=>1000, 39435=>1000, 39436=>1000, 39438=>1000, 39439=>1000, 39440=>1000, 39441=>1000, 39442=>1000, 39443=>1000, 39446=>1000, 39449=>1000, 39454=>1000, 39456=>1000, 39458=>1000,
+ 39459=>1000, 39460=>1000, 39463=>1000, 39464=>1000, 39467=>1000, 39469=>1000, 39470=>1000, 39472=>1000, 39475=>1000, 39477=>1000, 39478=>1000, 39479=>1000, 39480=>1000, 39486=>1000, 39488=>1000, 39489=>1000,
+ 39490=>1000, 39491=>1000, 39492=>1000, 39493=>1000, 39495=>1000, 39498=>1000, 39499=>1000, 39500=>1000, 39501=>1000, 39502=>1000, 39505=>1000, 39508=>1000, 39509=>1000, 39510=>1000, 39511=>1000, 39514=>1000,
+ 39515=>1000, 39517=>1000, 39519=>1000, 39522=>1000, 39524=>1000, 39525=>1000, 39529=>1000, 39530=>1000, 39531=>1000, 39592=>1000, 39594=>1000, 39596=>1000, 39597=>1000, 39598=>1000, 39599=>1000, 39600=>1000,
+ 39602=>1000, 39604=>1000, 39605=>1000, 39606=>1000, 39608=>1000, 39609=>1000, 39611=>1000, 39612=>1000, 39614=>1000, 39615=>1000, 39616=>1000, 39617=>1000, 39619=>1000, 39620=>1000, 39622=>1000, 39624=>1000,
+ 39630=>1000, 39631=>1000, 39632=>1000, 39633=>1000, 39634=>1000, 39635=>1000, 39636=>1000, 39637=>1000, 39638=>1000, 39639=>1000, 39640=>1000, 39641=>1000, 39643=>1000, 39644=>1000, 39646=>1000, 39647=>1000,
+ 39648=>1000, 39650=>1000, 39651=>1000, 39652=>1000, 39653=>1000, 39654=>1000, 39655=>1000, 39657=>1000, 39658=>1000, 39659=>1000, 39660=>1000, 39661=>1000, 39662=>1000, 39663=>1000, 39665=>1000, 39666=>1000,
+ 39667=>1000, 39668=>1000, 39669=>1000, 39671=>1000, 39673=>1000, 39674=>1000, 39675=>1000, 39677=>1000, 39679=>1000, 39680=>1000, 39681=>1000, 39682=>1000, 39683=>1000, 39684=>1000, 39685=>1000, 39686=>1000,
+ 39688=>1000, 39689=>1000, 39691=>1000, 39692=>1000, 39693=>1000, 39694=>1000, 39696=>1000, 39698=>1000, 39702=>1000, 39704=>1000, 39705=>1000, 39706=>1000, 39707=>1000, 39708=>1000, 39711=>1000, 39712=>1000,
+ 39714=>1000, 39715=>1000, 39717=>1000, 39718=>1000, 39719=>1000, 39720=>1000, 39721=>1000, 39722=>1000, 39723=>1000, 39725=>1000, 39726=>1000, 39727=>1000, 39729=>1000, 39730=>1000, 39731=>1000, 39732=>1000,
+ 39733=>1000, 39735=>1000, 39737=>1000, 39738=>1000, 39739=>1000, 39740=>1000, 39741=>1000, 39745=>1000, 39746=>1000, 39747=>1000, 39748=>1000, 39749=>1000, 39752=>1000, 39755=>1000, 39756=>1000, 39757=>1000,
+ 39758=>1000, 39759=>1000, 39761=>1000, 39764=>1000, 39765=>1000, 39766=>1000, 39767=>1000, 39768=>1000, 39770=>1000, 39771=>1000, 39774=>1000, 39777=>1000, 39779=>1000, 39781=>1000, 39782=>1000, 39784=>1000,
+ 39786=>1000, 39787=>1000, 39788=>1000, 39789=>1000, 39790=>1000, 39791=>1000, 39794=>1000, 39795=>1000, 39796=>1000, 39797=>1000, 39799=>1000, 39800=>1000, 39801=>1000, 39807=>1000, 39808=>1000, 39811=>1000,
+ 39812=>1000, 39813=>1000, 39814=>1000, 39815=>1000, 39817=>1000, 39818=>1000, 39819=>1000, 39821=>1000, 39822=>1000, 39823=>1000, 39824=>1000, 39825=>1000, 39826=>1000, 39827=>1000, 39828=>1000, 39830=>1000,
+ 39831=>1000, 39834=>1000, 39837=>1000, 39838=>1000, 39839=>1000, 39840=>1000, 39846=>1000, 39847=>1000, 39848=>1000, 39849=>1000, 39850=>1000, 39851=>1000, 39852=>1000, 39853=>1000, 39854=>1000, 39856=>1000,
+ 39857=>1000, 39858=>1000, 39860=>1000, 39863=>1000, 39864=>1000, 39865=>1000, 39867=>1000, 39868=>1000, 39870=>1000, 39871=>1000, 39872=>1000, 39873=>1000, 39878=>1000, 39879=>1000, 39880=>1000, 39881=>1000,
+ 39882=>1000, 39886=>1000, 39887=>1000, 39888=>1000, 39889=>1000, 39890=>1000, 39892=>1000, 39894=>1000, 39895=>1000, 39896=>1000, 39899=>1000, 39901=>1000, 39903=>1000, 39905=>1000, 39906=>1000, 39907=>1000,
+ 39908=>1000, 39909=>1000, 39911=>1000, 39912=>1000, 39914=>1000, 39915=>1000, 39919=>1000, 39920=>1000, 39921=>1000, 39922=>1000, 39923=>1000, 39925=>1000, 39927=>1000, 39928=>1000, 39929=>1000, 39930=>1000,
+ 39933=>1000, 39935=>1000, 39936=>1000, 39938=>1000, 39940=>1000, 39942=>1000, 39944=>1000, 39945=>1000, 39946=>1000, 39947=>1000, 39948=>1000, 39949=>1000, 39951=>1000, 39952=>1000, 39953=>1000, 39954=>1000,
+ 39955=>1000, 39956=>1000, 39957=>1000, 39958=>1000, 39960=>1000, 39961=>1000, 39962=>1000, 39963=>1000, 39964=>1000, 39966=>1000, 39969=>1000, 39970=>1000, 39971=>1000, 39972=>1000, 39973=>1000, 39974=>1000,
+ 39975=>1000, 39976=>1000, 39977=>1000, 39978=>1000, 39981=>1000, 39982=>1000, 39983=>1000, 39984=>1000, 39985=>1000, 39986=>1000, 39989=>1000, 39990=>1000, 39991=>1000, 39993=>1000, 39994=>1000, 39995=>1000,
+ 39997=>1000, 39998=>1000, 40001=>1000, 40003=>1000, 40004=>1000, 40005=>1000, 40006=>1000, 40007=>1000, 40008=>1000, 40009=>1000, 40010=>1000, 40014=>1000, 40015=>1000, 40016=>1000, 40018=>1000, 40019=>1000,
+ 40020=>1000, 40022=>1000, 40023=>1000, 40024=>1000, 40026=>1000, 40027=>1000, 40028=>1000, 40029=>1000, 40030=>1000, 40031=>1000, 40032=>1000, 40035=>1000, 40039=>1000, 40040=>1000, 40041=>1000, 40042=>1000,
+ 40043=>1000, 40046=>1000, 40048=>1000, 40050=>1000, 40053=>1000, 40054=>1000, 40055=>1000, 40056=>1000, 40059=>1000, 40165=>1000, 40166=>1000, 40167=>1000, 40169=>1000, 40171=>1000, 40172=>1000, 40176=>1000,
+ 40178=>1000, 40179=>1000, 40180=>1000, 40182=>1000, 40183=>1000, 40185=>1000, 40194=>1000, 40195=>1000, 40198=>1000, 40199=>1000, 40200=>1000, 40201=>1000, 40203=>1000, 40206=>1000, 40209=>1000, 40210=>1000,
+ 40213=>1000, 40215=>1000, 40216=>1000, 40219=>1000, 40220=>1000, 40221=>1000, 40222=>1000, 40223=>1000, 40227=>1000, 40230=>1000, 40232=>1000, 40234=>1000, 40235=>1000, 40236=>1000, 40239=>1000, 40240=>1000,
+ 40242=>1000, 40243=>1000, 40244=>1000, 40250=>1000, 40251=>1000, 40252=>1000, 40253=>1000, 40254=>1000, 40255=>1000, 40257=>1000, 40258=>1000, 40259=>1000, 40260=>1000, 40261=>1000, 40262=>1000, 40263=>1000,
+ 40264=>1000, 40266=>1000, 40272=>1000, 40273=>1000, 40275=>1000, 40276=>1000, 40281=>1000, 40284=>1000, 40285=>1000, 40286=>1000, 40287=>1000, 40288=>1000, 40289=>1000, 40290=>1000, 40291=>1000, 40292=>1000,
+ 40293=>1000, 40297=>1000, 40298=>1000, 40299=>1000, 40300=>1000, 40303=>1000, 40304=>1000, 40306=>1000, 40310=>1000, 40311=>1000, 40314=>1000, 40315=>1000, 40316=>1000, 40318=>1000, 40323=>1000, 40324=>1000,
+ 40326=>1000, 40327=>1000, 40329=>1000, 40330=>1000, 40333=>1000, 40334=>1000, 40335=>1000, 40338=>1000, 40339=>1000, 40341=>1000, 40342=>1000, 40343=>1000, 40344=>1000, 40346=>1000, 40353=>1000, 40356=>1000,
+ 40361=>1000, 40362=>1000, 40363=>1000, 40364=>1000, 40366=>1000, 40367=>1000, 40369=>1000, 40370=>1000, 40372=>1000, 40373=>1000, 40376=>1000, 40377=>1000, 40378=>1000, 40379=>1000, 40380=>1000, 40383=>1000,
+ 40385=>1000, 40386=>1000, 40387=>1000, 40388=>1000, 40390=>1000, 40391=>1000, 40393=>1000, 40394=>1000, 40399=>1000, 40403=>1000, 40404=>1000, 40405=>1000, 40406=>1000, 40407=>1000, 40409=>1000, 40410=>1000,
+ 40414=>1000, 40415=>1000, 40416=>1000, 40421=>1000, 40422=>1000, 40423=>1000, 40425=>1000, 40427=>1000, 40429=>1000, 40430=>1000, 40431=>1000, 40432=>1000, 40434=>1000, 40435=>1000, 40436=>1000, 40440=>1000,
+ 40441=>1000, 40442=>1000, 40445=>1000, 40446=>1000, 40450=>1000, 40455=>1000, 40458=>1000, 40462=>1000, 40464=>1000, 40465=>1000, 40466=>1000, 40469=>1000, 40470=>1000, 40473=>1000, 40474=>1000, 40475=>1000,
+ 40476=>1000, 40477=>1000, 40478=>1000, 40565=>1000, 40568=>1000, 40569=>1000, 40570=>1000, 40571=>1000, 40572=>1000, 40573=>1000, 40575=>1000, 40576=>1000, 40577=>1000, 40578=>1000, 40579=>1000, 40580=>1000,
+ 40581=>1000, 40583=>1000, 40584=>1000, 40587=>1000, 40588=>1000, 40590=>1000, 40591=>1000, 40593=>1000, 40594=>1000, 40595=>1000, 40597=>1000, 40598=>1000, 40599=>1000, 40600=>1000, 40603=>1000, 40605=>1000,
+ 40606=>1000, 40607=>1000, 40612=>1000, 40613=>1000, 40614=>1000, 40616=>1000, 40617=>1000, 40618=>1000, 40620=>1000, 40621=>1000, 40622=>1000, 40623=>1000, 40624=>1000, 40627=>1000, 40628=>1000, 40629=>1000,
+ 40632=>1000, 40633=>1000, 40634=>1000, 40635=>1000, 40636=>1000, 40638=>1000, 40639=>1000, 40644=>1000, 40646=>1000, 40648=>1000, 40651=>1000, 40652=>1000, 40653=>1000, 40654=>1000, 40655=>1000, 40656=>1000,
+ 40657=>1000, 40658=>1000, 40660=>1000, 40661=>1000, 40664=>1000, 40665=>1000, 40667=>1000, 40668=>1000, 40669=>1000, 40670=>1000, 40671=>1000, 40672=>1000, 40676=>1000, 40677=>1000, 40679=>1000, 40680=>1000,
+ 40684=>1000, 40685=>1000, 40686=>1000, 40687=>1000, 40688=>1000, 40689=>1000, 40690=>1000, 40692=>1000, 40693=>1000, 40694=>1000, 40695=>1000, 40696=>1000, 40697=>1000, 40699=>1000, 40700=>1000, 40701=>1000,
+ 40703=>1000, 40706=>1000, 40707=>1000, 40711=>1000, 40712=>1000, 40713=>1000, 40718=>1000, 40719=>1000, 40720=>1000, 40721=>1000, 40722=>1000, 40723=>1000, 40724=>1000, 40725=>1000, 40726=>1000, 40727=>1000,
+ 40729=>1000, 40730=>1000, 40731=>1000, 40735=>1000, 40736=>1000, 40737=>1000, 40738=>1000, 40742=>1000, 40746=>1000, 40747=>1000, 40748=>1000, 40751=>1000, 40753=>1000, 40754=>1000, 40756=>1000, 40759=>1000,
+ 40761=>1000, 40762=>1000, 40763=>1000, 40764=>1000, 40765=>1000, 40766=>1000, 40767=>1000, 40769=>1000, 40771=>1000, 40772=>1000, 40773=>1000, 40774=>1000, 40775=>1000, 40778=>1000, 40779=>1000, 40782=>1000,
+ 40783=>1000, 40786=>1000, 40787=>1000, 40788=>1000, 40789=>1000, 40790=>1000, 40791=>1000, 40792=>1000, 40794=>1000, 40797=>1000, 40798=>1000, 40799=>1000, 40800=>1000, 40801=>1000, 40802=>1000, 40803=>1000,
+ 40806=>1000, 40807=>1000, 40808=>1000, 40809=>1000, 40810=>1000, 40812=>1000, 40813=>1000, 40814=>1000, 40815=>1000, 40816=>1000, 40817=>1000, 40818=>1000, 40819=>1000, 40821=>1000, 40822=>1000, 40823=>1000,
+ 40826=>1000, 40829=>1000, 40845=>1000, 40847=>1000, 40848=>1000, 40849=>1000, 40850=>1000, 40852=>1000, 40853=>1000, 40854=>1000, 40855=>1000, 40860=>1000, 40861=>1000, 40862=>1000, 40864=>1000, 40865=>1000,
+ 40866=>1000, 40867=>1000, 40869=>1000, 63785=>1000, 63964=>1000, 64014=>1000, 64015=>1000, 64016=>1000, 64017=>1000, 64018=>1000, 64019=>1000, 64020=>1000, 64021=>1000, 64022=>1000, 64023=>1000, 64024=>1000,
+ 64025=>1000, 64026=>1000, 64027=>1000, 64028=>1000, 64029=>1000, 64030=>1000, 64031=>1000, 64032=>1000, 64033=>1000, 64034=>1000, 64035=>1000, 64036=>1000, 64037=>1000, 64038=>1000, 64039=>1000, 64040=>1000,
+ 64041=>1000, 64042=>1000, 64043=>1000, 64044=>1000, 64045=>1000, 65281=>1000, 65282=>1000, 65283=>1000, 65284=>1000, 65285=>1000, 65286=>1000, 65287=>1000, 65288=>1000, 65289=>1000, 65290=>1000, 65291=>1000,
+ 65292=>1000, 65293=>1000, 65294=>1000, 65295=>1000, 65296=>1000, 65297=>1000, 65298=>1000, 65299=>1000, 65300=>1000, 65301=>1000, 65302=>1000, 65303=>1000, 65304=>1000, 65305=>1000, 65306=>1000, 65307=>1000,
+ 65308=>1000, 65309=>1000, 65310=>1000, 65311=>1000, 65312=>1000, 65313=>1000, 65314=>1000, 65315=>1000, 65316=>1000, 65317=>1000, 65318=>1000, 65319=>1000, 65320=>1000, 65321=>1000, 65322=>1000, 65323=>1000,
+ 65324=>1000, 65325=>1000, 65326=>1000, 65327=>1000, 65328=>1000, 65329=>1000, 65330=>1000, 65331=>1000, 65332=>1000, 65333=>1000, 65334=>1000, 65335=>1000, 65336=>1000, 65337=>1000, 65338=>1000, 65339=>1000,
+ 65340=>1000, 65341=>1000, 65342=>1000, 65343=>1000, 65344=>1000, 65345=>1000, 65346=>1000, 65347=>1000, 65348=>1000, 65349=>1000, 65350=>1000, 65351=>1000, 65352=>1000, 65353=>1000, 65354=>1000, 65355=>1000,
+ 65356=>1000, 65357=>1000, 65358=>1000, 65359=>1000, 65360=>1000, 65361=>1000, 65362=>1000, 65363=>1000, 65364=>1000, 65365=>1000, 65366=>1000, 65367=>1000, 65368=>1000, 65369=>1000, 65370=>1000, 65371=>1000,
+ 65372=>1000, 65373=>1000, 65374=>1000, 65377=>500, 65378=>500, 65379=>500, 65380=>500, 65381=>500, 65382=>500, 65383=>500, 65384=>500, 65385=>500, 65386=>500, 65387=>500, 65388=>500, 65389=>500,
+ 65390=>500, 65391=>500, 65392=>500, 65393=>500, 65394=>500, 65395=>500, 65396=>500, 65397=>500, 65398=>500, 65399=>500, 65400=>500, 65401=>500, 65402=>500, 65403=>500, 65404=>500, 65405=>500,
+ 65406=>500, 65407=>500, 65408=>500, 65409=>500, 65410=>500, 65411=>500, 65412=>500, 65413=>500, 65414=>500, 65415=>500, 65416=>500, 65417=>500, 65418=>500, 65419=>500, 65420=>500, 65421=>500,
+ 65422=>500, 65423=>500, 65424=>500, 65425=>500, 65426=>500, 65427=>500, 65428=>500, 65429=>500, 65430=>500, 65431=>500, 65432=>500, 65433=>500, 65434=>500, 65435=>500, 65436=>500, 65437=>500,
+ 65438=>500, 65439=>500, 65504=>1000, 65505=>1000, 65506=>1000, 65507=>1000, 65509=>1000}
font[:enc]='';
font[:diff]='';
font[:file]='';
font[:registry]={'ordering'=>'Japan1','supplement'=>2}
-end
\ No newline at end of file
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/symbol.rb b/lib/plugins/rfpdf/lib/fonts/symbol.rb
index 17ebbf5769..c77c1fd6a0 100755
--- a/lib/plugins/rfpdf/lib/fonts/symbol.rb
+++ b/lib/plugins/rfpdf/lib/fonts/symbol.rb
@@ -1,16 +1,16 @@
#-- encoding: UTF-8
TCPDFFontDescriptor.define('symbol') do |font|
font[:cw]={
- 0.chr=>250,1.chr=>250,2.chr=>250,3.chr=>250,4.chr=>250,5.chr=>250,6.chr=>250,7.chr=>250,8.chr=>250,9.chr=>250,10.chr=>250,11.chr=>250,12.chr=>250,13.chr=>250,14.chr=>250,15.chr=>250,16.chr=>250,17.chr=>250,18.chr=>250,19.chr=>250,20.chr=>250,21.chr=>250,
- 22.chr=>250,23.chr=>250,24.chr=>250,25.chr=>250,26.chr=>250,27.chr=>250,28.chr=>250,29.chr=>250,30.chr=>250,31.chr=>250,' '=>250,'!'=>333,'"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549,
- ','=>250,'-'=>549,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722,
- 'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768,
- 'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576,
- 'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,127.chr=>0,128.chr=>0,129.chr=>0,130.chr=>0,131.chr=>0,
- 132.chr=>0,133.chr=>0,134.chr=>0,135.chr=>0,136.chr=>0,137.chr=>0,138.chr=>0,139.chr=>0,140.chr=>0,141.chr=>0,142.chr=>0,143.chr=>0,144.chr=>0,145.chr=>0,146.chr=>0,147.chr=>0,148.chr=>0,149.chr=>0,150.chr=>0,151.chr=>0,152.chr=>0,153.chr=>0,
- 154.chr=>0,155.chr=>0,156.chr=>0,157.chr=>0,158.chr=>0,159.chr=>0,160.chr=>750,161.chr=>620,162.chr=>247,163.chr=>549,164.chr=>167,165.chr=>713,166.chr=>500,167.chr=>753,168.chr=>753,169.chr=>753,170.chr=>753,171.chr=>1042,172.chr=>987,173.chr=>603,174.chr=>987,175.chr=>603,
- 176.chr=>400,177.chr=>549,178.chr=>411,179.chr=>549,180.chr=>549,181.chr=>713,182.chr=>494,183.chr=>460,184.chr=>549,185.chr=>549,186.chr=>549,187.chr=>549,188.chr=>1000,189.chr=>603,190.chr=>1000,191.chr=>658,192.chr=>823,193.chr=>686,194.chr=>795,195.chr=>987,196.chr=>768,197.chr=>768,
- 198.chr=>823,199.chr=>768,200.chr=>768,201.chr=>713,202.chr=>713,203.chr=>713,204.chr=>713,205.chr=>713,206.chr=>713,207.chr=>713,208.chr=>768,209.chr=>713,210.chr=>790,211.chr=>790,212.chr=>890,213.chr=>823,214.chr=>549,215.chr=>250,216.chr=>713,217.chr=>603,218.chr=>603,219.chr=>1042,
- 220.chr=>987,221.chr=>603,222.chr=>987,223.chr=>603,224.chr=>494,225.chr=>329,226.chr=>790,227.chr=>790,228.chr=>786,229.chr=>713,230.chr=>384,231.chr=>384,232.chr=>384,233.chr=>384,234.chr=>384,235.chr=>384,236.chr=>494,237.chr=>494,238.chr=>494,239.chr=>494,240.chr=>0,241.chr=>329,
- 242.chr=>274,243.chr=>686,244.chr=>686,245.chr=>686,246.chr=>384,247.chr=>384,248.chr=>384,249.chr=>384,250.chr=>384,251.chr=>384,252.chr=>494,253.chr=>494,254.chr=>494,255.chr=>0);
-end
\ No newline at end of file
+ 0.chr=>250,1.chr=>250,2.chr=>250,3.chr=>250,4.chr=>250,5.chr=>250,6.chr=>250,7.chr=>250,8.chr=>250,9.chr=>250,10.chr=>250,11.chr=>250,12.chr=>250,13.chr=>250,14.chr=>250,15.chr=>250,16.chr=>250,17.chr=>250,18.chr=>250,19.chr=>250,20.chr=>250,21.chr=>250,
+ 22.chr=>250,23.chr=>250,24.chr=>250,25.chr=>250,26.chr=>250,27.chr=>250,28.chr=>250,29.chr=>250,30.chr=>250,31.chr=>250,' '=>250,'!'=>333,'"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549,
+ ','=>250,'-'=>549,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722,
+ 'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768,
+ 'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576,
+ 'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,127.chr=>0,128.chr=>0,129.chr=>0,130.chr=>0,131.chr=>0,
+ 132.chr=>0,133.chr=>0,134.chr=>0,135.chr=>0,136.chr=>0,137.chr=>0,138.chr=>0,139.chr=>0,140.chr=>0,141.chr=>0,142.chr=>0,143.chr=>0,144.chr=>0,145.chr=>0,146.chr=>0,147.chr=>0,148.chr=>0,149.chr=>0,150.chr=>0,151.chr=>0,152.chr=>0,153.chr=>0,
+ 154.chr=>0,155.chr=>0,156.chr=>0,157.chr=>0,158.chr=>0,159.chr=>0,160.chr=>750,161.chr=>620,162.chr=>247,163.chr=>549,164.chr=>167,165.chr=>713,166.chr=>500,167.chr=>753,168.chr=>753,169.chr=>753,170.chr=>753,171.chr=>1042,172.chr=>987,173.chr=>603,174.chr=>987,175.chr=>603,
+ 176.chr=>400,177.chr=>549,178.chr=>411,179.chr=>549,180.chr=>549,181.chr=>713,182.chr=>494,183.chr=>460,184.chr=>549,185.chr=>549,186.chr=>549,187.chr=>549,188.chr=>1000,189.chr=>603,190.chr=>1000,191.chr=>658,192.chr=>823,193.chr=>686,194.chr=>795,195.chr=>987,196.chr=>768,197.chr=>768,
+ 198.chr=>823,199.chr=>768,200.chr=>768,201.chr=>713,202.chr=>713,203.chr=>713,204.chr=>713,205.chr=>713,206.chr=>713,207.chr=>713,208.chr=>768,209.chr=>713,210.chr=>790,211.chr=>790,212.chr=>890,213.chr=>823,214.chr=>549,215.chr=>250,216.chr=>713,217.chr=>603,218.chr=>603,219.chr=>1042,
+ 220.chr=>987,221.chr=>603,222.chr=>987,223.chr=>603,224.chr=>494,225.chr=>329,226.chr=>790,227.chr=>790,228.chr=>786,229.chr=>713,230.chr=>384,231.chr=>384,232.chr=>384,233.chr=>384,234.chr=>384,235.chr=>384,236.chr=>494,237.chr=>494,238.chr=>494,239.chr=>494,240.chr=>0,241.chr=>329,
+ 242.chr=>274,243.chr=>686,244.chr=>686,245.chr=>686,246.chr=>384,247.chr=>384,248.chr=>384,249.chr=>384,250.chr=>384,251.chr=>384,252.chr=>494,253.chr=>494,254.chr=>494,255.chr=>0);
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/times.rb b/lib/plugins/rfpdf/lib/fonts/times.rb
index 28793b2e74..183306f21e 100755
--- a/lib/plugins/rfpdf/lib/fonts/times.rb
+++ b/lib/plugins/rfpdf/lib/fonts/times.rb
@@ -1,16 +1,16 @@
#-- encoding: UTF-8
TCPDFFontDescriptor.define('times') do |font|
font[:cw]={
- 0.chr=>250,1.chr=>250,2.chr=>250,3.chr=>250,4.chr=>250,5.chr=>250,6.chr=>250,7.chr=>250,8.chr=>250,9.chr=>250,10.chr=>250,11.chr=>250,12.chr=>250,13.chr=>250,14.chr=>250,15.chr=>250,16.chr=>250,17.chr=>250,18.chr=>250,19.chr=>250,20.chr=>250,21.chr=>250,
- 22.chr=>250,23.chr=>250,24.chr=>250,25.chr=>250,26.chr=>250,27.chr=>250,28.chr=>250,29.chr=>250,30.chr=>250,31.chr=>250,' '=>250,'!'=>333,'"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564,
- ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722,
- 'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944,
- 'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
- 'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,127.chr=>350,128.chr=>500,129.chr=>350,130.chr=>333,131.chr=>500,
- 132.chr=>444,133.chr=>1000,134.chr=>500,135.chr=>500,136.chr=>333,137.chr=>1000,138.chr=>556,139.chr=>333,140.chr=>889,141.chr=>350,142.chr=>611,143.chr=>350,144.chr=>350,145.chr=>333,146.chr=>333,147.chr=>444,148.chr=>444,149.chr=>350,150.chr=>500,151.chr=>1000,152.chr=>333,153.chr=>980,
- 154.chr=>389,155.chr=>333,156.chr=>722,157.chr=>350,158.chr=>444,159.chr=>722,160.chr=>250,161.chr=>333,162.chr=>500,163.chr=>500,164.chr=>500,165.chr=>500,166.chr=>200,167.chr=>500,168.chr=>333,169.chr=>760,170.chr=>276,171.chr=>500,172.chr=>564,173.chr=>333,174.chr=>760,175.chr=>333,
- 176.chr=>400,177.chr=>564,178.chr=>300,179.chr=>300,180.chr=>333,181.chr=>500,182.chr=>453,183.chr=>250,184.chr=>333,185.chr=>300,186.chr=>310,187.chr=>500,188.chr=>750,189.chr=>750,190.chr=>750,191.chr=>444,192.chr=>722,193.chr=>722,194.chr=>722,195.chr=>722,196.chr=>722,197.chr=>722,
- 198.chr=>889,199.chr=>667,200.chr=>611,201.chr=>611,202.chr=>611,203.chr=>611,204.chr=>333,205.chr=>333,206.chr=>333,207.chr=>333,208.chr=>722,209.chr=>722,210.chr=>722,211.chr=>722,212.chr=>722,213.chr=>722,214.chr=>722,215.chr=>564,216.chr=>722,217.chr=>722,218.chr=>722,219.chr=>722,
- 220.chr=>722,221.chr=>722,222.chr=>556,223.chr=>500,224.chr=>444,225.chr=>444,226.chr=>444,227.chr=>444,228.chr=>444,229.chr=>444,230.chr=>667,231.chr=>444,232.chr=>444,233.chr=>444,234.chr=>444,235.chr=>444,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>500,241.chr=>500,
- 242.chr=>500,243.chr=>500,244.chr=>500,245.chr=>500,246.chr=>500,247.chr=>564,248.chr=>500,249.chr=>500,250.chr=>500,251.chr=>500,252.chr=>500,253.chr=>500,254.chr=>500,255.chr=>500);
-end
\ No newline at end of file
+ 0.chr=>250,1.chr=>250,2.chr=>250,3.chr=>250,4.chr=>250,5.chr=>250,6.chr=>250,7.chr=>250,8.chr=>250,9.chr=>250,10.chr=>250,11.chr=>250,12.chr=>250,13.chr=>250,14.chr=>250,15.chr=>250,16.chr=>250,17.chr=>250,18.chr=>250,19.chr=>250,20.chr=>250,21.chr=>250,
+ 22.chr=>250,23.chr=>250,24.chr=>250,25.chr=>250,26.chr=>250,27.chr=>250,28.chr=>250,29.chr=>250,30.chr=>250,31.chr=>250,' '=>250,'!'=>333,'"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564,
+ ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722,
+ 'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944,
+ 'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
+ 'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,127.chr=>350,128.chr=>500,129.chr=>350,130.chr=>333,131.chr=>500,
+ 132.chr=>444,133.chr=>1000,134.chr=>500,135.chr=>500,136.chr=>333,137.chr=>1000,138.chr=>556,139.chr=>333,140.chr=>889,141.chr=>350,142.chr=>611,143.chr=>350,144.chr=>350,145.chr=>333,146.chr=>333,147.chr=>444,148.chr=>444,149.chr=>350,150.chr=>500,151.chr=>1000,152.chr=>333,153.chr=>980,
+ 154.chr=>389,155.chr=>333,156.chr=>722,157.chr=>350,158.chr=>444,159.chr=>722,160.chr=>250,161.chr=>333,162.chr=>500,163.chr=>500,164.chr=>500,165.chr=>500,166.chr=>200,167.chr=>500,168.chr=>333,169.chr=>760,170.chr=>276,171.chr=>500,172.chr=>564,173.chr=>333,174.chr=>760,175.chr=>333,
+ 176.chr=>400,177.chr=>564,178.chr=>300,179.chr=>300,180.chr=>333,181.chr=>500,182.chr=>453,183.chr=>250,184.chr=>333,185.chr=>300,186.chr=>310,187.chr=>500,188.chr=>750,189.chr=>750,190.chr=>750,191.chr=>444,192.chr=>722,193.chr=>722,194.chr=>722,195.chr=>722,196.chr=>722,197.chr=>722,
+ 198.chr=>889,199.chr=>667,200.chr=>611,201.chr=>611,202.chr=>611,203.chr=>611,204.chr=>333,205.chr=>333,206.chr=>333,207.chr=>333,208.chr=>722,209.chr=>722,210.chr=>722,211.chr=>722,212.chr=>722,213.chr=>722,214.chr=>722,215.chr=>564,216.chr=>722,217.chr=>722,218.chr=>722,219.chr=>722,
+ 220.chr=>722,221.chr=>722,222.chr=>556,223.chr=>500,224.chr=>444,225.chr=>444,226.chr=>444,227.chr=>444,228.chr=>444,229.chr=>444,230.chr=>667,231.chr=>444,232.chr=>444,233.chr=>444,234.chr=>444,235.chr=>444,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>500,241.chr=>500,
+ 242.chr=>500,243.chr=>500,244.chr=>500,245.chr=>500,246.chr=>500,247.chr=>564,248.chr=>500,249.chr=>500,250.chr=>500,251.chr=>500,252.chr=>500,253.chr=>500,254.chr=>500,255.chr=>500);
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/timesb.rb b/lib/plugins/rfpdf/lib/fonts/timesb.rb
index c95264fb04..875b17c2f3 100755
--- a/lib/plugins/rfpdf/lib/fonts/timesb.rb
+++ b/lib/plugins/rfpdf/lib/fonts/timesb.rb
@@ -1,16 +1,16 @@
#-- encoding: UTF-8
TCPDFFontDescriptor.define('timesb') do |font|
font[:cw]={
- 0.chr=>250,1.chr=>250,2.chr=>250,3.chr=>250,4.chr=>250,5.chr=>250,6.chr=>250,7.chr=>250,8.chr=>250,9.chr=>250,10.chr=>250,11.chr=>250,12.chr=>250,13.chr=>250,14.chr=>250,15.chr=>250,16.chr=>250,17.chr=>250,18.chr=>250,19.chr=>250,20.chr=>250,21.chr=>250,
- 22.chr=>250,23.chr=>250,24.chr=>250,25.chr=>250,26.chr=>250,27.chr=>250,28.chr=>250,29.chr=>250,30.chr=>250,31.chr=>250,' '=>250,'!'=>333,'"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
- ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722,
- 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000,
- 'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833,
- 'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,127.chr=>350,128.chr=>500,129.chr=>350,130.chr=>333,131.chr=>500,
- 132.chr=>500,133.chr=>1000,134.chr=>500,135.chr=>500,136.chr=>333,137.chr=>1000,138.chr=>556,139.chr=>333,140.chr=>1000,141.chr=>350,142.chr=>667,143.chr=>350,144.chr=>350,145.chr=>333,146.chr=>333,147.chr=>500,148.chr=>500,149.chr=>350,150.chr=>500,151.chr=>1000,152.chr=>333,153.chr=>1000,
- 154.chr=>389,155.chr=>333,156.chr=>722,157.chr=>350,158.chr=>444,159.chr=>722,160.chr=>250,161.chr=>333,162.chr=>500,163.chr=>500,164.chr=>500,165.chr=>500,166.chr=>220,167.chr=>500,168.chr=>333,169.chr=>747,170.chr=>300,171.chr=>500,172.chr=>570,173.chr=>333,174.chr=>747,175.chr=>333,
- 176.chr=>400,177.chr=>570,178.chr=>300,179.chr=>300,180.chr=>333,181.chr=>556,182.chr=>540,183.chr=>250,184.chr=>333,185.chr=>300,186.chr=>330,187.chr=>500,188.chr=>750,189.chr=>750,190.chr=>750,191.chr=>500,192.chr=>722,193.chr=>722,194.chr=>722,195.chr=>722,196.chr=>722,197.chr=>722,
- 198.chr=>1000,199.chr=>722,200.chr=>667,201.chr=>667,202.chr=>667,203.chr=>667,204.chr=>389,205.chr=>389,206.chr=>389,207.chr=>389,208.chr=>722,209.chr=>722,210.chr=>778,211.chr=>778,212.chr=>778,213.chr=>778,214.chr=>778,215.chr=>570,216.chr=>778,217.chr=>722,218.chr=>722,219.chr=>722,
- 220.chr=>722,221.chr=>722,222.chr=>611,223.chr=>556,224.chr=>500,225.chr=>500,226.chr=>500,227.chr=>500,228.chr=>500,229.chr=>500,230.chr=>722,231.chr=>444,232.chr=>444,233.chr=>444,234.chr=>444,235.chr=>444,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>500,241.chr=>556,
- 242.chr=>500,243.chr=>500,244.chr=>500,245.chr=>500,246.chr=>500,247.chr=>570,248.chr=>500,249.chr=>556,250.chr=>556,251.chr=>556,252.chr=>556,253.chr=>500,254.chr=>556,255.chr=>500);
-end
\ No newline at end of file
+ 0.chr=>250,1.chr=>250,2.chr=>250,3.chr=>250,4.chr=>250,5.chr=>250,6.chr=>250,7.chr=>250,8.chr=>250,9.chr=>250,10.chr=>250,11.chr=>250,12.chr=>250,13.chr=>250,14.chr=>250,15.chr=>250,16.chr=>250,17.chr=>250,18.chr=>250,19.chr=>250,20.chr=>250,21.chr=>250,
+ 22.chr=>250,23.chr=>250,24.chr=>250,25.chr=>250,26.chr=>250,27.chr=>250,28.chr=>250,29.chr=>250,30.chr=>250,31.chr=>250,' '=>250,'!'=>333,'"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
+ ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722,
+ 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000,
+ 'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833,
+ 'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,127.chr=>350,128.chr=>500,129.chr=>350,130.chr=>333,131.chr=>500,
+ 132.chr=>500,133.chr=>1000,134.chr=>500,135.chr=>500,136.chr=>333,137.chr=>1000,138.chr=>556,139.chr=>333,140.chr=>1000,141.chr=>350,142.chr=>667,143.chr=>350,144.chr=>350,145.chr=>333,146.chr=>333,147.chr=>500,148.chr=>500,149.chr=>350,150.chr=>500,151.chr=>1000,152.chr=>333,153.chr=>1000,
+ 154.chr=>389,155.chr=>333,156.chr=>722,157.chr=>350,158.chr=>444,159.chr=>722,160.chr=>250,161.chr=>333,162.chr=>500,163.chr=>500,164.chr=>500,165.chr=>500,166.chr=>220,167.chr=>500,168.chr=>333,169.chr=>747,170.chr=>300,171.chr=>500,172.chr=>570,173.chr=>333,174.chr=>747,175.chr=>333,
+ 176.chr=>400,177.chr=>570,178.chr=>300,179.chr=>300,180.chr=>333,181.chr=>556,182.chr=>540,183.chr=>250,184.chr=>333,185.chr=>300,186.chr=>330,187.chr=>500,188.chr=>750,189.chr=>750,190.chr=>750,191.chr=>500,192.chr=>722,193.chr=>722,194.chr=>722,195.chr=>722,196.chr=>722,197.chr=>722,
+ 198.chr=>1000,199.chr=>722,200.chr=>667,201.chr=>667,202.chr=>667,203.chr=>667,204.chr=>389,205.chr=>389,206.chr=>389,207.chr=>389,208.chr=>722,209.chr=>722,210.chr=>778,211.chr=>778,212.chr=>778,213.chr=>778,214.chr=>778,215.chr=>570,216.chr=>778,217.chr=>722,218.chr=>722,219.chr=>722,
+ 220.chr=>722,221.chr=>722,222.chr=>611,223.chr=>556,224.chr=>500,225.chr=>500,226.chr=>500,227.chr=>500,228.chr=>500,229.chr=>500,230.chr=>722,231.chr=>444,232.chr=>444,233.chr=>444,234.chr=>444,235.chr=>444,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>500,241.chr=>556,
+ 242.chr=>500,243.chr=>500,244.chr=>500,245.chr=>500,246.chr=>500,247.chr=>570,248.chr=>500,249.chr=>556,250.chr=>556,251.chr=>556,252.chr=>556,253.chr=>500,254.chr=>556,255.chr=>500);
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/timesbi.rb b/lib/plugins/rfpdf/lib/fonts/timesbi.rb
index 63b781b007..9b8ea27566 100755
--- a/lib/plugins/rfpdf/lib/fonts/timesbi.rb
+++ b/lib/plugins/rfpdf/lib/fonts/timesbi.rb
@@ -1,16 +1,16 @@
#-- encoding: UTF-8
TCPDFFontDescriptor.define('timesbi') do |font|
font[:cw]={
- 0.chr=>250,1.chr=>250,2.chr=>250,3.chr=>250,4.chr=>250,5.chr=>250,6.chr=>250,7.chr=>250,8.chr=>250,9.chr=>250,10.chr=>250,11.chr=>250,12.chr=>250,13.chr=>250,14.chr=>250,15.chr=>250,16.chr=>250,17.chr=>250,18.chr=>250,19.chr=>250,20.chr=>250,21.chr=>250,
- 22.chr=>250,23.chr=>250,24.chr=>250,25.chr=>250,26.chr=>250,27.chr=>250,28.chr=>250,29.chr=>250,30.chr=>250,31.chr=>250,' '=>250,'!'=>389,'"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
- ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667,
- 'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889,
- 'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
- 'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,127.chr=>350,128.chr=>500,129.chr=>350,130.chr=>333,131.chr=>500,
- 132.chr=>500,133.chr=>1000,134.chr=>500,135.chr=>500,136.chr=>333,137.chr=>1000,138.chr=>556,139.chr=>333,140.chr=>944,141.chr=>350,142.chr=>611,143.chr=>350,144.chr=>350,145.chr=>333,146.chr=>333,147.chr=>500,148.chr=>500,149.chr=>350,150.chr=>500,151.chr=>1000,152.chr=>333,153.chr=>1000,
- 154.chr=>389,155.chr=>333,156.chr=>722,157.chr=>350,158.chr=>389,159.chr=>611,160.chr=>250,161.chr=>389,162.chr=>500,163.chr=>500,164.chr=>500,165.chr=>500,166.chr=>220,167.chr=>500,168.chr=>333,169.chr=>747,170.chr=>266,171.chr=>500,172.chr=>606,173.chr=>333,174.chr=>747,175.chr=>333,
- 176.chr=>400,177.chr=>570,178.chr=>300,179.chr=>300,180.chr=>333,181.chr=>576,182.chr=>500,183.chr=>250,184.chr=>333,185.chr=>300,186.chr=>300,187.chr=>500,188.chr=>750,189.chr=>750,190.chr=>750,191.chr=>500,192.chr=>667,193.chr=>667,194.chr=>667,195.chr=>667,196.chr=>667,197.chr=>667,
- 198.chr=>944,199.chr=>667,200.chr=>667,201.chr=>667,202.chr=>667,203.chr=>667,204.chr=>389,205.chr=>389,206.chr=>389,207.chr=>389,208.chr=>722,209.chr=>722,210.chr=>722,211.chr=>722,212.chr=>722,213.chr=>722,214.chr=>722,215.chr=>570,216.chr=>722,217.chr=>722,218.chr=>722,219.chr=>722,
- 220.chr=>722,221.chr=>611,222.chr=>611,223.chr=>500,224.chr=>500,225.chr=>500,226.chr=>500,227.chr=>500,228.chr=>500,229.chr=>500,230.chr=>722,231.chr=>444,232.chr=>444,233.chr=>444,234.chr=>444,235.chr=>444,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>500,241.chr=>556,
- 242.chr=>500,243.chr=>500,244.chr=>500,245.chr=>500,246.chr=>500,247.chr=>570,248.chr=>500,249.chr=>556,250.chr=>556,251.chr=>556,252.chr=>556,253.chr=>444,254.chr=>500,255.chr=>444);
-end
\ No newline at end of file
+ 0.chr=>250,1.chr=>250,2.chr=>250,3.chr=>250,4.chr=>250,5.chr=>250,6.chr=>250,7.chr=>250,8.chr=>250,9.chr=>250,10.chr=>250,11.chr=>250,12.chr=>250,13.chr=>250,14.chr=>250,15.chr=>250,16.chr=>250,17.chr=>250,18.chr=>250,19.chr=>250,20.chr=>250,21.chr=>250,
+ 22.chr=>250,23.chr=>250,24.chr=>250,25.chr=>250,26.chr=>250,27.chr=>250,28.chr=>250,29.chr=>250,30.chr=>250,31.chr=>250,' '=>250,'!'=>389,'"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
+ ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667,
+ 'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889,
+ 'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
+ 'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,127.chr=>350,128.chr=>500,129.chr=>350,130.chr=>333,131.chr=>500,
+ 132.chr=>500,133.chr=>1000,134.chr=>500,135.chr=>500,136.chr=>333,137.chr=>1000,138.chr=>556,139.chr=>333,140.chr=>944,141.chr=>350,142.chr=>611,143.chr=>350,144.chr=>350,145.chr=>333,146.chr=>333,147.chr=>500,148.chr=>500,149.chr=>350,150.chr=>500,151.chr=>1000,152.chr=>333,153.chr=>1000,
+ 154.chr=>389,155.chr=>333,156.chr=>722,157.chr=>350,158.chr=>389,159.chr=>611,160.chr=>250,161.chr=>389,162.chr=>500,163.chr=>500,164.chr=>500,165.chr=>500,166.chr=>220,167.chr=>500,168.chr=>333,169.chr=>747,170.chr=>266,171.chr=>500,172.chr=>606,173.chr=>333,174.chr=>747,175.chr=>333,
+ 176.chr=>400,177.chr=>570,178.chr=>300,179.chr=>300,180.chr=>333,181.chr=>576,182.chr=>500,183.chr=>250,184.chr=>333,185.chr=>300,186.chr=>300,187.chr=>500,188.chr=>750,189.chr=>750,190.chr=>750,191.chr=>500,192.chr=>667,193.chr=>667,194.chr=>667,195.chr=>667,196.chr=>667,197.chr=>667,
+ 198.chr=>944,199.chr=>667,200.chr=>667,201.chr=>667,202.chr=>667,203.chr=>667,204.chr=>389,205.chr=>389,206.chr=>389,207.chr=>389,208.chr=>722,209.chr=>722,210.chr=>722,211.chr=>722,212.chr=>722,213.chr=>722,214.chr=>722,215.chr=>570,216.chr=>722,217.chr=>722,218.chr=>722,219.chr=>722,
+ 220.chr=>722,221.chr=>611,222.chr=>611,223.chr=>500,224.chr=>500,225.chr=>500,226.chr=>500,227.chr=>500,228.chr=>500,229.chr=>500,230.chr=>722,231.chr=>444,232.chr=>444,233.chr=>444,234.chr=>444,235.chr=>444,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>500,241.chr=>556,
+ 242.chr=>500,243.chr=>500,244.chr=>500,245.chr=>500,246.chr=>500,247.chr=>570,248.chr=>500,249.chr=>556,250.chr=>556,251.chr=>556,252.chr=>556,253.chr=>444,254.chr=>500,255.chr=>444);
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/timesi.rb b/lib/plugins/rfpdf/lib/fonts/timesi.rb
index 432daf389d..845398e8d4 100755
--- a/lib/plugins/rfpdf/lib/fonts/timesi.rb
+++ b/lib/plugins/rfpdf/lib/fonts/timesi.rb
@@ -1,16 +1,16 @@
#-- encoding: UTF-8
TCPDFFontDescriptor.define('timesi') do |font|
font[:cw]={
- 0.chr=>250,1.chr=>250,2.chr=>250,3.chr=>250,4.chr=>250,5.chr=>250,6.chr=>250,7.chr=>250,8.chr=>250,9.chr=>250,10.chr=>250,11.chr=>250,12.chr=>250,13.chr=>250,14.chr=>250,15.chr=>250,16.chr=>250,17.chr=>250,18.chr=>250,19.chr=>250,20.chr=>250,21.chr=>250,
- 22.chr=>250,23.chr=>250,24.chr=>250,25.chr=>250,26.chr=>250,27.chr=>250,28.chr=>250,29.chr=>250,30.chr=>250,31.chr=>250,' '=>250,'!'=>333,'"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675,
- ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611,
- 'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833,
- 'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722,
- 'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,127.chr=>350,128.chr=>500,129.chr=>350,130.chr=>333,131.chr=>500,
- 132.chr=>556,133.chr=>889,134.chr=>500,135.chr=>500,136.chr=>333,137.chr=>1000,138.chr=>500,139.chr=>333,140.chr=>944,141.chr=>350,142.chr=>556,143.chr=>350,144.chr=>350,145.chr=>333,146.chr=>333,147.chr=>556,148.chr=>556,149.chr=>350,150.chr=>500,151.chr=>889,152.chr=>333,153.chr=>980,
- 154.chr=>389,155.chr=>333,156.chr=>667,157.chr=>350,158.chr=>389,159.chr=>556,160.chr=>250,161.chr=>389,162.chr=>500,163.chr=>500,164.chr=>500,165.chr=>500,166.chr=>275,167.chr=>500,168.chr=>333,169.chr=>760,170.chr=>276,171.chr=>500,172.chr=>675,173.chr=>333,174.chr=>760,175.chr=>333,
- 176.chr=>400,177.chr=>675,178.chr=>300,179.chr=>300,180.chr=>333,181.chr=>500,182.chr=>523,183.chr=>250,184.chr=>333,185.chr=>300,186.chr=>310,187.chr=>500,188.chr=>750,189.chr=>750,190.chr=>750,191.chr=>500,192.chr=>611,193.chr=>611,194.chr=>611,195.chr=>611,196.chr=>611,197.chr=>611,
- 198.chr=>889,199.chr=>667,200.chr=>611,201.chr=>611,202.chr=>611,203.chr=>611,204.chr=>333,205.chr=>333,206.chr=>333,207.chr=>333,208.chr=>722,209.chr=>667,210.chr=>722,211.chr=>722,212.chr=>722,213.chr=>722,214.chr=>722,215.chr=>675,216.chr=>722,217.chr=>722,218.chr=>722,219.chr=>722,
- 220.chr=>722,221.chr=>556,222.chr=>611,223.chr=>500,224.chr=>500,225.chr=>500,226.chr=>500,227.chr=>500,228.chr=>500,229.chr=>500,230.chr=>667,231.chr=>444,232.chr=>444,233.chr=>444,234.chr=>444,235.chr=>444,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>500,241.chr=>500,
- 242.chr=>500,243.chr=>500,244.chr=>500,245.chr=>500,246.chr=>500,247.chr=>675,248.chr=>500,249.chr=>500,250.chr=>500,251.chr=>500,252.chr=>500,253.chr=>444,254.chr=>500,255.chr=>444);
-end
\ No newline at end of file
+ 0.chr=>250,1.chr=>250,2.chr=>250,3.chr=>250,4.chr=>250,5.chr=>250,6.chr=>250,7.chr=>250,8.chr=>250,9.chr=>250,10.chr=>250,11.chr=>250,12.chr=>250,13.chr=>250,14.chr=>250,15.chr=>250,16.chr=>250,17.chr=>250,18.chr=>250,19.chr=>250,20.chr=>250,21.chr=>250,
+ 22.chr=>250,23.chr=>250,24.chr=>250,25.chr=>250,26.chr=>250,27.chr=>250,28.chr=>250,29.chr=>250,30.chr=>250,31.chr=>250,' '=>250,'!'=>333,'"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675,
+ ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611,
+ 'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833,
+ 'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722,
+ 'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,127.chr=>350,128.chr=>500,129.chr=>350,130.chr=>333,131.chr=>500,
+ 132.chr=>556,133.chr=>889,134.chr=>500,135.chr=>500,136.chr=>333,137.chr=>1000,138.chr=>500,139.chr=>333,140.chr=>944,141.chr=>350,142.chr=>556,143.chr=>350,144.chr=>350,145.chr=>333,146.chr=>333,147.chr=>556,148.chr=>556,149.chr=>350,150.chr=>500,151.chr=>889,152.chr=>333,153.chr=>980,
+ 154.chr=>389,155.chr=>333,156.chr=>667,157.chr=>350,158.chr=>389,159.chr=>556,160.chr=>250,161.chr=>389,162.chr=>500,163.chr=>500,164.chr=>500,165.chr=>500,166.chr=>275,167.chr=>500,168.chr=>333,169.chr=>760,170.chr=>276,171.chr=>500,172.chr=>675,173.chr=>333,174.chr=>760,175.chr=>333,
+ 176.chr=>400,177.chr=>675,178.chr=>300,179.chr=>300,180.chr=>333,181.chr=>500,182.chr=>523,183.chr=>250,184.chr=>333,185.chr=>300,186.chr=>310,187.chr=>500,188.chr=>750,189.chr=>750,190.chr=>750,191.chr=>500,192.chr=>611,193.chr=>611,194.chr=>611,195.chr=>611,196.chr=>611,197.chr=>611,
+ 198.chr=>889,199.chr=>667,200.chr=>611,201.chr=>611,202.chr=>611,203.chr=>611,204.chr=>333,205.chr=>333,206.chr=>333,207.chr=>333,208.chr=>722,209.chr=>667,210.chr=>722,211.chr=>722,212.chr=>722,213.chr=>722,214.chr=>722,215.chr=>675,216.chr=>722,217.chr=>722,218.chr=>722,219.chr=>722,
+ 220.chr=>722,221.chr=>556,222.chr=>611,223.chr=>500,224.chr=>500,225.chr=>500,226.chr=>500,227.chr=>500,228.chr=>500,229.chr=>500,230.chr=>667,231.chr=>444,232.chr=>444,233.chr=>444,234.chr=>444,235.chr=>444,236.chr=>278,237.chr=>278,238.chr=>278,239.chr=>278,240.chr=>500,241.chr=>500,
+ 242.chr=>500,243.chr=>500,244.chr=>500,245.chr=>500,246.chr=>500,247.chr=>675,248.chr=>500,249.chr=>500,250.chr=>500,251.chr=>500,252.chr=>500,253.chr=>444,254.chr=>500,255.chr=>444);
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/vera.rb b/lib/plugins/rfpdf/lib/fonts/vera.rb
index 9f82c419b7..cf5c08241c 100755
--- a/lib/plugins/rfpdf/lib/fonts/vera.rb
+++ b/lib/plugins/rfpdf/lib/fonts/vera.rb
@@ -6,26 +6,26 @@ TCPDFFontDescriptor.define('vera') do |font|
font[:up]=-104;
font[:ut]=70;
font[:cw]={
- 270=>600, 32=>318, 33=>401, 34=>460, 35=>838, 36=>636, 37=>950, 38=>780, 39=>275, 40=>390, 41=>390, 42=>500, 43=>838, 44=>318, 45=>361, 46=>318,
- 47=>337, 48=>636, 49=>636, 50=>636, 51=>636, 52=>636, 53=>636, 54=>636, 55=>636, 56=>636, 57=>636, 58=>337, 59=>337, 60=>838, 61=>838, 62=>838,
- 63=>531, 64=>1000, 65=>684, 66=>686, 67=>698, 68=>770, 69=>632, 70=>575, 71=>775, 72=>752, 73=>295, 74=>295, 75=>656, 76=>557, 77=>863, 78=>748,
- 79=>787, 80=>603, 81=>787, 82=>695, 83=>635, 84=>611, 85=>732, 86=>684, 87=>989, 88=>685, 89=>611, 90=>685, 91=>390, 92=>337, 93=>390, 94=>838,
- 95=>500, 96=>500, 97=>613, 98=>635, 99=>550, 100=>635, 101=>615, 102=>352, 103=>635, 104=>634, 105=>278, 106=>278, 107=>579, 108=>278, 109=>974, 110=>634,
- 111=>612, 112=>635, 113=>635, 114=>411, 115=>521, 116=>392, 117=>634, 118=>592, 119=>818, 120=>592, 121=>592, 122=>525, 123=>636, 124=>337, 125=>636, 126=>838,
- 8364=>636, 8218=>318, 402=>636, 8222=>518, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1342, 352=>635, 8249=>400, 338=>1070, 381=>685, 8216=>318, 8217=>318, 8220=>518,
- 8221=>518, 8226=>590, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>521, 8250=>400, 339=>1023, 382=>525, 376=>611, 160=>636, 161=>401, 162=>636, 163=>636, 164=>636,
- 165=>636, 166=>337, 167=>500, 168=>500, 169=>1000, 170=>471, 171=>612, 172=>838, 173=>361, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>401, 179=>401, 180=>500,
- 181=>636, 182=>636, 183=>318, 184=>500, 185=>401, 186=>471, 187=>612, 188=>969, 189=>969, 190=>969, 191=>531, 192=>684, 193=>684, 194=>684, 195=>684, 196=>684,
- 197=>684, 198=>974, 199=>698, 200=>632, 201=>632, 202=>632, 203=>632, 204=>295, 205=>295, 206=>295, 207=>295, 208=>775, 209=>748, 210=>787, 211=>787, 212=>787,
- 213=>787, 214=>787, 215=>838, 216=>787, 217=>732, 218=>732, 219=>732, 220=>732, 221=>611, 222=>605, 223=>630, 224=>613, 225=>613, 226=>613, 227=>613, 228=>613,
- 229=>613, 230=>982, 231=>550, 232=>615, 233=>615, 234=>615, 235=>615, 236=>278, 237=>278, 238=>278, 239=>278, 240=>612, 241=>634, 242=>612, 243=>612, 244=>612,
- 245=>612, 246=>612, 247=>838, 248=>612, 249=>634, 250=>634, 251=>634, 252=>634, 253=>592, 254=>635, 255=>592, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>517,
- 8721=>674, 8719=>757, 960=>589, 8747=>521, 937=>764, 8730=>637, 8776=>838, 8710=>669, 9674=>494, 8725=>167, 64257=>630, 64258=>630, 305=>278, 728=>500, 729=>500, 730=>500,
- 733=>500, 731=>500, 711=>500, 321=>562, 322=>284, 8722=>838, 286=>775, 287=>635, 304=>295, 350=>635, 351=>521, 262=>698, 263=>550, 268=>698, 269=>550, 273=>635,
- 8729=>318}
+ 270=>600, 32=>318, 33=>401, 34=>460, 35=>838, 36=>636, 37=>950, 38=>780, 39=>275, 40=>390, 41=>390, 42=>500, 43=>838, 44=>318, 45=>361, 46=>318,
+ 47=>337, 48=>636, 49=>636, 50=>636, 51=>636, 52=>636, 53=>636, 54=>636, 55=>636, 56=>636, 57=>636, 58=>337, 59=>337, 60=>838, 61=>838, 62=>838,
+ 63=>531, 64=>1000, 65=>684, 66=>686, 67=>698, 68=>770, 69=>632, 70=>575, 71=>775, 72=>752, 73=>295, 74=>295, 75=>656, 76=>557, 77=>863, 78=>748,
+ 79=>787, 80=>603, 81=>787, 82=>695, 83=>635, 84=>611, 85=>732, 86=>684, 87=>989, 88=>685, 89=>611, 90=>685, 91=>390, 92=>337, 93=>390, 94=>838,
+ 95=>500, 96=>500, 97=>613, 98=>635, 99=>550, 100=>635, 101=>615, 102=>352, 103=>635, 104=>634, 105=>278, 106=>278, 107=>579, 108=>278, 109=>974, 110=>634,
+ 111=>612, 112=>635, 113=>635, 114=>411, 115=>521, 116=>392, 117=>634, 118=>592, 119=>818, 120=>592, 121=>592, 122=>525, 123=>636, 124=>337, 125=>636, 126=>838,
+ 8364=>636, 8218=>318, 402=>636, 8222=>518, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1342, 352=>635, 8249=>400, 338=>1070, 381=>685, 8216=>318, 8217=>318, 8220=>518,
+ 8221=>518, 8226=>590, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>521, 8250=>400, 339=>1023, 382=>525, 376=>611, 160=>636, 161=>401, 162=>636, 163=>636, 164=>636,
+ 165=>636, 166=>337, 167=>500, 168=>500, 169=>1000, 170=>471, 171=>612, 172=>838, 173=>361, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>401, 179=>401, 180=>500,
+ 181=>636, 182=>636, 183=>318, 184=>500, 185=>401, 186=>471, 187=>612, 188=>969, 189=>969, 190=>969, 191=>531, 192=>684, 193=>684, 194=>684, 195=>684, 196=>684,
+ 197=>684, 198=>974, 199=>698, 200=>632, 201=>632, 202=>632, 203=>632, 204=>295, 205=>295, 206=>295, 207=>295, 208=>775, 209=>748, 210=>787, 211=>787, 212=>787,
+ 213=>787, 214=>787, 215=>838, 216=>787, 217=>732, 218=>732, 219=>732, 220=>732, 221=>611, 222=>605, 223=>630, 224=>613, 225=>613, 226=>613, 227=>613, 228=>613,
+ 229=>613, 230=>982, 231=>550, 232=>615, 233=>615, 234=>615, 235=>615, 236=>278, 237=>278, 238=>278, 239=>278, 240=>612, 241=>634, 242=>612, 243=>612, 244=>612,
+ 245=>612, 246=>612, 247=>838, 248=>612, 249=>634, 250=>634, 251=>634, 252=>634, 253=>592, 254=>635, 255=>592, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>517,
+ 8721=>674, 8719=>757, 960=>589, 8747=>521, 937=>764, 8730=>637, 8776=>838, 8710=>669, 9674=>494, 8725=>167, 64257=>630, 64258=>630, 305=>278, 728=>500, 729=>500, 730=>500,
+ 733=>500, 731=>500, 711=>500, 321=>562, 322=>284, 8722=>838, 286=>775, 287=>635, 304=>295, 350=>635, 351=>521, 262=>698, 263=>550, 268=>698, 269=>550, 273=>635,
+ 8729=>318}
font[:enc]='';
font[:diff]='';
font[:file]='vera.z';
font[:ctg]='vera.ctg.z';
font[:originalsize]=65932;
-end
\ No newline at end of file
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/verab.rb b/lib/plugins/rfpdf/lib/fonts/verab.rb
index 413a7878ce..9608ec574a 100755
--- a/lib/plugins/rfpdf/lib/fonts/verab.rb
+++ b/lib/plugins/rfpdf/lib/fonts/verab.rb
@@ -6,26 +6,26 @@ TCPDFFontDescriptor.define('verab') do |font|
font[:up]=-111;
font[:ut]=126;
font[:cw]={
- 270=>600, 32=>348, 33=>456, 34=>521, 35=>838, 36=>696, 37=>1002, 38=>872, 39=>306, 40=>457, 41=>457, 42=>523, 43=>838, 44=>380, 45=>415, 46=>380,
- 47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>400, 59=>400, 60=>838, 61=>838, 62=>838,
- 63=>580, 64=>1000, 65=>774, 66=>762, 67=>734, 68=>830, 69=>683, 70=>683, 71=>821, 72=>837, 73=>372, 74=>372, 75=>775, 76=>637, 77=>995, 78=>837,
- 79=>850, 80=>733, 81=>850, 82=>770, 83=>720, 84=>682, 85=>812, 86=>774, 87=>1103, 88=>771, 89=>724, 90=>725, 91=>457, 92=>365, 93=>457, 94=>838,
- 95=>500, 96=>500, 97=>675, 98=>716, 99=>593, 100=>716, 101=>678, 102=>435, 103=>716, 104=>712, 105=>343, 106=>343, 107=>665, 108=>343, 109=>1042, 110=>712,
- 111=>687, 112=>716, 113=>716, 114=>493, 115=>595, 116=>478, 117=>712, 118=>652, 119=>924, 120=>645, 121=>652, 122=>582, 123=>712, 124=>365, 125=>712, 126=>838,
- 8364=>696, 8218=>380, 402=>696, 8222=>657, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1440, 352=>720, 8249=>412, 338=>1167, 381=>725, 8216=>380, 8217=>380, 8220=>657,
- 8221=>657, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>595, 8250=>412, 339=>1094, 382=>582, 376=>724, 160=>696, 161=>456, 162=>696, 163=>696, 164=>636,
- 165=>696, 166=>365, 167=>500, 168=>500, 169=>1000, 170=>564, 171=>646, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>438, 179=>438, 180=>500,
- 181=>736, 182=>636, 183=>380, 184=>500, 185=>438, 186=>564, 187=>646, 188=>1035, 189=>1035, 190=>1035, 191=>580, 192=>774, 193=>774, 194=>774, 195=>774, 196=>774,
- 197=>774, 198=>1085, 199=>734, 200=>683, 201=>683, 202=>683, 203=>683, 204=>372, 205=>372, 206=>372, 207=>372, 208=>838, 209=>837, 210=>850, 211=>850, 212=>850,
- 213=>850, 214=>850, 215=>838, 216=>850, 217=>812, 218=>812, 219=>812, 220=>812, 221=>724, 222=>738, 223=>719, 224=>675, 225=>675, 226=>675, 227=>675, 228=>675,
- 229=>675, 230=>1048, 231=>593, 232=>678, 233=>678, 234=>678, 235=>678, 236=>343, 237=>343, 238=>343, 239=>343, 240=>687, 241=>712, 242=>687, 243=>687, 244=>687,
- 245=>687, 246=>687, 247=>838, 248=>687, 249=>712, 250=>712, 251=>712, 252=>712, 253=>652, 254=>716, 255=>652, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>544,
- 8721=>718, 8719=>787, 960=>644, 8747=>610, 937=>769, 8730=>667, 8776=>838, 8710=>697, 9674=>494, 8725=>167, 64257=>741, 64258=>741, 305=>343, 728=>500, 729=>500, 730=>500,
- 733=>500, 731=>500, 711=>500, 321=>642, 322=>371, 8722=>838, 286=>821, 287=>716, 304=>372, 350=>720, 351=>595, 262=>734, 263=>593, 268=>734, 269=>593, 273=>716,
- 8729=>380}
+ 270=>600, 32=>348, 33=>456, 34=>521, 35=>838, 36=>696, 37=>1002, 38=>872, 39=>306, 40=>457, 41=>457, 42=>523, 43=>838, 44=>380, 45=>415, 46=>380,
+ 47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>400, 59=>400, 60=>838, 61=>838, 62=>838,
+ 63=>580, 64=>1000, 65=>774, 66=>762, 67=>734, 68=>830, 69=>683, 70=>683, 71=>821, 72=>837, 73=>372, 74=>372, 75=>775, 76=>637, 77=>995, 78=>837,
+ 79=>850, 80=>733, 81=>850, 82=>770, 83=>720, 84=>682, 85=>812, 86=>774, 87=>1103, 88=>771, 89=>724, 90=>725, 91=>457, 92=>365, 93=>457, 94=>838,
+ 95=>500, 96=>500, 97=>675, 98=>716, 99=>593, 100=>716, 101=>678, 102=>435, 103=>716, 104=>712, 105=>343, 106=>343, 107=>665, 108=>343, 109=>1042, 110=>712,
+ 111=>687, 112=>716, 113=>716, 114=>493, 115=>595, 116=>478, 117=>712, 118=>652, 119=>924, 120=>645, 121=>652, 122=>582, 123=>712, 124=>365, 125=>712, 126=>838,
+ 8364=>696, 8218=>380, 402=>696, 8222=>657, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1440, 352=>720, 8249=>412, 338=>1167, 381=>725, 8216=>380, 8217=>380, 8220=>657,
+ 8221=>657, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>595, 8250=>412, 339=>1094, 382=>582, 376=>724, 160=>696, 161=>456, 162=>696, 163=>696, 164=>636,
+ 165=>696, 166=>365, 167=>500, 168=>500, 169=>1000, 170=>564, 171=>646, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>438, 179=>438, 180=>500,
+ 181=>736, 182=>636, 183=>380, 184=>500, 185=>438, 186=>564, 187=>646, 188=>1035, 189=>1035, 190=>1035, 191=>580, 192=>774, 193=>774, 194=>774, 195=>774, 196=>774,
+ 197=>774, 198=>1085, 199=>734, 200=>683, 201=>683, 202=>683, 203=>683, 204=>372, 205=>372, 206=>372, 207=>372, 208=>838, 209=>837, 210=>850, 211=>850, 212=>850,
+ 213=>850, 214=>850, 215=>838, 216=>850, 217=>812, 218=>812, 219=>812, 220=>812, 221=>724, 222=>738, 223=>719, 224=>675, 225=>675, 226=>675, 227=>675, 228=>675,
+ 229=>675, 230=>1048, 231=>593, 232=>678, 233=>678, 234=>678, 235=>678, 236=>343, 237=>343, 238=>343, 239=>343, 240=>687, 241=>712, 242=>687, 243=>687, 244=>687,
+ 245=>687, 246=>687, 247=>838, 248=>687, 249=>712, 250=>712, 251=>712, 252=>712, 253=>652, 254=>716, 255=>652, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>544,
+ 8721=>718, 8719=>787, 960=>644, 8747=>610, 937=>769, 8730=>667, 8776=>838, 8710=>697, 9674=>494, 8725=>167, 64257=>741, 64258=>741, 305=>343, 728=>500, 729=>500, 730=>500,
+ 733=>500, 731=>500, 711=>500, 321=>642, 322=>371, 8722=>838, 286=>821, 287=>716, 304=>372, 350=>720, 351=>595, 262=>734, 263=>593, 268=>734, 269=>593, 273=>716,
+ 8729=>380}
font[:enc]='';
font[:diff]='';
font[:file]='verab.z';
font[:ctg]='verab.ctg.z';
font[:originalsize]=58716;
-end
\ No newline at end of file
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/verabi.rb b/lib/plugins/rfpdf/lib/fonts/verabi.rb
index 87b9a77e35..793181406e 100755
--- a/lib/plugins/rfpdf/lib/fonts/verabi.rb
+++ b/lib/plugins/rfpdf/lib/fonts/verabi.rb
@@ -6,26 +6,26 @@ TCPDFFontDescriptor.define('verabi') do |font|
font[:up]=-111;
font[:ut]=126;
font[:cw]={
- 270=>600, 32=>348, 33=>456, 34=>521, 35=>696, 36=>696, 37=>1002, 38=>872, 39=>306, 40=>457, 41=>457, 42=>523, 43=>838, 44=>380, 45=>415, 46=>380,
- 47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>400, 59=>400, 60=>838, 61=>838, 62=>838,
- 63=>580, 64=>1000, 65=>774, 66=>762, 67=>734, 68=>830, 69=>683, 70=>683, 71=>821, 72=>837, 73=>372, 74=>372, 75=>775, 76=>637, 77=>995, 78=>837,
- 79=>850, 80=>733, 81=>850, 82=>770, 83=>720, 84=>682, 85=>812, 86=>774, 87=>1103, 88=>771, 89=>724, 90=>725, 91=>457, 92=>365, 93=>457, 94=>838,
- 95=>500, 96=>500, 97=>675, 98=>716, 99=>593, 100=>716, 101=>678, 102=>435, 103=>716, 104=>712, 105=>343, 106=>343, 107=>665, 108=>343, 109=>1042, 110=>712,
- 111=>687, 112=>716, 113=>716, 114=>493, 115=>595, 116=>478, 117=>712, 118=>652, 119=>924, 120=>645, 121=>652, 122=>582, 123=>712, 124=>365, 125=>712, 126=>838,
- 8364=>696, 8218=>380, 402=>696, 8222=>644, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1454, 352=>720, 8249=>412, 338=>1167, 381=>725, 8216=>380, 8217=>380, 8220=>644,
- 8221=>644, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>595, 8250=>412, 339=>1094, 382=>582, 376=>724, 160=>696, 161=>456, 162=>696, 163=>696, 164=>636,
- 165=>696, 166=>365, 167=>500, 168=>500, 169=>1000, 170=>564, 171=>650, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>438, 179=>438, 180=>500,
- 181=>736, 182=>636, 183=>380, 184=>500, 185=>438, 186=>564, 187=>650, 188=>1065, 189=>1065, 190=>1065, 191=>580, 192=>774, 193=>774, 194=>774, 195=>774, 196=>774,
- 197=>774, 198=>1085, 199=>734, 200=>683, 201=>683, 202=>683, 203=>683, 204=>372, 205=>372, 206=>372, 207=>372, 208=>845, 209=>837, 210=>850, 211=>850, 212=>850,
- 213=>850, 214=>850, 215=>838, 216=>850, 217=>812, 218=>812, 219=>812, 220=>812, 221=>724, 222=>742, 223=>719, 224=>675, 225=>675, 226=>675, 227=>675, 228=>675,
- 229=>675, 230=>1048, 231=>593, 232=>678, 233=>678, 234=>678, 235=>678, 236=>343, 237=>343, 238=>343, 239=>343, 240=>687, 241=>712, 242=>687, 243=>687, 244=>687,
- 245=>687, 246=>687, 247=>838, 248=>687, 249=>712, 250=>712, 251=>712, 252=>712, 253=>652, 254=>716, 255=>652, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>544,
- 8721=>718, 8719=>787, 960=>644, 8747=>610, 937=>769, 8730=>667, 8776=>838, 8710=>697, 9674=>494, 8725=>167, 64257=>787, 64258=>787, 305=>343, 728=>500, 729=>500, 730=>500,
- 733=>500, 731=>500, 711=>500, 321=>660, 322=>375, 8722=>838, 286=>821, 287=>716, 304=>372, 350=>720, 351=>595, 262=>734, 263=>593, 268=>734, 269=>593, 273=>716,
- 8729=>380}
+ 270=>600, 32=>348, 33=>456, 34=>521, 35=>696, 36=>696, 37=>1002, 38=>872, 39=>306, 40=>457, 41=>457, 42=>523, 43=>838, 44=>380, 45=>415, 46=>380,
+ 47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>400, 59=>400, 60=>838, 61=>838, 62=>838,
+ 63=>580, 64=>1000, 65=>774, 66=>762, 67=>734, 68=>830, 69=>683, 70=>683, 71=>821, 72=>837, 73=>372, 74=>372, 75=>775, 76=>637, 77=>995, 78=>837,
+ 79=>850, 80=>733, 81=>850, 82=>770, 83=>720, 84=>682, 85=>812, 86=>774, 87=>1103, 88=>771, 89=>724, 90=>725, 91=>457, 92=>365, 93=>457, 94=>838,
+ 95=>500, 96=>500, 97=>675, 98=>716, 99=>593, 100=>716, 101=>678, 102=>435, 103=>716, 104=>712, 105=>343, 106=>343, 107=>665, 108=>343, 109=>1042, 110=>712,
+ 111=>687, 112=>716, 113=>716, 114=>493, 115=>595, 116=>478, 117=>712, 118=>652, 119=>924, 120=>645, 121=>652, 122=>582, 123=>712, 124=>365, 125=>712, 126=>838,
+ 8364=>696, 8218=>380, 402=>696, 8222=>644, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1454, 352=>720, 8249=>412, 338=>1167, 381=>725, 8216=>380, 8217=>380, 8220=>644,
+ 8221=>644, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>595, 8250=>412, 339=>1094, 382=>582, 376=>724, 160=>696, 161=>456, 162=>696, 163=>696, 164=>636,
+ 165=>696, 166=>365, 167=>500, 168=>500, 169=>1000, 170=>564, 171=>650, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>438, 179=>438, 180=>500,
+ 181=>736, 182=>636, 183=>380, 184=>500, 185=>438, 186=>564, 187=>650, 188=>1065, 189=>1065, 190=>1065, 191=>580, 192=>774, 193=>774, 194=>774, 195=>774, 196=>774,
+ 197=>774, 198=>1085, 199=>734, 200=>683, 201=>683, 202=>683, 203=>683, 204=>372, 205=>372, 206=>372, 207=>372, 208=>845, 209=>837, 210=>850, 211=>850, 212=>850,
+ 213=>850, 214=>850, 215=>838, 216=>850, 217=>812, 218=>812, 219=>812, 220=>812, 221=>724, 222=>742, 223=>719, 224=>675, 225=>675, 226=>675, 227=>675, 228=>675,
+ 229=>675, 230=>1048, 231=>593, 232=>678, 233=>678, 234=>678, 235=>678, 236=>343, 237=>343, 238=>343, 239=>343, 240=>687, 241=>712, 242=>687, 243=>687, 244=>687,
+ 245=>687, 246=>687, 247=>838, 248=>687, 249=>712, 250=>712, 251=>712, 252=>712, 253=>652, 254=>716, 255=>652, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>544,
+ 8721=>718, 8719=>787, 960=>644, 8747=>610, 937=>769, 8730=>667, 8776=>838, 8710=>697, 9674=>494, 8725=>167, 64257=>787, 64258=>787, 305=>343, 728=>500, 729=>500, 730=>500,
+ 733=>500, 731=>500, 711=>500, 321=>660, 322=>375, 8722=>838, 286=>821, 287=>716, 304=>372, 350=>720, 351=>595, 262=>734, 263=>593, 268=>734, 269=>593, 273=>716,
+ 8729=>380}
font[:enc]='';
font[:diff]='';
font[:file]='verabi.z';
font[:ctg]='verabi.ctg.z';
font[:originalsize]=63208;
-end
\ No newline at end of file
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/verai.rb b/lib/plugins/rfpdf/lib/fonts/verai.rb
index 9faba565a0..916cb85c51 100755
--- a/lib/plugins/rfpdf/lib/fonts/verai.rb
+++ b/lib/plugins/rfpdf/lib/fonts/verai.rb
@@ -6,26 +6,26 @@ TCPDFFontDescriptor.define('verai') do |font|
font[:up]=-104;
font[:ut]=70;
font[:cw]={
- 270=>600, 32=>318, 33=>401, 34=>460, 35=>838, 36=>636, 37=>950, 38=>780, 39=>275, 40=>390, 41=>390, 42=>500, 43=>838, 44=>318, 45=>361, 46=>318,
- 47=>337, 48=>636, 49=>636, 50=>636, 51=>636, 52=>636, 53=>636, 54=>636, 55=>636, 56=>636, 57=>636, 58=>337, 59=>337, 60=>838, 61=>838, 62=>838,
- 63=>531, 64=>1000, 65=>684, 66=>686, 67=>698, 68=>770, 69=>632, 70=>575, 71=>775, 72=>752, 73=>295, 74=>295, 75=>656, 76=>557, 77=>863, 78=>748,
- 79=>787, 80=>603, 81=>787, 82=>695, 83=>635, 84=>611, 85=>732, 86=>684, 87=>989, 88=>685, 89=>611, 90=>685, 91=>390, 92=>337, 93=>390, 94=>838,
- 95=>500, 96=>500, 97=>613, 98=>635, 99=>550, 100=>635, 101=>615, 102=>352, 103=>635, 104=>634, 105=>278, 106=>278, 107=>579, 108=>278, 109=>974, 110=>634,
- 111=>612, 112=>635, 113=>635, 114=>411, 115=>521, 116=>392, 117=>634, 118=>592, 119=>818, 120=>592, 121=>592, 122=>525, 123=>636, 124=>337, 125=>636, 126=>838,
- 8364=>636, 8218=>318, 402=>636, 8222=>518, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1350, 352=>635, 8249=>400, 338=>1070, 381=>685, 8216=>318, 8217=>318, 8220=>518,
- 8221=>518, 8226=>590, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>521, 8250=>400, 339=>1028, 382=>525, 376=>611, 160=>636, 161=>401, 162=>636, 163=>636, 164=>636,
- 165=>636, 166=>337, 167=>500, 168=>500, 169=>1000, 170=>471, 171=>617, 172=>838, 173=>361, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>401, 179=>401, 180=>500,
- 181=>636, 182=>636, 183=>318, 184=>500, 185=>401, 186=>471, 187=>617, 188=>969, 189=>969, 190=>969, 191=>531, 192=>684, 193=>684, 194=>684, 195=>684, 196=>684,
- 197=>684, 198=>974, 199=>698, 200=>632, 201=>632, 202=>632, 203=>632, 204=>295, 205=>295, 206=>295, 207=>295, 208=>775, 209=>748, 210=>787, 211=>787, 212=>787,
- 213=>787, 214=>787, 215=>838, 216=>787, 217=>732, 218=>732, 219=>732, 220=>732, 221=>611, 222=>608, 223=>630, 224=>613, 225=>613, 226=>613, 227=>613, 228=>613,
- 229=>613, 230=>995, 231=>550, 232=>615, 233=>615, 234=>615, 235=>615, 236=>278, 237=>278, 238=>278, 239=>278, 240=>612, 241=>634, 242=>612, 243=>612, 244=>612,
- 245=>612, 246=>612, 247=>838, 248=>612, 249=>634, 250=>634, 251=>634, 252=>634, 253=>592, 254=>635, 255=>592, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>517,
- 8721=>674, 8719=>757, 960=>589, 8747=>521, 937=>764, 8730=>637, 8776=>838, 8710=>669, 9674=>494, 8725=>167, 64257=>646, 64258=>646, 305=>278, 728=>500, 729=>500, 730=>500,
- 733=>500, 731=>500, 711=>500, 321=>562, 322=>287, 8722=>838, 286=>775, 287=>635, 304=>295, 350=>635, 351=>521, 262=>698, 263=>550, 268=>698, 269=>550, 273=>635,
- 8729=>318}
+ 270=>600, 32=>318, 33=>401, 34=>460, 35=>838, 36=>636, 37=>950, 38=>780, 39=>275, 40=>390, 41=>390, 42=>500, 43=>838, 44=>318, 45=>361, 46=>318,
+ 47=>337, 48=>636, 49=>636, 50=>636, 51=>636, 52=>636, 53=>636, 54=>636, 55=>636, 56=>636, 57=>636, 58=>337, 59=>337, 60=>838, 61=>838, 62=>838,
+ 63=>531, 64=>1000, 65=>684, 66=>686, 67=>698, 68=>770, 69=>632, 70=>575, 71=>775, 72=>752, 73=>295, 74=>295, 75=>656, 76=>557, 77=>863, 78=>748,
+ 79=>787, 80=>603, 81=>787, 82=>695, 83=>635, 84=>611, 85=>732, 86=>684, 87=>989, 88=>685, 89=>611, 90=>685, 91=>390, 92=>337, 93=>390, 94=>838,
+ 95=>500, 96=>500, 97=>613, 98=>635, 99=>550, 100=>635, 101=>615, 102=>352, 103=>635, 104=>634, 105=>278, 106=>278, 107=>579, 108=>278, 109=>974, 110=>634,
+ 111=>612, 112=>635, 113=>635, 114=>411, 115=>521, 116=>392, 117=>634, 118=>592, 119=>818, 120=>592, 121=>592, 122=>525, 123=>636, 124=>337, 125=>636, 126=>838,
+ 8364=>636, 8218=>318, 402=>636, 8222=>518, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1350, 352=>635, 8249=>400, 338=>1070, 381=>685, 8216=>318, 8217=>318, 8220=>518,
+ 8221=>518, 8226=>590, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>521, 8250=>400, 339=>1028, 382=>525, 376=>611, 160=>636, 161=>401, 162=>636, 163=>636, 164=>636,
+ 165=>636, 166=>337, 167=>500, 168=>500, 169=>1000, 170=>471, 171=>617, 172=>838, 173=>361, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>401, 179=>401, 180=>500,
+ 181=>636, 182=>636, 183=>318, 184=>500, 185=>401, 186=>471, 187=>617, 188=>969, 189=>969, 190=>969, 191=>531, 192=>684, 193=>684, 194=>684, 195=>684, 196=>684,
+ 197=>684, 198=>974, 199=>698, 200=>632, 201=>632, 202=>632, 203=>632, 204=>295, 205=>295, 206=>295, 207=>295, 208=>775, 209=>748, 210=>787, 211=>787, 212=>787,
+ 213=>787, 214=>787, 215=>838, 216=>787, 217=>732, 218=>732, 219=>732, 220=>732, 221=>611, 222=>608, 223=>630, 224=>613, 225=>613, 226=>613, 227=>613, 228=>613,
+ 229=>613, 230=>995, 231=>550, 232=>615, 233=>615, 234=>615, 235=>615, 236=>278, 237=>278, 238=>278, 239=>278, 240=>612, 241=>634, 242=>612, 243=>612, 244=>612,
+ 245=>612, 246=>612, 247=>838, 248=>612, 249=>634, 250=>634, 251=>634, 252=>634, 253=>592, 254=>635, 255=>592, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>517,
+ 8721=>674, 8719=>757, 960=>589, 8747=>521, 937=>764, 8730=>637, 8776=>838, 8710=>669, 9674=>494, 8725=>167, 64257=>646, 64258=>646, 305=>278, 728=>500, 729=>500, 730=>500,
+ 733=>500, 731=>500, 711=>500, 321=>562, 322=>287, 8722=>838, 286=>775, 287=>635, 304=>295, 350=>635, 351=>521, 262=>698, 263=>550, 268=>698, 269=>550, 273=>635,
+ 8729=>318}
font[:enc]='';
font[:diff]='';
font[:file]='verai.z';
font[:ctg]='verai.ctg.z';
font[:originalsize]=63684;
-end
\ No newline at end of file
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/veramo.rb b/lib/plugins/rfpdf/lib/fonts/veramo.rb
index 8894237290..5cc382ec6c 100755
--- a/lib/plugins/rfpdf/lib/fonts/veramo.rb
+++ b/lib/plugins/rfpdf/lib/fonts/veramo.rb
@@ -6,26 +6,26 @@ TCPDFFontDescriptor.define('veramo') do |font|
font[:up]=-104;
font[:ut]=69;
font[:cw]={
- 270=>602, 32=>602, 33=>602, 34=>602, 35=>602, 36=>602, 37=>602, 38=>602, 39=>602, 40=>602, 41=>602, 42=>602, 43=>602, 44=>602, 45=>602, 46=>602,
- 47=>602, 48=>602, 49=>602, 50=>602, 51=>602, 52=>602, 53=>602, 54=>602, 55=>602, 56=>602, 57=>602, 58=>602, 59=>602, 60=>602, 61=>602, 62=>602,
- 63=>602, 64=>602, 65=>602, 66=>602, 67=>602, 68=>602, 69=>602, 70=>602, 71=>602, 72=>602, 73=>602, 74=>602, 75=>602, 76=>602, 77=>602, 78=>602,
- 79=>602, 80=>602, 81=>602, 82=>602, 83=>602, 84=>602, 85=>602, 86=>602, 87=>602, 88=>602, 89=>602, 90=>602, 91=>602, 92=>602, 93=>602, 94=>602,
- 95=>602, 96=>602, 97=>602, 98=>602, 99=>602, 100=>602, 101=>602, 102=>602, 103=>602, 104=>602, 105=>602, 106=>602, 107=>602, 108=>602, 109=>602, 110=>602,
- 111=>602, 112=>602, 113=>602, 114=>602, 115=>602, 116=>602, 117=>602, 118=>602, 119=>602, 120=>602, 121=>602, 122=>602, 123=>602, 124=>602, 125=>602, 126=>602,
- 8364=>602, 8218=>602, 402=>602, 8222=>602, 8230=>602, 8224=>602, 8225=>602, 710=>602, 8240=>602, 352=>602, 8249=>602, 338=>602, 381=>602, 8216=>602, 8217=>602, 8220=>602,
- 8221=>602, 8226=>602, 8211=>602, 8212=>602, 732=>602, 8482=>602, 353=>602, 8250=>602, 339=>602, 382=>602, 376=>602, 160=>602, 161=>602, 162=>602, 163=>602, 164=>602,
- 165=>602, 166=>602, 167=>602, 168=>602, 169=>602, 170=>602, 171=>602, 172=>602, 173=>602, 174=>602, 175=>602, 176=>602, 177=>602, 178=>602, 179=>602, 180=>602,
- 181=>602, 182=>602, 183=>602, 184=>602, 185=>602, 186=>602, 187=>602, 188=>602, 189=>602, 190=>602, 191=>602, 192=>602, 193=>602, 194=>602, 195=>602, 196=>602,
- 197=>602, 198=>602, 199=>602, 200=>602, 201=>602, 202=>602, 203=>602, 204=>602, 205=>602, 206=>602, 207=>602, 208=>602, 209=>602, 210=>602, 211=>602, 212=>602,
- 213=>602, 214=>602, 215=>602, 216=>602, 217=>602, 218=>602, 219=>602, 220=>602, 221=>602, 222=>602, 223=>602, 224=>602, 225=>602, 226=>602, 227=>602, 228=>602,
- 229=>602, 230=>602, 231=>602, 232=>602, 233=>602, 234=>602, 235=>602, 236=>602, 237=>602, 238=>602, 239=>602, 240=>602, 241=>602, 242=>602, 243=>602, 244=>602,
- 245=>602, 246=>602, 247=>602, 248=>602, 249=>602, 250=>602, 251=>602, 252=>602, 253=>602, 254=>602, 255=>602, 8800=>602, 8734=>602, 8804=>602, 8805=>602, 8706=>602,
- 8721=>602, 8719=>602, 960=>602, 8747=>602, 937=>602, 8730=>602, 8776=>602, 8710=>602, 9674=>602, 8725=>602, 64257=>602, 64258=>602, 305=>602, 728=>602, 729=>602, 730=>602,
- 733=>602, 731=>602, 711=>602, 321=>602, 322=>602, 8722=>602, 286=>602, 287=>602, 304=>602, 350=>602, 351=>602, 262=>602, 263=>602, 268=>602, 269=>602, 273=>602,
- 8729=>602}
+ 270=>602, 32=>602, 33=>602, 34=>602, 35=>602, 36=>602, 37=>602, 38=>602, 39=>602, 40=>602, 41=>602, 42=>602, 43=>602, 44=>602, 45=>602, 46=>602,
+ 47=>602, 48=>602, 49=>602, 50=>602, 51=>602, 52=>602, 53=>602, 54=>602, 55=>602, 56=>602, 57=>602, 58=>602, 59=>602, 60=>602, 61=>602, 62=>602,
+ 63=>602, 64=>602, 65=>602, 66=>602, 67=>602, 68=>602, 69=>602, 70=>602, 71=>602, 72=>602, 73=>602, 74=>602, 75=>602, 76=>602, 77=>602, 78=>602,
+ 79=>602, 80=>602, 81=>602, 82=>602, 83=>602, 84=>602, 85=>602, 86=>602, 87=>602, 88=>602, 89=>602, 90=>602, 91=>602, 92=>602, 93=>602, 94=>602,
+ 95=>602, 96=>602, 97=>602, 98=>602, 99=>602, 100=>602, 101=>602, 102=>602, 103=>602, 104=>602, 105=>602, 106=>602, 107=>602, 108=>602, 109=>602, 110=>602,
+ 111=>602, 112=>602, 113=>602, 114=>602, 115=>602, 116=>602, 117=>602, 118=>602, 119=>602, 120=>602, 121=>602, 122=>602, 123=>602, 124=>602, 125=>602, 126=>602,
+ 8364=>602, 8218=>602, 402=>602, 8222=>602, 8230=>602, 8224=>602, 8225=>602, 710=>602, 8240=>602, 352=>602, 8249=>602, 338=>602, 381=>602, 8216=>602, 8217=>602, 8220=>602,
+ 8221=>602, 8226=>602, 8211=>602, 8212=>602, 732=>602, 8482=>602, 353=>602, 8250=>602, 339=>602, 382=>602, 376=>602, 160=>602, 161=>602, 162=>602, 163=>602, 164=>602,
+ 165=>602, 166=>602, 167=>602, 168=>602, 169=>602, 170=>602, 171=>602, 172=>602, 173=>602, 174=>602, 175=>602, 176=>602, 177=>602, 178=>602, 179=>602, 180=>602,
+ 181=>602, 182=>602, 183=>602, 184=>602, 185=>602, 186=>602, 187=>602, 188=>602, 189=>602, 190=>602, 191=>602, 192=>602, 193=>602, 194=>602, 195=>602, 196=>602,
+ 197=>602, 198=>602, 199=>602, 200=>602, 201=>602, 202=>602, 203=>602, 204=>602, 205=>602, 206=>602, 207=>602, 208=>602, 209=>602, 210=>602, 211=>602, 212=>602,
+ 213=>602, 214=>602, 215=>602, 216=>602, 217=>602, 218=>602, 219=>602, 220=>602, 221=>602, 222=>602, 223=>602, 224=>602, 225=>602, 226=>602, 227=>602, 228=>602,
+ 229=>602, 230=>602, 231=>602, 232=>602, 233=>602, 234=>602, 235=>602, 236=>602, 237=>602, 238=>602, 239=>602, 240=>602, 241=>602, 242=>602, 243=>602, 244=>602,
+ 245=>602, 246=>602, 247=>602, 248=>602, 249=>602, 250=>602, 251=>602, 252=>602, 253=>602, 254=>602, 255=>602, 8800=>602, 8734=>602, 8804=>602, 8805=>602, 8706=>602,
+ 8721=>602, 8719=>602, 960=>602, 8747=>602, 937=>602, 8730=>602, 8776=>602, 8710=>602, 9674=>602, 8725=>602, 64257=>602, 64258=>602, 305=>602, 728=>602, 729=>602, 730=>602,
+ 733=>602, 731=>602, 711=>602, 321=>602, 322=>602, 8722=>602, 286=>602, 287=>602, 304=>602, 350=>602, 351=>602, 262=>602, 263=>602, 268=>602, 269=>602, 273=>602,
+ 8729=>602}
font[:enc]='';
font[:diff]='';
font[:file]='veramo.z';
font[:ctg]='veramo.ctg.z';
font[:originalsize]=49224;
-end
\ No newline at end of file
+end
diff --git a/lib/plugins/rfpdf/lib/fonts/veramob.rb b/lib/plugins/rfpdf/lib/fonts/veramob.rb
index b413bf0323..73e6076095 100755
--- a/lib/plugins/rfpdf/lib/fonts/veramob.rb
+++ b/lib/plugins/rfpdf/lib/fonts/veramob.rb
@@ -6,23 +6,23 @@ TCPDFFontDescriptor.define('veramob') do |font|
font[:up]=-108;
font[:ut]=120;
font[:cw]={
- 270=>602, 32=>602, 33=>602, 34=>602, 35=>602, 36=>602, 37=>602, 38=>602, 39=>602, 40=>602, 41=>602, 42=>602, 43=>602, 44=>602, 45=>602, 46=>602,
- 47=>602, 48=>602, 49=>602, 50=>602, 51=>602, 52=>602, 53=>602, 54=>602, 55=>602, 56=>602, 57=>602, 58=>602, 59=>602, 60=>602, 61=>602, 62=>602,
- 63=>602, 64=>602, 65=>602, 66=>602, 67=>602, 68=>602, 69=>602, 70=>602, 71=>602, 72=>602, 73=>602, 74=>602, 75=>602, 76=>602, 77=>602, 78=>602,
- 79=>602, 80=>602, 81=>602, 82=>602, 83=>602, 84=>602, 85=>602, 86=>602, 87=>602, 88=>602, 89=>602, 90=>602, 91=>602, 92=>602, 93=>602, 94=>602,
- 95=>602, 96=>602, 97=>602, 98=>602, 99=>602, 100=>602, 101=>602, 102=>602, 103=>602, 104=>602, 105=>602, 106=>602, 107=>602, 108=>602, 109=>602, 110=>602,
- 111=>602, 112=>602, 113=>602, 114=>602, 115=>602, 116=>602, 117=>602, 118=>602, 119=>602, 120=>602, 121=>602, 122=>602, 123=>602, 124=>602, 125=>602, 126=>602,
- 8364=>602, 8218=>602, 402=>602, 8222=>602, 8230=>602, 8224=>602, 8225=>602, 710=>602, 8240=>602, 352=>602, 8249=>602, 338=>602, 381=>602, 8216=>602, 8217=>602, 8220=>602,
- 8221=>602, 8226=>602, 8211=>602, 8212=>602, 732=>602, 8482=>602, 353=>602, 8250=>602, 339=>602, 382=>602, 376=>602, 160=>602, 161=>602, 162=>602, 163=>602, 164=>602,
- 165=>602, 166=>602, 167=>602, 168=>602, 169=>602, 170=>602, 171=>602, 172=>602, 173=>602, 174=>602, 175=>602, 176=>602, 177=>602, 178=>602, 179=>602, 180=>602,
- 181=>602, 182=>602, 183=>602, 184=>602, 185=>602, 186=>602, 187=>602, 188=>602, 189=>602, 190=>602, 191=>602, 192=>602, 193=>602, 194=>602, 195=>602, 196=>602,
- 197=>602, 198=>602, 199=>602, 200=>602, 201=>602, 202=>602, 203=>602, 204=>602, 205=>602, 206=>602, 207=>602, 208=>602, 209=>602, 210=>602, 211=>602, 212=>602,
- 213=>602, 214=>602, 215=>602, 216=>602, 217=>602, 218=>602, 219=>602, 220=>602, 221=>602, 222=>602, 223=>602, 224=>602, 225=>602, 226=>602, 227=>602, 228=>602,
- 229=>602, 230=>602, 231=>602, 232=>602, 233=>602, 234=>602, 235=>602, 236=>602, 237=>602, 238=>602, 239=>602, 240=>602, 241=>602, 242=>602, 243=>602, 244=>602,
- 245=>602, 246=>602, 247=>602, 248=>602, 249=>602, 250=>602, 251=>602, 252=>602, 253=>602, 254=>602, 255=>602, 8800=>602, 8734=>602, 8804=>602, 8805=>602, 8706=>602,
- 8721=>602, 8719=>602, 960=>602, 8747=>602, 937=>602, 8730=>602, 8776=>602, 8710=>602, 9674=>602, 8725=>602, 64257=>602, 64258=>602, 305=>602, 728=>602, 729=>602, 730=>602,
- 733=>602, 731=>602, 711=>602, 321=>602, 322=>602, 8722=>602, 286=>602, 287=>602, 304=>602, 350=>602, 351=>602, 262=>602, 263=>602, 268=>602, 269=>602, 273=>602,
- 8729=>602}
+ 270=>602, 32=>602, 33=>602, 34=>602, 35=>602, 36=>602, 37=>602, 38=>602, 39=>602, 40=>602, 41=>602, 42=>602, 43=>602, 44=>602, 45=>602, 46=>602,
+ 47=>602, 48=>602, 49=>602, 50=>602, 51=>602, 52=>602, 53=>602, 54=>602, 55=>602, 56=>602, 57=>602, 58=>602, 59=>602, 60=>602, 61=>602, 62=>602,
+ 63=>602, 64=>602, 65=>602, 66=>602, 67=>602, 68=>602, 69=>602, 70=>602, 71=>602, 72=>602, 73=>602, 74=>602, 75=>602, 76=>602, 77=>602, 78=>602,
+ 79=>602, 80=>602, 81=>602, 82=>602, 83=>602, 84=>602, 85=>602, 86=>602, 87=>602, 88=>602, 89=>602, 90=>602, 91=>602, 92=>602, 93=>602, 94=>602,
+ 95=>602, 96=>602, 97=>602, 98=>602, 99=>602, 100=>602, 101=>602, 102=>602, 103=>602, 104=>602, 105=>602, 106=>602, 107=>602, 108=>602, 109=>602, 110=>602,
+ 111=>602, 112=>602, 113=>602, 114=>602, 115=>602, 116=>602, 117=>602, 118=>602, 119=>602, 120=>602, 121=>602, 122=>602, 123=>602, 124=>602, 125=>602, 126=>602,
+ 8364=>602, 8218=>602, 402=>602, 8222=>602, 8230=>602, 8224=>602, 8225=>602, 710=>602, 8240=>602, 352=>602, 8249=>602, 338=>602, 381=>602, 8216=>602, 8217=>602, 8220=>602,
+ 8221=>602, 8226=>602, 8211=>602, 8212=>602, 732=>602, 8482=>602, 353=>602, 8250=>602, 339=>602, 382=>602, 376=>602, 160=>602, 161=>602, 162=>602, 163=>602, 164=>602,
+ 165=>602, 166=>602, 167=>602, 168=>602, 169=>602, 170=>602, 171=>602, 172=>602, 173=>602, 174=>602, 175=>602, 176=>602, 177=>602, 178=>602, 179=>602, 180=>602,
+ 181=>602, 182=>602, 183=>602, 184=>602, 185=>602, 186=>602, 187=>602, 188=>602, 189=>602, 190=>602, 191=>602, 192=>602, 193=>602, 194=>602, 195=>602, 196=>602,
+ 197=>602, 198=>602, 199=>602, 200=>602, 201=>602, 202=>602, 203=>602, 204=>602, 205=>602, 206=>602, 207=>602, 208=>602, 209=>602, 210=>602, 211=>602, 212=>602,
+ 213=>602, 214=>602, 215=>602, 216=>602, 217=>602, 218=>602, 219=>602, 220=>602, 221=>602, 222=>602, 223=>602, 224=>602, 225=>602, 226=>602, 227=>602, 228=>602,
+ 229=>602, 230=>602, 231=>602, 232=>602, 233=>602, 234=>602, 235=>602, 236=>602, 237=>602, 238=>602, 239=>602, 240=>602, 241=>602, 242=>602, 243=>602, 244=>602,
+ 245=>602, 246=>602, 247=>602, 248=>602, 249=>602, 250=>602, 251=>602, 252=>602, 253=>602, 254=>602, 255=>602, 8800=>602, 8734=>602, 8804=>602, 8805=>602, 8706=>602,
+ 8721=>602, 8719=>602, 960=>602, 8747=>602, 937=>602, 8730=>602, 8776=>602, 8710=>602, 9674=>602, 8725=>602, 64257=>602, 64258=>602, 305=>602, 728=>602, 729=>602, 730=>602,
+ 733=>602, 731=>602, 711=>602, 321=>602, 322=>602, 8722=>602, 286=>602, 287=>602, 304=>602, 350=>602, 351=>602, 262=>602, 263=>602, 268=>602, 269=>602, 273=>602,
+ 8729=>602}
font[:enc]='';
font[:diff]='';
font[:file]='veramob.z';
diff --git a/lib/plugins/rfpdf/lib/fonts/veramobi.rb b/lib/plugins/rfpdf/lib/fonts/veramobi.rb
index dbe489db70..8a4957645d 100755
--- a/lib/plugins/rfpdf/lib/fonts/veramobi.rb
+++ b/lib/plugins/rfpdf/lib/fonts/veramobi.rb
@@ -6,23 +6,23 @@ TCPDFFontDescriptor.define('veramobi') do |font|
font[:up]=-108;
font[:ut]=120;
font[:cw]={
- 270=>602, 32=>602, 33=>602, 34=>602, 35=>602, 36=>602, 37=>602, 38=>602, 39=>602, 40=>602, 41=>602, 42=>602, 43=>602, 44=>602, 45=>602, 46=>602,
- 47=>602, 48=>602, 49=>602, 50=>602, 51=>602, 52=>602, 53=>602, 54=>602, 55=>602, 56=>602, 57=>602, 58=>602, 59=>602, 60=>602, 61=>602, 62=>602,
- 63=>602, 64=>602, 65=>602, 66=>602, 67=>602, 68=>602, 69=>602, 70=>602, 71=>602, 72=>602, 73=>602, 74=>602, 75=>602, 76=>602, 77=>602, 78=>602,
- 79=>602, 80=>602, 81=>602, 82=>602, 83=>602, 84=>602, 85=>602, 86=>602, 87=>602, 88=>602, 89=>602, 90=>602, 91=>602, 92=>602, 93=>602, 94=>602,
- 95=>602, 96=>602, 97=>602, 98=>602, 99=>602, 100=>602, 101=>602, 102=>602, 103=>602, 104=>602, 105=>602, 106=>602, 107=>602, 108=>602, 109=>602, 110=>602,
- 111=>602, 112=>602, 113=>602, 114=>602, 115=>602, 116=>602, 117=>602, 118=>602, 119=>602, 120=>602, 121=>602, 122=>602, 123=>602, 124=>602, 125=>602, 126=>602,
- 8364=>602, 8218=>602, 402=>602, 8222=>602, 8230=>602, 8224=>602, 8225=>602, 710=>602, 8240=>602, 352=>602, 8249=>602, 338=>602, 381=>602, 8216=>602, 8217=>602, 8220=>602,
- 8221=>602, 8226=>602, 8211=>602, 8212=>602, 732=>602, 8482=>602, 353=>602, 8250=>602, 339=>602, 382=>602, 376=>602, 160=>602, 161=>602, 162=>602, 163=>602, 164=>602,
- 165=>602, 166=>602, 167=>602, 168=>602, 169=>602, 170=>602, 171=>602, 172=>602, 173=>602, 174=>602, 175=>602, 176=>602, 177=>602, 178=>602, 179=>602, 180=>602,
- 181=>602, 182=>602, 183=>602, 184=>602, 185=>602, 186=>602, 187=>602, 188=>602, 189=>602, 190=>602, 191=>602, 192=>602, 193=>602, 194=>602, 195=>602, 196=>602,
- 197=>602, 198=>602, 199=>602, 200=>602, 201=>602, 202=>602, 203=>602, 204=>602, 205=>602, 206=>602, 207=>602, 208=>602, 209=>602, 210=>602, 211=>602, 212=>602,
- 213=>602, 214=>602, 215=>602, 216=>602, 217=>602, 218=>602, 219=>602, 220=>602, 221=>602, 222=>602, 223=>602, 224=>602, 225=>602, 226=>602, 227=>602, 228=>602,
- 229=>602, 230=>602, 231=>602, 232=>602, 233=>602, 234=>602, 235=>602, 236=>602, 237=>602, 238=>602, 239=>602, 240=>602, 241=>602, 242=>602, 243=>602, 244=>602,
- 245=>602, 246=>602, 247=>602, 248=>602, 249=>602, 250=>602, 251=>602, 252=>602, 253=>602, 254=>602, 255=>602, 8800=>602, 8734=>602, 8804=>602, 8805=>602, 8706=>602,
- 8721=>602, 8719=>602, 960=>602, 8747=>602, 937=>602, 8730=>602, 8776=>602, 8710=>602, 9674=>602, 8725=>602, 64257=>602, 64258=>602, 305=>602, 728=>602, 729=>602, 730=>602,
- 733=>602, 731=>602, 711=>602, 321=>602, 322=>602, 8722=>602, 286=>602, 287=>602, 304=>602, 350=>602, 351=>602, 262=>602, 263=>602, 268=>602, 269=>602, 273=>602,
- 8729=>602}
+ 270=>602, 32=>602, 33=>602, 34=>602, 35=>602, 36=>602, 37=>602, 38=>602, 39=>602, 40=>602, 41=>602, 42=>602, 43=>602, 44=>602, 45=>602, 46=>602,
+ 47=>602, 48=>602, 49=>602, 50=>602, 51=>602, 52=>602, 53=>602, 54=>602, 55=>602, 56=>602, 57=>602, 58=>602, 59=>602, 60=>602, 61=>602, 62=>602,
+ 63=>602, 64=>602, 65=>602, 66=>602, 67=>602, 68=>602, 69=>602, 70=>602, 71=>602, 72=>602, 73=>602, 74=>602, 75=>602, 76=>602, 77=>602, 78=>602,
+ 79=>602, 80=>602, 81=>602, 82=>602, 83=>602, 84=>602, 85=>602, 86=>602, 87=>602, 88=>602, 89=>602, 90=>602, 91=>602, 92=>602, 93=>602, 94=>602,
+ 95=>602, 96=>602, 97=>602, 98=>602, 99=>602, 100=>602, 101=>602, 102=>602, 103=>602, 104=>602, 105=>602, 106=>602, 107=>602, 108=>602, 109=>602, 110=>602,
+ 111=>602, 112=>602, 113=>602, 114=>602, 115=>602, 116=>602, 117=>602, 118=>602, 119=>602, 120=>602, 121=>602, 122=>602, 123=>602, 124=>602, 125=>602, 126=>602,
+ 8364=>602, 8218=>602, 402=>602, 8222=>602, 8230=>602, 8224=>602, 8225=>602, 710=>602, 8240=>602, 352=>602, 8249=>602, 338=>602, 381=>602, 8216=>602, 8217=>602, 8220=>602,
+ 8221=>602, 8226=>602, 8211=>602, 8212=>602, 732=>602, 8482=>602, 353=>602, 8250=>602, 339=>602, 382=>602, 376=>602, 160=>602, 161=>602, 162=>602, 163=>602, 164=>602,
+ 165=>602, 166=>602, 167=>602, 168=>602, 169=>602, 170=>602, 171=>602, 172=>602, 173=>602, 174=>602, 175=>602, 176=>602, 177=>602, 178=>602, 179=>602, 180=>602,
+ 181=>602, 182=>602, 183=>602, 184=>602, 185=>602, 186=>602, 187=>602, 188=>602, 189=>602, 190=>602, 191=>602, 192=>602, 193=>602, 194=>602, 195=>602, 196=>602,
+ 197=>602, 198=>602, 199=>602, 200=>602, 201=>602, 202=>602, 203=>602, 204=>602, 205=>602, 206=>602, 207=>602, 208=>602, 209=>602, 210=>602, 211=>602, 212=>602,
+ 213=>602, 214=>602, 215=>602, 216=>602, 217=>602, 218=>602, 219=>602, 220=>602, 221=>602, 222=>602, 223=>602, 224=>602, 225=>602, 226=>602, 227=>602, 228=>602,
+ 229=>602, 230=>602, 231=>602, 232=>602, 233=>602, 234=>602, 235=>602, 236=>602, 237=>602, 238=>602, 239=>602, 240=>602, 241=>602, 242=>602, 243=>602, 244=>602,
+ 245=>602, 246=>602, 247=>602, 248=>602, 249=>602, 250=>602, 251=>602, 252=>602, 253=>602, 254=>602, 255=>602, 8800=>602, 8734=>602, 8804=>602, 8805=>602, 8706=>602,
+ 8721=>602, 8719=>602, 960=>602, 8747=>602, 937=>602, 8730=>602, 8776=>602, 8710=>602, 9674=>602, 8725=>602, 64257=>602, 64258=>602, 305=>602, 728=>602, 729=>602, 730=>602,
+ 733=>602, 731=>602, 711=>602, 321=>602, 322=>602, 8722=>602, 286=>602, 287=>602, 304=>602, 350=>602, 351=>602, 262=>602, 263=>602, 268=>602, 269=>602, 273=>602,
+ 8729=>602}
font[:enc]='';
font[:diff]='';
font[:file]='veramobi.z';
diff --git a/lib/plugins/rfpdf/lib/fonts/veramoi.rb b/lib/plugins/rfpdf/lib/fonts/veramoi.rb
index 979fcdde40..b0b80d88b9 100755
--- a/lib/plugins/rfpdf/lib/fonts/veramoi.rb
+++ b/lib/plugins/rfpdf/lib/fonts/veramoi.rb
@@ -6,23 +6,23 @@ TCPDFFontDescriptor.define('veramoi') do |font|
font[:up]=-104;
font[:ut]=69;
font[:cw]={
- 270=>602, 32=>602, 33=>602, 34=>602, 35=>602, 36=>602, 37=>602, 38=>602, 39=>602, 40=>602, 41=>602, 42=>602, 43=>602, 44=>602, 45=>602, 46=>602,
- 47=>602, 48=>602, 49=>602, 50=>602, 51=>602, 52=>602, 53=>602, 54=>602, 55=>602, 56=>602, 57=>602, 58=>602, 59=>602, 60=>602, 61=>602, 62=>602,
- 63=>602, 64=>602, 65=>602, 66=>602, 67=>602, 68=>602, 69=>602, 70=>602, 71=>602, 72=>602, 73=>602, 74=>602, 75=>602, 76=>602, 77=>602, 78=>602,
- 79=>602, 80=>602, 81=>602, 82=>602, 83=>602, 84=>602, 85=>602, 86=>602, 87=>602, 88=>602, 89=>602, 90=>602, 91=>602, 92=>602, 93=>602, 94=>602,
- 95=>602, 96=>602, 97=>602, 98=>602, 99=>602, 100=>602, 101=>602, 102=>602, 103=>602, 104=>602, 105=>602, 106=>602, 107=>602, 108=>602, 109=>602, 110=>602,
- 111=>602, 112=>602, 113=>602, 114=>602, 115=>602, 116=>602, 117=>602, 118=>602, 119=>602, 120=>602, 121=>602, 122=>602, 123=>602, 124=>602, 125=>602, 126=>602,
- 8364=>602, 8218=>602, 402=>602, 8222=>602, 8230=>602, 8224=>602, 8225=>602, 710=>602, 8240=>602, 352=>602, 8249=>602, 338=>602, 381=>602, 8216=>602, 8217=>602, 8220=>602,
- 8221=>602, 8226=>602, 8211=>602, 8212=>602, 732=>602, 8482=>602, 353=>602, 8250=>602, 339=>602, 382=>602, 376=>602, 160=>602, 161=>602, 162=>602, 163=>602, 164=>602,
- 165=>602, 166=>602, 167=>602, 168=>602, 169=>602, 170=>602, 171=>602, 172=>602, 173=>602, 174=>602, 175=>602, 176=>602, 177=>602, 178=>602, 179=>602, 180=>602,
- 181=>602, 182=>602, 183=>602, 184=>602, 185=>602, 186=>602, 187=>602, 188=>602, 189=>602, 190=>602, 191=>602, 192=>602, 193=>602, 194=>602, 195=>602, 196=>602,
- 197=>602, 198=>602, 199=>602, 200=>602, 201=>602, 202=>602, 203=>602, 204=>602, 205=>602, 206=>602, 207=>602, 208=>602, 209=>602, 210=>602, 211=>602, 212=>602,
- 213=>602, 214=>602, 215=>602, 216=>602, 217=>602, 218=>602, 219=>602, 220=>602, 221=>602, 222=>602, 223=>602, 224=>602, 225=>602, 226=>602, 227=>602, 228=>602,
- 229=>602, 230=>602, 231=>602, 232=>602, 233=>602, 234=>602, 235=>602, 236=>602, 237=>602, 238=>602, 239=>602, 240=>602, 241=>602, 242=>602, 243=>602, 244=>602,
- 245=>602, 246=>602, 247=>602, 248=>602, 249=>602, 250=>602, 251=>602, 252=>602, 253=>602, 254=>602, 255=>602, 8800=>602, 8734=>602, 8804=>602, 8805=>602, 8706=>602,
- 8721=>602, 8719=>602, 960=>602, 8747=>602, 937=>602, 8730=>602, 8776=>602, 8710=>602, 9674=>602, 8725=>602, 64257=>602, 64258=>602, 305=>602, 728=>602, 729=>602, 730=>602,
- 733=>602, 731=>602, 711=>602, 321=>602, 322=>602, 8722=>602, 286=>602, 287=>602, 304=>602, 350=>602, 351=>602, 262=>602, 263=>602, 268=>602, 269=>602, 273=>602,
- 8729=>602}
+ 270=>602, 32=>602, 33=>602, 34=>602, 35=>602, 36=>602, 37=>602, 38=>602, 39=>602, 40=>602, 41=>602, 42=>602, 43=>602, 44=>602, 45=>602, 46=>602,
+ 47=>602, 48=>602, 49=>602, 50=>602, 51=>602, 52=>602, 53=>602, 54=>602, 55=>602, 56=>602, 57=>602, 58=>602, 59=>602, 60=>602, 61=>602, 62=>602,
+ 63=>602, 64=>602, 65=>602, 66=>602, 67=>602, 68=>602, 69=>602, 70=>602, 71=>602, 72=>602, 73=>602, 74=>602, 75=>602, 76=>602, 77=>602, 78=>602,
+ 79=>602, 80=>602, 81=>602, 82=>602, 83=>602, 84=>602, 85=>602, 86=>602, 87=>602, 88=>602, 89=>602, 90=>602, 91=>602, 92=>602, 93=>602, 94=>602,
+ 95=>602, 96=>602, 97=>602, 98=>602, 99=>602, 100=>602, 101=>602, 102=>602, 103=>602, 104=>602, 105=>602, 106=>602, 107=>602, 108=>602, 109=>602, 110=>602,
+ 111=>602, 112=>602, 113=>602, 114=>602, 115=>602, 116=>602, 117=>602, 118=>602, 119=>602, 120=>602, 121=>602, 122=>602, 123=>602, 124=>602, 125=>602, 126=>602,
+ 8364=>602, 8218=>602, 402=>602, 8222=>602, 8230=>602, 8224=>602, 8225=>602, 710=>602, 8240=>602, 352=>602, 8249=>602, 338=>602, 381=>602, 8216=>602, 8217=>602, 8220=>602,
+ 8221=>602, 8226=>602, 8211=>602, 8212=>602, 732=>602, 8482=>602, 353=>602, 8250=>602, 339=>602, 382=>602, 376=>602, 160=>602, 161=>602, 162=>602, 163=>602, 164=>602,
+ 165=>602, 166=>602, 167=>602, 168=>602, 169=>602, 170=>602, 171=>602, 172=>602, 173=>602, 174=>602, 175=>602, 176=>602, 177=>602, 178=>602, 179=>602, 180=>602,
+ 181=>602, 182=>602, 183=>602, 184=>602, 185=>602, 186=>602, 187=>602, 188=>602, 189=>602, 190=>602, 191=>602, 192=>602, 193=>602, 194=>602, 195=>602, 196=>602,
+ 197=>602, 198=>602, 199=>602, 200=>602, 201=>602, 202=>602, 203=>602, 204=>602, 205=>602, 206=>602, 207=>602, 208=>602, 209=>602, 210=>602, 211=>602, 212=>602,
+ 213=>602, 214=>602, 215=>602, 216=>602, 217=>602, 218=>602, 219=>602, 220=>602, 221=>602, 222=>602, 223=>602, 224=>602, 225=>602, 226=>602, 227=>602, 228=>602,
+ 229=>602, 230=>602, 231=>602, 232=>602, 233=>602, 234=>602, 235=>602, 236=>602, 237=>602, 238=>602, 239=>602, 240=>602, 241=>602, 242=>602, 243=>602, 244=>602,
+ 245=>602, 246=>602, 247=>602, 248=>602, 249=>602, 250=>602, 251=>602, 252=>602, 253=>602, 254=>602, 255=>602, 8800=>602, 8734=>602, 8804=>602, 8805=>602, 8706=>602,
+ 8721=>602, 8719=>602, 960=>602, 8747=>602, 937=>602, 8730=>602, 8776=>602, 8710=>602, 9674=>602, 8725=>602, 64257=>602, 64258=>602, 305=>602, 728=>602, 729=>602, 730=>602,
+ 733=>602, 731=>602, 711=>602, 321=>602, 322=>602, 8722=>602, 286=>602, 287=>602, 304=>602, 350=>602, 351=>602, 262=>602, 263=>602, 268=>602, 269=>602, 273=>602,
+ 8729=>602}
font[:enc]='';
font[:diff]='';
font[:file]='veramoi.z';
diff --git a/lib/plugins/rfpdf/lib/fonts/verase.rb b/lib/plugins/rfpdf/lib/fonts/verase.rb
index 3177fc0466..2698eec66f 100755
--- a/lib/plugins/rfpdf/lib/fonts/verase.rb
+++ b/lib/plugins/rfpdf/lib/fonts/verase.rb
@@ -6,23 +6,23 @@ TCPDFFontDescriptor.define('verase') do |font|
font[:up]=-104;
font[:ut]=65;
font[:cw]={
- 270=>600, 32=>318, 33=>402, 34=>460, 35=>838, 36=>636, 37=>950, 38=>890, 39=>275, 40=>390, 41=>390, 42=>500, 43=>838, 44=>318, 45=>338, 46=>318,
- 47=>337, 48=>636, 49=>636, 50=>636, 51=>636, 52=>636, 53=>636, 54=>636, 55=>636, 56=>636, 57=>636, 58=>337, 59=>337, 60=>838, 61=>838, 62=>838,
- 63=>536, 64=>1000, 65=>722, 66=>735, 67=>765, 68=>802, 69=>730, 70=>694, 71=>799, 72=>872, 73=>395, 74=>401, 75=>747, 76=>664, 77=>1024, 78=>875,
- 79=>820, 80=>673, 81=>820, 82=>753, 83=>685, 84=>667, 85=>843, 86=>722, 87=>1028, 88=>712, 89=>660, 90=>695, 91=>390, 92=>337, 93=>390, 94=>838,
- 95=>500, 96=>500, 97=>596, 98=>640, 99=>560, 100=>640, 101=>592, 102=>370, 103=>640, 104=>644, 105=>320, 106=>310, 107=>606, 108=>320, 109=>948, 110=>644,
- 111=>602, 112=>640, 113=>640, 114=>478, 115=>513, 116=>402, 117=>644, 118=>565, 119=>856, 120=>564, 121=>565, 122=>527, 123=>636, 124=>337, 125=>636, 126=>838,
- 8364=>636, 8218=>318, 402=>636, 8222=>518, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1342, 352=>685, 8249=>400, 338=>1137, 381=>695, 8216=>318, 8217=>318, 8220=>511,
- 8221=>511, 8226=>590, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>513, 8250=>400, 339=>989, 382=>527, 376=>660, 160=>636, 161=>402, 162=>636, 163=>636, 164=>636,
- 165=>636, 166=>337, 167=>500, 168=>500, 169=>1000, 170=>475, 171=>612, 172=>838, 173=>338, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>401, 179=>401, 180=>500,
- 181=>650, 182=>636, 183=>318, 184=>500, 185=>401, 186=>470, 187=>612, 188=>969, 189=>969, 190=>969, 191=>536, 192=>722, 193=>722, 194=>722, 195=>722, 196=>722,
- 197=>722, 198=>1001, 199=>765, 200=>730, 201=>730, 202=>730, 203=>730, 204=>395, 205=>395, 206=>395, 207=>395, 208=>807, 209=>875, 210=>820, 211=>820, 212=>820,
- 213=>820, 214=>820, 215=>838, 216=>820, 217=>843, 218=>843, 219=>843, 220=>843, 221=>660, 222=>676, 223=>668, 224=>596, 225=>596, 226=>596, 227=>596, 228=>596,
- 229=>596, 230=>940, 231=>560, 232=>592, 233=>592, 234=>592, 235=>592, 236=>320, 237=>320, 238=>320, 239=>320, 240=>602, 241=>644, 242=>602, 243=>602, 244=>602,
- 245=>602, 246=>602, 247=>838, 248=>602, 249=>644, 250=>644, 251=>644, 252=>644, 253=>565, 254=>640, 255=>565, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>517,
- 8721=>714, 8719=>796, 960=>657, 8747=>521, 937=>829, 8730=>637, 8776=>838, 8710=>698, 9674=>494, 8725=>167, 64257=>667, 64258=>667, 305=>320, 728=>500, 729=>500, 730=>500,
- 733=>500, 731=>500, 711=>500, 321=>669, 322=>324, 8722=>838, 286=>799, 287=>640, 304=>395, 350=>685, 351=>513, 262=>765, 263=>560, 268=>765, 269=>560, 273=>640,
- 8729=>318}
+ 270=>600, 32=>318, 33=>402, 34=>460, 35=>838, 36=>636, 37=>950, 38=>890, 39=>275, 40=>390, 41=>390, 42=>500, 43=>838, 44=>318, 45=>338, 46=>318,
+ 47=>337, 48=>636, 49=>636, 50=>636, 51=>636, 52=>636, 53=>636, 54=>636, 55=>636, 56=>636, 57=>636, 58=>337, 59=>337, 60=>838, 61=>838, 62=>838,
+ 63=>536, 64=>1000, 65=>722, 66=>735, 67=>765, 68=>802, 69=>730, 70=>694, 71=>799, 72=>872, 73=>395, 74=>401, 75=>747, 76=>664, 77=>1024, 78=>875,
+ 79=>820, 80=>673, 81=>820, 82=>753, 83=>685, 84=>667, 85=>843, 86=>722, 87=>1028, 88=>712, 89=>660, 90=>695, 91=>390, 92=>337, 93=>390, 94=>838,
+ 95=>500, 96=>500, 97=>596, 98=>640, 99=>560, 100=>640, 101=>592, 102=>370, 103=>640, 104=>644, 105=>320, 106=>310, 107=>606, 108=>320, 109=>948, 110=>644,
+ 111=>602, 112=>640, 113=>640, 114=>478, 115=>513, 116=>402, 117=>644, 118=>565, 119=>856, 120=>564, 121=>565, 122=>527, 123=>636, 124=>337, 125=>636, 126=>838,
+ 8364=>636, 8218=>318, 402=>636, 8222=>518, 8230=>1000, 8224=>500, 8225=>500, 710=>500, 8240=>1342, 352=>685, 8249=>400, 338=>1137, 381=>695, 8216=>318, 8217=>318, 8220=>511,
+ 8221=>511, 8226=>590, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>513, 8250=>400, 339=>989, 382=>527, 376=>660, 160=>636, 161=>402, 162=>636, 163=>636, 164=>636,
+ 165=>636, 166=>337, 167=>500, 168=>500, 169=>1000, 170=>475, 171=>612, 172=>838, 173=>338, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>401, 179=>401, 180=>500,
+ 181=>650, 182=>636, 183=>318, 184=>500, 185=>401, 186=>470, 187=>612, 188=>969, 189=>969, 190=>969, 191=>536, 192=>722, 193=>722, 194=>722, 195=>722, 196=>722,
+ 197=>722, 198=>1001, 199=>765, 200=>730, 201=>730, 202=>730, 203=>730, 204=>395, 205=>395, 206=>395, 207=>395, 208=>807, 209=>875, 210=>820, 211=>820, 212=>820,
+ 213=>820, 214=>820, 215=>838, 216=>820, 217=>843, 218=>843, 219=>843, 220=>843, 221=>660, 222=>676, 223=>668, 224=>596, 225=>596, 226=>596, 227=>596, 228=>596,
+ 229=>596, 230=>940, 231=>560, 232=>592, 233=>592, 234=>592, 235=>592, 236=>320, 237=>320, 238=>320, 239=>320, 240=>602, 241=>644, 242=>602, 243=>602, 244=>602,
+ 245=>602, 246=>602, 247=>838, 248=>602, 249=>644, 250=>644, 251=>644, 252=>644, 253=>565, 254=>640, 255=>565, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>517,
+ 8721=>714, 8719=>796, 960=>657, 8747=>521, 937=>829, 8730=>637, 8776=>838, 8710=>698, 9674=>494, 8725=>167, 64257=>667, 64258=>667, 305=>320, 728=>500, 729=>500, 730=>500,
+ 733=>500, 731=>500, 711=>500, 321=>669, 322=>324, 8722=>838, 286=>799, 287=>640, 304=>395, 350=>685, 351=>513, 262=>765, 263=>560, 268=>765, 269=>560, 273=>640,
+ 8729=>318}
font[:enc]='';
font[:diff]='';
font[:file]='verase.z';
diff --git a/lib/plugins/rfpdf/lib/fonts/veraseb.rb b/lib/plugins/rfpdf/lib/fonts/veraseb.rb
index b6dbf26cb2..401b40cbb9 100755
--- a/lib/plugins/rfpdf/lib/fonts/veraseb.rb
+++ b/lib/plugins/rfpdf/lib/fonts/veraseb.rb
@@ -6,23 +6,23 @@ TCPDFFontDescriptor.define('veraseb') do |font|
font[:up]=-106;
font[:ut]=117;
font[:cw]={
- 270=>600, 32=>348, 33=>439, 34=>521, 35=>838, 36=>696, 37=>950, 38=>903, 39=>306, 40=>473, 41=>473, 42=>523, 43=>838, 44=>348, 45=>415, 46=>348,
- 47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>369, 59=>369, 60=>838, 61=>838, 62=>838,
- 63=>586, 64=>1000, 65=>776, 66=>845, 67=>796, 68=>867, 69=>762, 70=>710, 71=>854, 72=>945, 73=>468, 74=>473, 75=>869, 76=>703, 77=>1107, 78=>914,
- 79=>871, 80=>752, 81=>871, 82=>831, 83=>722, 84=>744, 85=>872, 86=>776, 87=>1123, 88=>776, 89=>714, 90=>730, 91=>473, 92=>365, 93=>473, 94=>838,
- 95=>500, 96=>500, 97=>648, 98=>699, 99=>609, 100=>699, 101=>636, 102=>430, 103=>699, 104=>727, 105=>380, 106=>362, 107=>693, 108=>380, 109=>1058, 110=>727,
- 111=>667, 112=>699, 113=>699, 114=>527, 115=>563, 116=>462, 117=>727, 118=>581, 119=>861, 120=>596, 121=>581, 122=>568, 123=>643, 124=>364, 125=>643, 126=>838,
- 8364=>696, 8218=>348, 402=>696, 8222=>575, 8230=>1000, 8224=>523, 8225=>523, 710=>500, 8240=>1385, 352=>722, 8249=>400, 338=>1180, 381=>730, 8216=>348, 8217=>348, 8220=>575,
- 8221=>575, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>563, 8250=>400, 339=>1028, 382=>568, 376=>714, 160=>696, 161=>439, 162=>696, 163=>696, 164=>636,
- 165=>696, 166=>364, 167=>523, 168=>500, 169=>1000, 170=>487, 171=>625, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>438, 179=>438, 180=>500,
- 181=>732, 182=>636, 183=>348, 184=>500, 185=>438, 186=>500, 187=>625, 188=>1043, 189=>1043, 190=>1043, 191=>586, 192=>776, 193=>776, 194=>776, 195=>776, 196=>776,
- 197=>776, 198=>1034, 199=>796, 200=>762, 201=>762, 202=>762, 203=>762, 204=>468, 205=>468, 206=>468, 207=>468, 208=>874, 209=>914, 210=>871, 211=>871, 212=>871,
- 213=>871, 214=>871, 215=>838, 216=>871, 217=>872, 218=>872, 219=>872, 220=>872, 221=>714, 222=>757, 223=>760, 224=>648, 225=>648, 226=>648, 227=>648, 228=>648,
- 229=>648, 230=>975, 231=>609, 232=>636, 233=>636, 234=>636, 235=>636, 236=>380, 237=>380, 238=>380, 239=>380, 240=>667, 241=>727, 242=>667, 243=>667, 244=>667,
- 245=>667, 246=>667, 247=>838, 248=>667, 249=>727, 250=>727, 251=>727, 252=>727, 253=>581, 254=>699, 255=>581, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>534,
- 8721=>753, 8719=>842, 960=>732, 8747=>579, 937=>890, 8730=>657, 8776=>838, 8710=>753, 9674=>494, 8725=>167, 64257=>727, 64258=>727, 305=>380, 728=>500, 729=>500, 730=>500,
- 733=>500, 731=>500, 711=>500, 321=>710, 322=>385, 8722=>838, 286=>854, 287=>699, 304=>468, 350=>722, 351=>563, 262=>796, 263=>609, 268=>796, 269=>609, 273=>699,
- 8729=>348}
+ 270=>600, 32=>348, 33=>439, 34=>521, 35=>838, 36=>696, 37=>950, 38=>903, 39=>306, 40=>473, 41=>473, 42=>523, 43=>838, 44=>348, 45=>415, 46=>348,
+ 47=>365, 48=>696, 49=>696, 50=>696, 51=>696, 52=>696, 53=>696, 54=>696, 55=>696, 56=>696, 57=>696, 58=>369, 59=>369, 60=>838, 61=>838, 62=>838,
+ 63=>586, 64=>1000, 65=>776, 66=>845, 67=>796, 68=>867, 69=>762, 70=>710, 71=>854, 72=>945, 73=>468, 74=>473, 75=>869, 76=>703, 77=>1107, 78=>914,
+ 79=>871, 80=>752, 81=>871, 82=>831, 83=>722, 84=>744, 85=>872, 86=>776, 87=>1123, 88=>776, 89=>714, 90=>730, 91=>473, 92=>365, 93=>473, 94=>838,
+ 95=>500, 96=>500, 97=>648, 98=>699, 99=>609, 100=>699, 101=>636, 102=>430, 103=>699, 104=>727, 105=>380, 106=>362, 107=>693, 108=>380, 109=>1058, 110=>727,
+ 111=>667, 112=>699, 113=>699, 114=>527, 115=>563, 116=>462, 117=>727, 118=>581, 119=>861, 120=>596, 121=>581, 122=>568, 123=>643, 124=>364, 125=>643, 126=>838,
+ 8364=>696, 8218=>348, 402=>696, 8222=>575, 8230=>1000, 8224=>523, 8225=>523, 710=>500, 8240=>1385, 352=>722, 8249=>400, 338=>1180, 381=>730, 8216=>348, 8217=>348, 8220=>575,
+ 8221=>575, 8226=>639, 8211=>500, 8212=>1000, 732=>500, 8482=>1000, 353=>563, 8250=>400, 339=>1028, 382=>568, 376=>714, 160=>696, 161=>439, 162=>696, 163=>696, 164=>636,
+ 165=>696, 166=>364, 167=>523, 168=>500, 169=>1000, 170=>487, 171=>625, 172=>838, 173=>415, 174=>1000, 175=>500, 176=>500, 177=>838, 178=>438, 179=>438, 180=>500,
+ 181=>732, 182=>636, 183=>348, 184=>500, 185=>438, 186=>500, 187=>625, 188=>1043, 189=>1043, 190=>1043, 191=>586, 192=>776, 193=>776, 194=>776, 195=>776, 196=>776,
+ 197=>776, 198=>1034, 199=>796, 200=>762, 201=>762, 202=>762, 203=>762, 204=>468, 205=>468, 206=>468, 207=>468, 208=>874, 209=>914, 210=>871, 211=>871, 212=>871,
+ 213=>871, 214=>871, 215=>838, 216=>871, 217=>872, 218=>872, 219=>872, 220=>872, 221=>714, 222=>757, 223=>760, 224=>648, 225=>648, 226=>648, 227=>648, 228=>648,
+ 229=>648, 230=>975, 231=>609, 232=>636, 233=>636, 234=>636, 235=>636, 236=>380, 237=>380, 238=>380, 239=>380, 240=>667, 241=>727, 242=>667, 243=>667, 244=>667,
+ 245=>667, 246=>667, 247=>838, 248=>667, 249=>727, 250=>727, 251=>727, 252=>727, 253=>581, 254=>699, 255=>581, 8800=>838, 8734=>833, 8804=>838, 8805=>838, 8706=>534,
+ 8721=>753, 8719=>842, 960=>732, 8747=>579, 937=>890, 8730=>657, 8776=>838, 8710=>753, 9674=>494, 8725=>167, 64257=>727, 64258=>727, 305=>380, 728=>500, 729=>500, 730=>500,
+ 733=>500, 731=>500, 711=>500, 321=>710, 322=>385, 8722=>838, 286=>854, 287=>699, 304=>468, 350=>722, 351=>563, 262=>796, 263=>609, 268=>796, 269=>609, 273=>699,
+ 8729=>348}
font[:enc]='';
font[:diff]='';
font[:file]='veraseb.z';
diff --git a/lib/plugins/rfpdf/lib/fonts/zapfdingbats.rb b/lib/plugins/rfpdf/lib/fonts/zapfdingbats.rb
index a3a62124c0..0f6fb52128 100755
--- a/lib/plugins/rfpdf/lib/fonts/zapfdingbats.rb
+++ b/lib/plugins/rfpdf/lib/fonts/zapfdingbats.rb
@@ -1,16 +1,16 @@
#-- encoding: UTF-8
TCPDFFontDescriptor.define('zapfdingbats') do |font|
font[:cw]={
- 0.chr=>0,1.chr=>0,2.chr=>0,3.chr=>0,4.chr=>0,5.chr=>0,6.chr=>0,7.chr=>0,8.chr=>0,9.chr=>0,10.chr=>0,11.chr=>0,12.chr=>0,13.chr=>0,14.chr=>0,15.chr=>0,16.chr=>0,17.chr=>0,18.chr=>0,19.chr=>0,20.chr=>0,21.chr=>0,
- 22.chr=>0,23.chr=>0,24.chr=>0,25.chr=>0,26.chr=>0,27.chr=>0,28.chr=>0,29.chr=>0,30.chr=>0,31.chr=>0,' '=>278,'!'=>974,'"'=>961,'#'=>974,'$'=>980,'%'=>719,'&'=>789,'\''=>790,'('=>791,')'=>690,'*'=>960,'+'=>939,
- ','=>549,'-'=>855,'.'=>911,'/'=>933,'0'=>911,'1'=>945,'2'=>974,'3'=>755,'4'=>846,'5'=>762,'6'=>761,'7'=>571,'8'=>677,'9'=>763,':'=>760,';'=>759,'<'=>754,'='=>494,'>'=>552,'?'=>537,'@'=>577,'A'=>692,
- 'B'=>786,'C'=>788,'D'=>788,'E'=>790,'F'=>793,'G'=>794,'H'=>816,'I'=>823,'J'=>789,'K'=>841,'L'=>823,'M'=>833,'N'=>816,'O'=>831,'P'=>923,'Q'=>744,'R'=>723,'S'=>749,'T'=>790,'U'=>792,'V'=>695,'W'=>776,
- 'X'=>768,'Y'=>792,'Z'=>759,'['=>707,'\\'=>708,']'=>682,'^'=>701,'_'=>826,'`'=>815,'a'=>789,'b'=>789,'c'=>707,'d'=>687,'e'=>696,'f'=>689,'g'=>786,'h'=>787,'i'=>713,'j'=>791,'k'=>785,'l'=>791,'m'=>873,
- 'n'=>761,'o'=>762,'p'=>762,'q'=>759,'r'=>759,'s'=>892,'t'=>892,'u'=>788,'v'=>784,'w'=>438,'x'=>138,'y'=>277,'z'=>415,'{'=>392,'|'=>392,'}'=>668,'~'=>668,127.chr=>0,128.chr=>390,129.chr=>390,130.chr=>317,131.chr=>317,
- 132.chr=>276,133.chr=>276,134.chr=>509,135.chr=>509,136.chr=>410,137.chr=>410,138.chr=>234,139.chr=>234,140.chr=>334,141.chr=>334,142.chr=>0,143.chr=>0,144.chr=>0,145.chr=>0,146.chr=>0,147.chr=>0,148.chr=>0,149.chr=>0,150.chr=>0,151.chr=>0,152.chr=>0,153.chr=>0,
- 154.chr=>0,155.chr=>0,156.chr=>0,157.chr=>0,158.chr=>0,159.chr=>0,160.chr=>0,161.chr=>732,162.chr=>544,163.chr=>544,164.chr=>910,165.chr=>667,166.chr=>760,167.chr=>760,168.chr=>776,169.chr=>595,170.chr=>694,171.chr=>626,172.chr=>788,173.chr=>788,174.chr=>788,175.chr=>788,
- 176.chr=>788,177.chr=>788,178.chr=>788,179.chr=>788,180.chr=>788,181.chr=>788,182.chr=>788,183.chr=>788,184.chr=>788,185.chr=>788,186.chr=>788,187.chr=>788,188.chr=>788,189.chr=>788,190.chr=>788,191.chr=>788,192.chr=>788,193.chr=>788,194.chr=>788,195.chr=>788,196.chr=>788,197.chr=>788,
- 198.chr=>788,199.chr=>788,200.chr=>788,201.chr=>788,202.chr=>788,203.chr=>788,204.chr=>788,205.chr=>788,206.chr=>788,207.chr=>788,208.chr=>788,209.chr=>788,210.chr=>788,211.chr=>788,212.chr=>894,213.chr=>838,214.chr=>1016,215.chr=>458,216.chr=>748,217.chr=>924,218.chr=>748,219.chr=>918,
- 220.chr=>927,221.chr=>928,222.chr=>928,223.chr=>834,224.chr=>873,225.chr=>828,226.chr=>924,227.chr=>924,228.chr=>917,229.chr=>930,230.chr=>931,231.chr=>463,232.chr=>883,233.chr=>836,234.chr=>836,235.chr=>867,236.chr=>867,237.chr=>696,238.chr=>696,239.chr=>874,240.chr=>0,241.chr=>874,
- 242.chr=>760,243.chr=>946,244.chr=>771,245.chr=>865,246.chr=>771,247.chr=>888,248.chr=>967,249.chr=>888,250.chr=>831,251.chr=>873,252.chr=>927,253.chr=>970,254.chr=>918,255.chr=>0);
-end
\ No newline at end of file
+ 0.chr=>0,1.chr=>0,2.chr=>0,3.chr=>0,4.chr=>0,5.chr=>0,6.chr=>0,7.chr=>0,8.chr=>0,9.chr=>0,10.chr=>0,11.chr=>0,12.chr=>0,13.chr=>0,14.chr=>0,15.chr=>0,16.chr=>0,17.chr=>0,18.chr=>0,19.chr=>0,20.chr=>0,21.chr=>0,
+ 22.chr=>0,23.chr=>0,24.chr=>0,25.chr=>0,26.chr=>0,27.chr=>0,28.chr=>0,29.chr=>0,30.chr=>0,31.chr=>0,' '=>278,'!'=>974,'"'=>961,'#'=>974,'$'=>980,'%'=>719,'&'=>789,'\''=>790,'('=>791,')'=>690,'*'=>960,'+'=>939,
+ ','=>549,'-'=>855,'.'=>911,'/'=>933,'0'=>911,'1'=>945,'2'=>974,'3'=>755,'4'=>846,'5'=>762,'6'=>761,'7'=>571,'8'=>677,'9'=>763,':'=>760,';'=>759,'<'=>754,'='=>494,'>'=>552,'?'=>537,'@'=>577,'A'=>692,
+ 'B'=>786,'C'=>788,'D'=>788,'E'=>790,'F'=>793,'G'=>794,'H'=>816,'I'=>823,'J'=>789,'K'=>841,'L'=>823,'M'=>833,'N'=>816,'O'=>831,'P'=>923,'Q'=>744,'R'=>723,'S'=>749,'T'=>790,'U'=>792,'V'=>695,'W'=>776,
+ 'X'=>768,'Y'=>792,'Z'=>759,'['=>707,'\\'=>708,']'=>682,'^'=>701,'_'=>826,'`'=>815,'a'=>789,'b'=>789,'c'=>707,'d'=>687,'e'=>696,'f'=>689,'g'=>786,'h'=>787,'i'=>713,'j'=>791,'k'=>785,'l'=>791,'m'=>873,
+ 'n'=>761,'o'=>762,'p'=>762,'q'=>759,'r'=>759,'s'=>892,'t'=>892,'u'=>788,'v'=>784,'w'=>438,'x'=>138,'y'=>277,'z'=>415,'{'=>392,'|'=>392,'}'=>668,'~'=>668,127.chr=>0,128.chr=>390,129.chr=>390,130.chr=>317,131.chr=>317,
+ 132.chr=>276,133.chr=>276,134.chr=>509,135.chr=>509,136.chr=>410,137.chr=>410,138.chr=>234,139.chr=>234,140.chr=>334,141.chr=>334,142.chr=>0,143.chr=>0,144.chr=>0,145.chr=>0,146.chr=>0,147.chr=>0,148.chr=>0,149.chr=>0,150.chr=>0,151.chr=>0,152.chr=>0,153.chr=>0,
+ 154.chr=>0,155.chr=>0,156.chr=>0,157.chr=>0,158.chr=>0,159.chr=>0,160.chr=>0,161.chr=>732,162.chr=>544,163.chr=>544,164.chr=>910,165.chr=>667,166.chr=>760,167.chr=>760,168.chr=>776,169.chr=>595,170.chr=>694,171.chr=>626,172.chr=>788,173.chr=>788,174.chr=>788,175.chr=>788,
+ 176.chr=>788,177.chr=>788,178.chr=>788,179.chr=>788,180.chr=>788,181.chr=>788,182.chr=>788,183.chr=>788,184.chr=>788,185.chr=>788,186.chr=>788,187.chr=>788,188.chr=>788,189.chr=>788,190.chr=>788,191.chr=>788,192.chr=>788,193.chr=>788,194.chr=>788,195.chr=>788,196.chr=>788,197.chr=>788,
+ 198.chr=>788,199.chr=>788,200.chr=>788,201.chr=>788,202.chr=>788,203.chr=>788,204.chr=>788,205.chr=>788,206.chr=>788,207.chr=>788,208.chr=>788,209.chr=>788,210.chr=>788,211.chr=>788,212.chr=>894,213.chr=>838,214.chr=>1016,215.chr=>458,216.chr=>748,217.chr=>924,218.chr=>748,219.chr=>918,
+ 220.chr=>927,221.chr=>928,222.chr=>928,223.chr=>834,224.chr=>873,225.chr=>828,226.chr=>924,227.chr=>924,228.chr=>917,229.chr=>930,230.chr=>931,231.chr=>463,232.chr=>883,233.chr=>836,234.chr=>836,235.chr=>867,236.chr=>867,237.chr=>696,238.chr=>696,239.chr=>874,240.chr=>0,241.chr=>874,
+ 242.chr=>760,243.chr=>946,244.chr=>771,245.chr=>865,246.chr=>771,247.chr=>888,248.chr=>967,249.chr=>888,250.chr=>831,251.chr=>873,252.chr=>927,253.chr=>970,254.chr=>918,255.chr=>0);
+end
diff --git a/lib/plugins/rfpdf/lib/fpdf/chinese.rb b/lib/plugins/rfpdf/lib/fpdf/chinese.rb
index 5cdb0dac28..905b7f2557 100644
--- a/lib/plugins/rfpdf/lib/fpdf/chinese.rb
+++ b/lib/plugins/rfpdf/lib/fpdf/chinese.rb
@@ -39,432 +39,432 @@
module PDF_Chinese
Big5_widths={' '=>250,'!'=>250,'"'=>408,'#'=>668,'$'=>490,'%'=>875,'&'=>698,'\''=>250,
- '('=>240,')'=>240,'*'=>417,'+'=>667,','=>250,'-'=>313,'.'=>250,'/'=>520,'0'=>500,'1'=>500,
- '2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>250,';'=>250,
- '<'=>667,'='=>667,'>'=>667,'?'=>396,'@'=>921,'A'=>677,'B'=>615,'C'=>719,'D'=>760,'E'=>625,
- 'F'=>552,'G'=>771,'H'=>802,'I'=>354,'J'=>354,'K'=>781,'L'=>604,'M'=>927,'N'=>750,'O'=>823,
- 'P'=>563,'Q'=>823,'R'=>729,'S'=>542,'T'=>698,'U'=>771,'V'=>729,'W'=>948,'X'=>771,'Y'=>677,
- 'Z'=>635,'['=>344,'\\'=>520,']'=>344,'^'=>469,'_'=>500,'`'=>250,'a'=>469,'b'=>521,'c'=>427,
- 'd'=>521,'e'=>438,'f'=>271,'g'=>469,'h'=>531,'i'=>250,'j'=>250,'k'=>458,'l'=>240,'m'=>802,
- 'n'=>531,'o'=>500,'p'=>521,'q'=>521,'r'=>365,'s'=>333,'t'=>292,'u'=>521,'v'=>458,'w'=>677,
- 'x'=>479,'y'=>458,'z'=>427,'{'=>480,'|'=>496,'}'=>480,'~'=>667}
+ '('=>240,')'=>240,'*'=>417,'+'=>667,','=>250,'-'=>313,'.'=>250,'/'=>520,'0'=>500,'1'=>500,
+ '2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>250,';'=>250,
+ '<'=>667,'='=>667,'>'=>667,'?'=>396,'@'=>921,'A'=>677,'B'=>615,'C'=>719,'D'=>760,'E'=>625,
+ 'F'=>552,'G'=>771,'H'=>802,'I'=>354,'J'=>354,'K'=>781,'L'=>604,'M'=>927,'N'=>750,'O'=>823,
+ 'P'=>563,'Q'=>823,'R'=>729,'S'=>542,'T'=>698,'U'=>771,'V'=>729,'W'=>948,'X'=>771,'Y'=>677,
+ 'Z'=>635,'['=>344,'\\'=>520,']'=>344,'^'=>469,'_'=>500,'`'=>250,'a'=>469,'b'=>521,'c'=>427,
+ 'd'=>521,'e'=>438,'f'=>271,'g'=>469,'h'=>531,'i'=>250,'j'=>250,'k'=>458,'l'=>240,'m'=>802,
+ 'n'=>531,'o'=>500,'p'=>521,'q'=>521,'r'=>365,'s'=>333,'t'=>292,'u'=>521,'v'=>458,'w'=>677,
+ 'x'=>479,'y'=>458,'z'=>427,'{'=>480,'|'=>496,'}'=>480,'~'=>667}
GB_widths={' '=>207,'!'=>270,'"'=>342,'#'=>467,'$'=>462,'%'=>797,'&'=>710,'\''=>239,
- '('=>374,')'=>374,'*'=>423,'+'=>605,','=>238,'-'=>375,'.'=>238,'/'=>334,'0'=>462,'1'=>462,
- '2'=>462,'3'=>462,'4'=>462,'5'=>462,'6'=>462,'7'=>462,'8'=>462,'9'=>462,':'=>238,';'=>238,
- '<'=>605,'='=>605,'>'=>605,'?'=>344,'@'=>748,'A'=>684,'B'=>560,'C'=>695,'D'=>739,'E'=>563,
- 'F'=>511,'G'=>729,'H'=>793,'I'=>318,'J'=>312,'K'=>666,'L'=>526,'M'=>896,'N'=>758,'O'=>772,
- 'P'=>544,'Q'=>772,'R'=>628,'S'=>465,'T'=>607,'U'=>753,'V'=>711,'W'=>972,'X'=>647,'Y'=>620,
- 'Z'=>607,'['=>374,'\\'=>333,']'=>374,'^'=>606,'_'=>500,'`'=>239,'a'=>417,'b'=>503,'c'=>427,
- 'd'=>529,'e'=>415,'f'=>264,'g'=>444,'h'=>518,'i'=>241,'j'=>230,'k'=>495,'l'=>228,'m'=>793,
- 'n'=>527,'o'=>524,'p'=>524,'q'=>504,'r'=>338,'s'=>336,'t'=>277,'u'=>517,'v'=>450,'w'=>652,
- 'x'=>466,'y'=>452,'z'=>407,'{'=>370,'|'=>258,'}'=>370,'~'=>605}
+ '('=>374,')'=>374,'*'=>423,'+'=>605,','=>238,'-'=>375,'.'=>238,'/'=>334,'0'=>462,'1'=>462,
+ '2'=>462,'3'=>462,'4'=>462,'5'=>462,'6'=>462,'7'=>462,'8'=>462,'9'=>462,':'=>238,';'=>238,
+ '<'=>605,'='=>605,'>'=>605,'?'=>344,'@'=>748,'A'=>684,'B'=>560,'C'=>695,'D'=>739,'E'=>563,
+ 'F'=>511,'G'=>729,'H'=>793,'I'=>318,'J'=>312,'K'=>666,'L'=>526,'M'=>896,'N'=>758,'O'=>772,
+ 'P'=>544,'Q'=>772,'R'=>628,'S'=>465,'T'=>607,'U'=>753,'V'=>711,'W'=>972,'X'=>647,'Y'=>620,
+ 'Z'=>607,'['=>374,'\\'=>333,']'=>374,'^'=>606,'_'=>500,'`'=>239,'a'=>417,'b'=>503,'c'=>427,
+ 'd'=>529,'e'=>415,'f'=>264,'g'=>444,'h'=>518,'i'=>241,'j'=>230,'k'=>495,'l'=>228,'m'=>793,
+ 'n'=>527,'o'=>524,'p'=>524,'q'=>504,'r'=>338,'s'=>336,'t'=>277,'u'=>517,'v'=>450,'w'=>652,
+ 'x'=>466,'y'=>452,'z'=>407,'{'=>370,'|'=>258,'}'=>370,'~'=>605}
def AddCIDFont(family,style,name,cw,cMap,registry)
#ActionController::Base::logger.debug registry.to_a.join(":").to_s
- fontkey=family.downcase+style.upcase
- unless @fonts[fontkey].nil?
- Error("Font already added: family style")
- end
- i=@fonts.length+1
- name=name.gsub(' ','')
+ fontkey=family.downcase+style.upcase
+ unless @fonts[fontkey].nil?
+ Error("Font already added: family style")
+ end
+ i=@fonts.length+1
+ name=name.gsub(' ','')
@fonts[fontkey]={'i'=>i,'type'=>'Type0','name'=>name,'up'=>-130,'ut'=>40,'cw'=>cw, 'CMap'=>cMap,'registry'=>registry}
end
def AddCIDFonts(family,name,cw,cMap,registry)
- AddCIDFont(family,'',name,cw,cMap,registry)
- AddCIDFont(family,'B',name+',Bold',cw,cMap,registry)
- AddCIDFont(family,'I',name+',Italic',cw,cMap,registry)
- AddCIDFont(family,'BI',name+',BoldItalic',cw,cMap,registry)
+ AddCIDFont(family,'',name,cw,cMap,registry)
+ AddCIDFont(family,'B',name+',Bold',cw,cMap,registry)
+ AddCIDFont(family,'I',name+',Italic',cw,cMap,registry)
+ AddCIDFont(family,'BI',name+',BoldItalic',cw,cMap,registry)
end
def AddBig5Font(family='Big5',name='MSungStd-Light-Acro')
- #Add Big5 font with proportional Latin
- cw=Big5_widths
- cMap='ETenms-B5-H'
- registry={'ordering'=>'CNS1','supplement'=>0}
+ #Add Big5 font with proportional Latin
+ cw=Big5_widths
+ cMap='ETenms-B5-H'
+ registry={'ordering'=>'CNS1','supplement'=>0}
#ActionController::Base::logger.debug registry.to_a.join(":").to_s
- AddCIDFonts(family,name,cw,cMap,registry)
+ AddCIDFonts(family,name,cw,cMap,registry)
end
def AddBig5hwFont(family='Big5-hw',name='MSungStd-Light-Acro')
- #Add Big5 font with half-witdh Latin
+ #Add Big5 font with half-witdh Latin
cw = {}
32.upto(126) do |i|
- cw[i.chr]=500
- end
- cMap='ETen-B5-H'
- registry={'ordering'=>'CNS1','supplement'=>0}
- AddCIDFonts(family,name,cw,cMap,registry)
+ cw[i.chr]=500
+ end
+ cMap='ETen-B5-H'
+ registry={'ordering'=>'CNS1','supplement'=>0}
+ AddCIDFonts(family,name,cw,cMap,registry)
end
def AddGBFont(family='GB',name='STSongStd-Light-Acro')
- #Add GB font with proportional Latin
- cw=GB_widths
- cMap='GBKp-EUC-H'
- registry={'ordering'=>'GB1','supplement'=>2}
- AddCIDFonts(family,name,cw,cMap,registry)
+ #Add GB font with proportional Latin
+ cw=GB_widths
+ cMap='GBKp-EUC-H'
+ registry={'ordering'=>'GB1','supplement'=>2}
+ AddCIDFonts(family,name,cw,cMap,registry)
end
def AddGBhwFont(family='GB-hw',name='STSongStd-Light-Acro')
- #Add GB font with half-width Latin
+ #Add GB font with half-width Latin
32.upto(126) do |i|
- cw[i.chr]=500
- end
- cMap='GBK-EUC-H'
- registry={'ordering'=>'GB1','supplement'=>2}
- AddCIDFonts(family,name,cw,cMap,registry)
+ cw[i.chr]=500
+ end
+ cMap='GBK-EUC-H'
+ registry={'ordering'=>'GB1','supplement'=>2}
+ AddCIDFonts(family,name,cw,cMap,registry)
end
def GetStringWidth(s)
- if(@CurrentFont['type']=='Type0')
- return GetMBStringWidth(s)
- else
- return super(s)
- end
+ if(@CurrentFont['type']=='Type0')
+ return GetMBStringWidth(s)
+ else
+ return super(s)
+ end
end
def GetMBStringWidth(s)
- #Multi-byte version of GetStringWidth()
- l=0
- cw=@CurrentFont['cw']
- nb=s.length
- i=0
- while(i0 and s[nb-1]=="\n")
- nb-=1
- end
- b=0
- if(border)
- if(border==1)
- border='LTRB'
- b='LRT'
- b2='LR'
- else
- b2=''
- b2='L' unless border.to_s.index('L').nil?
- b2=b2+'R' unless border.to_s.index('R').nil?
- b=(border.to_s.index('T')) ? (b2+'T') : b2
- end
- end
- sep=-1
- i=0
- j=0
- l=0
- nl=1
- while(iwmax)
- #Automatic line break
- if(sep==-1 or i==j)
- if(i==j)
- i+=ascii ? 1 : 2
- end
- Cell(w,h,s[j,i-j],b,2,align,fill)
- else
- Cell(w,h,s[j,sep-j],b,2,align,fill)
- i=(s[sep].chr==' ') ? sep+1 : sep
- end
- sep=-1
- j=i
- l=0
-# nl+=1
- if(border and nl==2)
- b=b2
- end
- else
- i+=ascii ? 1 : 2
- end
- end
- #Last chunk
- if(border and not border.to_s.index('B').nil?)
- b+='B'
- end
- Cell(w,h,s[j,i-j],b,2,align,fill)
- @x=@lMargin
+ #Multi-byte version of MultiCell()
+ cw=@CurrentFont['cw']
+ if(w==0)
+ w=@w-@rMargin-@x
+ end
+ wmax=(w-2*@cMargin)*1000/@FontSize
+ s=txt.gsub("\r",'')
+ nb=s.length
+ if(nb>0 and s[nb-1]=="\n")
+ nb-=1
+ end
+ b=0
+ if(border)
+ if(border==1)
+ border='LTRB'
+ b='LRT'
+ b2='LR'
+ else
+ b2=''
+ b2='L' unless border.to_s.index('L').nil?
+ b2=b2+'R' unless border.to_s.index('R').nil?
+ b=(border.to_s.index('T')) ? (b2+'T') : b2
+ end
+ end
+ sep=-1
+ i=0
+ j=0
+ l=0
+ nl=1
+ while(iwmax)
+ #Automatic line break
+ if(sep==-1 or i==j)
+ if(i==j)
+ i+=ascii ? 1 : 2
+ end
+ Cell(w,h,s[j,i-j],b,2,align,fill)
+ else
+ Cell(w,h,s[j,sep-j],b,2,align,fill)
+ i=(s[sep].chr==' ') ? sep+1 : sep
+ end
+ sep=-1
+ j=i
+ l=0
+# nl+=1
+ if(border and nl==2)
+ b=b2
+ end
+ else
+ i+=ascii ? 1 : 2
+ end
+ end
+ #Last chunk
+ if(border and not border.to_s.index('B').nil?)
+ b+='B'
+ end
+ Cell(w,h,s[j,i-j],b,2,align,fill)
+ @x=@lMargin
end
def Write(h,txt,link='')
- if(@CurrentFont['type']=='Type0')
- MBWrite(h,txt,link)
- else
- super(h,txt,link)
- end
+ if(@CurrentFont['type']=='Type0')
+ MBWrite(h,txt,link)
+ else
+ super(h,txt,link)
+ end
end
def MBWrite(h,txt,link)
- #Multi-byte version of Write()
- cw=@CurrentFont['cw']
- w=@w-@rMargin-@x
- wmax=(w-2*@cMargin)*1000/@FontSize
- s=txt.gsub("\r",'')
- nb=s.length
- sep=-1
- i=0
- j=0
- l=0
- nl=1
- while(iwmax)
- #Automatic line break
- if(sep==-1 or i==j)
- if(@x>@lMargin)
- #Move to next line
- @x=@lMargin
- @y+=h
- w=@w-@rMargin-@x
- wmax=(w-2*@cMargin)*1000/@FontSize
- i+=1
- nl+=1
- next
- end
- if(i==j)
- i+=ascii ? 1 : 2
- end
- Cell(w,h,s[j,i-j],0,2,'',0,link)
- else
- Cell(w,h,s[j,sep-j],0,2,'',0,link)
- i=(s[sep].chr==' ') ? sep+1 : sep
- end
- sep=-1
- j=i
- l=0
- if(nl==1)
- @x=@lMargin
- w=@w-@rMargin-@x
- wmax=(w-2*@cMargin)*1000/@FontSize
- end
- nl+=1
- else
- i+=ascii ? 1 : 2
- end
- end
- #Last chunk
- if(i!=j)
- Cell(l/1000*@FontSize,h,s[j,i-j],0,0,'',0,link)
- end
+ #Multi-byte version of Write()
+ cw=@CurrentFont['cw']
+ w=@w-@rMargin-@x
+ wmax=(w-2*@cMargin)*1000/@FontSize
+ s=txt.gsub("\r",'')
+ nb=s.length
+ sep=-1
+ i=0
+ j=0
+ l=0
+ nl=1
+ while(iwmax)
+ #Automatic line break
+ if(sep==-1 or i==j)
+ if(@x>@lMargin)
+ #Move to next line
+ @x=@lMargin
+ @y+=h
+ w=@w-@rMargin-@x
+ wmax=(w-2*@cMargin)*1000/@FontSize
+ i+=1
+ nl+=1
+ next
+ end
+ if(i==j)
+ i+=ascii ? 1 : 2
+ end
+ Cell(w,h,s[j,i-j],0,2,'',0,link)
+ else
+ Cell(w,h,s[j,sep-j],0,2,'',0,link)
+ i=(s[sep].chr==' ') ? sep+1 : sep
+ end
+ sep=-1
+ j=i
+ l=0
+ if(nl==1)
+ @x=@lMargin
+ w=@w-@rMargin-@x
+ wmax=(w-2*@cMargin)*1000/@FontSize
+ end
+ nl+=1
+ else
+ i+=ascii ? 1 : 2
+ end
+ end
+ #Last chunk
+ if(i!=j)
+ Cell(l/1000*@FontSize,h,s[j,i-j],0,0,'',0,link)
+ end
end
private
def putfonts()
- nf=@n
+ nf=@n
@diffs.each do |diff|
- #Encodings
- newobj()
- out('<>')
- out('endobj')
- end
- # mqr=get_magic_quotes_runtime()
- # set_magic_quotes_runtime(0)
+ #Encodings
+ newobj()
+ out('<>')
+ out('endobj')
+ end
+ # mqr=get_magic_quotes_runtime()
+ # set_magic_quotes_runtime(0)
@FontFiles.each_pair do |file, info|
- #Font file embedding
- newobj()
- @FontFiles[file]['n']=@n
- if(defined('FPDF_FONTPATH'))
- file=FPDF_FONTPATH+file
- end
- size=filesize(file)
- if(!size)
- Error('Font file not found')
- end
- out('<>')
- f=fopen(file,'rb')
- putstream(fread(f,size))
- fclose(f)
- out('endobj')
- end
+ #Font file embedding
+ newobj()
+ @FontFiles[file]['n']=@n
+ if(defined('FPDF_FONTPATH'))
+ file=FPDF_FONTPATH+file
+ end
+ size=filesize(file)
+ if(!size)
+ Error('Font file not found')
+ end
+ out('<>')
+ f=fopen(file,'rb')
+ putstream(fread(f,size))
+ fclose(f)
+ out('endobj')
+ end
#
- # set_magic_quotes_runtime(mqr)
+ # set_magic_quotes_runtime(mqr)
#
@fonts.each_pair do |k, font|
- #Font objects
- newobj()
- @fonts[k]['n']=@n
- out('<>')
- out('endobj')
- if(font['type']!='core')
- #Widths
- newobj()
- cw=font['cw']
- s='['
+ #Font objects
+ newobj()
+ @fonts[k]['n']=@n
+ out('<>')
+ out('endobj')
+ if(font['type']!='core')
+ #Widths
+ newobj()
+ cw=font['cw']
+ s='['
32.upto(255) do |i|
- s+=cw[i.chr]+' '
- end
- out(s+']')
- out('endobj')
- #Descriptor
- newobj()
- s='<>')
- out('endobj')
- end
- end
- end
+ s+=cw[i.chr]+' '
+ end
+ out(s+']')
+ out('endobj')
+ #Descriptor
+ newobj()
+ s='<>')
+ out('endobj')
+ end
+ end
+ end
end
def putType0(font)
- #Type0
- out('/Subtype /Type0')
- out('/BaseFont /'+font['name']+'-'+font['CMap'])
- out('/Encoding /'+font['CMap'])
- out('/DescendantFonts ['+(@n+1).to_s+' 0 R]')
- out('>>')
- out('endobj')
- #CIDFont
- newobj()
- out('<>')
- out('/FontDescriptor '+(@n+1).to_s+' 0 R')
- if(font['CMap']=='ETen-B5-H')
- w='13648 13742 500'
- elsif(font['CMap']=='GBK-EUC-H')
- w='814 907 500 7716 [500]'
- else
+ #Type0
+ out('/Subtype /Type0')
+ out('/BaseFont /'+font['name']+'-'+font['CMap'])
+ out('/Encoding /'+font['CMap'])
+ out('/DescendantFonts ['+(@n+1).to_s+' 0 R]')
+ out('>>')
+ out('endobj')
+ #CIDFont
+ newobj()
+ out('<>')
+ out('/FontDescriptor '+(@n+1).to_s+' 0 R')
+ if(font['CMap']=='ETen-B5-H')
+ w='13648 13742 500'
+ elsif(font['CMap']=='GBK-EUC-H')
+ w='814 907 500 7716 [500]'
+ else
# ActionController::Base::logger.debug font['cw'].keys.sort.join(' ').to_s
# ActionController::Base::logger.debug font['cw'].values.join(' ').to_s
- w='1 ['
- font['cw'].keys.sort.each {|key|
- w+=font['cw'][key].to_s + " "
+ w='1 ['
+ font['cw'].keys.sort.each {|key|
+ w+=font['cw'][key].to_s + " "
# ActionController::Base::logger.debug key.to_s
# ActionController::Base::logger.debug font['cw'][key].to_s
- }
- w +=']'
- end
- out('/W ['+w+']>>')
- out('endobj')
- #Font descriptor
- newobj()
- out('<>')
- out('endobj')
+ }
+ w +=']'
+ end
+ out('/W ['+w+']>>')
+ out('endobj')
+ #Font descriptor
+ newobj()
+ out('<>')
+ out('endobj')
end
end
diff --git a/lib/plugins/rfpdf/lib/fpdf/fpdf_eps.rb b/lib/plugins/rfpdf/lib/fpdf/fpdf_eps.rb
index 557c4dffc7..0c06af5139 100644
--- a/lib/plugins/rfpdf/lib/fpdf/fpdf_eps.rb
+++ b/lib/plugins/rfpdf/lib/fpdf/fpdf_eps.rb
@@ -1,22 +1,22 @@
#-- encoding: UTF-8
# Information
-#
-# PDF_EPS class from Valentin Schmidt ported to ruby by Thiago Jackiw (tjackiw@gmail.com)
+#
+# PDF_EPS class from Valentin Schmidt ported to ruby by Thiago Jackiw (tjackiw@gmail.com)
# working for Mingle LLC (www.mingle.com)
# Release Date: July 13th, 2006
-#
+#
# Description
-#
-# This script allows to embed vector-based Adobe Illustrator (AI) or AI-compatible EPS files.
-# Only vector drawing is supported, not text or bitmap. Although the script was successfully
-# tested with various AI format versions, best results are probably achieved with files that
+#
+# This script allows to embed vector-based Adobe Illustrator (AI) or AI-compatible EPS files.
+# Only vector drawing is supported, not text or bitmap. Although the script was successfully
+# tested with various AI format versions, best results are probably achieved with files that
# were exported in the AI3 format (tested with Illustrator CS2, Freehand MX and Photoshop CS2).
-#
+#
# ImageEps(string file, float x, float y [, float w [, float h [, string link [, boolean useBoundingBox]]]])
-#
+#
# Same parameters as for regular FPDF::Image() method, with an additional one:
-#
-# useBoundingBox: specifies whether to position the bounding box (true) or the complete canvas (false)
+#
+# useBoundingBox: specifies whether to position the bounding box (true) or the complete canvas (false)
# at location (x,y). Default value is true.
#
# First added to the Ruby FPDF distribution in 1.53c
@@ -42,7 +42,7 @@ module PDF_EPS
else
Error('EPS file not found: '+file)
end
-
+
# Find BoundingBox param
regs = data.scan(/%%BoundingBox: [^\r\n]*/m)
regs << regs[0].gsub(/%%BoundingBox: /, '')
@@ -58,18 +58,18 @@ module PDF_EPS
f_start = data.index('%%EndSetup')
f_start = data.index('%%EndProlog') if f_start === false
f_start = data.index('%%BoundingBox') if f_start === false
-
+
data = data.slice(f_start, data.length)
-
+
f_end = data.index('%%PageTrailer')
f_end = data.index('showpage') if f_end === false
data = data.slice(0, f_end) if f_end
-
+
# save the current graphic state
out('q')
-
+
k = @k
-
+
# Translate
if use_bounding_box
dx = x*k-@x1
@@ -81,7 +81,7 @@ module PDF_EPS
tm = [1,0,0,1,dx,dy]
out(sprintf('%.3f %.3f %.3f %.3f %.3f %.3f cm',
tm[0], tm[1], tm[2], tm[3], tm[4], tm[5]))
-
+
if w > 0
scale_x = w/((@x2-@x1)/k)
if h > 0
@@ -100,14 +100,14 @@ module PDF_EPS
h = (@y2-@y1)/k
end
end
-
+
if !scale_x.nil?
# Scale
tm = [scale_x,0,0,scale_y,0,@hPt*(1-scale_y)]
out(sprintf('%.3f %.3f %.3f %.3f %.3f %.3f cm',
tm[0], tm[1], tm[2], tm[3], tm[4], tm[5]))
end
-
+
data.split(/\r\n|[\r\n]/).each do |line|
next if line == '' || line[0,1] == '%'
len = line.length
@@ -116,23 +116,23 @@ module PDF_EPS
case cmd
when 'm', 'l', 'v', 'y', 'c', 'k', 'K', 'g', 'G', 's', 'S', 'J', 'j', 'w', 'M', 'd':
out(line)
-
+
when 'L':
line[len-1,len]='l'
out(line)
-
+
when 'C':
line[len-1,len]='c'
out(line)
-
+
when 'f', 'F':
out('f*')
-
+
when 'b', 'B':
out(cmd + '*')
end
end
-
+
# restore previous graphic state
out('Q')
Link(x,y,w,h,link) if link
diff --git a/lib/plugins/rfpdf/lib/fpdf/japanese.rb b/lib/plugins/rfpdf/lib/fpdf/japanese.rb
index 8fce75f9f1..114310edc9 100644
--- a/lib/plugins/rfpdf/lib/fpdf/japanese.rb
+++ b/lib/plugins/rfpdf/lib/fpdf/japanese.rb
@@ -38,428 +38,428 @@
module PDF_Japanese
- SJIS_widths={' ' => 278, '!' => 299, '"' => 353, '#' => 614, '$' => 614, '%' => 721, '&' => 735, '\'' => 216,
- '(' => 323, ')' => 323, '*' => 449, '+' => 529, ',' => 219, '-' => 306, '.' => 219, '/' => 453, '0' => 614, '1' => 614,
- '2' => 614, '3' => 614, '4' => 614, '5' => 614, '6' => 614, '7' => 614, '8' => 614, '9' => 614, ':' => 219, ';' => 219,
- '<' => 529, '=' => 529, '>' => 529, '?' => 486, '@' => 744, 'A' => 646, 'B' => 604, 'C' => 617, 'D' => 681, 'E' => 567,
- 'F' => 537, 'G' => 647, 'H' => 738, 'I' => 320, 'J' => 433, 'K' => 637, 'L' => 566, 'M' => 904, 'N' => 710, 'O' => 716,
- 'P' => 605, 'Q' => 716, 'R' => 623, 'S' => 517, 'T' => 601, 'U' => 690, 'V' => 668, 'W' => 990, 'X' => 681, 'Y' => 634,
- 'Z' => 578, '[' => 316, '\\' => 614, ']' => 316, '^' => 529, '_' => 500, '`' => 387, 'a' => 509, 'b' => 566, 'c' => 478,
- 'd' => 565, 'e' => 503, 'f' => 337, 'g' => 549, 'h' => 580, 'i' => 275, 'j' => 266, 'k' => 544, 'l' => 276, 'm' => 854,
- 'n' => 579, 'o' => 550, 'p' => 578, 'q' => 566, 'r' => 410, 's' => 444, 't' => 340, 'u' => 575, 'v' => 512, 'w' => 760,
- 'x' => 503, 'y' => 529, 'z' => 453, '{' => 326, '|' => 380, '}' => 326, '~' => 387}
+ SJIS_widths={' ' => 278, '!' => 299, '"' => 353, '#' => 614, '$' => 614, '%' => 721, '&' => 735, '\'' => 216,
+ '(' => 323, ')' => 323, '*' => 449, '+' => 529, ',' => 219, '-' => 306, '.' => 219, '/' => 453, '0' => 614, '1' => 614,
+ '2' => 614, '3' => 614, '4' => 614, '5' => 614, '6' => 614, '7' => 614, '8' => 614, '9' => 614, ':' => 219, ';' => 219,
+ '<' => 529, '=' => 529, '>' => 529, '?' => 486, '@' => 744, 'A' => 646, 'B' => 604, 'C' => 617, 'D' => 681, 'E' => 567,
+ 'F' => 537, 'G' => 647, 'H' => 738, 'I' => 320, 'J' => 433, 'K' => 637, 'L' => 566, 'M' => 904, 'N' => 710, 'O' => 716,
+ 'P' => 605, 'Q' => 716, 'R' => 623, 'S' => 517, 'T' => 601, 'U' => 690, 'V' => 668, 'W' => 990, 'X' => 681, 'Y' => 634,
+ 'Z' => 578, '[' => 316, '\\' => 614, ']' => 316, '^' => 529, '_' => 500, '`' => 387, 'a' => 509, 'b' => 566, 'c' => 478,
+ 'd' => 565, 'e' => 503, 'f' => 337, 'g' => 549, 'h' => 580, 'i' => 275, 'j' => 266, 'k' => 544, 'l' => 276, 'm' => 854,
+ 'n' => 579, 'o' => 550, 'p' => 578, 'q' => 566, 'r' => 410, 's' => 444, 't' => 340, 'u' => 575, 'v' => 512, 'w' => 760,
+ 'x' => 503, 'y' => 529, 'z' => 453, '{' => 326, '|' => 380, '}' => 326, '~' => 387}
- def AddCIDFont(family,style,name,cw,cMap,registry)
+ def AddCIDFont(family,style,name,cw,cMap,registry)
fontkey=family.downcase+style.upcase
- unless @fonts[fontkey].nil?
- Error("CID font already added: family style")
- end
- i=@fonts.length+1
- @fonts[fontkey]={'i'=>i,'type'=>'Type0','name'=>name,'up'=>-120,'ut'=>40,'cw'=>cw,
- 'CMap'=>cMap,'registry'=>registry}
+ unless @fonts[fontkey].nil?
+ Error("CID font already added: family style")
+ end
+ i=@fonts.length+1
+ @fonts[fontkey]={'i'=>i,'type'=>'Type0','name'=>name,'up'=>-120,'ut'=>40,'cw'=>cw,
+ 'CMap'=>cMap,'registry'=>registry}
end
def AddCIDFonts(family,name,cw,cMap,registry)
- AddCIDFont(family,'',name,cw,cMap,registry)
- AddCIDFont(family,'B',name+',Bold',cw,cMap,registry)
- AddCIDFont(family,'I',name+',Italic',cw,cMap,registry)
- AddCIDFont(family,'BI',name+',BoldItalic',cw,cMap,registry)
+ AddCIDFont(family,'',name,cw,cMap,registry)
+ AddCIDFont(family,'B',name+',Bold',cw,cMap,registry)
+ AddCIDFont(family,'I',name+',Italic',cw,cMap,registry)
+ AddCIDFont(family,'BI',name+',BoldItalic',cw,cMap,registry)
end
def AddSJISFont(family='SJIS')
- #Add SJIS font with proportional Latin
- name='KozMinPro-Regular-Acro'
- cw=SJIS_widths
- cMap='90msp-RKSJ-H'
- registry={'ordering'=>'Japan1','supplement'=>2}
- AddCIDFonts(family,name,cw,cMap,registry)
+ #Add SJIS font with proportional Latin
+ name='KozMinPro-Regular-Acro'
+ cw=SJIS_widths
+ cMap='90msp-RKSJ-H'
+ registry={'ordering'=>'Japan1','supplement'=>2}
+ AddCIDFonts(family,name,cw,cMap,registry)
end
def AddSJIShwFont(family='SJIS-hw')
- #Add SJIS font with half-width Latin
- name='KozMinPro-Regular-Acro'
+ #Add SJIS font with half-width Latin
+ name='KozMinPro-Regular-Acro'
32.upto(126) do |i|
- cw[i.chr]=500
- end
- cMap='90ms-RKSJ-H'
- registry={'ordering'=>'Japan1','supplement'=>2}
- AddCIDFonts(family,name,cw,cMap,registry)
+ cw[i.chr]=500
+ end
+ cMap='90ms-RKSJ-H'
+ registry={'ordering'=>'Japan1','supplement'=>2}
+ AddCIDFonts(family,name,cw,cMap,registry)
end
def GetStringWidth(s)
- if(@CurrentFont['type']=='Type0')
- return GetSJISStringWidth(s)
- else
- return super(s)
- end
+ if(@CurrentFont['type']=='Type0')
+ return GetSJISStringWidth(s)
+ else
+ return super(s)
+ end
end
def GetSJISStringWidth(s)
- #SJIS version of GetStringWidth()
- l=0
- cw=@CurrentFont['cw']
- nb=s.length
- i=0
- while(i=161 and o<=223)
- #Half-width katakana
- l+=500
- i+=1
- else
- #Full-width character
- l+=1000
- i+=2
- end
- end
- return l*@FontSize/1000
+ #SJIS version of GetStringWidth()
+ l=0
+ cw=@CurrentFont['cw']
+ nb=s.length
+ i=0
+ while(i=161 and o<=223)
+ #Half-width katakana
+ l+=500
+ i+=1
+ else
+ #Full-width character
+ l+=1000
+ i+=2
+ end
+ end
+ return l*@FontSize/1000
end
def MultiCell(w,h,txt,border=0,align='L',fill=0)
- if(@CurrentFont['type']=='Type0')
- SJISMultiCell(w,h,txt,border,align,fill)
- else
- super(w,h,txt,border,align,fill)
- end
+ if(@CurrentFont['type']=='Type0')
+ SJISMultiCell(w,h,txt,border,align,fill)
+ else
+ super(w,h,txt,border,align,fill)
+ end
end
def SJISMultiCell(w,h,txt,border=0,align='L',fill=0)
- #Output text with automatic or explicit line breaks
- cw=@CurrentFont['cw']
- if(w==0)
- w=@w-@rMargin-@x
- end
- wmax=(w-2*@cMargin)*1000/@FontSize
- s=txt.gsub("\r",'')
- nb=s.length
- if(nb>0 and s[nb-1]=="\n")
- nb-=1
- end
- b=0
- if(border)
- if(border==1)
- border='LTRB'
- b='LRT'
- b2='LR'
- else
- b2=''
- b2='L' unless border.to_s.index('L').nil?
- b2=b2+'R' unless border.to_s.index('R').nil?
- b=(border.to_s.index('T')) ? (b2+'T') : b2
- end
- end
- sep=-1
- i=0
- j=0
- l=0
- nl=1
- while(i=161 and o<=223)
- #Half-width katakana
- l+=500
- n=1
- sep=i
- else
- #Full-width character
- l+=1000
- n=2
- sep=i
- end
- if(l>wmax)
- #Automatic line break
- if(sep==-1 or i==j)
- if(i==j)
- i+=n
- end
- Cell(w,h,s[j,i-j],b,2,align,fill)
- else
- Cell(w,h,s[j,sep-j],b,2,align,fill)
- i=(s[sep].chr==' ') ? sep+1 : sep
- end
- sep=-1
- j=i
- l=0
- nl+=1
- if(border and nl==2)
- b=b2
- end
- else
- i+=n
- if(o>=128)
- sep=i
- end
- end
- end
- #Last chunk
- if(border and not border.to_s.index('B').nil?)
- b+='B'
- end
- Cell(w,h,s[j,i-j],b,2,align,fill)
- @x=@lMargin
+ #Output text with automatic or explicit line breaks
+ cw=@CurrentFont['cw']
+ if(w==0)
+ w=@w-@rMargin-@x
+ end
+ wmax=(w-2*@cMargin)*1000/@FontSize
+ s=txt.gsub("\r",'')
+ nb=s.length
+ if(nb>0 and s[nb-1]=="\n")
+ nb-=1
+ end
+ b=0
+ if(border)
+ if(border==1)
+ border='LTRB'
+ b='LRT'
+ b2='LR'
+ else
+ b2=''
+ b2='L' unless border.to_s.index('L').nil?
+ b2=b2+'R' unless border.to_s.index('R').nil?
+ b=(border.to_s.index('T')) ? (b2+'T') : b2
+ end
+ end
+ sep=-1
+ i=0
+ j=0
+ l=0
+ nl=1
+ while(i=161 and o<=223)
+ #Half-width katakana
+ l+=500
+ n=1
+ sep=i
+ else
+ #Full-width character
+ l+=1000
+ n=2
+ sep=i
+ end
+ if(l>wmax)
+ #Automatic line break
+ if(sep==-1 or i==j)
+ if(i==j)
+ i+=n
+ end
+ Cell(w,h,s[j,i-j],b,2,align,fill)
+ else
+ Cell(w,h,s[j,sep-j],b,2,align,fill)
+ i=(s[sep].chr==' ') ? sep+1 : sep
+ end
+ sep=-1
+ j=i
+ l=0
+ nl+=1
+ if(border and nl==2)
+ b=b2
+ end
+ else
+ i+=n
+ if(o>=128)
+ sep=i
+ end
+ end
+ end
+ #Last chunk
+ if(border and not border.to_s.index('B').nil?)
+ b+='B'
+ end
+ Cell(w,h,s[j,i-j],b,2,align,fill)
+ @x=@lMargin
end
def Write(h,txt,link='')
- if(@CurrentFont['type']=='Type0')
- SJISWrite(h,txt,link)
- else
- super(h,txt,link)
- end
+ if(@CurrentFont['type']=='Type0')
+ SJISWrite(h,txt,link)
+ else
+ super(h,txt,link)
+ end
end
def SJISWrite(h,txt,link)
- #SJIS version of Write()
- cw=@CurrentFont['cw']
- w=@w-@rMargin-@x
- wmax=(w-2*@cMargin)*1000/@FontSize
- s=txt.gsub("\r",'')
- nb=s.length
- sep=-1
- i=0
- j=0
- l=0
- nl=1
- while(i=161 and o<=223)
- #Half-width katakana
- l+=500
- n=1
- sep=i
- else
- #Full-width character
- l+=1000
- n=2
- sep=i
- end
- if(l>wmax)
- #Automatic line break
- if(sep==-1 or i==j)
- if(@x>@lMargin)
- #Move to next line
- @x=@lMargin
- @y+=h
- w=@w-@rMargin-@x
- wmax=(w-2*@cMargin)*1000/@FontSize
- i+=n
- nl+=1
- next
- end
- if(i==j)
- i+=n
- end
- Cell(w,h,s[j,i-j],0,2,'',0,link)
- else
- Cell(w,h,s[j,sep-j],0,2,'',0,link)
- i=(s[sep].chr==' ') ? sep+1 : sep
- end
- sep=-1
- j=i
- l=0
- if(nl==1)
- @x=@lMargin
- w=@w-@rMargin-@x
- wmax=(w-2*@cMargin)*1000/@FontSize
- end
- nl+=1
- else
- i+=n
- if(o>=128)
- sep=i
- end
- end
- end
- #Last chunk
- if(i!=j)
- Cell(l/1000*@FontSize,h,s[j,i-j],0,0,'',0,link)
- end
+ #SJIS version of Write()
+ cw=@CurrentFont['cw']
+ w=@w-@rMargin-@x
+ wmax=(w-2*@cMargin)*1000/@FontSize
+ s=txt.gsub("\r",'')
+ nb=s.length
+ sep=-1
+ i=0
+ j=0
+ l=0
+ nl=1
+ while(i=161 and o<=223)
+ #Half-width katakana
+ l+=500
+ n=1
+ sep=i
+ else
+ #Full-width character
+ l+=1000
+ n=2
+ sep=i
+ end
+ if(l>wmax)
+ #Automatic line break
+ if(sep==-1 or i==j)
+ if(@x>@lMargin)
+ #Move to next line
+ @x=@lMargin
+ @y+=h
+ w=@w-@rMargin-@x
+ wmax=(w-2*@cMargin)*1000/@FontSize
+ i+=n
+ nl+=1
+ next
+ end
+ if(i==j)
+ i+=n
+ end
+ Cell(w,h,s[j,i-j],0,2,'',0,link)
+ else
+ Cell(w,h,s[j,sep-j],0,2,'',0,link)
+ i=(s[sep].chr==' ') ? sep+1 : sep
+ end
+ sep=-1
+ j=i
+ l=0
+ if(nl==1)
+ @x=@lMargin
+ w=@w-@rMargin-@x
+ wmax=(w-2*@cMargin)*1000/@FontSize
+ end
+ nl+=1
+ else
+ i+=n
+ if(o>=128)
+ sep=i
+ end
+ end
+ end
+ #Last chunk
+ if(i!=j)
+ Cell(l/1000*@FontSize,h,s[j,i-j],0,0,'',0,link)
+ end
end
-
+
private
def putfonts()
- nf=@n
+ nf=@n
@diffs.each do |diff|
- #Encodings
- newobj()
- out('<>')
- out('endobj')
- end
- # mqr=get_magic_quotes_runtime()
- # set_magic_quotes_runtime(0)
+ #Encodings
+ newobj()
+ out('<>')
+ out('endobj')
+ end
+ # mqr=get_magic_quotes_runtime()
+ # set_magic_quotes_runtime(0)
@FontFiles.each_pair do |file, info|
- #Font file embedding
- newobj()
- @FontFiles[file]['n']=@n
- if(defined('FPDF_FONTPATH'))
- file=FPDF_FONTPATH+file
- end
- size=filesize(file)
- if(!size)
- Error('Font file not found')
- end
- out('<>')
- f=fopen(file,'rb')
- putstream(fread(f,size))
- fclose(f)
- out('endobj')
- end
- # set_magic_quotes_runtime(mqr)
+ #Font file embedding
+ newobj()
+ @FontFiles[file]['n']=@n
+ if(defined('FPDF_FONTPATH'))
+ file=FPDF_FONTPATH+file
+ end
+ size=filesize(file)
+ if(!size)
+ Error('Font file not found')
+ end
+ out('<>')
+ f=fopen(file,'rb')
+ putstream(fread(f,size))
+ fclose(f)
+ out('endobj')
+ end
+ # set_magic_quotes_runtime(mqr)
@fonts.each_pair do |k, font|
- #Font objects
- newobj()
- @fonts[k]['n']=@n
- out('<>')
- out('endobj')
- if(font['type']!='core')
- #Widths
- newobj()
- cw=font['cw']
- s='['
+ #Font objects
+ newobj()
+ @fonts[k]['n']=@n
+ out('<>')
+ out('endobj')
+ if(font['type']!='core')
+ #Widths
+ newobj()
+ cw=font['cw']
+ s='['
32.upto(255) do |i|
- s+=cw[i.chr]+' '
- end
- out(s+']')
- out('endobj')
- #Descriptor
- newobj()
- s='<>')
- out('endobj')
- end
- end
- end
+ s+=cw[i.chr]+' '
+ end
+ out(s+']')
+ out('endobj')
+ #Descriptor
+ newobj()
+ s='<>')
+ out('endobj')
+ end
+ end
+ end
end
def putType0(font)
- #Type0
- out('/Subtype /Type0')
- out('/BaseFont /'+font['name']+'-'+font['CMap'])
- out('/Encoding /'+font['CMap'])
- out('/DescendantFonts ['+(@n+1).to_s+' 0 R]')
- out('>>')
- out('endobj')
- #CIDFont
- newobj()
- out('<>')
- out('/FontDescriptor '+(@n+1).to_s+' 0 R')
- w='/W [1 ['
- font['cw'].keys.sort.each {|key|
- w+=font['cw'][key].to_s + " "
+ #Type0
+ out('/Subtype /Type0')
+ out('/BaseFont /'+font['name']+'-'+font['CMap'])
+ out('/Encoding /'+font['CMap'])
+ out('/DescendantFonts ['+(@n+1).to_s+' 0 R]')
+ out('>>')
+ out('endobj')
+ #CIDFont
+ newobj()
+ out('<>')
+ out('/FontDescriptor '+(@n+1).to_s+' 0 R')
+ w='/W [1 ['
+ font['cw'].keys.sort.each {|key|
+ w+=font['cw'][key].to_s + " "
# ActionController::Base::logger.debug key.to_s
# ActionController::Base::logger.debug font['cw'][key].to_s
- }
- out(w+'] 231 325 500 631 [500] 326 389 500]')
- out('>>')
- out('endobj')
- #Font descriptor
- newobj()
- out('<>')
- out('endobj')
+ }
+ out(w+'] 231 325 500 631 [500] 326 389 500]')
+ out('>>')
+ out('endobj')
+ #Font descriptor
+ newobj()
+ out('<>')
+ out('endobj')
end
end
diff --git a/lib/plugins/rfpdf/lib/fpdf/korean.rb b/lib/plugins/rfpdf/lib/fpdf/korean.rb
index da9ecdcef4..3c50b9e61a 100644
--- a/lib/plugins/rfpdf/lib/fpdf/korean.rb
+++ b/lib/plugins/rfpdf/lib/fpdf/korean.rb
@@ -38,396 +38,396 @@
module PDF_Korean
-UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 916, '&' => 833, '\'' => 250,
- '(' => 500, ')' => 500, '*' => 500, '+' => 833, ',' => 291, '-' => 833, '.' => 291, '/' => 375, '0' => 625, '1' => 625,
- '2' => 625, '3' => 625, '4' => 625, '5' => 625, '6' => 625, '7' => 625, '8' => 625, '9' => 625, ':' => 333, ';' => 333,
- '<' => 833, '=' => 833, '>' => 916, '?' => 500, '@' => 1000, 'A' => 791, 'B' => 708, 'C' => 708, 'D' => 750, 'E' => 708,
- 'F' => 666, 'G' => 750, 'H' => 791, 'I' => 375, 'J' => 500, 'K' => 791, 'L' => 666, 'M' => 916, 'N' => 791, 'O' => 750,
- 'P' => 666, 'Q' => 750, 'R' => 708, 'S' => 666, 'T' => 791, 'U' => 791, 'V' => 750, 'W' => 1000, 'X' => 708, 'Y' => 708,
- 'Z' => 666, '[' => 500, '\\' => 375, ']' => 500, '^' => 500, '_' => 500, '`' => 333, 'a' => 541, 'b' => 583, 'c' => 541,
- 'd' => 583, 'e' => 583, 'f' => 375, 'g' => 583, 'h' => 583, 'i' => 291, 'j' => 333, 'k' => 583, 'l' => 291, 'm' => 875,
- 'n' => 583, 'o' => 583, 'p' => 583, 'q' => 583, 'r' => 458, 's' => 541, 't' => 375, 'u' => 583, 'v' => 583, 'w' => 833,
- 'x' => 625, 'y' => 625, 'z' => 500, '{' => 583, '|' => 583, '}' => 583, '~' => 750}
+UHC_widths={' ' => 333, '!' => 416, '"' => 416, '#' => 833, '$' => 625, '%' => 916, '&' => 833, '\'' => 250,
+ '(' => 500, ')' => 500, '*' => 500, '+' => 833, ',' => 291, '-' => 833, '.' => 291, '/' => 375, '0' => 625, '1' => 625,
+ '2' => 625, '3' => 625, '4' => 625, '5' => 625, '6' => 625, '7' => 625, '8' => 625, '9' => 625, ':' => 333, ';' => 333,
+ '<' => 833, '=' => 833, '>' => 916, '?' => 500, '@' => 1000, 'A' => 791, 'B' => 708, 'C' => 708, 'D' => 750, 'E' => 708,
+ 'F' => 666, 'G' => 750, 'H' => 791, 'I' => 375, 'J' => 500, 'K' => 791, 'L' => 666, 'M' => 916, 'N' => 791, 'O' => 750,
+ 'P' => 666, 'Q' => 750, 'R' => 708, 'S' => 666, 'T' => 791, 'U' => 791, 'V' => 750, 'W' => 1000, 'X' => 708, 'Y' => 708,
+ 'Z' => 666, '[' => 500, '\\' => 375, ']' => 500, '^' => 500, '_' => 500, '`' => 333, 'a' => 541, 'b' => 583, 'c' => 541,
+ 'd' => 583, 'e' => 583, 'f' => 375, 'g' => 583, 'h' => 583, 'i' => 291, 'j' => 333, 'k' => 583, 'l' => 291, 'm' => 875,
+ 'n' => 583, 'o' => 583, 'p' => 583, 'q' => 583, 'r' => 458, 's' => 541, 't' => 375, 'u' => 583, 'v' => 583, 'w' => 833,
+ 'x' => 625, 'y' => 625, 'z' => 500, '{' => 583, '|' => 583, '}' => 583, '~' => 750}
def AddCIDFont(family,style,name,cw,cMap,registry)
fontkey=family.downcase+style.upcase
unless @fonts[fontkey].nil?
- Error("Font already added: family style")
+ Error("Font already added: family style")
end
- i=@fonts.length+1
- name=name.gsub(' ','')
- @fonts[fontkey]={'i'=>i,'type'=>'Type0','name'=>name,'up'=>-130,'ut'=>40,'cw'=>cw,
- 'CMap'=>cMap,'registry'=>registry}
+ i=@fonts.length+1
+ name=name.gsub(' ','')
+ @fonts[fontkey]={'i'=>i,'type'=>'Type0','name'=>name,'up'=>-130,'ut'=>40,'cw'=>cw,
+ 'CMap'=>cMap,'registry'=>registry}
end
def AddCIDFonts(family,name,cw,cMap,registry)
- AddCIDFont(family,'',name,cw,cMap,registry)
- AddCIDFont(family,'B',name+',Bold',cw,cMap,registry)
- AddCIDFont(family,'I',name+',Italic',cw,cMap,registry)
- AddCIDFont(family,'BI',name+',BoldItalic',cw,cMap,registry)
+ AddCIDFont(family,'',name,cw,cMap,registry)
+ AddCIDFont(family,'B',name+',Bold',cw,cMap,registry)
+ AddCIDFont(family,'I',name+',Italic',cw,cMap,registry)
+ AddCIDFont(family,'BI',name+',BoldItalic',cw,cMap,registry)
end
def AddUHCFont(family='UHC',name='HYSMyeongJoStd-Medium-Acro')
- #Add UHC font with proportional Latin
- cw=UHC_widths
- cMap='KSCms-UHC-H'
- registry={'ordering'=>'Korea1','supplement'=>1}
- AddCIDFonts(family,name,cw,cMap,registry)
+ #Add UHC font with proportional Latin
+ cw=UHC_widths
+ cMap='KSCms-UHC-H'
+ registry={'ordering'=>'Korea1','supplement'=>1}
+ AddCIDFonts(family,name,cw,cMap,registry)
end
def AddUHChwFont(family='UHC-hw',name='HYSMyeongJoStd-Medium-Acro')
- #Add UHC font with half-witdh Latin
+ #Add UHC font with half-witdh Latin
32.upto(126) do |i|
- cw[i.chr]=500
+ cw[i.chr]=500
end
- cMap='KSCms-UHC-HW-H'
- registry={'ordering'=>'Korea1','supplement'=>1}
- AddCIDFonts(family,name,cw,cMap,registry)
+ cMap='KSCms-UHC-HW-H'
+ registry={'ordering'=>'Korea1','supplement'=>1}
+ AddCIDFonts(family,name,cw,cMap,registry)
end
def GetStringWidth(s)
- if(@CurrentFont['type']=='Type0')
- return GetMBStringWidth(s)
- else
- return super(s)
+ if(@CurrentFont['type']=='Type0')
+ return GetMBStringWidth(s)
+ else
+ return super(s)
end
end
def GetMBStringWidth(s)
- #Multi-byte version of GetStringWidth()
- l=0
- cw=@CurrentFont['cw']
- nb=s.length
- i=0
- while(i0 and s[nb-1]=="\n")
+ nb-=1
end
- wmax=(w-2*@cMargin)*1000/@FontSize
- s=txt.gsub("\r",'')
- nb=s.length
- if(nb>0 and s[nb-1]=="\n")
- nb-=1
+ b=0
+ if(border)
+ if(border==1)
+ border='LTRB'
+ b='LRT'
+ b2='LR'
+ else
+ b2=''
+ b2='L' unless border.to_s.index('L').nil?
+ b2=b2+'R' unless border.to_s.index('R').nil?
+ b=(border.to_s.index('T')) ? (b2+'T') : b2
+ end
end
- b=0
- if(border)
- if(border==1)
- border='LTRB'
- b='LRT'
- b2='LR'
- else
- b2=''
- b2='L' unless border.to_s.index('L').nil?
- b2=b2+'R' unless border.to_s.index('R').nil?
- b=(border.to_s.index('T')) ? (b2+'T') : b2
- end
- end
- sep=-1
- i=0
- j=0
- l=0
- nl=1
- while(iwmax)
- #Automatic line break
- if(sep==-1 or i==j)
- if(i==j)
- i+=ascii ? 1 : 2
+ next
+ end
+ if(!ascii)
+ sep=i
+ ls=l
+ elsif(c.chr==' ')
+ sep=i
+ ls=l
+ end
+ l+=(ascii ? cw[c.chr] : 1000) || 0
+ if(l>wmax)
+ #Automatic line break
+ if(sep==-1 or i==j)
+ if(i==j)
+ i+=ascii ? 1 : 2
end
- Cell(w,h,s[j,i-j],b,2,align,fill)
- else
- Cell(w,h,s[j,sep-j],b,2,align,fill)
- i=(s[sep].chr==' ') ? sep+1 : sep
- end
- sep=-1
- j=i
- l=0
- nl+=1
- if(border and nl==2)
- b=b2
+ Cell(w,h,s[j,i-j],b,2,align,fill)
+ else
+ Cell(w,h,s[j,sep-j],b,2,align,fill)
+ i=(s[sep].chr==' ') ? sep+1 : sep
end
- else
- i+=ascii ? 1 : 2
+ sep=-1
+ j=i
+ l=0
+ nl+=1
+ if(border and nl==2)
+ b=b2
+ end
+ else
+ i+=ascii ? 1 : 2
end
- end
- #Last chunk
- if(border and not border.to_s.index('B').nil?)
- b+='B'
end
- Cell(w,h,s[j,i-j],b,2,align,fill)
- @x=@lMargin
+ #Last chunk
+ if(border and not border.to_s.index('B').nil?)
+ b+='B'
+ end
+ Cell(w,h,s[j,i-j],b,2,align,fill)
+ @x=@lMargin
end
def Write(h,txt,link='')
- if(@CurrentFont['type']=='Type0')
- MBWrite(h,txt,link)
- else
- super(h,txt,link)
+ if(@CurrentFont['type']=='Type0')
+ MBWrite(h,txt,link)
+ else
+ super(h,txt,link)
end
end
def MBWrite(h,txt,link)
- #Multi-byte version of Write()
- cw=@CurrentFont['cw']
- w=@w-@rMargin-@x
- wmax=(w-2*@cMargin)*1000/@FontSize
- s=txt.gsub("\r",'')
- nb=s.length
- sep=-1
- i=0
- j=0
- l=0
- nl=1
- while(iwmax)
- #Automatic line break
- if(sep==-1 or i==j)
- if(@x>@lMargin)
- #Move to next line
- @x=@lMargin
- @y+=h
- w=@w-@rMargin-@x
- wmax=(w-2*@cMargin)*1000/@FontSize
- i+=1
- nl+=1
- next
- end
- if(i==j)
- i+=ascii ? 1 : 2
+ if(!ascii or c.chr==' ')
+ sep=i
+ end
+ l+=(ascii ? cw[c.chr] : 1000) || 0
+ if(l>wmax)
+ #Automatic line break
+ if(sep==-1 or i==j)
+ if(@x>@lMargin)
+ #Move to next line
+ @x=@lMargin
+ @y+=h
+ w=@w-@rMargin-@x
+ wmax=(w-2*@cMargin)*1000/@FontSize
+ i+=1
+ nl+=1
+ next
+ end
+ if(i==j)
+ i+=ascii ? 1 : 2
end
- Cell(w,h,s[j,i-j],0,2,'',0,link)
- else
- Cell(w,h,s[j,sep-j],0,2,'',0,link)
- i=(s[sep].chr==' ') ? sep+1 : sep
- end
- sep=-1
- j=i
- l=0
- if(nl==1)
- @x=@lMargin
- w=@w-@rMargin-@x
- wmax=(w-2*@cMargin)*1000/@FontSize
- end
- nl+=1
- else
- i+=ascii ? 1 : 2
+ Cell(w,h,s[j,i-j],0,2,'',0,link)
+ else
+ Cell(w,h,s[j,sep-j],0,2,'',0,link)
+ i=(s[sep].chr==' ') ? sep+1 : sep
+ end
+ sep=-1
+ j=i
+ l=0
+ if(nl==1)
+ @x=@lMargin
+ w=@w-@rMargin-@x
+ wmax=(w-2*@cMargin)*1000/@FontSize
+ end
+ nl+=1
+ else
+ i+=ascii ? 1 : 2
end
- end
- #Last chunk
- if(i!=j)
- Cell(l/1000*@FontSize,h,s[j,i-j],0,0,'',0,link)
+ end
+ #Last chunk
+ if(i!=j)
+ Cell(l/1000*@FontSize,h,s[j,i-j],0,0,'',0,link)
end
end
private
def putfonts()
- nf=@n
+ nf=@n
@diffs.each do |diff|
- #Encodings
- newobj()
- out('<>')
- out('endobj')
- end
- # mqr=get_magic_quotes_runtime()
- # set_magic_quotes_runtime(0)
+ #Encodings
+ newobj()
+ out('<>')
+ out('endobj')
+ end
+ # mqr=get_magic_quotes_runtime()
+ # set_magic_quotes_runtime(0)
@FontFiles.each_pair do |file, info|
- #Font file embedding
- newobj()
- @FontFiles[file]['n']=@n
- if(defined('FPDF_FONTPATH'))
- file=FPDF_FONTPATH+file
+ #Font file embedding
+ newobj()
+ @FontFiles[file]['n']=@n
+ if(defined('FPDF_FONTPATH'))
+ file=FPDF_FONTPATH+file
end
- size=filesize(file)
- if(!size)
- Error('Font file not found')
+ size=filesize(file)
+ if(!size)
+ Error('Font file not found')
end
- out('<>')
- f=fopen(file,'rb')
- putstream(fread(f,size))
- fclose(f)
- out('endobj')
- end
- # set_magic_quotes_runtime(mqr)
+ out('>>')
+ f=fopen(file,'rb')
+ putstream(fread(f,size))
+ fclose(f)
+ out('endobj')
+ end
+ # set_magic_quotes_runtime(mqr)
@fonts.each_pair do |k, font|
- #Font objects
- newobj()
- @fonts[k]['n']=@n
- out('<>')
- out('endobj')
- if(font['type']!='core')
- #Widths
- newobj()
- cw=font['cw']
- s='['
+ end
+ end
+ out('>>')
+ out('endobj')
+ if(font['type']!='core')
+ #Widths
+ newobj()
+ cw=font['cw']
+ s='['
32.upto(255) do |i|
- s+=cw[i.chr]+' '
+ s+=cw[i.chr]+' '
end
- out(s+']')
- out('endobj')
- #Descriptor
- newobj()
- s='<>')
- out('endobj')
- end
- end
- end
+ out(s+'>>')
+ out('endobj')
+ end
+ end
+ end
end
-
+
def putType0(font)
- #Type0
- out('/Subtype /Type0')
- out('/BaseFont /'+font['name']+'-'+font['CMap'])
- out('/Encoding /'+font['CMap'])
- out('/DescendantFonts ['+(@n+1).to_s+' 0 R]')
- out('>>')
- out('endobj')
- #CIDFont
- newobj()
- out('<>')
- out('/FontDescriptor '+(@n+1).to_s+' 0 R')
- if(font['CMap']=='KSCms-UHC-HW-H')
- w='8094 8190 500'
- else
- w='1 ['
- font['cw'].keys.sort.each {|key|
- w+=font['cw'][key].to_s + " "
+ #Type0
+ out('/Subtype /Type0')
+ out('/BaseFont /'+font['name']+'-'+font['CMap'])
+ out('/Encoding /'+font['CMap'])
+ out('/DescendantFonts ['+(@n+1).to_s+' 0 R]')
+ out('>>')
+ out('endobj')
+ #CIDFont
+ newobj()
+ out('<>')
+ out('/FontDescriptor '+(@n+1).to_s+' 0 R')
+ if(font['CMap']=='KSCms-UHC-HW-H')
+ w='8094 8190 500'
+ else
+ w='1 ['
+ font['cw'].keys.sort.each {|key|
+ w+=font['cw'][key].to_s + " "
# ActionController::Base::logger.debug key.to_s
# ActionController::Base::logger.debug font['cw'][key].to_s
- }
- w +=']'
+ }
+ w +=']'
end
- out('/W ['+w+']>>')
- out('endobj')
- #Font descriptor
- newobj()
- out('<>')
- out('endobj')
+ out('/W ['+w+']>>')
+ out('endobj')
+ #Font descriptor
+ newobj()
+ out('<>')
+ out('endobj')
end
end
diff --git a/lib/plugins/rfpdf/lib/fpdf/makefont.rb b/lib/plugins/rfpdf/lib/fpdf/makefont.rb
index 2bf080f721..ba7f70c7a7 100644
--- a/lib/plugins/rfpdf/lib/fpdf/makefont.rb
+++ b/lib/plugins/rfpdf/lib/fpdf/makefont.rb
@@ -1386,83 +1386,83 @@ def ReadAFM(file, map)
a.each do |line|
e = line.rstrip.split(' ')
- next if e.size < 2
-
- code = e[0]
- param = e[1]
-
- if code == 'C' then
-
- # Character metrics
- cc = e[1].to_i
- w = e[4]
- gn = e[7]
-
- gn = 'Euro' if gn[-4, 4] == '20AC'
-
- if fix[gn] then
-
- # Fix incorrect glyph name
- 0.upto(map.size - 1) do |i|
- if map[i] == fix[gn] then
- map[i] = gn
- end
- end
- end
-
- if map.size == 0 then
- # Symbolic font: use built-in encoding
- widths[cc] = w
- else
- widths[gn] = w
- fm['CapXHeight'] = e[13].to_i if gn == 'X'
- end
-
- fm['MissingWidth'] = w if gn == '.notdef'
-
- elsif code == 'FontName' then
- fm['FontName'] = param
- elsif code == 'Weight' then
- fm['Weight'] = param
- elsif code == 'ItalicAngle' then
- fm['ItalicAngle'] = param.to_f
- elsif code == 'Ascender' then
- fm['Ascender'] = param.to_i
- elsif code == 'Descender' then
- fm['Descender'] = param.to_i
- elsif code == 'UnderlineThickness' then
- fm['UnderlineThickness'] = param.to_i
- elsif code == 'UnderlinePosition' then
- fm['UnderlinePosition'] = param.to_i
- elsif code == 'IsFixedPitch' then
- fm['IsFixedPitch'] = (param == 'true')
- elsif code == 'FontBBox' then
- fm['FontBBox'] = "[#{e[1]},#{e[2]},#{e[3]},#{e[4]}]"
- elsif code == 'CapHeight' then
- fm['CapHeight'] = param.to_i
- elsif code == 'StdVW' then
- fm['StdVW'] = param.to_i
- end
+ next if e.size < 2
+
+ code = e[0]
+ param = e[1]
+
+ if code == 'C' then
+
+ # Character metrics
+ cc = e[1].to_i
+ w = e[4]
+ gn = e[7]
+
+ gn = 'Euro' if gn[-4, 4] == '20AC'
+
+ if fix[gn] then
+
+ # Fix incorrect glyph name
+ 0.upto(map.size - 1) do |i|
+ if map[i] == fix[gn] then
+ map[i] = gn
+ end
+ end
+ end
+
+ if map.size == 0 then
+ # Symbolic font: use built-in encoding
+ widths[cc] = w
+ else
+ widths[gn] = w
+ fm['CapXHeight'] = e[13].to_i if gn == 'X'
+ end
+
+ fm['MissingWidth'] = w if gn == '.notdef'
+
+ elsif code == 'FontName' then
+ fm['FontName'] = param
+ elsif code == 'Weight' then
+ fm['Weight'] = param
+ elsif code == 'ItalicAngle' then
+ fm['ItalicAngle'] = param.to_f
+ elsif code == 'Ascender' then
+ fm['Ascender'] = param.to_i
+ elsif code == 'Descender' then
+ fm['Descender'] = param.to_i
+ elsif code == 'UnderlineThickness' then
+ fm['UnderlineThickness'] = param.to_i
+ elsif code == 'UnderlinePosition' then
+ fm['UnderlinePosition'] = param.to_i
+ elsif code == 'IsFixedPitch' then
+ fm['IsFixedPitch'] = (param == 'true')
+ elsif code == 'FontBBox' then
+ fm['FontBBox'] = "[#{e[1]},#{e[2]},#{e[3]},#{e[4]}]"
+ elsif code == 'CapHeight' then
+ fm['CapHeight'] = param.to_i
+ elsif code == 'StdVW' then
+ fm['StdVW'] = param.to_i
+ end
end
raise 'FontName not found' unless fm['FontName']
if map.size > 0 then
- widths['.notdef'] = 600 unless widths['.notdef']
-
- if (widths['Delta'] == nil) && widths['increment'] then
- widths['Delta'] = widths['increment']
- end
-
- # Order widths according to map
- 0.upto(255) do |i|
- if widths[map[i]] == nil
- puts "Warning: character #{map[i]} is missing"
- widths[i] = widths['.notdef']
- else
- widths[i] = widths[map[i]]
- end
- end
+ widths['.notdef'] = 600 unless widths['.notdef']
+
+ if (widths['Delta'] == nil) && widths['increment'] then
+ widths['Delta'] = widths['increment']
+ end
+
+ # Order widths according to map
+ 0.upto(255) do |i|
+ if widths[map[i]] == nil
+ puts "Warning: character #{map[i]} is missing"
+ widths[i] = widths['.notdef']
+ else
+ widths[i] = widths[map[i]]
+ end
+ end
end
fm['Widths'] = widths
@@ -1567,13 +1567,13 @@ def MakeFontEncoding(map)
s = ''
last = 0
32.upto(255) do |i|
- if map[i] != ref[i] then
- if i != last + 1 then
- s += i.to_s + ' '
+ if map[i] != ref[i] then
+ if i != last + 1 then
+ s += i.to_s + ' '
end
- last = i
- s += '/' + map[i] + ' '
- end
+ last = i
+ s += '/' + map[i] + ' '
+ end
end
return s.rstrip
end
@@ -1599,11 +1599,11 @@ def CheckTTF(file)
# Extract number of tables
f.seek(4, IO::SEEK_CUR)
- nb = ReadShort(f)
+ nb = ReadShort(f)
f.seek(6, IO::SEEK_CUR)
# Seek OS/2 table
- found = false
+ found = false
0.upto(nb - 1) do |i|
if f.read(4) == 'OS/2' then
found = true
@@ -1613,7 +1613,7 @@ def CheckTTF(file)
f.seek(12, IO::SEEK_CUR)
end
- if ! found then
+ if ! found then
return
end
@@ -1623,11 +1623,11 @@ def CheckTTF(file)
# Extract fsType flags
f.seek(8, IO::SEEK_CUR)
- fsType = ReadShort(f)
+ fsType = ReadShort(f)
- rl = (fsType & 0x02) != 0
- pp = (fsType & 0x04) != 0
- e = (fsType & 0x08) != 0
+ rl = (fsType & 0x02) != 0
+ pp = (fsType & 0x04) != 0
+ e = (fsType & 0x08) != 0
end
if rl && ( ! pp) && ( ! e) then
@@ -1645,10 +1645,10 @@ end
def MakeFont(fontfile, afmfile, enc = 'cp1252', patch = {}, type = 'TrueType')
# Generate a font definition file
if (enc != nil) && (enc != '') then
- map = Charencodings[enc]
- patch.each { |cc, gn| map[cc] = gn }
+ map = Charencodings[enc]
+ patch.each { |cc, gn| map[cc] = gn }
else
- map = []
+ map = []
end
raise "Error: AFM file not found: #{afmfile}" unless File.exists?(afmfile)
@@ -1656,9 +1656,9 @@ def MakeFont(fontfile, afmfile, enc = 'cp1252', patch = {}, type = 'TrueType')
fm = ReadAFM(afmfile, map)
if (enc != nil) && (enc != '') then
- diff = MakeFontEncoding(map)
+ diff = MakeFontEncoding(map)
else
- diff = ''
+ diff = ''
end
fd = MakeFontDescriptor(fm, (map.size == 0))
@@ -1675,7 +1675,7 @@ def MakeFont(fontfile, afmfile, enc = 'cp1252', patch = {}, type = 'TrueType')
raise "Error: unrecognized font file extension: #{ext}"
end
else
- raise "Error: incorrect font type: #{type}" if (type != 'TrueType') && (type != 'Type1')
+ raise "Error: incorrect font type: #{type}" if (type != 'TrueType') && (type != 'Type1')
end
printf "type = #{type}\n"
# Start generation
@@ -1714,7 +1714,7 @@ def MakeFont(fontfile, afmfile, enc = 'cp1252', patch = {}, type = 'TrueType')
CheckTTF(fontfile)
end
- file = ''
+ file = ''
File.open(fontfile, 'rb') do |f|
file = f.read()
end
diff --git a/lib/plugins/rfpdf/lib/rfpdf/action_controller.rb b/lib/plugins/rfpdf/lib/rfpdf/action_controller.rb
index a900545a33..0e31dabb0b 100644
--- a/lib/plugins/rfpdf/lib/rfpdf/action_controller.rb
+++ b/lib/plugins/rfpdf/lib/rfpdf/action_controller.rb
@@ -3,7 +3,7 @@ module RFPDF
module ActionController
DEFAULT_RFPDF_OPTIONS = {:inline=>true}
-
+
def self.included(base)
base.extend ClassMethods
end
@@ -37,5 +37,3 @@ module RFPDF
end
end
end
-
-
diff --git a/lib/plugins/rfpdf/lib/rfpdf/action_view.rb b/lib/plugins/rfpdf/lib/rfpdf/action_view.rb
index 42fa2253d9..f270262c45 100644
--- a/lib/plugins/rfpdf/lib/rfpdf/action_view.rb
+++ b/lib/plugins/rfpdf/lib/rfpdf/action_view.rb
@@ -10,4 +10,3 @@ module RFPDF
end
end
-
diff --git a/lib/plugins/rfpdf/lib/rfpdf/errors.rb b/lib/plugins/rfpdf/lib/rfpdf/errors.rb
index 82f32a1229..b362c46cc4 100644
--- a/lib/plugins/rfpdf/lib/rfpdf/errors.rb
+++ b/lib/plugins/rfpdf/lib/rfpdf/errors.rb
@@ -4,4 +4,4 @@ module RFPDF
class GenerationError < StandardError #:nodoc:
end
end
-end
\ No newline at end of file
+end
diff --git a/lib/plugins/rfpdf/lib/rfpdf/fpdf.rb b/lib/plugins/rfpdf/lib/rfpdf/fpdf.rb
index 0d7b781079..d17d8276a6 100644
--- a/lib/plugins/rfpdf/lib/rfpdf/fpdf.rb
+++ b/lib/plugins/rfpdf/lib/rfpdf/fpdf.rb
@@ -26,38 +26,38 @@ require 'zlib'
class FPDF
include RFPDF
-
+
attr_accessor :default_font
-
+
FPDF_VERSION = '1.53d'
Charwidths = {
'courier'=>[600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600],
-
+
'courierB'=>[600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600],
-
+
'courierI'=>[600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600],
-
+
'courierBI'=>[600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600],
-
+
'helvetica'=>[278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 350, 556, 350, 222, 556, 333, 1000, 556, 556, 333, 1000, 667, 333, 1000, 350, 611, 350, 350, 222, 222, 333, 333, 350, 556, 1000, 333, 1000, 500, 333, 944, 350, 500, 667, 278, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 333, 737, 333, 400, 584, 333, 333, 333, 556, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 584, 611, 556, 556, 556, 556, 500, 556, 500],
-
+
'helveticaB'=>[278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 350, 556, 350, 278, 556, 500, 1000, 556, 556, 333, 1000, 667, 333, 1000, 350, 611, 350, 350, 278, 278, 500, 500, 350, 556, 1000, 333, 1000, 556, 333, 944, 350, 500, 667, 278, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 333, 737, 333, 400, 584, 333, 333, 333, 611, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 584, 611, 611, 611, 611, 611, 556, 611, 556],
-
+
'helveticaI'=>[278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 350, 556, 350, 222, 556, 333, 1000, 556, 556, 333, 1000, 667, 333, 1000, 350, 611, 350, 350, 222, 222, 333, 333, 350, 556, 1000, 333, 1000, 500, 333, 944, 350, 500, 667, 278, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 333, 737, 333, 400, 584, 333, 333, 333, 556, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 584, 611, 556, 556, 556, 556, 500, 556, 500],
-
+
'helveticaBI'=>[278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 350, 556, 350, 278, 556, 500, 1000, 556, 556, 333, 1000, 667, 333, 1000, 350, 611, 350, 350, 278, 278, 500, 500, 350, 556, 1000, 333, 1000, 556, 333, 944, 350, 500, 667, 278, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 333, 737, 333, 400, 584, 333, 333, 333, 611, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 584, 611, 611, 611, 611, 611, 556, 611, 556],
-
+
'times'=>[250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 333, 408, 500, 500, 833, 778, 180, 333, 333, 500, 564, 250, 333, 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, 564, 564, 564, 444, 921, 722, 667, 667, 722, 611, 556, 722, 722, 333, 389, 722, 611, 889, 722, 722, 556, 722, 667, 556, 611, 722, 722, 944, 722, 722, 611, 333, 278, 333, 469, 500, 333, 444, 500, 444, 500, 444, 333, 500, 500, 278, 278, 500, 278, 778, 500, 500, 500, 500, 333, 389, 278, 500, 500, 722, 500, 500, 444, 480, 200, 480, 541, 350, 500, 350, 333, 500, 444, 1000, 500, 500, 333, 1000, 556, 333, 889, 350, 611, 350, 350, 333, 333, 444, 444, 350, 500, 1000, 333, 980, 389, 333, 722, 350, 444, 722, 250, 333, 500, 500, 500, 500, 200, 500, 333, 760, 276, 500, 564, 333, 760, 333, 400, 564, 300, 300, 333, 500, 453, 250, 333, 300, 310, 500, 750, 750, 750, 444, 722, 722, 722, 722, 722, 722, 889, 667, 611, 611, 611, 611, 333, 333, 333, 333, 722, 722, 722, 722, 722, 722, 722, 564, 722, 722, 722, 722, 722, 722, 556, 500, 444, 444, 444, 444, 444, 444, 667, 444, 444, 444, 444, 444, 278, 278, 278, 278, 500, 500, 500, 500, 500, 500, 500, 564, 500, 500, 500, 500, 500, 500, 500, 500],
-
+
'timesB'=>[250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 333, 555, 500, 500, 1000, 833, 278, 333, 333, 500, 570, 250, 333, 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 333, 333, 570, 570, 570, 500, 930, 722, 667, 722, 722, 667, 611, 778, 778, 389, 500, 778, 667, 944, 722, 778, 611, 778, 722, 556, 667, 722, 722, 1000, 722, 722, 667, 333, 278, 333, 581, 500, 333, 500, 556, 444, 556, 444, 333, 500, 556, 278, 333, 556, 278, 833, 556, 500, 556, 556, 444, 389, 333, 556, 500, 722, 500, 500, 444, 394, 220, 394, 520, 350, 500, 350, 333, 500, 500, 1000, 500, 500, 333, 1000, 556, 333, 1000, 350, 667, 350, 350, 333, 333, 500, 500, 350, 500, 1000, 333, 1000, 389, 333, 722, 350, 444, 722, 250, 333, 500, 500, 500, 500, 220, 500, 333, 747, 300, 500, 570, 333, 747, 333, 400, 570, 300, 300, 333, 556, 540, 250, 333, 300, 330, 500, 750, 750, 750, 500, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 389, 389, 389, 389, 722, 722, 778, 778, 778, 778, 778, 570, 778, 722, 722, 722, 722, 722, 611, 556, 500, 500, 500, 500, 500, 500, 722, 444, 444, 444, 444, 444, 278, 278, 278, 278, 500, 556, 500, 500, 500, 500, 500, 570, 500, 556, 556, 556, 556, 500, 556, 500],
-
+
'timesI'=>[250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 333, 420, 500, 500, 833, 778, 214, 333, 333, 500, 675, 250, 333, 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 333, 333, 675, 675, 675, 500, 920, 611, 611, 667, 722, 611, 611, 722, 722, 333, 444, 667, 556, 833, 667, 722, 611, 722, 611, 500, 556, 722, 611, 833, 611, 556, 556, 389, 278, 389, 422, 500, 333, 500, 500, 444, 500, 444, 278, 500, 500, 278, 278, 444, 278, 722, 500, 500, 500, 500, 389, 389, 278, 500, 444, 667, 444, 444, 389, 400, 275, 400, 541, 350, 500, 350, 333, 500, 556, 889, 500, 500, 333, 1000, 500, 333, 944, 350, 556, 350, 350, 333, 333, 556, 556, 350, 500, 889, 333, 980, 389, 333, 667, 350, 389, 556, 250, 389, 500, 500, 500, 500, 275, 500, 333, 760, 276, 500, 675, 333, 760, 333, 400, 675, 300, 300, 333, 500, 523, 250, 333, 300, 310, 500, 750, 750, 750, 500, 611, 611, 611, 611, 611, 611, 889, 667, 611, 611, 611, 611, 333, 333, 333, 333, 722, 667, 722, 722, 722, 722, 722, 675, 722, 722, 722, 722, 722, 556, 611, 500, 500, 500, 500, 500, 500, 500, 667, 444, 444, 444, 444, 444, 278, 278, 278, 278, 500, 500, 500, 500, 500, 500, 500, 675, 500, 500, 500, 500, 500, 444, 500, 444],
-
+
'timesBI'=>[250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 389, 555, 500, 500, 833, 778, 278, 333, 333, 500, 570, 250, 333, 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 333, 333, 570, 570, 570, 500, 832, 667, 667, 667, 722, 667, 667, 722, 778, 389, 500, 667, 611, 889, 722, 722, 611, 722, 667, 556, 611, 722, 667, 889, 667, 611, 611, 333, 278, 333, 570, 500, 333, 500, 500, 444, 500, 444, 333, 500, 556, 278, 278, 500, 278, 778, 556, 500, 500, 500, 389, 389, 278, 556, 444, 667, 500, 444, 389, 348, 220, 348, 570, 350, 500, 350, 333, 500, 500, 1000, 500, 500, 333, 1000, 556, 333, 944, 350, 611, 350, 350, 333, 333, 500, 500, 350, 500, 1000, 333, 1000, 389, 333, 722, 350, 389, 611, 250, 389, 500, 500, 500, 500, 220, 500, 333, 747, 266, 500, 606, 333, 747, 333, 400, 570, 300, 300, 333, 576, 500, 250, 333, 300, 300, 500, 750, 750, 750, 500, 667, 667, 667, 667, 667, 667, 944, 667, 667, 667, 667, 667, 389, 389, 389, 389, 722, 722, 722, 722, 722, 722, 722, 570, 722, 722, 722, 722, 722, 611, 611, 500, 500, 500, 500, 500, 500, 500, 722, 444, 444, 444, 444, 444, 278, 278, 278, 278, 500, 556, 500, 500, 500, 500, 500, 570, 500, 556, 556, 556, 556, 444, 500, 444],
-
+
'symbol'=>[250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 333, 713, 500, 549, 833, 778, 439, 333, 333, 500, 549, 250, 549, 250, 278, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 278, 278, 549, 549, 549, 444, 549, 722, 667, 722, 612, 611, 763, 603, 722, 333, 631, 722, 686, 889, 722, 722, 768, 741, 556, 592, 611, 690, 439, 768, 645, 795, 611, 333, 863, 333, 658, 500, 500, 631, 549, 549, 494, 439, 521, 411, 603, 329, 603, 549, 549, 576, 521, 549, 549, 521, 549, 603, 439, 576, 713, 686, 493, 686, 494, 480, 200, 480, 549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 750, 620, 247, 549, 167, 713, 500, 753, 753, 753, 753, 1042, 987, 603, 987, 603, 400, 549, 411, 549, 549, 713, 494, 460, 549, 549, 549, 549, 1000, 603, 1000, 658, 823, 686, 795, 987, 768, 768, 823, 768, 768, 713, 713, 713, 713, 713, 713, 713, 768, 713, 790, 790, 890, 823, 549, 250, 713, 603, 603, 1042, 987, 603, 987, 603, 494, 329, 790, 790, 786, 713, 384, 384, 384, 384, 384, 384, 494, 494, 494, 494, 0, 329, 274, 686, 686, 686, 384, 384, 384, 384, 384, 384, 494, 494, 494, 0],
-
+
'zapfdingbats'=>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 974, 961, 974, 980, 719, 789, 790, 791, 690, 960, 939, 549, 855, 911, 933, 911, 945, 974, 755, 846, 762, 761, 571, 677, 763, 760, 759, 754, 494, 552, 537, 577, 692, 786, 788, 788, 790, 793, 794, 816, 823, 789, 841, 823, 833, 816, 831, 923, 744, 723, 749, 790, 792, 695, 776, 768, 792, 759, 707, 708, 682, 701, 826, 815, 789, 789, 707, 687, 696, 689, 786, 787, 713, 791, 785, 791, 873, 761, 762, 762, 759, 759, 892, 892, 788, 784, 438, 138, 277, 415, 392, 392, 668, 668, 0, 390, 390, 317, 317, 276, 276, 509, 509, 410, 410, 234, 234, 334, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 544, 544, 910, 667, 760, 760, 776, 595, 694, 626, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 788, 894, 838, 1016, 458, 748, 924, 748, 918, 927, 928, 928, 834, 873, 828, 924, 924, 917, 930, 931, 463, 883, 836, 836, 867, 867, 696, 696, 874, 0, 874, 760, 946, 771, 865, 771, 888, 967, 888, 831, 873, 927, 970, 918, 0]
}
@@ -265,7 +265,7 @@ class FPDF
# Define an alias for total number of pages
@AliasNbPages=aliasnb
end
-
+
def Error(msg)
raise 'FPDF error: '+msg
end
@@ -345,7 +345,7 @@ class FPDF
@TextColor=tc
@ColorFlag=cf
end
- alias_method :add_page, :AddPage
+ alias_method :add_page, :AddPage
def Header
# To be implemented in your inherited class
@@ -390,7 +390,7 @@ class FPDF
end
@ColorFlag=(@FillColor!=@TextColor)
end
-
+
def GetCharWidth(widths, index)
if index.is_a?(String)
widths[index.ord]
@@ -418,53 +418,53 @@ class FPDF
def Circle(mid_x, mid_y, radius, style='')
mid_y = (@h-mid_y)*@k
out(sprintf("q\n")) # postscript content in pdf
- # init line type etc. with /GSD gs G g (grey) RG rg (RGB) w=line witdh etc.
+ # init line type etc. with /GSD gs G g (grey) RG rg (RGB) w=line witdh etc.
out(sprintf("1 j\n")) # line join
# translate ("move") circle to mid_y, mid_y
out(sprintf("1 0 0 1 %f %f cm", mid_x, mid_y))
kappa = 0.5522847498307933984022516322796
- # Quadrant 1
- x_s = 0.0 # 12 o'clock
+ # Quadrant 1
+ x_s = 0.0 # 12 o'clock
y_s = 0.0 + radius
- x_e = 0.0 + radius # 3 o'clock
+ x_e = 0.0 + radius # 3 o'clock
y_e = 0.0
- out(sprintf("%f %f m\n", x_s, y_s)) # move to 12 o'clock
- # cubic bezier control point 1, start height and kappa * radius to the right
+ out(sprintf("%f %f m\n", x_s, y_s)) # move to 12 o'clock
+ # cubic bezier control point 1, start height and kappa * radius to the right
bx_e1 = x_s + (radius * kappa)
by_e1 = y_s
- # cubic bezier control point 2, end and kappa * radius above
+ # cubic bezier control point 2, end and kappa * radius above
bx_e2 = x_e
by_e2 = y_e + (radius * kappa)
# draw cubic bezier from current point to x_e/y_e with bx_e1/by_e1 and bx_e2/by_e2 as bezier control points
out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
- # Quadrant 2
- x_s = x_e
- y_s = y_e # 3 o'clock
- x_e = 0.0
- y_e = 0.0 - radius # 6 o'clock
- bx_e1 = x_s # cubic bezier point 1
+ # Quadrant 2
+ x_s = x_e
+ y_s = y_e # 3 o'clock
+ x_e = 0.0
+ y_e = 0.0 - radius # 6 o'clock
+ bx_e1 = x_s # cubic bezier point 1
by_e1 = y_s - (radius * kappa)
- bx_e2 = x_e + (radius * kappa) # cubic bezier point 2
+ bx_e2 = x_e + (radius * kappa) # cubic bezier point 2
by_e2 = y_e
out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
- # Quadrant 3
- x_s = x_e
- y_s = y_e # 6 o'clock
+ # Quadrant 3
+ x_s = x_e
+ y_s = y_e # 6 o'clock
x_e = 0.0 - radius
- y_e = 0.0 # 9 o'clock
- bx_e1 = x_s - (radius * kappa) # cubic bezier point 1
+ y_e = 0.0 # 9 o'clock
+ bx_e1 = x_s - (radius * kappa) # cubic bezier point 1
by_e1 = y_s
- bx_e2 = x_e # cubic bezier point 2
+ bx_e2 = x_e # cubic bezier point 2
by_e2 = y_e - (radius * kappa)
out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
- # Quadrant 4
- x_s = x_e
- y_s = y_e # 9 o'clock
- x_e = 0.0
- y_e = 0.0 + radius # 12 o'clock
- bx_e1 = x_s # cubic bezier point 1
+ # Quadrant 4
+ x_s = x_e
+ y_s = y_e # 9 o'clock
+ x_e = 0.0
+ y_e = 0.0 + radius # 12 o'clock
+ bx_e1 = x_s # cubic bezier point 1
by_e1 = y_s + (radius * kappa)
- bx_e2 = x_e - (radius * kappa) # cubic bezier point 2
+ bx_e2 = x_e - (radius * kappa) # cubic bezier point 2
by_e2 = y_e
out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
if style=='F'
@@ -474,11 +474,11 @@ class FPDF
else
op='s'
end
- out(sprintf("#{op}\n")) # stroke circle, do not fill and close path
+ out(sprintf("#{op}\n")) # stroke circle, do not fill and close path
# for filling etc. b, b*, f, f*
out(sprintf("Q\n")) # finish postscript in PDF
end
-
+
def Line(x1, y1, x2, y2)
# Draw a line
out(sprintf('%.2f %.2f m %.2f %.2f l S',
@@ -521,7 +521,7 @@ class FPDF
file = FPDF_FONTPATH + '/' + file
end
end
-
+
# Changed from "require file" to fix bug reported by Hans Allis.
load file
@@ -664,7 +664,7 @@ class FPDF
false
end
end
-
+
def Cell(w,h=0,txt='',border=0,ln=0,align='',fill=0,link='')
# Output a cell
if self.BreakThePage?(h)
@@ -781,11 +781,11 @@ class FPDF
@ws=0
out('0 Tw')
end
-#Ed Moss
+#Ed Moss
end_i = to_index == 0 ? 0 : to_index - 1
# Changed from s[from_j..to_index] to fix bug reported by Hans Allis.
- self.Cell(w,h,s[from_j..end_i],b,2,align,fill)
-#
+ self.Cell(w,h,s[from_j..end_i],b,2,align,fill)
+#
to_index=to_index+1
sep=-1
from_j=to_index
@@ -840,7 +840,7 @@ class FPDF
self.Cell(w,h,s[from_j..to_index],b,2,align,fill)
@x=@lMargin
end
-
+
def Write(h,txt,link='')
# Output text in flowing mode
cw=@CurrentFont['cw']
@@ -911,7 +911,7 @@ class FPDF
# Last chunk
self.Cell(l/1000.0*@FontSize,h,s[j,i],0,0,'',0,link) if i!=j
end
-
+
def Image(file,x,y,w=0,h=0,type='',link='')
# Put an image on the page
unless @images.has_key?(file)
@@ -939,10 +939,10 @@ class FPDF
end
#Ed Moss
if(w==0 && h==0)
- #Put image at 72 dpi
- w=info['w']/@k;
- h=info['h']/@k;
- end
+ #Put image at 72 dpi
+ w=info['w']/@k;
+ h=info['h']/@k;
+ end
#
# Automatic width or height calculation
w=h*info['w']/info['h'] if w==0
@@ -951,7 +951,7 @@ class FPDF
w*@k,h*@k,x*@k,(@h-(y+h))*@k,info['i']))
Link(x,y,w,h,link) if link and link != ''
end
-
+
def Ln(h='')
# Line feed; default value is last cell height
@x=@lMargin
@@ -996,13 +996,13 @@ class FPDF
SetY(y)
SetX(x)
end
-
+
def Output(file=nil)
# Output PDF to file or return as a string
-
+
# Finish document if necessary
self.Close if(@state<3)
-
+
if file.nil?
# Return as a string
return @buffer
@@ -1015,7 +1015,7 @@ class FPDF
end
private
-
+
def putpages
nb=@page
unless @AliasNbPages.nil? or @AliasNbPages==''
@@ -1085,7 +1085,7 @@ class FPDF
out('>>')
out('endobj')
end
-
+
def putfonts
nf=@n
@diffs.each do |diff|
@@ -1195,7 +1195,7 @@ class FPDF
end
end
end
-
+
def putimages
filter=(@compress) ? '/Filter /FlateDecode ' : ''
@images.each do |file, info|
@@ -1269,7 +1269,7 @@ class FPDF
out('>>')
out('endobj')
end
-
+
def putinfo
out('/Producer '+textstring('Ruby FPDF '+FPDF_VERSION));
unless @title.nil?
@@ -1289,7 +1289,7 @@ class FPDF
end
out('/CreationDate '+textstring('D: '+DateTime.now.to_s))
end
-
+
def putcatalog
out('/Type /Catalog')
out('/Pages 1 0 R')
@@ -1302,7 +1302,7 @@ class FPDF
elsif not @ZoomMode.kind_of?(String)
out('/OpenAction [3 0 R /XYZ null null '+(@ZoomMode/100)+']')
end
-
+
if @LayoutMode=='single'
out('/PageLayout /SinglePage')
elsif @LayoutMode=='continuous'
@@ -1391,12 +1391,12 @@ class FPDF
@CurOrientation=orientation
end
end
-
+
def endpage
# End of page contents
@state=1
end
-
+
def newobj
# Begin a new object
@n=@n+1
@@ -1412,7 +1412,7 @@ class FPDF
sprintf('%.2f %.2f %.2f %.2f re f',
x*@k,(@h-(y-up/1000.0*@FontSize))*@k,w*@k,-ut/1000.0*@FontSizePt)
end
-
+
def parsejpg(file)
# Extract info from a JPEG file
a=extractjpginfo(file)
diff --git a/lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb b/lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb
index 440afa00de..73c42c306a 100644
--- a/lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb
+++ b/lib/plugins/rfpdf/lib/rfpdf/template_handler/compile_support.rb
@@ -4,7 +4,7 @@ module RFPDF
class CompileSupport
# extend ActiveSupport::Memoizable
-
+
attr_reader :options
def initialize(controller)
@@ -69,6 +69,3 @@ module RFPDF
end
end
-
-
-
diff --git a/lib/plugins/rfpdf/lib/tcpdf.rb b/lib/plugins/rfpdf/lib/tcpdf.rb
index c5d46c544a..6da629a9b2 100755
--- a/lib/plugins/rfpdf/lib/tcpdf.rb
+++ b/lib/plugins/rfpdf/lib/tcpdf.rb
@@ -7,12 +7,12 @@
# Version : 1.53.0.TC031
# License : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
#
-# Description : This is a Ruby class for generating PDF files
-# on-the-fly without requiring external
+# Description : This is a Ruby class for generating PDF files
+# on-the-fly without requiring external
# extensions.
#
# IMPORTANT:
-# This class is an extension and improvement of the Public Domain
+# This class is an extension and improvement of the Public Domain
# FPDF class by Olivier Plathey (http://www.fpdf.org).
#
# Main changes by Nicola Asuni:
@@ -66,736 +66,736 @@ end
# @license http://www.gnu.org/copyleft/lesser.html LGPL
#
class TCPDF
- @@fpdf_charwidths = {}
- @@version = "1.53.0.TC031"
+ @@fpdf_charwidths = {}
+ @@version = "1.53.0.TC031"
include RFPDF
include Core::RFPDF
include RFPDF::Math
-
+
cattr_accessor :k_cell_height_ratio
@@k_cell_height_ratio = 1.25
cattr_accessor :k_blank_image
@@k_blank_image = ""
-
- cattr_accessor :k_small_ratio
+
+ cattr_accessor :k_small_ratio
@@k_small_ratio = 2/3.0
-
+
cattr_accessor :k_path_cache
@@k_path_cache = Rails.root.join('tmp').to_s
-
+
cattr_accessor :k_path_url_cache
@@k_path_url_cache = Rails.root.join('tmp').to_s
-
+
cattr_accessor :decoder
- attr_accessor :buffer
-
- attr_accessor :diffs
-
- attr_accessor :color_flag
-
- attr_accessor :default_table_columns
-
- attr_accessor :default_font
-
- attr_accessor :draw_color
-
- attr_accessor :encoding
-
- attr_accessor :fill_color
-
- attr_accessor :fonts
-
- attr_accessor :font_family
-
- attr_accessor :font_files
-
- cattr_accessor :font_path
-
- attr_accessor :font_style
-
- attr_accessor :font_size_pt
-
- attr_accessor :header_width
-
- attr_accessor :header_logo
-
- attr_accessor :header_logo_width
-
- attr_accessor :header_title
-
- attr_accessor :header_string
-
- attr_accessor :images
-
- attr_accessor :img_scale
-
- attr_accessor :in_footer
-
- attr_accessor :is_unicode
-
- attr_accessor :lasth
-
- attr_accessor :links
-
- attr_accessor :listordered
-
- attr_accessor :listcount
-
- attr_accessor :lispacer
-
- attr_accessor :n
-
- attr_accessor :offsets
-
- attr_accessor :orientation_changes
-
- attr_accessor :page
-
- attr_accessor :page_links
-
- attr_accessor :pages
-
- attr_accessor :pdf_version
-
- attr_accessor :prevfill_color
-
- attr_accessor :prevtext_color
-
- attr_accessor :print_header
-
- attr_accessor :print_footer
-
- attr_accessor :state
-
- attr_accessor :tableborder
-
- attr_accessor :tdbegin
-
- attr_accessor :tdwidth
-
- attr_accessor :tdheight
-
- attr_accessor :tdalign
-
- attr_accessor :tdfill
-
- attr_accessor :tempfontsize
-
- attr_accessor :text_color
-
- attr_accessor :underline
-
- attr_accessor :ws
-
- #
- # This is the class constructor.
- # It allows to set up the page format, the orientation and
- # the measure unit used in all the methods (except for the font sizes).
- # @since 1.0
- # @param string :orientation page orientation. Possible values are (case insensitive):P or Portrait (default) L or Landscape
- # @param string :unit User measure unit. Possible values are:pt: point mm: millimeter (default) cm: centimeter in: inch A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). This is a very common unit in typography; font sizes are expressed in that unit.
- # @param mixed :format The format used for pages. It can be either one of the following values (case insensitive) or a custom format in the form of a two-element array containing the width and the height (expressed in the unit given by unit).4A0 2A0 A0 A1 A2 A3 A4 (default) A5 A6 A7 A8 A9 A10 B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 RA0 RA1 RA2 RA3 RA4 SRA0 SRA1 SRA2 SRA3 SRA4 LETTER LEGAL EXECUTIVE FOLIO
- # @param boolean :unicode TRUE means that the input text is unicode (default = true)
- # @param String :encoding charset encoding; default is UTF-8
- #
- def initialize(orientation = 'P', unit = 'mm', format = 'A4', unicode = true, encoding = "UTF-8")
-
- # Set internal character encoding to ASCII#
- #FIXME 2007-05-25 (EJM) Level=0 -
- # if (respond_to?("mb_internal_encoding") and mb_internal_encoding())
- # @internal_encoding = mb_internal_encoding();
- # mb_internal_encoding("ASCII");
- # }
-
- #Some checks
- dochecks();
-
- begin
- @@decoder = HTMLEntities.new
- rescue
- @@decoder = nil
- end
-
- #Initialization of properties
- @buffer ||= ''
- @diffs ||= []
- @color_flag ||= false
- @default_table_columns ||= 4
- @default_font ||= "FreeSans" if unicode
- @default_font ||= "Helvetica"
- @draw_color ||= '0 G'
- @encoding ||= "UTF-8"
- @fill_color ||= '0 g'
- @fonts ||= {}
- @font_family ||= ''
- @font_files ||= {}
- @font_style ||= ''
- @font_size ||= 12
- @font_size_pt ||= 12
- @header_width ||= 0
- @header_logo ||= ""
- @header_logo_width ||= 30
- @header_title ||= ""
- @header_string ||= ""
- @images ||= {}
- @img_scale ||= 1
- @in_footer ||= false
- @is_unicode = unicode
- @lasth ||= 0
- @links ||= []
- @listordered ||= false
- @listcount ||= 0
- @lispacer ||= ""
- @n ||= 2
- @offsets ||= []
- @orientation_changes ||= []
- @page ||= 0
- @page_links ||= {}
- @pages ||= []
- @pdf_version ||= "1.3"
- @prevfill_color ||= [255,255,255]
- @prevtext_color ||= [0,0,0]
- @print_header ||= false
- @print_footer ||= false
- @state ||= 0
- @tableborder ||= 0
- @tdbegin ||= false
- @tdwidth ||= 0
- @tdheight ||= 0
- @tdalign ||= "L"
- @tdfill ||= 0
- @tempfontsize ||= 10
- @text_color ||= '0 g'
- @underline ||= false
- @ws ||= 0
-
- #Standard Unicode fonts
- @core_fonts = {
- 'courier'=>'Courier',
- 'courierB'=>'Courier-Bold',
- 'courierI'=>'Courier-Oblique',
- 'courierBI'=>'Courier-BoldOblique',
- 'helvetica'=>'Helvetica',
- 'helveticaB'=>'Helvetica-Bold',
- 'helveticaI'=>'Helvetica-Oblique',
- 'helveticaBI'=>'Helvetica-BoldOblique',
- 'times'=>'Times-Roman',
- 'timesB'=>'Times-Bold',
- 'timesI'=>'Times-Italic',
- 'timesBI'=>'Times-BoldItalic',
- 'symbol'=>'Symbol',
- 'zapfdingbats'=>'ZapfDingbats'}
-
- #Scale factor
- case unit.downcase
- when 'pt' ; @k=1
- when 'mm' ; @k=72/25.4
- when 'cm' ; @k=72/2.54
- when 'in' ; @k=72
- else Error("Incorrect unit: #{unit}")
- end
-
- #Page format
- if format.is_a?(String)
- # Page formats (45 standard ISO paper formats and 4 american common formats).
- # Paper cordinates are calculated in this way: (inches# 72) where (1 inch = 2.54 cm)
- case (format.upcase)
- when '4A0' ; format = [4767.87,6740.79]
- when '2A0' ; format = [3370.39,4767.87]
- when 'A0' ; format = [2383.94,3370.39]
- when 'A1' ; format = [1683.78,2383.94]
- when 'A2' ; format = [1190.55,1683.78]
- when 'A3' ; format = [841.89,1190.55]
- when 'A4' ; format = [595.28,841.89] # ; default
- when 'A5' ; format = [419.53,595.28]
- when 'A6' ; format = [297.64,419.53]
- when 'A7' ; format = [209.76,297.64]
- when 'A8' ; format = [147.40,209.76]
- when 'A9' ; format = [104.88,147.40]
- when 'A10' ; format = [73.70,104.88]
- when 'B0' ; format = [2834.65,4008.19]
- when 'B1' ; format = [2004.09,2834.65]
- when 'B2' ; format = [1417.32,2004.09]
- when 'B3' ; format = [1000.63,1417.32]
- when 'B4' ; format = [708.66,1000.63]
- when 'B5' ; format = [498.90,708.66]
- when 'B6' ; format = [354.33,498.90]
- when 'B7' ; format = [249.45,354.33]
- when 'B8' ; format = [175.75,249.45]
- when 'B9' ; format = [124.72,175.75]
- when 'B10' ; format = [87.87,124.72]
- when 'C0' ; format = [2599.37,3676.54]
- when 'C1' ; format = [1836.85,2599.37]
- when 'C2' ; format = [1298.27,1836.85]
- when 'C3' ; format = [918.43,1298.27]
- when 'C4' ; format = [649.13,918.43]
- when 'C5' ; format = [459.21,649.13]
- when 'C6' ; format = [323.15,459.21]
- when 'C7' ; format = [229.61,323.15]
- when 'C8' ; format = [161.57,229.61]
- when 'C9' ; format = [113.39,161.57]
- when 'C10' ; format = [79.37,113.39]
- when 'RA0' ; format = [2437.80,3458.27]
- when 'RA1' ; format = [1729.13,2437.80]
- when 'RA2' ; format = [1218.90,1729.13]
- when 'RA3' ; format = [864.57,1218.90]
- when 'RA4' ; format = [609.45,864.57]
- when 'SRA0' ; format = [2551.18,3628.35]
- when 'SRA1' ; format = [1814.17,2551.18]
- when 'SRA2' ; format = [1275.59,1814.17]
- when 'SRA3' ; format = [907.09,1275.59]
- when 'SRA4' ; format = [637.80,907.09]
- when 'LETTER' ; format = [612.00,792.00]
- when 'LEGAL' ; format = [612.00,1008.00]
- when 'EXECUTIVE' ; format = [521.86,756.00]
- when 'FOLIO' ; format = [612.00,936.00]
- #else then Error("Unknown page format: #{format}"
- end
- @fw_pt = format[0]
- @fh_pt = format[1]
- else
- @fw_pt = format[0]*@k
- @fh_pt = format[1]*@k
- end
-
- @fw = @fw_pt/@k
- @fh = @fh_pt/@k
-
- #Page orientation
- orientation = orientation.downcase
- if orientation == 'p' or orientation == 'portrait'
- @def_orientation = 'P'
- @w_pt = @fw_pt
- @h_pt = @fh_pt
- elsif orientation == 'l' or orientation == 'landscape'
- @def_orientation = 'L'
- @w_pt = @fh_pt
- @h_pt = @fw_pt
- else
- Error("Incorrect orientation: #{orientation}")
- end
-
- @cur_orientation = @def_orientation
- @w = @w_pt/@k
- @h = @h_pt/@k
- #Page margins (1 cm)
- margin = 28.35/@k
- SetMargins(margin, margin)
- #Interior cell margin (1 mm)
- @c_margin = margin / 10
- #Line width (0.2 mm)
- @line_width = 0.567 / @k
- #Automatic page break
- SetAutoPageBreak(true, 2 * margin)
- #Full width display mode
- SetDisplayMode('fullwidth')
- #Compression
- SetCompression(true)
- #Set default PDF version number
- @pdf_version = "1.3"
-
- @encoding = encoding
- @b = 0
- @i = 0
- @u = 0
- @href = ''
- @fontlist = ["arial", "times", "courier", "helvetica", "symbol"]
- @issetfont = false
- @issetcolor = false
-
- SetFillColor(200, 200, 200, true)
- SetTextColor(0, 0, 0, true)
- end
-
- #
- # Set the image scale.
- # @param float :scale image scale.
- # @author Nicola Asuni
- # @since 1.5.2
- #
- def SetImageScale(scale)
- @img_scale = scale;
- end
+ attr_accessor :buffer
+
+ attr_accessor :diffs
+
+ attr_accessor :color_flag
+
+ attr_accessor :default_table_columns
+
+ attr_accessor :default_font
+
+ attr_accessor :draw_color
+
+ attr_accessor :encoding
+
+ attr_accessor :fill_color
+
+ attr_accessor :fonts
+
+ attr_accessor :font_family
+
+ attr_accessor :font_files
+
+ cattr_accessor :font_path
+
+ attr_accessor :font_style
+
+ attr_accessor :font_size_pt
+
+ attr_accessor :header_width
+
+ attr_accessor :header_logo
+
+ attr_accessor :header_logo_width
+
+ attr_accessor :header_title
+
+ attr_accessor :header_string
+
+ attr_accessor :images
+
+ attr_accessor :img_scale
+
+ attr_accessor :in_footer
+
+ attr_accessor :is_unicode
+
+ attr_accessor :lasth
+
+ attr_accessor :links
+
+ attr_accessor :listordered
+
+ attr_accessor :listcount
+
+ attr_accessor :lispacer
+
+ attr_accessor :n
+
+ attr_accessor :offsets
+
+ attr_accessor :orientation_changes
+
+ attr_accessor :page
+
+ attr_accessor :page_links
+
+ attr_accessor :pages
+
+ attr_accessor :pdf_version
+
+ attr_accessor :prevfill_color
+
+ attr_accessor :prevtext_color
+
+ attr_accessor :print_header
+
+ attr_accessor :print_footer
+
+ attr_accessor :state
+
+ attr_accessor :tableborder
+
+ attr_accessor :tdbegin
+
+ attr_accessor :tdwidth
+
+ attr_accessor :tdheight
+
+ attr_accessor :tdalign
+
+ attr_accessor :tdfill
+
+ attr_accessor :tempfontsize
+
+ attr_accessor :text_color
+
+ attr_accessor :underline
+
+ attr_accessor :ws
+
+ #
+ # This is the class constructor.
+ # It allows to set up the page format, the orientation and
+ # the measure unit used in all the methods (except for the font sizes).
+ # @since 1.0
+ # @param string :orientation page orientation. Possible values are (case insensitive):P or Portrait (default) L or Landscape
+ # @param string :unit User measure unit. Possible values are:pt: point mm: millimeter (default) cm: centimeter in: inch A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). This is a very common unit in typography; font sizes are expressed in that unit.
+ # @param mixed :format The format used for pages. It can be either one of the following values (case insensitive) or a custom format in the form of a two-element array containing the width and the height (expressed in the unit given by unit).4A0 2A0 A0 A1 A2 A3 A4 (default) A5 A6 A7 A8 A9 A10 B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 RA0 RA1 RA2 RA3 RA4 SRA0 SRA1 SRA2 SRA3 SRA4 LETTER LEGAL EXECUTIVE FOLIO
+ # @param boolean :unicode TRUE means that the input text is unicode (default = true)
+ # @param String :encoding charset encoding; default is UTF-8
+ #
+ def initialize(orientation = 'P', unit = 'mm', format = 'A4', unicode = true, encoding = "UTF-8")
+
+ # Set internal character encoding to ASCII#
+ #FIXME 2007-05-25 (EJM) Level=0 -
+ # if (respond_to?("mb_internal_encoding") and mb_internal_encoding())
+ # @internal_encoding = mb_internal_encoding();
+ # mb_internal_encoding("ASCII");
+ # }
+
+ #Some checks
+ dochecks();
+
+ begin
+ @@decoder = HTMLEntities.new
+ rescue
+ @@decoder = nil
+ end
+
+ #Initialization of properties
+ @buffer ||= ''
+ @diffs ||= []
+ @color_flag ||= false
+ @default_table_columns ||= 4
+ @default_font ||= "FreeSans" if unicode
+ @default_font ||= "Helvetica"
+ @draw_color ||= '0 G'
+ @encoding ||= "UTF-8"
+ @fill_color ||= '0 g'
+ @fonts ||= {}
+ @font_family ||= ''
+ @font_files ||= {}
+ @font_style ||= ''
+ @font_size ||= 12
+ @font_size_pt ||= 12
+ @header_width ||= 0
+ @header_logo ||= ""
+ @header_logo_width ||= 30
+ @header_title ||= ""
+ @header_string ||= ""
+ @images ||= {}
+ @img_scale ||= 1
+ @in_footer ||= false
+ @is_unicode = unicode
+ @lasth ||= 0
+ @links ||= []
+ @listordered ||= false
+ @listcount ||= 0
+ @lispacer ||= ""
+ @n ||= 2
+ @offsets ||= []
+ @orientation_changes ||= []
+ @page ||= 0
+ @page_links ||= {}
+ @pages ||= []
+ @pdf_version ||= "1.3"
+ @prevfill_color ||= [255,255,255]
+ @prevtext_color ||= [0,0,0]
+ @print_header ||= false
+ @print_footer ||= false
+ @state ||= 0
+ @tableborder ||= 0
+ @tdbegin ||= false
+ @tdwidth ||= 0
+ @tdheight ||= 0
+ @tdalign ||= "L"
+ @tdfill ||= 0
+ @tempfontsize ||= 10
+ @text_color ||= '0 g'
+ @underline ||= false
+ @ws ||= 0
+
+ #Standard Unicode fonts
+ @core_fonts = {
+ 'courier'=>'Courier',
+ 'courierB'=>'Courier-Bold',
+ 'courierI'=>'Courier-Oblique',
+ 'courierBI'=>'Courier-BoldOblique',
+ 'helvetica'=>'Helvetica',
+ 'helveticaB'=>'Helvetica-Bold',
+ 'helveticaI'=>'Helvetica-Oblique',
+ 'helveticaBI'=>'Helvetica-BoldOblique',
+ 'times'=>'Times-Roman',
+ 'timesB'=>'Times-Bold',
+ 'timesI'=>'Times-Italic',
+ 'timesBI'=>'Times-BoldItalic',
+ 'symbol'=>'Symbol',
+ 'zapfdingbats'=>'ZapfDingbats'}
+
+ #Scale factor
+ case unit.downcase
+ when 'pt' ; @k=1
+ when 'mm' ; @k=72/25.4
+ when 'cm' ; @k=72/2.54
+ when 'in' ; @k=72
+ else Error("Incorrect unit: #{unit}")
+ end
+
+ #Page format
+ if format.is_a?(String)
+ # Page formats (45 standard ISO paper formats and 4 american common formats).
+ # Paper cordinates are calculated in this way: (inches# 72) where (1 inch = 2.54 cm)
+ case (format.upcase)
+ when '4A0' ; format = [4767.87,6740.79]
+ when '2A0' ; format = [3370.39,4767.87]
+ when 'A0' ; format = [2383.94,3370.39]
+ when 'A1' ; format = [1683.78,2383.94]
+ when 'A2' ; format = [1190.55,1683.78]
+ when 'A3' ; format = [841.89,1190.55]
+ when 'A4' ; format = [595.28,841.89] # ; default
+ when 'A5' ; format = [419.53,595.28]
+ when 'A6' ; format = [297.64,419.53]
+ when 'A7' ; format = [209.76,297.64]
+ when 'A8' ; format = [147.40,209.76]
+ when 'A9' ; format = [104.88,147.40]
+ when 'A10' ; format = [73.70,104.88]
+ when 'B0' ; format = [2834.65,4008.19]
+ when 'B1' ; format = [2004.09,2834.65]
+ when 'B2' ; format = [1417.32,2004.09]
+ when 'B3' ; format = [1000.63,1417.32]
+ when 'B4' ; format = [708.66,1000.63]
+ when 'B5' ; format = [498.90,708.66]
+ when 'B6' ; format = [354.33,498.90]
+ when 'B7' ; format = [249.45,354.33]
+ when 'B8' ; format = [175.75,249.45]
+ when 'B9' ; format = [124.72,175.75]
+ when 'B10' ; format = [87.87,124.72]
+ when 'C0' ; format = [2599.37,3676.54]
+ when 'C1' ; format = [1836.85,2599.37]
+ when 'C2' ; format = [1298.27,1836.85]
+ when 'C3' ; format = [918.43,1298.27]
+ when 'C4' ; format = [649.13,918.43]
+ when 'C5' ; format = [459.21,649.13]
+ when 'C6' ; format = [323.15,459.21]
+ when 'C7' ; format = [229.61,323.15]
+ when 'C8' ; format = [161.57,229.61]
+ when 'C9' ; format = [113.39,161.57]
+ when 'C10' ; format = [79.37,113.39]
+ when 'RA0' ; format = [2437.80,3458.27]
+ when 'RA1' ; format = [1729.13,2437.80]
+ when 'RA2' ; format = [1218.90,1729.13]
+ when 'RA3' ; format = [864.57,1218.90]
+ when 'RA4' ; format = [609.45,864.57]
+ when 'SRA0' ; format = [2551.18,3628.35]
+ when 'SRA1' ; format = [1814.17,2551.18]
+ when 'SRA2' ; format = [1275.59,1814.17]
+ when 'SRA3' ; format = [907.09,1275.59]
+ when 'SRA4' ; format = [637.80,907.09]
+ when 'LETTER' ; format = [612.00,792.00]
+ when 'LEGAL' ; format = [612.00,1008.00]
+ when 'EXECUTIVE' ; format = [521.86,756.00]
+ when 'FOLIO' ; format = [612.00,936.00]
+ #else then Error("Unknown page format: #{format}"
+ end
+ @fw_pt = format[0]
+ @fh_pt = format[1]
+ else
+ @fw_pt = format[0]*@k
+ @fh_pt = format[1]*@k
+ end
+
+ @fw = @fw_pt/@k
+ @fh = @fh_pt/@k
+
+ #Page orientation
+ orientation = orientation.downcase
+ if orientation == 'p' or orientation == 'portrait'
+ @def_orientation = 'P'
+ @w_pt = @fw_pt
+ @h_pt = @fh_pt
+ elsif orientation == 'l' or orientation == 'landscape'
+ @def_orientation = 'L'
+ @w_pt = @fh_pt
+ @h_pt = @fw_pt
+ else
+ Error("Incorrect orientation: #{orientation}")
+ end
+
+ @cur_orientation = @def_orientation
+ @w = @w_pt/@k
+ @h = @h_pt/@k
+ #Page margins (1 cm)
+ margin = 28.35/@k
+ SetMargins(margin, margin)
+ #Interior cell margin (1 mm)
+ @c_margin = margin / 10
+ #Line width (0.2 mm)
+ @line_width = 0.567 / @k
+ #Automatic page break
+ SetAutoPageBreak(true, 2 * margin)
+ #Full width display mode
+ SetDisplayMode('fullwidth')
+ #Compression
+ SetCompression(true)
+ #Set default PDF version number
+ @pdf_version = "1.3"
+
+ @encoding = encoding
+ @b = 0
+ @i = 0
+ @u = 0
+ @href = ''
+ @fontlist = ["arial", "times", "courier", "helvetica", "symbol"]
+ @issetfont = false
+ @issetcolor = false
+
+ SetFillColor(200, 200, 200, true)
+ SetTextColor(0, 0, 0, true)
+ end
+
+ #
+ # Set the image scale.
+ # @param float :scale image scale.
+ # @author Nicola Asuni
+ # @since 1.5.2
+ #
+ def SetImageScale(scale)
+ @img_scale = scale;
+ end
alias_method :set_image_scale, :SetImageScale
-
- #
- # Returns the image scale.
- # @return float image scale.
- # @author Nicola Asuni
- # @since 1.5.2
- #
- def GetImageScale()
- return @img_scale;
- end
+
+ #
+ # Returns the image scale.
+ # @return float image scale.
+ # @author Nicola Asuni
+ # @since 1.5.2
+ #
+ def GetImageScale()
+ return @img_scale;
+ end
alias_method :get_image_scale, :GetImageScale
-
- #
- # Returns the page width in units.
- # @return int page width.
- # @author Nicola Asuni
- # @since 1.5.2
- #
- def GetPageWidth()
- return @w;
- end
+
+ #
+ # Returns the page width in units.
+ # @return int page width.
+ # @author Nicola Asuni
+ # @since 1.5.2
+ #
+ def GetPageWidth()
+ return @w;
+ end
alias_method :get_page_width, :GetPageWidth
-
- #
- # Returns the page height in units.
- # @return int page height.
- # @author Nicola Asuni
- # @since 1.5.2
- #
- def GetPageHeight()
- return @h;
- end
+
+ #
+ # Returns the page height in units.
+ # @return int page height.
+ # @author Nicola Asuni
+ # @since 1.5.2
+ #
+ def GetPageHeight()
+ return @h;
+ end
alias_method :get_page_height, :GetPageHeight
-
- #
- # Returns the page break margin.
- # @return int page break margin.
- # @author Nicola Asuni
- # @since 1.5.2
- #
- def GetBreakMargin()
- return @b_margin;
- end
+
+ #
+ # Returns the page break margin.
+ # @return int page break margin.
+ # @author Nicola Asuni
+ # @since 1.5.2
+ #
+ def GetBreakMargin()
+ return @b_margin;
+ end
alias_method :get_break_margin, :GetBreakMargin
- #
- # Returns the scale factor (number of points in user unit).
- # @return int scale factor.
- # @author Nicola Asuni
- # @since 1.5.2
- #
- def GetScaleFactor()
- return @k;
- end
+ #
+ # Returns the scale factor (number of points in user unit).
+ # @return int scale factor.
+ # @author Nicola Asuni
+ # @since 1.5.2
+ #
+ def GetScaleFactor()
+ return @k;
+ end
alias_method :get_scale_factor, :GetScaleFactor
- #
- # Defines the left, top and right margins. By default, they equal 1 cm. Call this method to change them.
- # @param float :left Left margin.
- # @param float :top Top margin.
- # @param float :right Right margin. Default value is the left one.
- # @since 1.0
- # @see SetLeftMargin(), SetTopMargin(), SetRightMargin(), SetAutoPageBreak()
- #
- def SetMargins(left, top, right=-1)
- #Set left, top and right margins
- @l_margin = left
- @t_margin = top
- if (right == -1)
- right = left
- end
- @r_margin = right
- end
+ #
+ # Defines the left, top and right margins. By default, they equal 1 cm. Call this method to change them.
+ # @param float :left Left margin.
+ # @param float :top Top margin.
+ # @param float :right Right margin. Default value is the left one.
+ # @since 1.0
+ # @see SetLeftMargin(), SetTopMargin(), SetRightMargin(), SetAutoPageBreak()
+ #
+ def SetMargins(left, top, right=-1)
+ #Set left, top and right margins
+ @l_margin = left
+ @t_margin = top
+ if (right == -1)
+ right = left
+ end
+ @r_margin = right
+ end
alias_method :set_margins, :SetMargins
- #
- # Defines the left margin. The method can be called before creating the first page. If the current abscissa gets out of page, it is brought back to the margin.
- # @param float :margin The margin.
- # @since 1.4
- # @see SetTopMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins()
- #
- def SetLeftMargin(margin)
- #Set left margin
- @l_margin = margin
- if ((@page>0) and (@x < margin))
- @x = margin
- end
- end
+ #
+ # Defines the left margin. The method can be called before creating the first page. If the current abscissa gets out of page, it is brought back to the margin.
+ # @param float :margin The margin.
+ # @since 1.4
+ # @see SetTopMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins()
+ #
+ def SetLeftMargin(margin)
+ #Set left margin
+ @l_margin = margin
+ if ((@page>0) and (@x < margin))
+ @x = margin
+ end
+ end
alias_method :set_left_margin, :SetLeftMargin
- #
- # Defines the top margin. The method can be called before creating the first page.
- # @param float :margin The margin.
- # @since 1.5
- # @see SetLeftMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins()
- #
- def SetTopMargin(margin)
- #Set top margin
- @t_margin = margin
- end
+ #
+ # Defines the top margin. The method can be called before creating the first page.
+ # @param float :margin The margin.
+ # @since 1.5
+ # @see SetLeftMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins()
+ #
+ def SetTopMargin(margin)
+ #Set top margin
+ @t_margin = margin
+ end
alias_method :set_top_margin, :SetTopMargin
- #
- # Defines the right margin. The method can be called before creating the first page.
- # @param float :margin The margin.
- # @since 1.5
- # @see SetLeftMargin(), SetTopMargin(), SetAutoPageBreak(), SetMargins()
- #
- def SetRightMargin(margin)
- #Set right margin
- @r_margin = margin
- end
+ #
+ # Defines the right margin. The method can be called before creating the first page.
+ # @param float :margin The margin.
+ # @since 1.5
+ # @see SetLeftMargin(), SetTopMargin(), SetAutoPageBreak(), SetMargins()
+ #
+ def SetRightMargin(margin)
+ #Set right margin
+ @r_margin = margin
+ end
alias_method :set_right_margin, :SetRightMargin
- #
- # Enables or disables the automatic page breaking mode. When enabling, the second parameter is the distance from the bottom of the page that defines the triggering limit. By default, the mode is on and the margin is 2 cm.
- # @param boolean :auto Boolean indicating if mode should be on or off.
- # @param float :margin Distance from the bottom of the page.
- # @since 1.0
- # @see Cell(), MultiCell(), AcceptPageBreak()
- #
- def SetAutoPageBreak(auto, margin=0)
- #Set auto page break mode and triggering margin
- @auto_page_break = auto
- @b_margin = margin
- @page_break_trigger = @h - margin
- end
+ #
+ # Enables or disables the automatic page breaking mode. When enabling, the second parameter is the distance from the bottom of the page that defines the triggering limit. By default, the mode is on and the margin is 2 cm.
+ # @param boolean :auto Boolean indicating if mode should be on or off.
+ # @param float :margin Distance from the bottom of the page.
+ # @since 1.0
+ # @see Cell(), MultiCell(), AcceptPageBreak()
+ #
+ def SetAutoPageBreak(auto, margin=0)
+ #Set auto page break mode and triggering margin
+ @auto_page_break = auto
+ @b_margin = margin
+ @page_break_trigger = @h - margin
+ end
alias_method :set_auto_page_break, :SetAutoPageBreak
- #
- # Defines the way the document is to be displayed by the viewer. The zoom level can be set: pages can be displayed entirely on screen, occupy the full width of the window, use real size, be scaled by a specific zooming factor or use viewer default (configured in the Preferences menu of Acrobat). The page layout can be specified too: single at once, continuous display, two columns or viewer default. By default, documents use the full width mode with continuous display.
- # @param mixed :zoom The zoom to use. It can be one of the following string values or a number indicating the zooming factor to use. fullpage: displays the entire page on screen fullwidth: uses maximum width of window real: uses real size (equivalent to 100% zoom) default: uses viewer default mode
- # @param string :layout The page layout. Possible values are:single: displays one page at once continuous: displays pages continuously (default) two: displays two pages on two columns default: uses viewer default mode
- # @since 1.2
- #
- def SetDisplayMode(zoom, layout = 'continuous')
- #Set display mode in viewer
- if (zoom == 'fullpage' or zoom == 'fullwidth' or zoom == 'real' or zoom == 'default' or !zoom.is_a?(String))
- @zoom_mode = zoom
- else
- Error("Incorrect zoom display mode: #{zoom}")
- end
- if (layout == 'single' or layout == 'continuous' or layout == 'two' or layout == 'default')
- @layout_mode = layout
- else
- Error("Incorrect layout display mode: #{layout}")
- end
- end
+ #
+ # Defines the way the document is to be displayed by the viewer. The zoom level can be set: pages can be displayed entirely on screen, occupy the full width of the window, use real size, be scaled by a specific zooming factor or use viewer default (configured in the Preferences menu of Acrobat). The page layout can be specified too: single at once, continuous display, two columns or viewer default. By default, documents use the full width mode with continuous display.
+ # @param mixed :zoom The zoom to use. It can be one of the following string values or a number indicating the zooming factor to use. fullpage: displays the entire page on screen fullwidth: uses maximum width of window real: uses real size (equivalent to 100% zoom) default: uses viewer default mode
+ # @param string :layout The page layout. Possible values are:single: displays one page at once continuous: displays pages continuously (default) two: displays two pages on two columns default: uses viewer default mode
+ # @since 1.2
+ #
+ def SetDisplayMode(zoom, layout = 'continuous')
+ #Set display mode in viewer
+ if (zoom == 'fullpage' or zoom == 'fullwidth' or zoom == 'real' or zoom == 'default' or !zoom.is_a?(String))
+ @zoom_mode = zoom
+ else
+ Error("Incorrect zoom display mode: #{zoom}")
+ end
+ if (layout == 'single' or layout == 'continuous' or layout == 'two' or layout == 'default')
+ @layout_mode = layout
+ else
+ Error("Incorrect layout display mode: #{layout}")
+ end
+ end
alias_method :set_display_mode, :SetDisplayMode
- #
- # Activates or deactivates page compression. When activated, the internal representation of each page is compressed, which leads to a compression ratio of about 2 for the resulting document. Compression is on by default.
- # Note: the Zlib extension is required for this feature. If not present, compression will be turned off.
- # @param boolean :compress Boolean indicating if compression must be enabled.
- # @since 1.4
- #
- def SetCompression(compress)
- #Set page compression
- if (respond_to?('gzcompress'))
- @compress = compress
- else
- @compress = false
- end
- end
+ #
+ # Activates or deactivates page compression. When activated, the internal representation of each page is compressed, which leads to a compression ratio of about 2 for the resulting document. Compression is on by default.
+ # Note: the Zlib extension is required for this feature. If not present, compression will be turned off.
+ # @param boolean :compress Boolean indicating if compression must be enabled.
+ # @since 1.4
+ #
+ def SetCompression(compress)
+ #Set page compression
+ if (respond_to?('gzcompress'))
+ @compress = compress
+ else
+ @compress = false
+ end
+ end
alias_method :set_compression, :SetCompression
- #
- # Defines the title of the document.
- # @param string :title The title.
- # @since 1.2
- # @see SetAuthor(), SetCreator(), SetKeywords(), SetSubject()
- #
- def SetTitle(title)
- #Title of document
- @title = title
- end
+ #
+ # Defines the title of the document.
+ # @param string :title The title.
+ # @since 1.2
+ # @see SetAuthor(), SetCreator(), SetKeywords(), SetSubject()
+ #
+ def SetTitle(title)
+ #Title of document
+ @title = title
+ end
alias_method :set_title, :SetTitle
- #
- # Defines the subject of the document.
- # @param string :subject The subject.
- # @since 1.2
- # @see SetAuthor(), SetCreator(), SetKeywords(), SetTitle()
- #
- def SetSubject(subject)
- #Subject of document
- @subject = subject
- end
+ #
+ # Defines the subject of the document.
+ # @param string :subject The subject.
+ # @since 1.2
+ # @see SetAuthor(), SetCreator(), SetKeywords(), SetTitle()
+ #
+ def SetSubject(subject)
+ #Subject of document
+ @subject = subject
+ end
alias_method :set_subject, :SetSubject
- #
- # Defines the author of the document.
- # @param string :author The name of the author.
- # @since 1.2
- # @see SetCreator(), SetKeywords(), SetSubject(), SetTitle()
- #
- def SetAuthor(author)
- #Author of document
- @author = author
- end
+ #
+ # Defines the author of the document.
+ # @param string :author The name of the author.
+ # @since 1.2
+ # @see SetCreator(), SetKeywords(), SetSubject(), SetTitle()
+ #
+ def SetAuthor(author)
+ #Author of document
+ @author = author
+ end
alias_method :set_author, :SetAuthor
- #
- # Associates keywords with the document, generally in the form 'keyword1 keyword2 ...'.
- # @param string :keywords The list of keywords.
- # @since 1.2
- # @see SetAuthor(), SetCreator(), SetSubject(), SetTitle()
- #
- def SetKeywords(keywords)
- #Keywords of document
- @keywords = keywords
- end
+ #
+ # Associates keywords with the document, generally in the form 'keyword1 keyword2 ...'.
+ # @param string :keywords The list of keywords.
+ # @since 1.2
+ # @see SetAuthor(), SetCreator(), SetSubject(), SetTitle()
+ #
+ def SetKeywords(keywords)
+ #Keywords of document
+ @keywords = keywords
+ end
alias_method :set_keywords, :SetKeywords
- #
- # Defines the creator of the document. This is typically the name of the application that generates the PDF.
- # @param string :creator The name of the creator.
- # @since 1.2
- # @see SetAuthor(), SetKeywords(), SetSubject(), SetTitle()
- #
- def SetCreator(creator)
- #Creator of document
- @creator = creator
- end
+ #
+ # Defines the creator of the document. This is typically the name of the application that generates the PDF.
+ # @param string :creator The name of the creator.
+ # @since 1.2
+ # @see SetAuthor(), SetKeywords(), SetSubject(), SetTitle()
+ #
+ def SetCreator(creator)
+ #Creator of document
+ @creator = creator
+ end
alias_method :set_creator, :SetCreator
- #
- # Defines an alias for the total number of pages. It will be substituted as the document is closed.
- # Example:
- #
- # class PDF extends TCPDF {
- # def Footer()
- # #Go to 1.5 cm from bottom
- # SetY(-15);
- # #Select Arial italic 8
- # SetFont('Arial','I',8);
- # #Print current and total page numbers
- # Cell(0,10,'Page '.PageNo().'/{nb}',0,0,'C');
- # end
- # }
- # :pdf=new PDF();
- # :pdf->alias_nb_pages();
- #
- # @param string :alias The alias. Default valuenb}.
- # @since 1.4
- # @see PageNo(), Footer()
- #
- def alias_nb_pages(alias_nb ='{nb}')
- #Define an alias for total number of pages
- @alias_nb_pages = escapetext(alias_nb)
- end
-
- #
- # This method is automatically called in case of fatal error; it simply outputs the message and halts the execution. An inherited class may override it to customize the error handling but should always halt the script, or the resulting document would probably be invalid.
- # 2004-06-11 :: Nicola Asuni : changed bold tag with strong
- # @param string :msg The error message
- # @since 1.0
- #
- def Error(msg)
- #Fatal error
- raise ("TCPDF error: #{msg}")
- end
+ #
+ # Defines an alias for the total number of pages. It will be substituted as the document is closed.
+ # Example:
+ #
+ # class PDF extends TCPDF {
+ # def Footer()
+ # #Go to 1.5 cm from bottom
+ # SetY(-15);
+ # #Select Arial italic 8
+ # SetFont('Arial','I',8);
+ # #Print current and total page numbers
+ # Cell(0,10,'Page '.PageNo().'/{nb}',0,0,'C');
+ # end
+ # }
+ # :pdf=new PDF();
+ # :pdf->alias_nb_pages();
+ #
+ # @param string :alias The alias. Default valuenb}.
+ # @since 1.4
+ # @see PageNo(), Footer()
+ #
+ def alias_nb_pages(alias_nb ='{nb}')
+ #Define an alias for total number of pages
+ @alias_nb_pages = escapetext(alias_nb)
+ end
+
+ #
+ # This method is automatically called in case of fatal error; it simply outputs the message and halts the execution. An inherited class may override it to customize the error handling but should always halt the script, or the resulting document would probably be invalid.
+ # 2004-06-11 :: Nicola Asuni : changed bold tag with strong
+ # @param string :msg The error message
+ # @since 1.0
+ #
+ def Error(msg)
+ #Fatal error
+ raise ("TCPDF error: #{msg}")
+ end
alias_method :error, :Error
- #
- # This method begins the generation of the PDF document. It is not necessary to call it explicitly because AddPage() does it automatically.
- # Note: no page is created by this method
- # @since 1.0
- # @see AddPage(), Close()
- #
- def Open()
- #Begin document
- @state = 1
- end
+ #
+ # This method begins the generation of the PDF document. It is not necessary to call it explicitly because AddPage() does it automatically.
+ # Note: no page is created by this method
+ # @since 1.0
+ # @see AddPage(), Close()
+ #
+ def Open()
+ #Begin document
+ @state = 1
+ end
# alias_method :open, :Open
- #
- # Terminates the PDF document. It is not necessary to call this method explicitly because Output() does it automatically. If the document contains no page, AddPage() is called to prevent from getting an invalid document.
- # @since 1.0
- # @see Open(), Output()
- #
- def Close()
- #Terminate document
- if (@state==3)
- return;
- end
- if (@page==0)
- AddPage();
- end
- #Page footer
- @in_footer=true;
- Footer();
- @in_footer=false;
- #Close page
- endpage();
- #Close document
- enddoc();
- end
+ #
+ # Terminates the PDF document. It is not necessary to call this method explicitly because Output() does it automatically. If the document contains no page, AddPage() is called to prevent from getting an invalid document.
+ # @since 1.0
+ # @see Open(), Output()
+ #
+ def Close()
+ #Terminate document
+ if (@state==3)
+ return;
+ end
+ if (@page==0)
+ AddPage();
+ end
+ #Page footer
+ @in_footer=true;
+ Footer();
+ @in_footer=false;
+ #Close page
+ endpage();
+ #Close document
+ enddoc();
+ end
# alias_method :close, :Close
- #
- # Adds a new page to the document. If a page is already present, the Footer() method is called first to output the footer. Then the page is added, the current position set to the top-left corner according to the left and top margins, and Header() is called to display the header.
- # The font which was set before calling is automatically restored. There is no need to call SetFont() again if you want to continue with the same font. The same is true for colors and line width.
- # The origin of the coordinate system is at the top-left corner and increasing ordinates go downwards.
- # @param string :orientation Page orientation. Possible values are (case insensitive):P or Portrait L or Landscape The default value is the one passed to the constructor.
- # @since 1.0
- # @see TCPDF(), Header(), Footer(), SetMargins()
- #
- def AddPage(orientation='')
- #Start a new page
- if (@state==0)
- Open();
- end
- family=@font_family;
- style=@font_style + (@underline ? 'U' : '');
- size=@font_size_pt;
- lw=@line_width;
- dc=@draw_color;
- fc=@fill_color;
- tc=@text_color;
- cf=@color_flag;
- if (@page>0)
- #Page footer
- @in_footer=true;
- Footer();
- @in_footer=false;
- #Close page
- endpage();
- end
- #Start new page
- beginpage(orientation);
- #Set line cap style to square
- out('2 J');
- #Set line width
- @line_width = lw;
- out(sprintf('%.2f w', lw*@k));
- #Set font
- if (family)
- SetFont(family, style, size);
- end
- #Set colors
- @draw_color = dc;
- if (dc!='0 G')
- out(dc);
- end
- @fill_color = fc;
- if (fc!='0 g')
- out(fc);
- end
- @text_color = tc;
- @color_flag = cf;
- #Page header
- Header();
- #Restore line width
- if (@line_width != lw)
- @line_width = lw;
- out(sprintf('%.2f w', lw*@k));
- end
- #Restore font
- if (family)
- SetFont(family, style, size);
- end
- #Restore colors
- if (@draw_color != dc)
- @draw_color = dc;
- out(dc);
- end
- if (@fill_color != fc)
- @fill_color = fc;
- out(fc);
- end
- @text_color = tc;
- @color_flag = cf;
- end
- alias_method :add_page, :AddPage
-
+ #
+ # Adds a new page to the document. If a page is already present, the Footer() method is called first to output the footer. Then the page is added, the current position set to the top-left corner according to the left and top margins, and Header() is called to display the header.
+ # The font which was set before calling is automatically restored. There is no need to call SetFont() again if you want to continue with the same font. The same is true for colors and line width.
+ # The origin of the coordinate system is at the top-left corner and increasing ordinates go downwards.
+ # @param string :orientation Page orientation. Possible values are (case insensitive):P or Portrait L or Landscape The default value is the one passed to the constructor.
+ # @since 1.0
+ # @see TCPDF(), Header(), Footer(), SetMargins()
+ #
+ def AddPage(orientation='')
+ #Start a new page
+ if (@state==0)
+ Open();
+ end
+ family=@font_family;
+ style=@font_style + (@underline ? 'U' : '');
+ size=@font_size_pt;
+ lw=@line_width;
+ dc=@draw_color;
+ fc=@fill_color;
+ tc=@text_color;
+ cf=@color_flag;
+ if (@page>0)
+ #Page footer
+ @in_footer=true;
+ Footer();
+ @in_footer=false;
+ #Close page
+ endpage();
+ end
+ #Start new page
+ beginpage(orientation);
+ #Set line cap style to square
+ out('2 J');
+ #Set line width
+ @line_width = lw;
+ out(sprintf('%.2f w', lw*@k));
+ #Set font
+ if (family)
+ SetFont(family, style, size);
+ end
+ #Set colors
+ @draw_color = dc;
+ if (dc!='0 G')
+ out(dc);
+ end
+ @fill_color = fc;
+ if (fc!='0 g')
+ out(fc);
+ end
+ @text_color = tc;
+ @color_flag = cf;
+ #Page header
+ Header();
+ #Restore line width
+ if (@line_width != lw)
+ @line_width = lw;
+ out(sprintf('%.2f w', lw*@k));
+ end
+ #Restore font
+ if (family)
+ SetFont(family, style, size);
+ end
+ #Restore colors
+ if (@draw_color != dc)
+ @draw_color = dc;
+ out(dc);
+ end
+ if (@fill_color != fc)
+ @fill_color = fc;
+ out(fc);
+ end
+ @text_color = tc;
+ @color_flag = cf;
+ end
+ alias_method :add_page, :AddPage
+
#
# Rotate object.
# @param float :angle angle in degrees for counter-clockwise rotation
@@ -804,2484 +804,2484 @@ class TCPDF
#
def Rotate(angle, x="", y="")
- if (x == '')
- x = @x;
- end
-
- if (y == '')
- y = @y;
- end
-
- if (@rtl)
- x = @w - x;
- angle = -@angle;
- end
-
- y = (@h - y) * @k;
- x *= @k;
-
- # calculate elements of transformation matrix
- tm = []
- tm[0] = ::Math::cos(deg2rad(angle));
- tm[1] = ::Math::sin(deg2rad(angle));
- tm[2] = -tm[1];
- tm[3] = tm[0];
- tm[4] = x + tm[1] * y - tm[0] * x;
- tm[5] = y - tm[0] * y - tm[1] * x;
-
- # generate the transformation matrix
- Transform(tm);
- end
- alias_method :rotate, :Rotate
-
- #
- # Starts a 2D tranformation saving current graphic state.
- # This function must be called before scaling, mirroring, translation, rotation and skewing.
- # Use StartTransform() before, and StopTransform() after the transformations to restore the normal behavior.
- #
- def StartTransform
- out('q');
- end
- alias_method :start_transform, :StartTransform
-
- #
- # Stops a 2D tranformation restoring previous graphic state.
- # This function must be called after scaling, mirroring, translation, rotation and skewing.
- # Use StartTransform() before, and StopTransform() after the transformations to restore the normal behavior.
- #
- def StopTransform
- out('Q');
- end
- alias_method :stop_transform, :StopTransform
-
- #
- # Apply graphic transformations.
- # @since 2.1.000 (2008-01-07)
- # @see StartTransform(), StopTransform()
- #
- def Transform(tm)
- x = out(sprintf('%.3f %.3f %.3f %.3f %.3f %.3f cm', tm[0], tm[1], tm[2], tm[3], tm[4], tm[5]));
- end
- alias_method :transform, :Transform
-
- #
- # Set header data.
- # @param string :ln header image logo
- # @param string :lw header image logo width in mm
- # @param string :ht string to print as title on document header
- # @param string :hs string to print on document header
- #
- def SetHeaderData(ln="", lw=0, ht="", hs="")
- @header_logo = ln || ""
- @header_logo_width = lw || 0
- @header_title = ht || ""
- @header_string = hs || ""
- end
- alias_method :set_header_data, :SetHeaderData
-
- #
- # Set header margin.
- # (minimum distance between header and top page margin)
- # @param int :hm distance in millimeters
- #
- def SetHeaderMargin(hm=10)
- @header_margin = hm;
- end
- alias_method :set_header_margin, :SetHeaderMargin
-
- #
- # Set footer margin.
- # (minimum distance between footer and bottom page margin)
- # @param int :fm distance in millimeters
- #
- def SetFooterMargin(fm=10)
- @footer_margin = fm;
- end
- alias_method :set_footer_margin, :SetFooterMargin
-
- #
- # Set a flag to print page header.
- # @param boolean :val set to true to print the page header (default), false otherwise.
- #
- def SetPrintHeader(val=true)
- @print_header = val;
- end
- alias_method :set_print_header, :SetPrintHeader
-
- #
- # Set a flag to print page footer.
- # @param boolean :value set to true to print the page footer (default), false otherwise.
- #
- def SetPrintFooter(val=true)
- @print_footer = val;
- end
- alias_method :set_print_footer, :SetPrintFooter
-
- #
- # This method is used to render the page header.
- # It is automatically called by AddPage() and could be overwritten in your own inherited class.
- #
- def Header()
- if (@print_header)
- if (@original_l_margin.nil?)
- @original_l_margin = @l_margin;
- end
- if (@original_r_margin.nil?)
- @original_r_margin = @r_margin;
- end
-
- #set current position
- SetXY(@original_l_margin, @header_margin);
-
- if ((@header_logo) and (@header_logo != @@k_blank_image))
- Image(@header_logo, @original_l_margin, @header_margin, @header_logo_width);
- else
- @img_rb_y = GetY();
- end
-
- cell_height = ((@@k_cell_height_ratio * @header_font[2]) / @k).round(2)
-
- header_x = @original_l_margin + (@header_logo_width * 1.05); #set left margin for text data cell
-
- # header title
- SetFont(@header_font[0], 'B', @header_font[2] + 1);
- SetX(header_x);
- Cell(@header_width, cell_height, @header_title, 0, 1, 'L');
-
- # header string
- SetFont(@header_font[0], @header_font[1], @header_font[2]);
- SetX(header_x);
- MultiCell(@header_width, cell_height, @header_string, 0, 'L', 0);
-
- # print an ending header line
- if (@header_width)
- #set style for cell border
- SetLineWidth(0.3);
- SetDrawColor(0, 0, 0);
- SetY(1 + (@img_rb_y > GetY() ? @img_rb_y : GetY()));
- SetX(@original_l_margin);
- Cell(0, 0, '', 'T', 0, 'C');
- end
-
- #restore position
- SetXY(@original_l_margin, @t_margin);
- end
- end
- alias_method :header, :Header
-
- #
- # This method is used to render the page footer.
- # It is automatically called by AddPage() and could be overwritten in your own inherited class.
- #
- def Footer()
- if (@print_footer)
-
- if (@original_l_margin.nil?)
- @original_l_margin = @l_margin;
- end
- if (@original_r_margin.nil?)
- @original_r_margin = @r_margin;
- end
-
- #set font
- SetFont(@footer_font[0], @footer_font[1] , @footer_font[2]);
- #set style for cell border
- line_width = 0.3;
- SetLineWidth(line_width);
- SetDrawColor(0, 0, 0);
-
- footer_height = ((@@k_cell_height_ratio * @footer_font[2]) / @k).round; #footer height, was , 2)
- #get footer y position
- footer_y = @h - @footer_margin - footer_height;
- #set current position
- SetXY(@original_l_margin, footer_y);
- SetXY(@original_l_margin, footer_y);
-
- #Print page number
- Cell(0, footer_height, @l['w_page'] + " " + PageNo().to_s + ' / {nb}', 'T', 0, 'R');
- end
- end
- alias_method :footer, :Footer
-
- #
- # Returns the current page number.
- # @return int page number
- # @since 1.0
- # @see alias_nb_pages()
- #
- def PageNo()
- #Get current page number
- return @page;
- end
- alias_method :page_no, :PageNo
-
- #
- # Defines the color used for all drawing operations (lines, rectangles and cell borders). It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page.
- # @param int :r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255
- # @param int :g Green component (between 0 and 255)
- # @param int :b Blue component (between 0 and 255)
- # @since 1.3
- # @see SetFillColor(), SetTextColor(), Line(), Rect(), Cell(), MultiCell()
- #
- def SetDrawColor(r, g=-1, b=-1)
- #Set color for all stroking operations
- if ((r==0 and g==0 and b==0) or g==-1)
- @draw_color=sprintf('%.3f G', r/255.0);
- else
- @draw_color=sprintf('%.3f %.3f %.3f RG', r/255.0, g/255.0, b/255.0);
- end
- if (@page>0)
- out(@draw_color);
- end
- end
- alias_method :set_draw_color, :SetDrawColor
+ if (x == '')
+ x = @x;
+ end
- #
- # Defines the color used for all filling operations (filled rectangles and cell backgrounds). It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page.
- # @param int :r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255
- # @param int :g Green component (between 0 and 255)
- # @param int :b Blue component (between 0 and 255)
- # @param boolean :storeprev if true stores the RGB array on :prevfill_color variable.
- # @since 1.3
- # @see SetDrawColor(), SetTextColor(), Rect(), Cell(), MultiCell()
- #
- def SetFillColor(r, g=-1, b=-1, storeprev=false)
- #Set color for all filling operations
- if ((r==0 and g==0 and b==0) or g==-1)
- @fill_color=sprintf('%.3f g', r/255.0);
- else
- @fill_color=sprintf('%.3f %.3f %.3f rg', r/255.0, g/255.0, b/255.0);
- end
- @color_flag=(@fill_color!=@text_color);
- if (@page>0)
- out(@fill_color);
- end
- if (storeprev)
- # store color as previous value
- @prevfill_color = [r, g, b]
- end
- end
- alias_method :set_fill_color, :SetFillColor
+ if (y == '')
+ y = @y;
+ end
- # This hasn't been ported from tcpdf, it's a variation on SetTextColor for setting cmyk colors
- def SetCmykFillColor(c, m, y, k, storeprev=false)
- #Set color for all filling operations
- @fill_color=sprintf('%.3f %.3f %.3f %.3f k', c, m, y, k);
- @color_flag=(@fill_color!=@text_color);
- if (storeprev)
- # store color as previous value
- @prevtext_color = [c, m, y, k]
- end
- if (@page>0)
- out(@fill_color);
- end
- end
- alias_method :set_cmyk_fill_color, :SetCmykFillColor
+ if (@rtl)
+ x = @w - x;
+ angle = -@angle;
+ end
- #
- # Defines the color used for text. It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page.
- # @param int :r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255
- # @param int :g Green component (between 0 and 255)
- # @param int :b Blue component (between 0 and 255)
- # @param boolean :storeprev if true stores the RGB array on :prevtext_color variable.
- # @since 1.3
- # @see SetDrawColor(), SetFillColor(), Text(), Cell(), MultiCell()
- #
- def SetTextColor(r, g=-1, b=-1, storeprev=false)
- #Set color for text
- if ((r==0 and :g==0 and :b==0) or :g==-1)
- @text_color=sprintf('%.3f g', r/255.0);
- else
- @text_color=sprintf('%.3f %.3f %.3f rg', r/255.0, g/255.0, b/255.0);
- end
- @color_flag=(@fill_color!=@text_color);
- if (storeprev)
- # store color as previous value
- @prevtext_color = [r, g, b]
- end
- end
- alias_method :set_text_color, :SetTextColor
+ y = (@h - y) * @k;
+ x *= @k;
- # This hasn't been ported from tcpdf, it's a variation on SetTextColor for setting cmyk colors
- def SetCmykTextColor(c, m, y, k, storeprev=false)
- #Set color for text
- @text_color=sprintf('%.3f %.3f %.3f %.3f k', c, m, y, k);
- @color_flag=(@fill_color!=@text_color);
- if (storeprev)
- # store color as previous value
- @prevtext_color = [c, m, y, k]
- end
- end
- alias_method :set_cmyk_text_color, :SetCmykTextColor
-
- #
- # Returns the length of a string in user unit. A font must be selected.
- # Support UTF-8 Unicode [Nicola Asuni, 2005-01-02]
- # @param string :s The string whose length is to be computed
- # @return int
- # @since 1.2
- #
- def GetStringWidth(s)
- #Get width of a string in the current font
- s = s.to_s;
- cw = @current_font['cw']
- w = 0;
- if (@is_unicode)
- unicode = UTF8StringToArray(s);
- unicode.each do |char|
- if (!cw[char].nil?)
- w += cw[char];
- # This should not happen. UTF8StringToArray should guarentee the array is ascii values.
- # elsif (c!cw[char[0]].nil?)
- # w += cw[char[0]];
- # elsif (!cw[char.chr].nil?)
- # w += cw[char.chr];
- elsif (!@current_font['desc']['MissingWidth'].nil?)
- w += @current_font['desc']['MissingWidth']; # set default size
- else
- w += 500;
- end
- end
- else
- s.each_byte do |c|
- if cw[c]
- w += cw[c];
- elsif cw[?c]
- w += cw[?c]
- end
- end
- end
- return (w * @font_size / 1000.0);
- end
- alias_method :get_string_width, :GetStringWidth
+ # calculate elements of transformation matrix
+ tm = []
+ tm[0] = ::Math::cos(deg2rad(angle));
+ tm[1] = ::Math::sin(deg2rad(angle));
+ tm[2] = -tm[1];
+ tm[3] = tm[0];
+ tm[4] = x + tm[1] * y - tm[0] * x;
+ tm[5] = y - tm[0] * y - tm[1] * x;
- #
- # Defines the line width. By default, the value equals 0.2 mm. The method can be called before the first page is created and the value is retained from page to page.
- # @param float :width The width.
- # @since 1.0
- # @see Line(), Rect(), Cell(), MultiCell()
- #
- def SetLineWidth(width)
- #Set line width
- @line_width = width;
- if (@page>0)
- out(sprintf('%.2f w', width*@k));
- end
- end
- alias_method :set_line_width, :SetLineWidth
+ # generate the transformation matrix
+ Transform(tm);
+ end
+ alias_method :rotate, :Rotate
- #
- # Draws a line between two points.
- # @param float :x1 Abscissa of first point
- # @param float :y1 Ordinate of first point
- # @param float :x2 Abscissa of second point
- # @param float :y2 Ordinate of second point
- # @since 1.0
- # @see SetLineWidth(), SetDrawColor()
- #
- def Line(x1, y1, x2, y2)
- #Draw a line
- out(sprintf('%.2f %.2f m %.2f %.2f l S', x1 * @k, (@h - y1) * @k, x2 * @k, (@h - y2) * @k));
- end
- alias_method :line, :Line
+ #
+ # Starts a 2D tranformation saving current graphic state.
+ # This function must be called before scaling, mirroring, translation, rotation and skewing.
+ # Use StartTransform() before, and StopTransform() after the transformations to restore the normal behavior.
+ #
+ def StartTransform
+ out('q');
+ end
+ alias_method :start_transform, :StartTransform
- def Circle(mid_x, mid_y, radius, style='')
- mid_y = (@h-mid_y)*@k
- out(sprintf("q\n")) # postscript content in pdf
- # init line type etc. with /GSD gs G g (grey) RG rg (RGB) w=line witdh etc.
- out(sprintf("1 j\n")) # line join
- # translate ("move") circle to mid_y, mid_y
- out(sprintf("1 0 0 1 %f %f cm", mid_x, mid_y))
- kappa = 0.5522847498307933984022516322796
- # Quadrant 1
- x_s = 0.0 # 12 o'clock
- y_s = 0.0 + radius
- x_e = 0.0 + radius # 3 o'clock
- y_e = 0.0
- out(sprintf("%f %f m\n", x_s, y_s)) # move to 12 o'clock
- # cubic bezier control point 1, start height and kappa * radius to the right
- bx_e1 = x_s + (radius * kappa)
- by_e1 = y_s
- # cubic bezier control point 2, end and kappa * radius above
- bx_e2 = x_e
- by_e2 = y_e + (radius * kappa)
- # draw cubic bezier from current point to x_e/y_e with bx_e1/by_e1 and bx_e2/by_e2 as bezier control points
- out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
- # Quadrant 2
- x_s = x_e
- y_s = y_e # 3 o'clock
- x_e = 0.0
- y_e = 0.0 - radius # 6 o'clock
- bx_e1 = x_s # cubic bezier point 1
- by_e1 = y_s - (radius * kappa)
- bx_e2 = x_e + (radius * kappa) # cubic bezier point 2
- by_e2 = y_e
- out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
- # Quadrant 3
- x_s = x_e
- y_s = y_e # 6 o'clock
- x_e = 0.0 - radius
- y_e = 0.0 # 9 o'clock
- bx_e1 = x_s - (radius * kappa) # cubic bezier point 1
- by_e1 = y_s
- bx_e2 = x_e # cubic bezier point 2
- by_e2 = y_e - (radius * kappa)
- out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
- # Quadrant 4
- x_s = x_e
- y_s = y_e # 9 o'clock
- x_e = 0.0
- y_e = 0.0 + radius # 12 o'clock
- bx_e1 = x_s # cubic bezier point 1
- by_e1 = y_s + (radius * kappa)
- bx_e2 = x_e - (radius * kappa) # cubic bezier point 2
- by_e2 = y_e
- out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
- if style=='F'
- op='f'
- elsif style=='FD' or style=='DF'
- op='b'
- else
- op='s'
- end
- out(sprintf("#{op}\n")) # stroke circle, do not fill and close path
- # for filling etc. b, b*, f, f*
- out(sprintf("Q\n")) # finish postscript in PDF
+ #
+ # Stops a 2D tranformation restoring previous graphic state.
+ # This function must be called after scaling, mirroring, translation, rotation and skewing.
+ # Use StartTransform() before, and StopTransform() after the transformations to restore the normal behavior.
+ #
+ def StopTransform
+ out('Q');
end
- alias_method :circle, :Circle
+ alias_method :stop_transform, :StopTransform
- #
- # Outputs a rectangle. It can be drawn (border only), filled (with no border) or both.
- # @param float :x Abscissa of upper-left corner
- # @param float :y Ordinate of upper-left corner
- # @param float :w Width
- # @param float :h Height
- # @param string :style Style of rendering. Possible values are:D or empty string: draw (default) F: fill DF or FD: draw and fill
- # @since 1.0
- # @see SetLineWidth(), SetDrawColor(), SetFillColor()
- #
- def Rect(x, y, w, h, style='')
- #Draw a rectangle
- if (style=='F')
- op='f';
- elsif (style=='FD' or style=='DF')
- op='B';
- else
- op='S';
- end
- out(sprintf('%.2f %.2f %.2f %.2f re %s', x * @k, (@h - y) * @k, w * @k, -h * @k, op));
- end
- alias_method :rect, :Rect
+ #
+ # Apply graphic transformations.
+ # @since 2.1.000 (2008-01-07)
+ # @see StartTransform(), StopTransform()
+ #
+ def Transform(tm)
+ x = out(sprintf('%.3f %.3f %.3f %.3f %.3f %.3f cm', tm[0], tm[1], tm[2], tm[3], tm[4], tm[5]));
+ end
+ alias_method :transform, :Transform
- #
- # Imports a TrueType or Type1 font and makes it available. It is necessary to generate a font definition file first with the makefont.rb utility. The definition file (and the font file itself when embedding) must be present either in the current directory or in the one indicated by FPDF_FONTPATH if the constant is defined. If it could not be found, the error "Could not include font definition file" is generated.
- # Support UTF-8 Unicode [Nicola Asuni, 2005-01-02].
- # Example :
- #
- # :pdf->AddFont('Comic','I');
- # # is equivalent to:
- # :pdf->AddFont('Comic','I','comici.rb');
- #
- # @param string :family Font family. The name can be chosen arbitrarily. If it is a standard family name, it will override the corresponding font.
- # @param string :style Font style. Possible values are (case insensitive):empty string: regular (default) B: bold I: italic BI or IB: bold italic
- # @param string :file The font definition file. By default, the name is built from the family and style, in lower case with no space.
- # @since 1.5
- # @see SetFont()
- #
- def AddFont(family, style='', file='')
- if (family.empty?)
- return;
- end
-
- #Add a TrueType or Type1 font
- family = family.downcase
- if ((!@is_unicode) and (family == 'arial'))
- family = 'helvetica';
- end
-
- style=style.upcase
- style=style.gsub('U','');
- if (style == 'IB')
- style = 'BI';
- end
-
- fontkey = family + style;
- # check if the font has been already added
- if !@fonts[fontkey].nil?
- return;
- end
-
- if (file=='')
- file = family.gsub(' ', '') + style.downcase + '.rb';
- end
- font_file_name = getfontpath(file)
- if (font_file_name.nil?)
- # try to load the basic file without styles
- file = family.gsub(' ', '') + '.rb';
- font_file_name = getfontpath(file)
- end
- if font_file_name.nil?
- Error("Could not find font #{file}.")
- end
- require(getfontpath(file))
- font_desc = TCPDFFontDescriptor.font(file)
-
- if (font_desc[:name].nil? and @@fpdf_charwidths.nil?)
- Error('Could not include font definition file');
- end
-
- i = @fonts.length+1;
- if (@is_unicode)
- @fonts[fontkey] = {'i' => i, 'type' => font_desc[:type], 'name' => font_desc[:name], 'desc' => font_desc[:desc], 'up' => font_desc[:up], 'ut' => font_desc[:ut], 'cw' => font_desc[:cw], 'enc' => font_desc[:enc], 'file' => font_desc[:file], 'ctg' => font_desc[:ctg], 'cMap' => font_desc[:cMap], 'registry' => font_desc[:registry]}
- @@fpdf_charwidths[fontkey] = font_desc[:cw];
- else
- @fonts[fontkey]={'i' => i, 'type'=>'core', 'name'=>@core_fonts[fontkey], 'up'=>-100, 'ut'=>50, 'cw' => font_desc[:cw]}
- @@fpdf_charwidths[fontkey] = font_desc[:cw];
- end
-
- if (!font_desc[:diff].nil? and (!font_desc[:diff].empty?))
- #Search existing encodings
- d=0;
- nb=@diffs.length;
- 1.upto(nb) do |i|
- if (@diffs[i]== font_desc[:diff])
- d = i;
- break;
- end
- end
- if (d==0)
- d = nb+1;
- @diffs[d] = font_desc[:diff];
- end
- @fonts[fontkey]['diff'] = d;
- end
- if (font_desc[:file] and font_desc[:file].length > 0)
- if (font_desc[:type] == "TrueType") or (font_desc[:type] == "TrueTypeUnicode")
- @font_files[font_desc[:file]] = {'length1' => font_desc[:originalsize]}
- else
- @font_files[font_desc[:file]] = {'length1' => font_desc[:size1], 'length2' => font_desc[:size2]}
- end
- end
- end
- alias_method :add_font, :AddFont
+ #
+ # Set header data.
+ # @param string :ln header image logo
+ # @param string :lw header image logo width in mm
+ # @param string :ht string to print as title on document header
+ # @param string :hs string to print on document header
+ #
+ def SetHeaderData(ln="", lw=0, ht="", hs="")
+ @header_logo = ln || ""
+ @header_logo_width = lw || 0
+ @header_title = ht || ""
+ @header_string = hs || ""
+ end
+ alias_method :set_header_data, :SetHeaderData
- #
- # Sets the font used to print character strings. It is mandatory to call this method at least once before printing text or the resulting document would not be valid.
- # The font can be either a standard one or a font added via the AddFont() method. Standard fonts use Windows encoding cp1252 (Western Europe).
- # The method can be called before the first page is created and the font is retained from page to page.
- # If you just wish to change the current font size, it is simpler to call SetFontSize().
- # Note: for the standard fonts, the font metric files must be accessible. There are three possibilities for this:They are in the current directory (the one where the running script lies) They are in one of the directories defined by the include_path parameter They are in the directory defined by the FPDF_FONTPATH constant
- # Example for the last case (note the trailing slash):
- #
- # define('FPDF_FONTPATH','/home/www/font/');
- # require('tcpdf.rb');
- #
- # #Times regular 12
- # :pdf->SetFont('Times');
- # #Arial bold 14
- # :pdf->SetFont('Arial','B',14);
- # #Removes bold
- # :pdf->SetFont('');
- # #Times bold, italic and underlined 14
- # :pdf->SetFont('Times','BIU');
- #
- # If the file corresponding to the requested font is not found, the error "Could not include font metric file" is generated.
- # @param string :family Family font. It can be either a name defined by AddFont() or one of the standard families (case insensitive):Courier (fixed-width) Helvetica or Arial (synonymous; sans serif) Times (serif) Symbol (symbolic) ZapfDingbats (symbolic) It is also possible to pass an empty string. In that case, the current family is retained.
- # @param string :style Font style. Possible values are (case insensitive):empty string: regular B: bold I: italic U: underline or any combination. The default value is regular. Bold and italic styles do not apply to Symbol and ZapfDingbats
- # @param float :size Font size in points. The default value is the current size. If no size has been specified since the beginning of the document, the value taken is 12
- # @since 1.0
- # @see AddFont(), SetFontSize(), Cell(), MultiCell(), Write()
- #
- def SetFont(family, style='', size=0)
- # save previous values
- @prevfont_family = @font_family;
- @prevfont_style = @font_style;
-
- family=family.downcase;
- if (family=='')
- family=@font_family;
- end
- if ((!@is_unicode) and (family == 'arial'))
- family = 'helvetica';
- elsif ((family=="symbol") or (family=="zapfdingbats"))
- style='';
- end
-
- style=style.upcase;
-
- if (style.include?('U'))
- @underline=true;
- style= style.gsub('U','');
- else
- @underline=false;
- end
- if (style=='IB')
- style='BI';
- end
- if (size==0)
- size=@font_size_pt;
- end
-
- # try to add font (if not already added)
- if (@is_unicode)
- AddFont(family, style);
- end
-
- #Test if font is already selected
- if ((@font_family == family) and (@font_style == style) and (@font_size_pt == size))
- return;
- end
-
- fontkey = family + style;
- style = '' if (@fonts[fontkey].nil? and !@fonts[family].nil?)
-
- #Test if used for the first time
- if (@fonts[fontkey].nil?)
- #Check if one of the standard fonts
- if (!@core_fonts[fontkey].nil?)
- if @@fpdf_charwidths[fontkey].nil?
- #Load metric file
- file = family;
- if ((family!='symbol') and (family!='zapfdingbats'))
- file += style.downcase;
- end
- if (getfontpath(file + '.rb').nil?)
- # try to load the basic file without styles
- file = family;
- fontkey = family;
- end
- require(getfontpath(file + '.rb'));
- font_desc = TCPDFFontDescriptor.font(file)
- if ((@is_unicode and ctg.nil?) or ((!@is_unicode) and (@@fpdf_charwidths[fontkey].nil?)) )
- Error("Could not include font metric file [" + fontkey + "]: " + getfontpath(file + ".rb"));
- end
- end
- i = @fonts.length + 1;
-
- if (@is_unicode)
- @fonts[fontkey] = {'i' => i, 'type' => font_desc[:type], 'name' => font_desc[:name], 'desc' => font_desc[:desc], 'up' => font_desc[:up], 'ut' => font_desc[:ut], 'cw' => font_desc[:cw], 'enc' => font_desc[:enc], 'file' => font_desc[:file], 'ctg' => font_desc[:ctg]}
- @@fpdf_charwidths[fontkey] = font_desc[:cw];
- else
- @fonts[fontkey] = {'i' => i, 'type'=>'core', 'name'=>@core_fonts[fontkey], 'up'=>-100, 'ut'=>50, 'cw' => font_desc[:cw]}
- @@fpdf_charwidths[fontkey] = font_desc[:cw];
- end
- else
- Error('Undefined font: ' + family + ' ' + style);
- end
- end
- #Select it
- @font_family = family;
- @font_style = style;
- @font_size_pt = size;
- @font_size = size / @k;
- @current_font = @fonts[fontkey]; # was & may need deep copy?
- if (@page>0)
- out(sprintf('BT /F%d %.2f Tf ET', @current_font['i'], @font_size_pt));
- end
- end
- alias_method :set_font, :SetFont
+ #
+ # Set header margin.
+ # (minimum distance between header and top page margin)
+ # @param int :hm distance in millimeters
+ #
+ def SetHeaderMargin(hm=10)
+ @header_margin = hm;
+ end
+ alias_method :set_header_margin, :SetHeaderMargin
- #
- # Defines the size of the current font.
- # @param float :size The size (in points)
- # @since 1.0
- # @see SetFont()
- #
- def SetFontSize(size)
- #Set font size in points
- if (@font_size_pt== size)
- return;
- end
- @font_size_pt = size;
- @font_size = size.to_f / @k;
- if (@page > 0)
- out(sprintf('BT /F%d %.2f Tf ET', @current_font['i'], @font_size_pt));
- end
- end
- alias_method :set_font_size, :SetFontSize
+ #
+ # Set footer margin.
+ # (minimum distance between footer and bottom page margin)
+ # @param int :fm distance in millimeters
+ #
+ def SetFooterMargin(fm=10)
+ @footer_margin = fm;
+ end
+ alias_method :set_footer_margin, :SetFooterMargin
- #
- # Creates a new internal link and returns its identifier. An internal link is a clickable area which directs to another place within the document.
- # The identifier can then be passed to Cell(), Write(), Image() or Link(). The destination is defined with SetLink().
- # @since 1.5
- # @see Cell(), Write(), Image(), Link(), SetLink()
- #
- def AddLink()
- #Create a new internal link
- n=@links.length+1;
- @links[n]=[0,0];
- return n;
- end
- alias_method :add_link, :AddLink
+ #
+ # Set a flag to print page header.
+ # @param boolean :val set to true to print the page header (default), false otherwise.
+ #
+ def SetPrintHeader(val=true)
+ @print_header = val;
+ end
+ alias_method :set_print_header, :SetPrintHeader
- #
- # Defines the page and position a link points to
- # @param int :link The link identifier returned by AddLink()
- # @param float :y Ordinate of target position; -1 indicates the current position. The default value is 0 (top of page)
- # @param int :page Number of target page; -1 indicates the current page. This is the default value
- # @since 1.5
- # @see AddLink()
- #
- def SetLink(link, y=0, page=-1)
- #Set destination of internal link
- if (y==-1)
- y=@y;
- end
- if (page==-1)
- page=@page;
- end
- @links[link] = [page, y]
- end
- alias_method :set_link, :SetLink
+ #
+ # Set a flag to print page footer.
+ # @param boolean :value set to true to print the page footer (default), false otherwise.
+ #
+ def SetPrintFooter(val=true)
+ @print_footer = val;
+ end
+ alias_method :set_print_footer, :SetPrintFooter
- #
- # Puts a link on a rectangular area of the page. Text or image links are generally put via Cell(), Write() or Image(), but this method can be useful for instance to define a clickable area inside an image.
- # @param float :x Abscissa of the upper-left corner of the rectangle
- # @param float :y Ordinate of the upper-left corner of the rectangle
- # @param float :w Width of the rectangle
- # @param float :h Height of the rectangle
- # @param mixed :link URL or identifier returned by AddLink()
- # @since 1.5
- # @see AddLink(), Cell(), Write(), Image()
- #
- def Link(x, y, w, h, link)
- #Put a link on the page
- @page_links ||= Array.new
- @page_links[@page] ||= Array.new
+ #
+ # This method is used to render the page header.
+ # It is automatically called by AddPage() and could be overwritten in your own inherited class.
+ #
+ def Header()
+ if (@print_header)
+ if (@original_l_margin.nil?)
+ @original_l_margin = @l_margin;
+ end
+ if (@original_r_margin.nil?)
+ @original_r_margin = @r_margin;
+ end
+
+ #set current position
+ SetXY(@original_l_margin, @header_margin);
+
+ if ((@header_logo) and (@header_logo != @@k_blank_image))
+ Image(@header_logo, @original_l_margin, @header_margin, @header_logo_width);
+ else
+ @img_rb_y = GetY();
+ end
+
+ cell_height = ((@@k_cell_height_ratio * @header_font[2]) / @k).round(2)
+
+ header_x = @original_l_margin + (@header_logo_width * 1.05); #set left margin for text data cell
+
+ # header title
+ SetFont(@header_font[0], 'B', @header_font[2] + 1);
+ SetX(header_x);
+ Cell(@header_width, cell_height, @header_title, 0, 1, 'L');
+
+ # header string
+ SetFont(@header_font[0], @header_font[1], @header_font[2]);
+ SetX(header_x);
+ MultiCell(@header_width, cell_height, @header_string, 0, 'L', 0);
+
+ # print an ending header line
+ if (@header_width)
+ #set style for cell border
+ SetLineWidth(0.3);
+ SetDrawColor(0, 0, 0);
+ SetY(1 + (@img_rb_y > GetY() ? @img_rb_y : GetY()));
+ SetX(@original_l_margin);
+ Cell(0, 0, '', 'T', 0, 'C');
+ end
+
+ #restore position
+ SetXY(@original_l_margin, @t_margin);
+ end
+ end
+ alias_method :header, :Header
+
+ #
+ # This method is used to render the page footer.
+ # It is automatically called by AddPage() and could be overwritten in your own inherited class.
+ #
+ def Footer()
+ if (@print_footer)
+
+ if (@original_l_margin.nil?)
+ @original_l_margin = @l_margin;
+ end
+ if (@original_r_margin.nil?)
+ @original_r_margin = @r_margin;
+ end
+
+ #set font
+ SetFont(@footer_font[0], @footer_font[1] , @footer_font[2]);
+ #set style for cell border
+ line_width = 0.3;
+ SetLineWidth(line_width);
+ SetDrawColor(0, 0, 0);
+
+ footer_height = ((@@k_cell_height_ratio * @footer_font[2]) / @k).round; #footer height, was , 2)
+ #get footer y position
+ footer_y = @h - @footer_margin - footer_height;
+ #set current position
+ SetXY(@original_l_margin, footer_y);
+ SetXY(@original_l_margin, footer_y);
+
+ #Print page number
+ Cell(0, footer_height, @l['w_page'] + " " + PageNo().to_s + ' / {nb}', 'T', 0, 'R');
+ end
+ end
+ alias_method :footer, :Footer
+
+ #
+ # Returns the current page number.
+ # @return int page number
+ # @since 1.0
+ # @see alias_nb_pages()
+ #
+ def PageNo()
+ #Get current page number
+ return @page;
+ end
+ alias_method :page_no, :PageNo
+
+ #
+ # Defines the color used for all drawing operations (lines, rectangles and cell borders). It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page.
+ # @param int :r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255
+ # @param int :g Green component (between 0 and 255)
+ # @param int :b Blue component (between 0 and 255)
+ # @since 1.3
+ # @see SetFillColor(), SetTextColor(), Line(), Rect(), Cell(), MultiCell()
+ #
+ def SetDrawColor(r, g=-1, b=-1)
+ #Set color for all stroking operations
+ if ((r==0 and g==0 and b==0) or g==-1)
+ @draw_color=sprintf('%.3f G', r/255.0);
+ else
+ @draw_color=sprintf('%.3f %.3f %.3f RG', r/255.0, g/255.0, b/255.0);
+ end
+ if (@page>0)
+ out(@draw_color);
+ end
+ end
+ alias_method :set_draw_color, :SetDrawColor
+
+ #
+ # Defines the color used for all filling operations (filled rectangles and cell backgrounds). It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page.
+ # @param int :r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255
+ # @param int :g Green component (between 0 and 255)
+ # @param int :b Blue component (between 0 and 255)
+ # @param boolean :storeprev if true stores the RGB array on :prevfill_color variable.
+ # @since 1.3
+ # @see SetDrawColor(), SetTextColor(), Rect(), Cell(), MultiCell()
+ #
+ def SetFillColor(r, g=-1, b=-1, storeprev=false)
+ #Set color for all filling operations
+ if ((r==0 and g==0 and b==0) or g==-1)
+ @fill_color=sprintf('%.3f g', r/255.0);
+ else
+ @fill_color=sprintf('%.3f %.3f %.3f rg', r/255.0, g/255.0, b/255.0);
+ end
+ @color_flag=(@fill_color!=@text_color);
+ if (@page>0)
+ out(@fill_color);
+ end
+ if (storeprev)
+ # store color as previous value
+ @prevfill_color = [r, g, b]
+ end
+ end
+ alias_method :set_fill_color, :SetFillColor
+
+ # This hasn't been ported from tcpdf, it's a variation on SetTextColor for setting cmyk colors
+ def SetCmykFillColor(c, m, y, k, storeprev=false)
+ #Set color for all filling operations
+ @fill_color=sprintf('%.3f %.3f %.3f %.3f k', c, m, y, k);
+ @color_flag=(@fill_color!=@text_color);
+ if (storeprev)
+ # store color as previous value
+ @prevtext_color = [c, m, y, k]
+ end
+ if (@page>0)
+ out(@fill_color);
+ end
+ end
+ alias_method :set_cmyk_fill_color, :SetCmykFillColor
+
+ #
+ # Defines the color used for text. It can be expressed in RGB components or gray scale. The method can be called before the first page is created and the value is retained from page to page.
+ # @param int :r If g et b are given, red component; if not, indicates the gray level. Value between 0 and 255
+ # @param int :g Green component (between 0 and 255)
+ # @param int :b Blue component (between 0 and 255)
+ # @param boolean :storeprev if true stores the RGB array on :prevtext_color variable.
+ # @since 1.3
+ # @see SetDrawColor(), SetFillColor(), Text(), Cell(), MultiCell()
+ #
+ def SetTextColor(r, g=-1, b=-1, storeprev=false)
+ #Set color for text
+ if ((r==0 and :g==0 and :b==0) or :g==-1)
+ @text_color=sprintf('%.3f g', r/255.0);
+ else
+ @text_color=sprintf('%.3f %.3f %.3f rg', r/255.0, g/255.0, b/255.0);
+ end
+ @color_flag=(@fill_color!=@text_color);
+ if (storeprev)
+ # store color as previous value
+ @prevtext_color = [r, g, b]
+ end
+ end
+ alias_method :set_text_color, :SetTextColor
+
+ # This hasn't been ported from tcpdf, it's a variation on SetTextColor for setting cmyk colors
+ def SetCmykTextColor(c, m, y, k, storeprev=false)
+ #Set color for text
+ @text_color=sprintf('%.3f %.3f %.3f %.3f k', c, m, y, k);
+ @color_flag=(@fill_color!=@text_color);
+ if (storeprev)
+ # store color as previous value
+ @prevtext_color = [c, m, y, k]
+ end
+ end
+ alias_method :set_cmyk_text_color, :SetCmykTextColor
+
+ #
+ # Returns the length of a string in user unit. A font must be selected.
+ # Support UTF-8 Unicode [Nicola Asuni, 2005-01-02]
+ # @param string :s The string whose length is to be computed
+ # @return int
+ # @since 1.2
+ #
+ def GetStringWidth(s)
+ #Get width of a string in the current font
+ s = s.to_s;
+ cw = @current_font['cw']
+ w = 0;
+ if (@is_unicode)
+ unicode = UTF8StringToArray(s);
+ unicode.each do |char|
+ if (!cw[char].nil?)
+ w += cw[char];
+ # This should not happen. UTF8StringToArray should guarentee the array is ascii values.
+ # elsif (c!cw[char[0]].nil?)
+ # w += cw[char[0]];
+ # elsif (!cw[char.chr].nil?)
+ # w += cw[char.chr];
+ elsif (!@current_font['desc']['MissingWidth'].nil?)
+ w += @current_font['desc']['MissingWidth']; # set default size
+ else
+ w += 500;
+ end
+ end
+ else
+ s.each_byte do |c|
+ if cw[c]
+ w += cw[c];
+ elsif cw[?c]
+ w += cw[?c]
+ end
+ end
+ end
+ return (w * @font_size / 1000.0);
+ end
+ alias_method :get_string_width, :GetStringWidth
+
+ #
+ # Defines the line width. By default, the value equals 0.2 mm. The method can be called before the first page is created and the value is retained from page to page.
+ # @param float :width The width.
+ # @since 1.0
+ # @see Line(), Rect(), Cell(), MultiCell()
+ #
+ def SetLineWidth(width)
+ #Set line width
+ @line_width = width;
+ if (@page>0)
+ out(sprintf('%.2f w', width*@k));
+ end
+ end
+ alias_method :set_line_width, :SetLineWidth
+
+ #
+ # Draws a line between two points.
+ # @param float :x1 Abscissa of first point
+ # @param float :y1 Ordinate of first point
+ # @param float :x2 Abscissa of second point
+ # @param float :y2 Ordinate of second point
+ # @since 1.0
+ # @see SetLineWidth(), SetDrawColor()
+ #
+ def Line(x1, y1, x2, y2)
+ #Draw a line
+ out(sprintf('%.2f %.2f m %.2f %.2f l S', x1 * @k, (@h - y1) * @k, x2 * @k, (@h - y2) * @k));
+ end
+ alias_method :line, :Line
+
+ def Circle(mid_x, mid_y, radius, style='')
+ mid_y = (@h-mid_y)*@k
+ out(sprintf("q\n")) # postscript content in pdf
+ # init line type etc. with /GSD gs G g (grey) RG rg (RGB) w=line witdh etc.
+ out(sprintf("1 j\n")) # line join
+ # translate ("move") circle to mid_y, mid_y
+ out(sprintf("1 0 0 1 %f %f cm", mid_x, mid_y))
+ kappa = 0.5522847498307933984022516322796
+ # Quadrant 1
+ x_s = 0.0 # 12 o'clock
+ y_s = 0.0 + radius
+ x_e = 0.0 + radius # 3 o'clock
+ y_e = 0.0
+ out(sprintf("%f %f m\n", x_s, y_s)) # move to 12 o'clock
+ # cubic bezier control point 1, start height and kappa * radius to the right
+ bx_e1 = x_s + (radius * kappa)
+ by_e1 = y_s
+ # cubic bezier control point 2, end and kappa * radius above
+ bx_e2 = x_e
+ by_e2 = y_e + (radius * kappa)
+ # draw cubic bezier from current point to x_e/y_e with bx_e1/by_e1 and bx_e2/by_e2 as bezier control points
+ out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
+ # Quadrant 2
+ x_s = x_e
+ y_s = y_e # 3 o'clock
+ x_e = 0.0
+ y_e = 0.0 - radius # 6 o'clock
+ bx_e1 = x_s # cubic bezier point 1
+ by_e1 = y_s - (radius * kappa)
+ bx_e2 = x_e + (radius * kappa) # cubic bezier point 2
+ by_e2 = y_e
+ out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
+ # Quadrant 3
+ x_s = x_e
+ y_s = y_e # 6 o'clock
+ x_e = 0.0 - radius
+ y_e = 0.0 # 9 o'clock
+ bx_e1 = x_s - (radius * kappa) # cubic bezier point 1
+ by_e1 = y_s
+ bx_e2 = x_e # cubic bezier point 2
+ by_e2 = y_e - (radius * kappa)
+ out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
+ # Quadrant 4
+ x_s = x_e
+ y_s = y_e # 9 o'clock
+ x_e = 0.0
+ y_e = 0.0 + radius # 12 o'clock
+ bx_e1 = x_s # cubic bezier point 1
+ by_e1 = y_s + (radius * kappa)
+ bx_e2 = x_e - (radius * kappa) # cubic bezier point 2
+ by_e2 = y_e
+ out(sprintf("%f %f %f %f %f %f c\n", bx_e1, by_e1, bx_e2, by_e2, x_e, y_e))
+ if style=='F'
+ op='f'
+ elsif style=='FD' or style=='DF'
+ op='b'
+ else
+ op='s'
+ end
+ out(sprintf("#{op}\n")) # stroke circle, do not fill and close path
+ # for filling etc. b, b*, f, f*
+ out(sprintf("Q\n")) # finish postscript in PDF
+ end
+ alias_method :circle, :Circle
+
+ #
+ # Outputs a rectangle. It can be drawn (border only), filled (with no border) or both.
+ # @param float :x Abscissa of upper-left corner
+ # @param float :y Ordinate of upper-left corner
+ # @param float :w Width
+ # @param float :h Height
+ # @param string :style Style of rendering. Possible values are:D or empty string: draw (default) F: fill DF or FD: draw and fill
+ # @since 1.0
+ # @see SetLineWidth(), SetDrawColor(), SetFillColor()
+ #
+ def Rect(x, y, w, h, style='')
+ #Draw a rectangle
+ if (style=='F')
+ op='f';
+ elsif (style=='FD' or style=='DF')
+ op='B';
+ else
+ op='S';
+ end
+ out(sprintf('%.2f %.2f %.2f %.2f re %s', x * @k, (@h - y) * @k, w * @k, -h * @k, op));
+ end
+ alias_method :rect, :Rect
+
+ #
+ # Imports a TrueType or Type1 font and makes it available. It is necessary to generate a font definition file first with the makefont.rb utility. The definition file (and the font file itself when embedding) must be present either in the current directory or in the one indicated by FPDF_FONTPATH if the constant is defined. If it could not be found, the error "Could not include font definition file" is generated.
+ # Support UTF-8 Unicode [Nicola Asuni, 2005-01-02].
+ # Example :
+ #
+ # :pdf->AddFont('Comic','I');
+ # # is equivalent to:
+ # :pdf->AddFont('Comic','I','comici.rb');
+ #
+ # @param string :family Font family. The name can be chosen arbitrarily. If it is a standard family name, it will override the corresponding font.
+ # @param string :style Font style. Possible values are (case insensitive):empty string: regular (default) B: bold I: italic BI or IB: bold italic
+ # @param string :file The font definition file. By default, the name is built from the family and style, in lower case with no space.
+ # @since 1.5
+ # @see SetFont()
+ #
+ def AddFont(family, style='', file='')
+ if (family.empty?)
+ return;
+ end
+
+ #Add a TrueType or Type1 font
+ family = family.downcase
+ if ((!@is_unicode) and (family == 'arial'))
+ family = 'helvetica';
+ end
+
+ style=style.upcase
+ style=style.gsub('U','');
+ if (style == 'IB')
+ style = 'BI';
+ end
+
+ fontkey = family + style;
+ # check if the font has been already added
+ if !@fonts[fontkey].nil?
+ return;
+ end
+
+ if (file=='')
+ file = family.gsub(' ', '') + style.downcase + '.rb';
+ end
+ font_file_name = getfontpath(file)
+ if (font_file_name.nil?)
+ # try to load the basic file without styles
+ file = family.gsub(' ', '') + '.rb';
+ font_file_name = getfontpath(file)
+ end
+ if font_file_name.nil?
+ Error("Could not find font #{file}.")
+ end
+ require(getfontpath(file))
+ font_desc = TCPDFFontDescriptor.font(file)
+
+ if (font_desc[:name].nil? and @@fpdf_charwidths.nil?)
+ Error('Could not include font definition file');
+ end
+
+ i = @fonts.length+1;
+ if (@is_unicode)
+ @fonts[fontkey] = {'i' => i, 'type' => font_desc[:type], 'name' => font_desc[:name], 'desc' => font_desc[:desc], 'up' => font_desc[:up], 'ut' => font_desc[:ut], 'cw' => font_desc[:cw], 'enc' => font_desc[:enc], 'file' => font_desc[:file], 'ctg' => font_desc[:ctg], 'cMap' => font_desc[:cMap], 'registry' => font_desc[:registry]}
+ @@fpdf_charwidths[fontkey] = font_desc[:cw];
+ else
+ @fonts[fontkey]={'i' => i, 'type'=>'core', 'name'=>@core_fonts[fontkey], 'up'=>-100, 'ut'=>50, 'cw' => font_desc[:cw]}
+ @@fpdf_charwidths[fontkey] = font_desc[:cw];
+ end
+
+ if (!font_desc[:diff].nil? and (!font_desc[:diff].empty?))
+ #Search existing encodings
+ d=0;
+ nb=@diffs.length;
+ 1.upto(nb) do |i|
+ if (@diffs[i]== font_desc[:diff])
+ d = i;
+ break;
+ end
+ end
+ if (d==0)
+ d = nb+1;
+ @diffs[d] = font_desc[:diff];
+ end
+ @fonts[fontkey]['diff'] = d;
+ end
+ if (font_desc[:file] and font_desc[:file].length > 0)
+ if (font_desc[:type] == "TrueType") or (font_desc[:type] == "TrueTypeUnicode")
+ @font_files[font_desc[:file]] = {'length1' => font_desc[:originalsize]}
+ else
+ @font_files[font_desc[:file]] = {'length1' => font_desc[:size1], 'length2' => font_desc[:size2]}
+ end
+ end
+ end
+ alias_method :add_font, :AddFont
+
+ #
+ # Sets the font used to print character strings. It is mandatory to call this method at least once before printing text or the resulting document would not be valid.
+ # The font can be either a standard one or a font added via the AddFont() method. Standard fonts use Windows encoding cp1252 (Western Europe).
+ # The method can be called before the first page is created and the font is retained from page to page.
+ # If you just wish to change the current font size, it is simpler to call SetFontSize().
+ # Note: for the standard fonts, the font metric files must be accessible. There are three possibilities for this:They are in the current directory (the one where the running script lies) They are in one of the directories defined by the include_path parameter They are in the directory defined by the FPDF_FONTPATH constant
+ # Example for the last case (note the trailing slash):
+ #
+ # define('FPDF_FONTPATH','/home/www/font/');
+ # require('tcpdf.rb');
+ #
+ # #Times regular 12
+ # :pdf->SetFont('Times');
+ # #Arial bold 14
+ # :pdf->SetFont('Arial','B',14);
+ # #Removes bold
+ # :pdf->SetFont('');
+ # #Times bold, italic and underlined 14
+ # :pdf->SetFont('Times','BIU');
+ #
+ # If the file corresponding to the requested font is not found, the error "Could not include font metric file" is generated.
+ # @param string :family Family font. It can be either a name defined by AddFont() or one of the standard families (case insensitive):Courier (fixed-width) Helvetica or Arial (synonymous; sans serif) Times (serif) Symbol (symbolic) ZapfDingbats (symbolic) It is also possible to pass an empty string. In that case, the current family is retained.
+ # @param string :style Font style. Possible values are (case insensitive):empty string: regular B: bold I: italic U: underline or any combination. The default value is regular. Bold and italic styles do not apply to Symbol and ZapfDingbats
+ # @param float :size Font size in points. The default value is the current size. If no size has been specified since the beginning of the document, the value taken is 12
+ # @since 1.0
+ # @see AddFont(), SetFontSize(), Cell(), MultiCell(), Write()
+ #
+ def SetFont(family, style='', size=0)
+ # save previous values
+ @prevfont_family = @font_family;
+ @prevfont_style = @font_style;
+
+ family=family.downcase;
+ if (family=='')
+ family=@font_family;
+ end
+ if ((!@is_unicode) and (family == 'arial'))
+ family = 'helvetica';
+ elsif ((family=="symbol") or (family=="zapfdingbats"))
+ style='';
+ end
+
+ style=style.upcase;
+
+ if (style.include?('U'))
+ @underline=true;
+ style= style.gsub('U','');
+ else
+ @underline=false;
+ end
+ if (style=='IB')
+ style='BI';
+ end
+ if (size==0)
+ size=@font_size_pt;
+ end
+
+ # try to add font (if not already added)
+ if (@is_unicode)
+ AddFont(family, style);
+ end
+
+ #Test if font is already selected
+ if ((@font_family == family) and (@font_style == style) and (@font_size_pt == size))
+ return;
+ end
+
+ fontkey = family + style;
+ style = '' if (@fonts[fontkey].nil? and !@fonts[family].nil?)
+
+ #Test if used for the first time
+ if (@fonts[fontkey].nil?)
+ #Check if one of the standard fonts
+ if (!@core_fonts[fontkey].nil?)
+ if @@fpdf_charwidths[fontkey].nil?
+ #Load metric file
+ file = family;
+ if ((family!='symbol') and (family!='zapfdingbats'))
+ file += style.downcase;
+ end
+ if (getfontpath(file + '.rb').nil?)
+ # try to load the basic file without styles
+ file = family;
+ fontkey = family;
+ end
+ require(getfontpath(file + '.rb'));
+ font_desc = TCPDFFontDescriptor.font(file)
+ if ((@is_unicode and ctg.nil?) or ((!@is_unicode) and (@@fpdf_charwidths[fontkey].nil?)) )
+ Error("Could not include font metric file [" + fontkey + "]: " + getfontpath(file + ".rb"));
+ end
+ end
+ i = @fonts.length + 1;
+
+ if (@is_unicode)
+ @fonts[fontkey] = {'i' => i, 'type' => font_desc[:type], 'name' => font_desc[:name], 'desc' => font_desc[:desc], 'up' => font_desc[:up], 'ut' => font_desc[:ut], 'cw' => font_desc[:cw], 'enc' => font_desc[:enc], 'file' => font_desc[:file], 'ctg' => font_desc[:ctg]}
+ @@fpdf_charwidths[fontkey] = font_desc[:cw];
+ else
+ @fonts[fontkey] = {'i' => i, 'type'=>'core', 'name'=>@core_fonts[fontkey], 'up'=>-100, 'ut'=>50, 'cw' => font_desc[:cw]}
+ @@fpdf_charwidths[fontkey] = font_desc[:cw];
+ end
+ else
+ Error('Undefined font: ' + family + ' ' + style);
+ end
+ end
+ #Select it
+ @font_family = family;
+ @font_style = style;
+ @font_size_pt = size;
+ @font_size = size / @k;
+ @current_font = @fonts[fontkey]; # was & may need deep copy?
+ if (@page>0)
+ out(sprintf('BT /F%d %.2f Tf ET', @current_font['i'], @font_size_pt));
+ end
+ end
+ alias_method :set_font, :SetFont
+
+ #
+ # Defines the size of the current font.
+ # @param float :size The size (in points)
+ # @since 1.0
+ # @see SetFont()
+ #
+ def SetFontSize(size)
+ #Set font size in points
+ if (@font_size_pt== size)
+ return;
+ end
+ @font_size_pt = size;
+ @font_size = size.to_f / @k;
+ if (@page > 0)
+ out(sprintf('BT /F%d %.2f Tf ET', @current_font['i'], @font_size_pt));
+ end
+ end
+ alias_method :set_font_size, :SetFontSize
+
+ #
+ # Creates a new internal link and returns its identifier. An internal link is a clickable area which directs to another place within the document.
+ # The identifier can then be passed to Cell(), Write(), Image() or Link(). The destination is defined with SetLink().
+ # @since 1.5
+ # @see Cell(), Write(), Image(), Link(), SetLink()
+ #
+ def AddLink()
+ #Create a new internal link
+ n=@links.length+1;
+ @links[n]=[0,0];
+ return n;
+ end
+ alias_method :add_link, :AddLink
+
+ #
+ # Defines the page and position a link points to
+ # @param int :link The link identifier returned by AddLink()
+ # @param float :y Ordinate of target position; -1 indicates the current position. The default value is 0 (top of page)
+ # @param int :page Number of target page; -1 indicates the current page. This is the default value
+ # @since 1.5
+ # @see AddLink()
+ #
+ def SetLink(link, y=0, page=-1)
+ #Set destination of internal link
+ if (y==-1)
+ y=@y;
+ end
+ if (page==-1)
+ page=@page;
+ end
+ @links[link] = [page, y]
+ end
+ alias_method :set_link, :SetLink
+
+ #
+ # Puts a link on a rectangular area of the page. Text or image links are generally put via Cell(), Write() or Image(), but this method can be useful for instance to define a clickable area inside an image.
+ # @param float :x Abscissa of the upper-left corner of the rectangle
+ # @param float :y Ordinate of the upper-left corner of the rectangle
+ # @param float :w Width of the rectangle
+ # @param float :h Height of the rectangle
+ # @param mixed :link URL or identifier returned by AddLink()
+ # @since 1.5
+ # @see AddLink(), Cell(), Write(), Image()
+ #
+ def Link(x, y, w, h, link)
+ #Put a link on the page
+ @page_links ||= Array.new
+ @page_links[@page] ||= Array.new
@page_links[@page].push([x * @k, @h_pt - y * @k, w * @k, h*@k, link]);
- end
+ end
alias_method :link, :Link
- #
- # Prints a character string. The origin is on the left of the first charcter, on the baseline. This method allows to place a string precisely on the page, but it is usually easier to use Cell(), MultiCell() or Write() which are the standard methods to print text.
- # @param float :x Abscissa of the origin
- # @param float :y Ordinate of the origin
- # @param string :txt String to print
- # @since 1.0
- # @see SetFont(), SetTextColor(), Cell(), MultiCell(), Write()
- #
- def Text(x, y, txt)
- #Output a string
- s=sprintf('BT %.2f %.2f Td (%s) Tj ET', x * @k, (@h-y) * @k, escapetext(txt));
- if (@underline and (txt!=''))
- s += ' ' + dounderline(x, y, txt);
- end
- if (@color_flag)
- s='q ' + @text_color + ' ' + s + ' Q';
- end
- out(s);
- end
- alias_method :text, :Text
+ #
+ # Prints a character string. The origin is on the left of the first charcter, on the baseline. This method allows to place a string precisely on the page, but it is usually easier to use Cell(), MultiCell() or Write() which are the standard methods to print text.
+ # @param float :x Abscissa of the origin
+ # @param float :y Ordinate of the origin
+ # @param string :txt String to print
+ # @since 1.0
+ # @see SetFont(), SetTextColor(), Cell(), MultiCell(), Write()
+ #
+ def Text(x, y, txt)
+ #Output a string
+ s=sprintf('BT %.2f %.2f Td (%s) Tj ET', x * @k, (@h-y) * @k, escapetext(txt));
+ if (@underline and (txt!=''))
+ s += ' ' + dounderline(x, y, txt);
+ end
+ if (@color_flag)
+ s='q ' + @text_color + ' ' + s + ' Q';
+ end
+ out(s);
+ end
+ alias_method :text, :Text
+
+ #
+ # Whenever a page break condition is met, the method is called, and the break is issued or not depending on the returned value. The default implementation returns a value according to the mode selected by SetAutoPageBreak().
+ # This method is called automatically and should not be called directly by the application.
+ # Example:
+ # The method is overriden in an inherited class in order to obtain a 3 column layout:
+ #
+ # class PDF extends TCPDF {
+ # var :col=0;
+ #
+ # def SetCol(col)
+ # #Move position to a column
+ # @col = col;
+ # :x=10+:col*65;
+ # SetLeftMargin(x);
+ # SetX(x);
+ # end
+ #
+ # def AcceptPageBreak()
+ # if (@col<2)
+ # #Go to next column
+ # SetCol(@col+1);
+ # SetY(10);
+ # return false;
+ # end
+ # else
+ # #Go back to first column and issue page break
+ # SetCol(0);
+ # return true;
+ # end
+ # end
+ # }
+ #
+ # :pdf=new PDF();
+ # :pdf->Open();
+ # :pdf->AddPage();
+ # :pdf->SetFont('Arial','',12);
+ # for(i=1;:i<=300;:i++)
+ # :pdf->Cell(0,5,"Line :i",0,1);
+ # }
+ # :pdf->Output();
+ #
+ # @return boolean
+ # @since 1.4
+ # @see SetAutoPageBreak()
+ #
+ def AcceptPageBreak()
+ #Accept automatic page break or not
+ return @auto_page_break;
+ end
+ alias_method :accept_page_break, :AcceptPageBreak
+
+ def BreakThePage?(h)
+ if ((@y + h) > @page_break_trigger and !@in_footer and AcceptPageBreak())
+ true
+ else
+ false
+ end
+ end
+ alias_method :break_the_page?, :BreakThePage?
+ #
+ # Prints a cell (rectangular area) with optional borders, background color and character string. The upper-left corner of the cell corresponds to the current position. The text can be aligned or centered. After the call, the current position moves to the right or to the next line. It is possible to put a link on the text.
+ # If automatic page breaking is enabled and the cell goes beyond the limit, a page break is done before outputting.
+ # @param float :w Cell width. If 0, the cell extends up to the right margin.
+ # @param float :h Cell height. Default value: 0.
+ # @param string :txt String to print. Default value: empty string.
+ # @param mixed :border Indicates if borders must be drawn around the cell. The value can be either a number:0: no border (default) 1: frame or a string containing some or all of the following characters (in any order):L: left T: top R: right B: bottom
+ # @param int :ln Indicates where the current position should go after the call. Possible values are:0: to the right 1: to the beginning of the next line 2: below
+ # Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0.
+ # @param string :align Allows to center or align the text. Possible values are:L or empty string: left align (default value) C: center R: right align
+ # @param int :fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
+ # @param mixed :link URL or identifier returned by AddLink().
+ # @since 1.0
+ # @see SetFont(), SetDrawColor(), SetFillColor(), SetTextColor(), SetLineWidth(), AddLink(), Ln(), MultiCell(), Write(), SetAutoPageBreak()
+ #
+ def Cell(w, h=0, txt='', border=0, ln=0, align='', fill=0, link=nil)
+ #Output a cell
+ k=@k;
+ if ((@y + h) > @page_break_trigger and !@in_footer and AcceptPageBreak())
+ #Automatic page break
+ x = @x;
+ ws = @ws;
+ if (ws > 0)
+ @ws = 0;
+ out('0 Tw');
+ end
+ AddPage(@cur_orientation);
+ @x = x;
+ if (ws > 0)
+ @ws = ws;
+ out(sprintf('%.3f Tw', ws * k));
+ end
+ end
+ if (w == 0)
+ w = @w - @r_margin - @x;
+ end
+ s = '';
+ if ((fill.to_i == 1) or (border.to_i == 1))
+ if (fill.to_i == 1)
+ op = (border.to_i == 1) ? 'B' : 'f';
+ else
+ op = 'S';
+ end
+ s = sprintf('%.2f %.2f %.2f %.2f re %s ', @x * k, (@h - @y) * k, w * k, -h * k, op);
+ end
+ if (border.is_a?(String))
+ x=@x;
+ y=@y;
+ if (border.include?('L'))
+ s<0)
+ # Go to next line
+ @y += h;
+ if (ln == 1)
+ @x = @l_margin;
+ end
+ else
+ @x += w;
+ end
+ end
+ alias_method :cell, :Cell
+
+ #
+ # This method allows printing text with line breaks. They can be automatic (as soon as the text reaches the right border of the cell) or explicit (via the \n character). As many cells as necessary are output, one below the other.
+ # Text can be aligned, centered or justified. The cell block can be framed and the background painted.
+ # @param float :w Width of cells. If 0, they extend up to the right margin of the page.
+ # @param float :h Height of cells.
+ # @param string :txt String to print
+ # @param mixed :border Indicates if borders must be drawn around the cell block. The value can be either a number:0: no border (default) 1: frame or a string containing some or all of the following characters (in any order):L: left T: top R: right B: bottom
+ # @param string :align Allows to center or align the text. Possible values are:L or empty string: left align C: center R: right align J: justification (default value)
+ # @param int :fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
+ # @param int :ln Indicates where the current position should go after the call. Possible values are:0: to the right 1: to the beginning of the next line [DEFAULT] 2: below
+ # @since 1.3
+ # @see SetFont(), SetDrawColor(), SetFillColor(), SetTextColor(), SetLineWidth(), Cell(), Write(), SetAutoPageBreak()
+ #
+ def MultiCell(w, h, txt, border=0, align='J', fill=0, ln=1)
+
+ # save current position
+ prevx = @x;
+ prevy = @y;
+
+ #Output text with automatic or explicit line breaks
+
+ if (w == 0)
+ w = @w - @r_margin - @x;
+ end
+
+ wmax = (w - 2 * @c_margin);
+
+ s = txt.gsub("\r", ''); # remove carriage returns
+ nb = s.length;
+
+ b=0;
+ if (border)
+ if (border==1)
+ border='LTRB';
+ b='LRT';
+ b2='LR';
+ elsif border.is_a?(String)
+ b2='';
+ if (border.include?('L'))
+ b2<<'L';
+ end
+ if (border.include?('R'))
+ b2<<'R';
+ end
+ b=(border.include?('T')) ? b2 + 'T' : b2;
+ end
+ end
+ sep=-1;
+ to_index=0;
+ from_j=0;
+ l=0;
+ ns=0;
+ nl=1;
+
+ while to_index < nb
+ #Get next character
+ c = s[to_index];
+ if c == "\n"[0]
+ #Explicit line break
+ if @ws > 0
+ @ws = 0
+ out('0 Tw')
+ end
+ #Ed Moss - change begin
+ end_i = to_index == 0 ? 0 : to_index - 1
+ # Changed from s[from_j..to_index] to fix bug reported by Hans Allis.
+ from_j = to_index == 0 ? 1 : from_j
+ Cell(w, h, s[from_j..end_i], b, 2, align, fill)
+ #change end
+ to_index += 1
+ sep=-1
+ from_j=to_index
+ l=0
+ ns=0
+ nl += 1
+ b = b2 if border and nl==2
+ next
+ end
+ if (c == " "[0])
+ sep = to_index;
+ ls = l;
+ ns += 1;
+ end
+
+ l = GetStringWidth(s[from_j, to_index-from_j]);
+
+ if (l > wmax)
+ #Automatic line break
+ if (sep == -1)
+ if (to_index == from_j)
+ to_index += 1;
+ end
+ if (@ws > 0)
+ @ws = 0;
+ out('0 Tw');
+ end
+ Cell(w, h, s[from_j..to_index-1], b, 2, align, fill) # my FPDF version
+ else
+ if (align=='J' || align=='justify' || align=='justified')
+ @ws = (ns>1) ? (wmax-ls)/(ns-1) : 0;
+ out(sprintf('%.3f Tw', @ws * @k));
+ end
+ Cell(w, h, s[from_j..sep], b, 2, align, fill);
+ to_index = sep + 1;
+ end
+ sep=-1;
+ from_j = to_index;
+ l=0;
+ ns=0;
+ nl += 1;
+ if (border and (nl==2))
+ b = b2;
+ end
+ else
+ to_index += 1;
+ end
+ end
+ #Last chunk
+ if (@ws>0)
+ @ws=0;
+ out('0 Tw');
+ end
+ if (border.is_a?(String) and border.include?('B'))
+ b<<'B';
+ end
+ Cell(w, h, s[from_j, to_index-from_j], b, 2, align, fill);
+
+ # move cursor to specified position
+ # since 2007-03-03
+ if (ln == 1)
+ # go to the beginning of the next line
+ @x = @l_margin;
+ elsif (ln == 0)
+ # go to the top-right of the cell
+ @y = prevy;
+ @x = prevx + w;
+ elsif (ln == 2)
+ # go to the bottom-left of the cell
+ @x = prevx;
+ end
+ end
+ alias_method :multi_cell, :MultiCell
+
+ #
+ # This method prints text from the current position. When the right margin is reached (or the \n character is met) a line break occurs and text continues from the left margin. Upon method exit, the current position is left just at the end of the text. It is possible to put a link on the text.
+ # Example:
+ #
+ # #Begin with regular font
+ # :pdf->SetFont('Arial','',14);
+ # :pdf->Write(5,'Visit ');
+ # #Then put a blue underlined link
+ # :pdf->SetTextColor(0,0,255);
+ # :pdf->SetFont('','U');
+ # :pdf->Write(5,'www.tecnick.com','http://www.tecnick.com');
+ #
+ # @param float :h Line height
+ # @param string :txt String to print
+ # @param mixed :link URL or identifier returned by AddLink()
+ # @param int :fill Indicates if the background must be painted (1) or transparent (0). Default value: 0.
+ # @since 1.5
+ # @see SetFont(), SetTextColor(), AddLink(), MultiCell(), SetAutoPageBreak()
+ #
+ def Write(h, txt, link=nil, fill=0)
+
+ #Output text in flowing mode
+ w = @w - @r_margin - @x;
+ wmax = (w - 2 * @c_margin);
+
+ s = txt.gsub("\r", '');
+ nb = s.length;
+
+ # handle single space character
+ if ((nb==1) and (s == " "))
+ @x += GetStringWidth(s);
+ return;
+ end
+
+ sep=-1;
+ i=0;
+ j=0;
+ l=0;
+ nl=1;
+ while(i wmax)
+ #Automatic line break (word wrapping)
+ if (sep == -1)
+ if (@x > @l_margin)
+ #Move to next line
+ @x = @l_margin;
+ @y += h;
+ w=@w - @r_margin - @x;
+ wmax=(w - 2 * @c_margin);
+ i += 1
+ nl += 1
+ next
+ end
+ if (i == j)
+ i += 1
+ end
+ Cell(w, h, s[j, (i-1)], 0, 2, '', fill, link);
+ else
+ Cell(w, h, s[j, (sep-j)], 0, 2, '', fill, link);
+ i = sep+1;
+ end
+ sep = -1;
+ j = i;
+ l = 0;
+ if (nl==1)
+ @x = @l_margin;
+ w = @w - @r_margin - @x;
+ wmax = (w - 2 * @c_margin);
+ end
+ nl += 1;
+ else
+ i += 1;
+ end
+ end
+ #Last chunk
+ if (i != j)
+ Cell(GetStringWidth(s[j..i]), h, s[j..i], 0, 0, '', fill, link);
+ end
+ end
+ alias_method :write, :Write
+
+ #
+ # Puts an image in the page. The upper-left corner must be given. The dimensions can be specified in different ways:explicit width and height (expressed in user unit) one explicit dimension, the other being calculated automatically in order to keep the original proportions no explicit dimension, in which case the image is put at 72 dpi
+ # Supported formats are JPEG and PNG.
+ # For JPEG, all flavors are allowed:gray scales true colors (24 bits) CMYK (32 bits)
+ # For PNG, are allowed:gray scales on at most 8 bits (256 levels) indexed colors true colors (24 bits)
+ # but are not supported:
+ # If a transparent color is defined, it will be taken into account (but will be only interpreted by Acrobat 4 and above).
+ # The format can be specified explicitly or inferred from the file extension.
+ # It is possible to put a link on the image.
+ # Remark: if an image is used several times, only one copy will be embedded in the file.
+ # @param string :file Name of the file containing the image.
+ # @param float :x Abscissa of the upper-left corner.
+ # @param float :y Ordinate of the upper-left corner.
+ # @param float :w Width of the image in the page. If not specified or equal to zero, it is automatically calculated.
+ # @param float :h Height of the image in the page. If not specified or equal to zero, it is automatically calculated.
+ # @param string :type Image format. Possible values are (case insensitive): JPG, JPEG, PNG. If not specified, the type is inferred from the file extension.
+ # @param mixed :link URL or identifier returned by AddLink().
+ # @since 1.1
+ # @see AddLink()
+ #
+ def Image(file, x, y, w=0, h=0, type='', link=nil)
+ #Put an image on the page
+ if (@images[file].nil?)
+ #First use of image, get info
+ if (type == '')
+ pos = file.rindex('.');
+ if (pos == 0)
+ Error('Image file has no extension and no type was specified: ' + file);
+ end
+ type = file[pos+1..-1];
+ end
+ type.downcase!
+ if (type == 'jpg' or type == 'jpeg')
+ info=parsejpg(file);
+ elsif (type == 'png')
+ info=parsepng(file);
+ else
+ #Allow for additional formats
+ mtd='parse' + type;
+ if (!self.respond_to?(mtd))
+ Error('Unsupported image type: ' + type);
+ end
+ info=send(mtd, file);
+ end
+ info['i']=@images.length+1;
+ @images[file] = info;
+ else
+ info=@images[file];
+ end
+ #Automatic width and height calculation if needed
+ if ((w == 0) and (h == 0))
+ #Put image at 72 dpi
+ # 2004-06-14 :: Nicola Asuni, scale factor where added
+ w = info['w'] / (@img_scale * @k);
+ h = info['h'] / (@img_scale * @k);
+ end
+ if (w == 0)
+ w = h * info['w'] / info['h'];
+ end
+ if (h == 0)
+ h = w * info['h'] / info['w'];
+ end
+ out(sprintf('q %.2f 0 0 %.2f %.2f %.2f cm /I%d Do Q', w*@k, h*@k, x*@k, (@h-(y+h))*@k, info['i']));
+ if (link)
+ Link(x, y, w, h, link);
+ end
+
+ #2002-07-31 - Nicola Asuni
+ # set right-bottom corner coordinates
+ @img_rb_x = x + w;
+ @img_rb_y = y + h;
+ end
+ alias_method :image, :Image
+
+ #
+ # Performs a line break. The current abscissa goes back to the left margin and the ordinate increases by the amount passed in parameter.
+ # @param float :h The height of the break. By default, the value equals the height of the last printed cell.
+ # @since 1.0
+ # @see Cell()
+ #
+ def Ln(h='')
+ #Line feed; default value is last cell height
+ @x=@l_margin;
+ if (h.is_a?(String))
+ @y += @lasth;
+ else
+ @y += h;
+ end
+ end
+ alias_method :ln, :Ln
+
+ #
+ # Returns the abscissa of the current position.
+ # @return float
+ # @since 1.2
+ # @see SetX(), GetY(), SetY()
+ #
+ def GetX()
+ #Get x position
+ return @x;
+ end
+ alias_method :get_x, :GetX
+
+ #
+ # Defines the abscissa of the current position. If the passed value is negative, it is relative to the right of the page.
+ # @param float :x The value of the abscissa.
+ # @since 1.2
+ # @see GetX(), GetY(), SetY(), SetXY()
+ #
+ def SetX(x)
+ #Set x position
+ if (x>=0)
+ @x = x;
+ else
+ @x=@w+x;
+ end
+ end
+ alias_method :set_x, :SetX
+
+ #
+ # Returns the ordinate of the current position.
+ # @return float
+ # @since 1.0
+ # @see SetY(), GetX(), SetX()
+ #
+ def GetY()
+ #Get y position
+ return @y;
+ end
+ alias_method :get_y, :GetY
+
+ #
+ # Moves the current abscissa back to the left margin and sets the ordinate. If the passed value is negative, it is relative to the bottom of the page.
+ # @param float :y The value of the ordinate.
+ # @since 1.0
+ # @see GetX(), GetY(), SetY(), SetXY()
+ #
+ def SetY(y)
+ #Set y position and reset x
+ @x=@l_margin;
+ if (y>=0)
+ @y = y;
+ else
+ @y=@h+y;
+ end
+ end
+ alias_method :set_y, :SetY
+
+ #
+ # Defines the abscissa and ordinate of the current position. If the passed values are negative, they are relative respectively to the right and bottom of the page.
+ # @param float :x The value of the abscissa
+ # @param float :y The value of the ordinate
+ # @since 1.2
+ # @see SetX(), SetY()
+ #
+ def SetXY(x, y)
+ #Set x and y positions
+ SetY(y);
+ SetX(x);
+ end
+ alias_method :set_xy, :SetXY
+
+ #
+ # Send the document to a given destination: string, local file or browser. In the last case, the plug-in may be used (if present) or a download ("Save as" dialog box) may be forced.
+ # The method first calls Close() if necessary to terminate the document.
+ # @param string :name The name of the file. If not given, the document will be sent to the browser (destination I) with the name doc.pdf.
+ # @param string :dest Destination where to send the document. It can take one of the following values:I: send the file inline to the browser. The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF. D: send to the browser and force a file download with the name given by name. F: save to a local file with the name given by name. S: return the document as a string. name is ignored. If the parameter is not specified but a name is given, destination is F. If no parameter is specified at all, destination is I.
+ # @since 1.0
+ # @see Close()
+ #
+ def Output(name='', dest='')
+ #Output PDF to some destination
+ #Finish document if necessary
+ if (@state < 3)
+ Close();
+ end
+ #Normalize parameters
+ # Boolean no longer supported
+ # if (dest.is_a?(Boolean))
+ # dest = dest ? 'D' : 'F';
+ # end
+ dest = dest.upcase
+ if (dest=='')
+ if (name=='')
+ name='doc.pdf';
+ dest='I';
+ else
+ dest='F';
+ end
+ end
+ case (dest)
+ when 'I'
+ # This is PHP specific code
+ ##Send to standard output
+ # if (ob_get_contents())
+ # Error('Some data has already been output, can\'t send PDF file');
+ # end
+ # if (php_sapi_name()!='cli')
+ # #We send to a browser
+ # header('Content-Type: application/pdf');
+ # if (headers_sent())
+ # Error('Some data has already been output to browser, can\'t send PDF file');
+ # end
+ # header('Content-Length: ' + @buffer.length);
+ # header('Content-disposition: inline; filename="' + name + '"');
+ # end
+ return @buffer;
+
+ when 'D'
+ # PHP specific
+ #Download file
+ # if (ob_get_contents())
+ # Error('Some data has already been output, can\'t send PDF file');
+ # end
+ # if (!_SERVER['HTTP_USER_AGENT'].nil? && SERVER['HTTP_USER_AGENT'].include?('MSIE'))
+ # header('Content-Type: application/force-download');
+ # else
+ # header('Content-Type: application/octet-stream');
+ # end
+ # if (headers_sent())
+ # Error('Some data has already been output to browser, can\'t send PDF file');
+ # end
+ # header('Content-Length: '+ @buffer.length);
+ # header('Content-disposition: attachment; filename="' + name + '"');
+ return @buffer;
+
+ when 'F'
+ open(name,'wb') do |f|
+ f.write(@buffer)
+ end
+ # PHP code
+ # #Save to local file
+ # f=open(name,'wb');
+ # if (!f)
+ # Error('Unable to create output file: ' + name);
+ # end
+ # fwrite(f,@buffer,@buffer.length);
+ # f.close
+
+ when 'S'
+ #Return as a string
+ return @buffer;
+ else
+ Error('Incorrect output destination: ' + dest);
+
+ end
+ return '';
+ end
+ alias_method :output, :Output
+
+ # Protected methods
+
+ #
+ # Check for locale-related bug
+ # @access protected
+ #
+ def dochecks()
+ #Check for locale-related bug
+ if (1.1==1)
+ Error('Don\'t alter the locale before including class file');
+ end
+ #Check for decimal separator
+ if (sprintf('%.1f',1.0)!='1.0')
+ setlocale(LC_NUMERIC,'C');
+ end
+ end
+
+ #
+ # Return fonts path
+ # @access protected
+ #
+ def getfontpath(file)
+ # Is it in the @@font_path?
+ if @@font_path
+ fpath = File.join @@font_path, file
+ if File.exists?(fpath)
+ return fpath
+ end
+ end
+ # Is it in this plugin's font folder?
+ fpath = File.join File.dirname(__FILE__), 'fonts', file
+ if File.exists?(fpath)
+ return fpath
+ end
+ # Could not find it.
+ nil
+ end
+
+ #
+ # Start document
+ # @access protected
+ #
+ def begindoc()
+ #Start document
+ @state=1;
+ out('%PDF-1.3');
+ end
+
+ #
+ # putpages
+ # @access protected
+ #
+ def putpages()
+ nb = @page;
+ if (@alias_nb_pages)
+ nbstr = UTF8ToUTF16BE(nb, false);
+ #Replace number of pages
+ 1.upto(nb) do |n|
+ @pages[n].gsub!(@alias_nb_pages, nbstr)
+ end
+ end
+ if @def_orientation=='P'
+ w_pt=@fw_pt
+ h_pt=@fh_pt
+ else
+ w_pt=@fh_pt
+ h_pt=@fw_pt
+ end
+ filter=(@compress) ? '/Filter /FlateDecode ' : ''
+ 1.upto(nb) do |n|
+ #Page
+ newobj
+ out('<>>>';
+ else
+ l=@links[pl[4]];
+ h=!@orientation_changes[l[0]].nil? ? w_pt : h_pt;
+ annots<>',1+2*l[0], h-l[1]*@k);
+ end
+ end
+ out(annots + ']');
+ end
+ out('/Contents ' + (@n+1).to_s + ' 0 R>>');
+ out('endobj');
+ #Page content
+ p=(@compress) ? gzcompress(@pages[n]) : @pages[n];
+ newobj();
+ out('<<' + filter + '/Length '+ p.length.to_s + '>>');
+ putstream(p);
+ out('endobj');
+ end
+ #Pages root
+ @offsets[1]=@buffer.length;
+ out('1 0 obj');
+ out('<>');
+ out('endobj');
+ end
+
+ #
+ # Adds fonts
+ # putfonts
+ # @access protected
+ #
+ def putfonts()
+ nf=@n;
+ @diffs.each do |diff|
+ #Encodings
+ newobj();
+ out('<>');
+ out('endobj');
+ end
+ @font_files.each do |file, info|
+ #Font file embedding
+ newobj();
+ @font_files[file]['n']=@n;
+ font='';
+ open(getfontpath(file),'rb') do |f|
+ font = f.read();
+ end
+ compressed=(file[-2,2]=='.z');
+ if (!compressed && !info['length2'].nil?)
+ header=((font[0][0])==128);
+ if (header)
+ #Strip first binary header
+ font=font[6];
+ end
+ if header && (font[info['length1']][0] == 128)
+ #Strip second binary header
+ font=font[0..info['length1']] + font[info['length1']+6];
+ end
+ end
+ out('<>');
+ open(getfontpath(file),'rb') do |f|
+ putstream(font)
+ end
+ out('endobj');
+ end
+ @fonts.each do |k, font|
+ #Font objects
+ @fonts[k]['n']=@n+1;
+ type = font['type'];
+ name = font['name'];
+ if (type=='core')
+ #Standard font
+ newobj();
+ out('<>');
+ out('endobj');
+ elsif type == 'Type0'
+ putType0(font)
+ elsif (type=='Type1' || type=='TrueType')
+ #Additional Type1 or TrueType font
+ newobj();
+ out('<>');
+ out('endobj');
+ #Widths
+ newobj();
+ cw=font['cw']; # &
+ s='[';
+ 32.upto(255) do |i|
+ s << cw[i.chr] + ' ';
+ end
+ out(s + ']');
+ out('endobj');
+ #Descriptor
+ newobj();
+ s='<>');
+ out('endobj');
+ else
+ #Allow for additional types
+ mtd='put' + type.downcase;
+ if (!self.respond_to?(mtd))
+ Error('Unsupported font type: ' + type)
+ else
+ self.send(mtd,font)
+ end
+ end
+ end
+ end
+
+ def putType0(font)
+ #Type0
+ out('<>')
+ out('endobj')
+ #CIDFont
+ newobj()
+ out('<>')
+ out('/FontDescriptor '+(@n+1).to_s+' 0 R')
+ w='/W [1 ['
+ font['cw'].keys.sort.each {|key|
+ w+=font['cw'][key].to_s + " "
+# ActionController::Base::logger.debug key.to_s
+# ActionController::Base::logger.debug font['cw'][key].to_s
+ }
+ out(w+'] 231 325 500 631 [500] 326 389 500]')
+ out('>>')
+ out('endobj')
+ #Font descriptor
+ newobj()
+ out('<>')
+ out('endobj')
+ end
+
+ #
+ # putimages
+ # @access protected
+ #
+ def putimages()
+ filter=(@compress) ? '/Filter /FlateDecode ' : '';
+ @images.each do |file, info| # was while(list(file, info)=each(@images))
+ newobj();
+ @images[file]['n']=@n;
+ out('<>');
+ putstream(info['data']);
+ @images[file]['data']=nil
+ out('endobj');
+ #Palette
+ if (info['cs']=='Indexed')
+ newobj();
+ pal=(@compress) ? gzcompress(info['pal']) : :info['pal'];
+ out('<<' + filter + '/Length ' + pal.length.to_s + '>>');
+ putstream(pal);
+ out('endobj');
+ end
+ end
+ end
+
+ #
+ # putxobjectdict
+ # @access protected
+ #
+ def putxobjectdict()
+ @images.each_value do |image|
+ out('/I' + image['i'].to_s + ' ' + image['n'].to_s + ' 0 R');
+ end
+ end
+
+ #
+ # putresourcedict
+ # @access protected
+ #
+ def putresourcedict()
+ out('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]');
+ out('/Font <<');
+ @fonts.each_value do |font|
+ out('/F' + font['i'].to_s + ' ' + font['n'].to_s + ' 0 R');
+ end
+ out('>>');
+ out('/XObject <<');
+ putxobjectdict();
+ out('>>');
+ end
+
+ #
+ # putresources
+ # @access protected
+ #
+ def putresources()
+ putfonts();
+ putimages();
+ #Resource dictionary
+ @offsets[2]=@buffer.length;
+ out('2 0 obj');
+ out('<<');
+ putresourcedict();
+ out('>>');
+ out('endobj');
+ end
+
+ #
+ # putinfo
+ # @access protected
+ #
+ def putinfo()
+ out('/Producer ' + textstring(PDF_PRODUCER));
+ if (!@title.nil?)
+ out('/Title ' + textstring(@title));
+ end
+ if (!@subject.nil?)
+ out('/Subject ' + textstring(@subject));
+ end
+ if (!@author.nil?)
+ out('/Author ' + textstring(@author));
+ end
+ if (!@keywords.nil?)
+ out('/Keywords ' + textstring(@keywords));
+ end
+ if (!@creator.nil?)
+ out('/Creator ' + textstring(@creator));
+ end
+ out('/CreationDate ' + textstring('D:' + Time.now.strftime('%Y%m%d%H%M%S')));
+ end
+
+ #
+ # putcatalog
+ # @access protected
+ #
+ def putcatalog()
+ out('/Type /Catalog');
+ out('/Pages 1 0 R');
+ if (@zoom_mode=='fullpage')
+ out('/OpenAction [3 0 R /Fit]');
+ elsif (@zoom_mode=='fullwidth')
+ out('/OpenAction [3 0 R /FitH null]');
+ elsif (@zoom_mode=='real')
+ out('/OpenAction [3 0 R /XYZ null null 1]');
+ elsif (!@zoom_mode.is_a?(String))
+ out('/OpenAction [3 0 R /XYZ null null ' + (@zoom_mode/100) + ']');
+ end
+ if (@layout_mode=='single')
+ out('/PageLayout /SinglePage');
+ elsif (@layout_mode=='continuous')
+ out('/PageLayout /OneColumn');
+ elsif (@layout_mode=='two')
+ out('/PageLayout /TwoColumnLeft');
+ end
+ end
+
+ #
+ # puttrailer
+ # @access protected
+ #
+ def puttrailer()
+ out('/Size ' + (@n+1).to_s);
+ out('/Root ' + @n.to_s + ' 0 R');
+ out('/Info ' + (@n-1).to_s + ' 0 R');
+ end
+
+ #
+ # putheader
+ # @access protected
+ #
+ def putheader()
+ out('%PDF-' + @pdf_version);
+ end
+
+ #
+ # enddoc
+ # @access protected
+ #
+ def enddoc()
+ putheader();
+ putpages();
+ putresources();
+ #Info
+ newobj();
+ out('<<');
+ putinfo();
+ out('>>');
+ out('endobj');
+ #Catalog
+ newobj();
+ out('<<');
+ putcatalog();
+ out('>>');
+ out('endobj');
+ #Cross-ref
+ o=@buffer.length;
+ out('xref');
+ out('0 ' + (@n+1).to_s);
+ out('0000000000 65535 f ');
+ 1.upto(@n) do |i|
+ out(sprintf('%010d 00000 n ',@offsets[i]));
+ end
+ #Trailer
+ out('trailer');
+ out('<<');
+ puttrailer();
+ out('>>');
+ out('startxref');
+ out(o);
+ out('%%EOF');
+ @state=3;
+ end
+
+ #
+ # beginpage
+ # @access protected
+ #
+ def beginpage(orientation)
+ @page += 1;
+ @pages[@page]='';
+ @state=2;
+ @x=@l_margin;
+ @y=@t_margin;
+ @font_family='';
+ #Page orientation
+ if (orientation.empty?)
+ orientation=@def_orientation;
+ else
+ orientation.upcase!
+ if (orientation!=@def_orientation)
+ @orientation_changes[@page]=true;
+ end
+ end
+ if (orientation!=@cur_orientation)
+ #Change orientation
+ if (orientation=='P')
+ @w_pt=@fw_pt;
+ @h_pt=@fh_pt;
+ @w=@fw;
+ @h=@fh;
+ else
+ @w_pt=@fh_pt;
+ @h_pt=@fw_pt;
+ @w=@fh;
+ @h=@fw;
+ end
+ @page_break_trigger=@h-@b_margin;
+ @cur_orientation = orientation;
+ end
+ end
+
+ #
+ # End of page contents
+ # @access protected
+ #
+ def endpage()
+ @state=1;
+ end
- #
- # Whenever a page break condition is met, the method is called, and the break is issued or not depending on the returned value. The default implementation returns a value according to the mode selected by SetAutoPageBreak().
- # This method is called automatically and should not be called directly by the application.
- # Example:
- # The method is overriden in an inherited class in order to obtain a 3 column layout:
- #
- # class PDF extends TCPDF {
- # var :col=0;
- #
- # def SetCol(col)
- # #Move position to a column
- # @col = col;
- # :x=10+:col*65;
- # SetLeftMargin(x);
- # SetX(x);
- # end
- #
- # def AcceptPageBreak()
- # if (@col<2)
- # #Go to next column
- # SetCol(@col+1);
- # SetY(10);
- # return false;
- # end
- # else
- # #Go back to first column and issue page break
- # SetCol(0);
- # return true;
- # end
- # end
- # }
- #
- # :pdf=new PDF();
- # :pdf->Open();
- # :pdf->AddPage();
- # :pdf->SetFont('Arial','',12);
- # for(i=1;:i<=300;:i++)
- # :pdf->Cell(0,5,"Line :i",0,1);
- # }
- # :pdf->Output();
- #
- # @return boolean
- # @since 1.4
- # @see SetAutoPageBreak()
- #
- def AcceptPageBreak()
- #Accept automatic page break or not
- return @auto_page_break;
- end
- alias_method :accept_page_break, :AcceptPageBreak
+ #
+ # Begin a new object
+ # @access protected
+ #
+ def newobj()
+ @n += 1;
+ @offsets[@n]=@buffer.length;
+ out(@n.to_s + ' 0 obj');
+ end
- def BreakThePage?(h)
- if ((@y + h) > @page_break_trigger and !@in_footer and AcceptPageBreak())
- true
+ #
+ # Underline text
+ # @access protected
+ #
+ def dounderline(x, y, txt)
+ up = @current_font['up'];
+ ut = @current_font['ut'];
+ w = GetStringWidth(txt) + @ws * txt.count(' ');
+ sprintf('%.2f %.2f %.2f %.2f re f', x * @k, (@h - (y - up / 1000.0 * @font_size)) * @k, w * @k, -ut / 1000.0 * @font_size_pt);
+ end
+
+ #
+ # Extract info from a JPEG file
+ # @access protected
+ #
+ def parsejpg(file)
+ a=getimagesize(file);
+ if (a.empty?)
+ Error('Missing or incorrect image file: ' + file);
+ end
+ if (a[2]!='JPEG')
+ Error('Not a JPEG file: ' + file);
+ end
+ if (a['channels'].nil? or a['channels']==3)
+ colspace='DeviceRGB';
+ elsif (a['channels']==4)
+ colspace='DeviceCMYK';
else
- false
+ colspace='DeviceGray';
+ end
+ bpc=!a['bits'].nil? ? a['bits'] : 8;
+ #Read whole file
+ data='';
+ open(file,'rb') do |f|
+ data< a[0],'h' => a[1],'cs' => colspace,'bpc' => bpc,'f'=>'DCTDecode','data' => data}
end
- alias_method :break_the_page?, :BreakThePage?
- #
- # Prints a cell (rectangular area) with optional borders, background color and character string. The upper-left corner of the cell corresponds to the current position. The text can be aligned or centered. After the call, the current position moves to the right or to the next line. It is possible to put a link on the text.
- # If automatic page breaking is enabled and the cell goes beyond the limit, a page break is done before outputting.
- # @param float :w Cell width. If 0, the cell extends up to the right margin.
- # @param float :h Cell height. Default value: 0.
- # @param string :txt String to print. Default value: empty string.
- # @param mixed :border Indicates if borders must be drawn around the cell. The value can be either a number:0: no border (default) 1: frame or a string containing some or all of the following characters (in any order):L: left T: top R: right B: bottom
- # @param int :ln Indicates where the current position should go after the call. Possible values are:0: to the right 1: to the beginning of the next line 2: below
- # Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0.
- # @param string :align Allows to center or align the text. Possible values are:L or empty string: left align (default value) C: center R: right align
- # @param int :fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
- # @param mixed :link URL or identifier returned by AddLink().
- # @since 1.0
- # @see SetFont(), SetDrawColor(), SetFillColor(), SetTextColor(), SetLineWidth(), AddLink(), Ln(), MultiCell(), Write(), SetAutoPageBreak()
- #
- def Cell(w, h=0, txt='', border=0, ln=0, align='', fill=0, link=nil)
- #Output a cell
- k=@k;
- if ((@y + h) > @page_break_trigger and !@in_footer and AcceptPageBreak())
- #Automatic page break
- x = @x;
- ws = @ws;
- if (ws > 0)
- @ws = 0;
- out('0 Tw');
- end
- AddPage(@cur_orientation);
- @x = x;
- if (ws > 0)
- @ws = ws;
- out(sprintf('%.3f Tw', ws * k));
- end
- end
- if (w == 0)
- w = @w - @r_margin - @x;
- end
- s = '';
- if ((fill.to_i == 1) or (border.to_i == 1))
- if (fill.to_i == 1)
- op = (border.to_i == 1) ? 'B' : 'f';
- else
- op = 'S';
- end
- s = sprintf('%.2f %.2f %.2f %.2f re %s ', @x * k, (@h - @y) * k, w * k, -h * k, op);
- end
- if (border.is_a?(String))
- x=@x;
- y=@y;
- if (border.include?('L'))
- s<0)
- # Go to next line
- @y += h;
- if (ln == 1)
- @x = @l_margin;
- end
- else
- @x += w;
- end
- end
- alias_method :cell, :Cell
- #
- # This method allows printing text with line breaks. They can be automatic (as soon as the text reaches the right border of the cell) or explicit (via the \n character). As many cells as necessary are output, one below the other.
- # Text can be aligned, centered or justified. The cell block can be framed and the background painted.
- # @param float :w Width of cells. If 0, they extend up to the right margin of the page.
- # @param float :h Height of cells.
- # @param string :txt String to print
- # @param mixed :border Indicates if borders must be drawn around the cell block. The value can be either a number:0: no border (default) 1: frame or a string containing some or all of the following characters (in any order):L: left T: top R: right B: bottom
- # @param string :align Allows to center or align the text. Possible values are:L or empty string: left align C: center R: right align J: justification (default value)
- # @param int :fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
- # @param int :ln Indicates where the current position should go after the call. Possible values are:0: to the right 1: to the beginning of the next line [DEFAULT] 2: below
- # @since 1.3
- # @see SetFont(), SetDrawColor(), SetFillColor(), SetTextColor(), SetLineWidth(), Cell(), Write(), SetAutoPageBreak()
- #
- def MultiCell(w, h, txt, border=0, align='J', fill=0, ln=1)
-
- # save current position
- prevx = @x;
- prevy = @y;
-
- #Output text with automatic or explicit line breaks
-
- if (w == 0)
- w = @w - @r_margin - @x;
- end
-
- wmax = (w - 2 * @c_margin);
-
- s = txt.gsub("\r", ''); # remove carriage returns
- nb = s.length;
-
- b=0;
- if (border)
- if (border==1)
- border='LTRB';
- b='LRT';
- b2='LR';
- elsif border.is_a?(String)
- b2='';
- if (border.include?('L'))
- b2<<'L';
- end
- if (border.include?('R'))
- b2<<'R';
- end
- b=(border.include?('T')) ? b2 + 'T' : b2;
- end
- end
- sep=-1;
- to_index=0;
- from_j=0;
- l=0;
- ns=0;
- nl=1;
-
- while to_index < nb
- #Get next character
- c = s[to_index];
- if c == "\n"[0]
- #Explicit line break
- if @ws > 0
- @ws = 0
- out('0 Tw')
- end
- #Ed Moss - change begin
- end_i = to_index == 0 ? 0 : to_index - 1
- # Changed from s[from_j..to_index] to fix bug reported by Hans Allis.
- from_j = to_index == 0 ? 1 : from_j
- Cell(w, h, s[from_j..end_i], b, 2, align, fill)
- #change end
- to_index += 1
- sep=-1
- from_j=to_index
- l=0
- ns=0
- nl += 1
- b = b2 if border and nl==2
- next
- end
- if (c == " "[0])
- sep = to_index;
- ls = l;
- ns += 1;
- end
-
- l = GetStringWidth(s[from_j, to_index-from_j]);
-
- if (l > wmax)
- #Automatic line break
- if (sep == -1)
- if (to_index == from_j)
- to_index += 1;
- end
- if (@ws > 0)
- @ws = 0;
- out('0 Tw');
- end
- Cell(w, h, s[from_j..to_index-1], b, 2, align, fill) # my FPDF version
- else
- if (align=='J' || align=='justify' || align=='justified')
- @ws = (ns>1) ? (wmax-ls)/(ns-1) : 0;
- out(sprintf('%.3f Tw', @ws * @k));
- end
- Cell(w, h, s[from_j..sep], b, 2, align, fill);
- to_index = sep + 1;
- end
- sep=-1;
- from_j = to_index;
- l=0;
- ns=0;
- nl += 1;
- if (border and (nl==2))
- b = b2;
- end
- else
- to_index += 1;
- end
- end
- #Last chunk
- if (@ws>0)
- @ws=0;
- out('0 Tw');
- end
- if (border.is_a?(String) and border.include?('B'))
- b<<'B';
- end
- Cell(w, h, s[from_j, to_index-from_j], b, 2, align, fill);
-
- # move cursor to specified position
- # since 2007-03-03
- if (ln == 1)
- # go to the beginning of the next line
- @x = @l_margin;
- elsif (ln == 0)
- # go to the top-right of the cell
- @y = prevy;
- @x = prevx + w;
- elsif (ln == 2)
- # go to the bottom-left of the cell
- @x = prevx;
- end
- end
- alias_method :multi_cell, :MultiCell
+ #
+ # Extract info from a PNG file
+ # @access protected
+ #
+ def parsepng(file)
+ f=open(file,'rb');
+ #Check signature
+ if (f.read(8)!=137.chr + 'PNG' + 13.chr + 10.chr + 26.chr + 10.chr)
+ Error('Not a PNG file: ' + file);
+ end
+ #Read header chunk
+ f.read(4);
+ if (f.read(4)!='IHDR')
+ Error('Incorrect PNG file: ' + file);
+ end
+ w=freadint(f);
+ h=freadint(f);
+ bpc=f.read(1)[0];
+ if (bpc>8)
+ Error('16-bit depth not supported: ' + file);
+ end
+ ct=f.read(1)[0];
+ if (ct==0)
+ colspace='DeviceGray';
+ elsif (ct==2)
+ colspace='DeviceRGB';
+ elsif (ct==3)
+ colspace='Indexed';
+ else
+ Error('Alpha channel not supported: ' + file);
+ end
+ if (f.read(1)[0] != 0)
+ Error('Unknown compression method: ' + file);
+ end
+ if (f.read(1)[0]!=0)
+ Error('Unknown filter method: ' + file);
+ end
+ if (f.read(1)[0]!=0)
+ Error('Interlacing not supported: ' + file);
+ end
+ f.read(4);
+ parms='/DecodeParms <>';
+ #Scan chunks looking for palette, transparency and image data
+ pal='';
+ trns='';
+ data='';
+ begin
+ n=freadint(f);
+ type=f.read(4);
+ if (type=='PLTE')
+ #Read palette
+ pal=f.read( n);
+ f.read(4);
+ elsif (type=='tRNS')
+ #Read transparency info
+ t=f.read( n);
+ if (ct==0)
+ trns = t[1][0]
+ elsif (ct==2)
+ trns = t[[1][0], t[3][0], t[5][0]]
+ else
+ pos=t.include?(0.chr);
+ if (pos!=false)
+ trns = [pos]
+ end
+ end
+ f.read(4);
+ elsif (type=='IDAT')
+ #Read image data block
+ data< w, 'h' => h, 'cs' => colspace, 'bpc' => bpc, 'f'=>'FlateDecode', 'parms' => parms, 'pal' => pal, 'trns' => trns, 'data' => data}
+ end
- #
- # This method prints text from the current position. When the right margin is reached (or the \n character is met) a line break occurs and text continues from the left margin. Upon method exit, the current position is left just at the end of the text. It is possible to put a link on the text.
- # Example:
- #
- # #Begin with regular font
- # :pdf->SetFont('Arial','',14);
- # :pdf->Write(5,'Visit ');
- # #Then put a blue underlined link
- # :pdf->SetTextColor(0,0,255);
- # :pdf->SetFont('','U');
- # :pdf->Write(5,'www.tecnick.com','http://www.tecnick.com');
- #
- # @param float :h Line height
- # @param string :txt String to print
- # @param mixed :link URL or identifier returned by AddLink()
- # @param int :fill Indicates if the background must be painted (1) or transparent (0). Default value: 0.
- # @since 1.5
- # @see SetFont(), SetTextColor(), AddLink(), MultiCell(), SetAutoPageBreak()
- #
- def Write(h, txt, link=nil, fill=0)
-
- #Output text in flowing mode
- w = @w - @r_margin - @x;
- wmax = (w - 2 * @c_margin);
-
- s = txt.gsub("\r", '');
- nb = s.length;
-
- # handle single space character
- if ((nb==1) and (s == " "))
- @x += GetStringWidth(s);
- return;
- end
-
- sep=-1;
- i=0;
- j=0;
- l=0;
- nl=1;
- while(i wmax)
- #Automatic line break (word wrapping)
- if (sep == -1)
- if (@x > @l_margin)
- #Move to next line
- @x = @l_margin;
- @y += h;
- w=@w - @r_margin - @x;
- wmax=(w - 2 * @c_margin);
- i += 1
- nl += 1
- next
- end
- if (i == j)
- i += 1
- end
- Cell(w, h, s[j, (i-1)], 0, 2, '', fill, link);
- else
- Cell(w, h, s[j, (sep-j)], 0, 2, '', fill, link);
- i = sep+1;
- end
- sep = -1;
- j = i;
- l = 0;
- if (nl==1)
- @x = @l_margin;
- w = @w - @r_margin - @x;
- wmax = (w - 2 * @c_margin);
- end
- nl += 1;
- else
- i += 1;
- end
- end
- #Last chunk
- if (i != j)
- Cell(GetStringWidth(s[j..i]), h, s[j..i], 0, 0, '', fill, link);
- end
- end
- alias_method :write, :Write
+ #
+ # Read a 4-byte integer from file
+ # @access protected
+ #
+ def freadint(f)
+ # Read a 4-byte integer from file
+ a = f.read(4).unpack('N')
+ return a[0]
+ end
- #
- # Puts an image in the page. The upper-left corner must be given. The dimensions can be specified in different ways:explicit width and height (expressed in user unit) one explicit dimension, the other being calculated automatically in order to keep the original proportions no explicit dimension, in which case the image is put at 72 dpi
- # Supported formats are JPEG and PNG.
- # For JPEG, all flavors are allowed:gray scales true colors (24 bits) CMYK (32 bits)
- # For PNG, are allowed:gray scales on at most 8 bits (256 levels) indexed colors true colors (24 bits)
- # but are not supported:
- # If a transparent color is defined, it will be taken into account (but will be only interpreted by Acrobat 4 and above).
- # The format can be specified explicitly or inferred from the file extension.
- # It is possible to put a link on the image.
- # Remark: if an image is used several times, only one copy will be embedded in the file.
- # @param string :file Name of the file containing the image.
- # @param float :x Abscissa of the upper-left corner.
- # @param float :y Ordinate of the upper-left corner.
- # @param float :w Width of the image in the page. If not specified or equal to zero, it is automatically calculated.
- # @param float :h Height of the image in the page. If not specified or equal to zero, it is automatically calculated.
- # @param string :type Image format. Possible values are (case insensitive): JPG, JPEG, PNG. If not specified, the type is inferred from the file extension.
- # @param mixed :link URL or identifier returned by AddLink().
- # @since 1.1
- # @see AddLink()
- #
- def Image(file, x, y, w=0, h=0, type='', link=nil)
- #Put an image on the page
- if (@images[file].nil?)
- #First use of image, get info
- if (type == '')
- pos = file.rindex('.');
- if (pos == 0)
- Error('Image file has no extension and no type was specified: ' + file);
- end
- type = file[pos+1..-1];
- end
- type.downcase!
- if (type == 'jpg' or type == 'jpeg')
- info=parsejpg(file);
- elsif (type == 'png')
- info=parsepng(file);
- else
- #Allow for additional formats
- mtd='parse' + type;
- if (!self.respond_to?(mtd))
- Error('Unsupported image type: ' + type);
- end
- info=send(mtd, file);
- end
- info['i']=@images.length+1;
- @images[file] = info;
- else
- info=@images[file];
- end
- #Automatic width and height calculation if needed
- if ((w == 0) and (h == 0))
- #Put image at 72 dpi
- # 2004-06-14 :: Nicola Asuni, scale factor where added
- w = info['w'] / (@img_scale * @k);
- h = info['h'] / (@img_scale * @k);
- end
- if (w == 0)
- w = h * info['w'] / info['h'];
- end
- if (h == 0)
- h = w * info['h'] / info['w'];
- end
- out(sprintf('q %.2f 0 0 %.2f %.2f %.2f cm /I%d Do Q', w*@k, h*@k, x*@k, (@h-(y+h))*@k, info['i']));
- if (link)
- Link(x, y, w, h, link);
- end
-
- #2002-07-31 - Nicola Asuni
- # set right-bottom corner coordinates
- @img_rb_x = x + w;
- @img_rb_y = y + h;
- end
- alias_method :image, :Image
+ #
+ # Format a text string
+ # @access protected
+ #
+ def textstring(s)
+ if (@is_unicode)
+ #Convert string to UTF-16BE
+ s = UTF8ToUTF16BE(s, true);
+ end
+ return '(' + escape(s) + ')';
+ end
- #
- # Performs a line break. The current abscissa goes back to the left margin and the ordinate increases by the amount passed in parameter.
- # @param float :h The height of the break. By default, the value equals the height of the last printed cell.
- # @since 1.0
- # @see Cell()
- #
- def Ln(h='')
- #Line feed; default value is last cell height
- @x=@l_margin;
- if (h.is_a?(String))
- @y += @lasth;
- else
- @y += h;
- end
- end
- alias_method :ln, :Ln
+ #
+ # Format a text string
+ # @access protected
+ #
+ def escapetext(s)
+ if (@is_unicode)
+ #Convert string to UTF-16BE
+ s = UTF8ToUTF16BE(s, false);
+ end
+ return escape(s);
+ end
- #
- # Returns the abscissa of the current position.
- # @return float
- # @since 1.2
- # @see SetX(), GetY(), SetY()
- #
- def GetX()
- #Get x position
- return @x;
- end
- alias_method :get_x, :GetX
+ #
+ # Add \ before \, ( and )
+ # @access protected
+ #
+ def escape(s)
+ # Add \ before \, ( and )
+ s.gsub('\\','\\\\\\').gsub('(','\\(').gsub(')','\\)').gsub(13.chr, '\r')
+ end
- #
- # Defines the abscissa of the current position. If the passed value is negative, it is relative to the right of the page.
- # @param float :x The value of the abscissa.
- # @since 1.2
- # @see GetX(), GetY(), SetY(), SetXY()
- #
- def SetX(x)
- #Set x position
- if (x>=0)
- @x = x;
- else
- @x=@w+x;
- end
- end
- alias_method :set_x, :SetX
+ #
+ #
+ # @access protected
+ #
+ def putstream(s)
+ out('stream');
+ out(s);
+ out('endstream');
+ end
- #
- # Returns the ordinate of the current position.
- # @return float
- # @since 1.0
- # @see SetY(), GetX(), SetX()
- #
- def GetY()
- #Get y position
- return @y;
- end
- alias_method :get_y, :GetY
+ #
+ # Add a line to the document
+ # @access protected
+ #
+ def out(s)
+ if (@state==2)
+ @pages[@page] << s.to_s + "\n";
+ else
+ @buffer << s.to_s + "\n";
+ end
+ end
- #
- # Moves the current abscissa back to the left margin and sets the ordinate. If the passed value is negative, it is relative to the bottom of the page.
- # @param float :y The value of the ordinate.
- # @since 1.0
- # @see GetX(), GetY(), SetY(), SetXY()
- #
- def SetY(y)
- #Set y position and reset x
- @x=@l_margin;
- if (y>=0)
- @y = y;
- else
- @y=@h+y;
- end
- end
- alias_method :set_y, :SetY
+ #
+ # Adds unicode fonts.
+ # Based on PDF Reference 1.3 (section 5)
+ # @access protected
+ # @author Nicola Asuni
+ # @since 1.52.0.TC005 (2005-01-05)
+ #
+ def puttruetypeunicode(font)
+ # Type0 Font
+ # A composite font composed of other fonts, organized hierarchically
+ newobj();
+ out('<>');
+ out('endobj');
+
+ # CIDFontType2
+ # A CIDFont whose glyph descriptions are based on TrueType font technology
+ newobj();
+ out('<>');
+ out('endobj');
+
+ # ToUnicode
+ # is a stream object that contains the definition of the CMap
+ # (PDF Reference 1.3 chap. 5.9)
+ newobj();
+ out('<>');
+ out('stream');
+ out('/CIDInit /ProcSet findresource begin');
+ out('12 dict begin');
+ out('begincmap');
+ out('/CIDSystemInfo');
+ out('<> def');
+ out('/CMapName /Adobe-Identity-UCS def');
+ out('/CMapType 2 def');
+ out('1 begincodespacerange');
+ out('<0000> ');
+ out('endcodespacerange');
+ out('1 beginbfrange');
+ out('<0000> <0000>');
+ out('endbfrange');
+ out('endcmap');
+ out('CMapName currentdict /CMap defineresource pop');
+ out('end');
+ out('end');
+ out('endstream');
+ out('endobj');
+
+ # CIDSystemInfo dictionary
+ # A dictionary containing entries that define the character collection of the CIDFont.
+ newobj();
+ out('<>');
+ out('endobj');
+
+ # Font descriptor
+ # A font descriptor describing the CIDFont default metrics other than its glyph widths
+ newobj();
+ out('<>');
+ out('endobj');
+
+ # Embed CIDToGIDMap
+ # A specification of the mapping from CIDs to glyph indices
+ newobj();
+ ctgfile = getfontpath(font['ctg'])
+ if (!ctgfile)
+ Error('Font file not found: ' + ctgfile);
+ end
+ size = File.size(ctgfile);
+ out('<>');
+ open(ctgfile, "rb") do |f|
+ putstream(f.read())
+ end
+ out('endobj');
+ end
- #
- # Defines the abscissa and ordinate of the current position. If the passed values are negative, they are relative respectively to the right and bottom of the page.
- # @param float :x The value of the abscissa
- # @param float :y The value of the ordinate
- # @since 1.2
- # @see SetX(), SetY()
- #
- def SetXY(x, y)
- #Set x and y positions
- SetY(y);
- SetX(x);
- end
- alias_method :set_xy, :SetXY
+ #
+ # Converts UTF-8 strings to codepoints array.
+ # Invalid byte sequences will be replaced with 0xFFFD (replacement character)
+ # Based on: http://www.faqs.org/rfcs/rfc3629.html
+ #
+ # Char. number range | UTF-8 octet sequence
+ # (hexadecimal) | (binary)
+ # --------------------+-----------------------------------------------
+ # 0000 0000-0000 007F | 0xxxxxxx
+ # 0000 0080-0000 07FF | 110xxxxx 10xxxxxx
+ # 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
+ # 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+ # ---------------------------------------------------------------------
+ #
+ # ABFN notation:
+ # ---------------------------------------------------------------------
+ # UTF8-octets =#( UTF8-char )
+ # UTF8-char = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4
+ # UTF8-1 = %x00-7F
+ # UTF8-2 = %xC2-DF UTF8-tail
+ #
+ # UTF8-3 = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2( UTF8-tail ) /
+ # %xED %x80-9F UTF8-tail / %xEE-EF 2( UTF8-tail )
+ # UTF8-4 = %xF0 %x90-BF 2( UTF8-tail ) / %xF1-F3 3( UTF8-tail ) /
+ # %xF4 %x80-8F 2( UTF8-tail )
+ # UTF8-tail = %x80-BF
+ # ---------------------------------------------------------------------
+ #
+ # @param string :str string to process.
+ # @return array containing codepoints (UTF-8 characters values)
+ # @access protected
+ # @author Nicola Asuni
+ # @since 1.53.0.TC005 (2005-01-05)
+ #
+ def UTF8StringToArray(str)
+ if (!@is_unicode)
+ return str; # string is not in unicode
+ end
- #
- # Send the document to a given destination: string, local file or browser. In the last case, the plug-in may be used (if present) or a download ("Save as" dialog box) may be forced.
- # The method first calls Close() if necessary to terminate the document.
- # @param string :name The name of the file. If not given, the document will be sent to the browser (destination I) with the name doc.pdf.
- # @param string :dest Destination where to send the document. It can take one of the following values:I: send the file inline to the browser. The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF. D: send to the browser and force a file download with the name given by name. F: save to a local file with the name given by name. S: return the document as a string. name is ignored. If the parameter is not specified but a name is given, destination is F. If no parameter is specified at all, destination is I.
- # @since 1.0
- # @see Close()
- #
- def Output(name='', dest='')
- #Output PDF to some destination
- #Finish document if necessary
- if (@state < 3)
- Close();
- end
- #Normalize parameters
- # Boolean no longer supported
- # if (dest.is_a?(Boolean))
- # dest = dest ? 'D' : 'F';
- # end
- dest = dest.upcase
- if (dest=='')
- if (name=='')
- name='doc.pdf';
- dest='I';
- else
- dest='F';
- end
- end
- case (dest)
- when 'I'
- # This is PHP specific code
- ##Send to standard output
- # if (ob_get_contents())
- # Error('Some data has already been output, can\'t send PDF file');
- # end
- # if (php_sapi_name()!='cli')
- # #We send to a browser
- # header('Content-Type: application/pdf');
- # if (headers_sent())
- # Error('Some data has already been output to browser, can\'t send PDF file');
- # end
- # header('Content-Length: ' + @buffer.length);
- # header('Content-disposition: inline; filename="' + name + '"');
- # end
- return @buffer;
-
- when 'D'
- # PHP specific
- #Download file
- # if (ob_get_contents())
- # Error('Some data has already been output, can\'t send PDF file');
- # end
- # if (!_SERVER['HTTP_USER_AGENT'].nil? && SERVER['HTTP_USER_AGENT'].include?('MSIE'))
- # header('Content-Type: application/force-download');
- # else
- # header('Content-Type: application/octet-stream');
- # end
- # if (headers_sent())
- # Error('Some data has already been output to browser, can\'t send PDF file');
- # end
- # header('Content-Length: '+ @buffer.length);
- # header('Content-disposition: attachment; filename="' + name + '"');
- return @buffer;
-
- when 'F'
- open(name,'wb') do |f|
- f.write(@buffer)
+ unicode = [] # array containing unicode values
+ bytes = [] # array containing single character byte sequences
+ numbytes = 1; # number of octetc needed to represent the UTF-8 character
+
+ str = str.to_s; # force :str to be a string
+
+ str.each_byte do |char|
+ if (bytes.length == 0) # get starting octect
+ if (char <= 0x7F)
+ unicode << char # use the character "as is" because is ASCII
+ numbytes = 1
+ elsif ((char >> 0x05) == 0x06) # 2 bytes character (0x06 = 110 BIN)
+ bytes << ((char - 0xC0) << 0x06)
+ numbytes = 2
+ elsif ((char >> 0x04) == 0x0E) # 3 bytes character (0x0E = 1110 BIN)
+ bytes << ((char - 0xE0) << 0x0C)
+ numbytes = 3
+ elsif ((char >> 0x03) == 0x1E) # 4 bytes character (0x1E = 11110 BIN)
+ bytes << ((char - 0xF0) << 0x12)
+ numbytes = 4
+ else
+ # use replacement character for other invalid sequences
+ unicode << 0xFFFD
+ bytes = []
+ numbytes = 1
end
- # PHP code
- # #Save to local file
- # f=open(name,'wb');
- # if (!f)
- # Error('Unable to create output file: ' + name);
- # end
- # fwrite(f,@buffer,@buffer.length);
- # f.close
-
- when 'S'
- #Return as a string
- return @buffer;
- else
- Error('Incorrect output destination: ' + dest);
-
- end
- return '';
- end
- alias_method :output, :Output
-
- # Protected methods
-
- #
- # Check for locale-related bug
- # @access protected
- #
- def dochecks()
- #Check for locale-related bug
- if (1.1==1)
- Error('Don\'t alter the locale before including class file');
- end
- #Check for decimal separator
- if (sprintf('%.1f',1.0)!='1.0')
- setlocale(LC_NUMERIC,'C');
- end
- end
-
- #
- # Return fonts path
- # @access protected
- #
- def getfontpath(file)
- # Is it in the @@font_path?
- if @@font_path
- fpath = File.join @@font_path, file
- if File.exists?(fpath)
- return fpath
+ elsif ((char >> 0x06) == 0x02) # bytes 2, 3 and 4 must start with 0x02 = 10 BIN
+ bytes << (char - 0x80)
+ if (bytes.length == numbytes)
+ # compose UTF-8 bytes to a single unicode value
+ char = bytes[0]
+ 1.upto(numbytes-1) do |j|
+ char += (bytes[j] << ((numbytes - j - 1) * 0x06))
+ end
+ if (((char >= 0xD800) and (char <= 0xDFFF)) or (char >= 0x10FFFF))
+ # The definition of UTF-8 prohibits encoding character numbers between
+ # U+D800 and U+DFFF, which are reserved for use with the UTF-16
+ # encoding form (as surrogate pairs) and do not directly represent
+ # characters
+ unicode << 0xFFFD; # use replacement character
+ else
+ unicode << char; # add char to array
+ end
+ # reset data for next char
+ bytes = []
+ numbytes = 1;
+ end
+ else
+ # use replacement character for other invalid sequences
+ unicode << 0xFFFD;
+ bytes = []
+ numbytes = 1;
end
end
- # Is it in this plugin's font folder?
- fpath = File.join File.dirname(__FILE__), 'fonts', file
- if File.exists?(fpath)
- return fpath
+ return unicode;
+ end
+
+ #
+ # Converts UTF-8 strings to UTF16-BE.
+ # Based on: http://www.faqs.org/rfcs/rfc2781.html
+ #
+ # Encoding UTF-16:
+ #
+ # Encoding of a single character from an ISO 10646 character value to
+ # UTF-16 proceeds as follows. Let U be the character number, no greater
+ # than 0x10FFFF.
+ #
+ # 1) If U < 0x10000, encode U as a 16-bit unsigned integer and
+ # terminate.
+ #
+ # 2) Let U' = U - 0x10000. Because U is less than or equal to 0x10FFFF,
+ # U' must be less than or equal to 0xFFFFF. That is, U' can be
+ # represented in 20 bits.
+ #
+ # 3) Initialize two 16-bit unsigned integers, W1 and W2, to 0xD800 and
+ # 0xDC00, respectively. These integers each have 10 bits free to
+ # encode the character value, for a total of 20 bits.
+ #
+ # 4) Assign the 10 high-order bits of the 20-bit U' to the 10 low-order
+ # bits of W1 and the 10 low-order bits of U' to the 10 low-order
+ # bits of W2. Terminate.
+ #
+ # Graphically, steps 2 through 4 look like:
+ # U' = yyyyyyyyyyxxxxxxxxxx
+ # W1 = 110110yyyyyyyyyy
+ # W2 = 110111xxxxxxxxxx
+ #
+ # @param string :str string to process.
+ # @param boolean :setbom if true set the Byte Order Mark (BOM = 0xFEFF)
+ # @return string
+ # @access protected
+ # @author Nicola Asuni
+ # @since 1.53.0.TC005 (2005-01-05)
+ # @uses UTF8StringToArray
+ #
+ def UTF8ToUTF16BE(str, setbom=true)
+ if (!@is_unicode)
+ return str; # string is not in unicode
end
- # Could not find it.
- nil
- end
-
- #
- # Start document
- # @access protected
- #
- def begindoc()
- #Start document
- @state=1;
- out('%PDF-1.3');
- end
-
- #
- # putpages
- # @access protected
- #
- def putpages()
- nb = @page;
- if (@alias_nb_pages)
- nbstr = UTF8ToUTF16BE(nb, false);
- #Replace number of pages
- 1.upto(nb) do |n|
- @pages[n].gsub!(@alias_nb_pages, nbstr)
- end
- end
- if @def_orientation=='P'
- w_pt=@fw_pt
- h_pt=@fh_pt
- else
- w_pt=@fh_pt
- h_pt=@fw_pt
- end
- filter=(@compress) ? '/Filter /FlateDecode ' : ''
- 1.upto(nb) do |n|
- #Page
- newobj
- out('<>>>';
- else
- l=@links[pl[4]];
- h=!@orientation_changes[l[0]].nil? ? w_pt : h_pt;
- annots<>',1+2*l[0], h-l[1]*@k);
- end
- end
- out(annots + ']');
- end
- out('/Contents ' + (@n+1).to_s + ' 0 R>>');
- out('endobj');
- #Page content
- p=(@compress) ? gzcompress(@pages[n]) : @pages[n];
- newobj();
- out('<<' + filter + '/Length '+ p.length.to_s + '>>');
- putstream(p);
- out('endobj');
- end
- #Pages root
- @offsets[1]=@buffer.length;
- out('1 0 obj');
- out('<>');
- out('endobj');
- end
-
- #
- # Adds fonts
- # putfonts
- # @access protected
- #
- def putfonts()
- nf=@n;
- @diffs.each do |diff|
- #Encodings
- newobj();
- out('<>');
- out('endobj');
- end
- @font_files.each do |file, info|
- #Font file embedding
- newobj();
- @font_files[file]['n']=@n;
- font='';
- open(getfontpath(file),'rb') do |f|
- font = f.read();
- end
- compressed=(file[-2,2]=='.z');
- if (!compressed && !info['length2'].nil?)
- header=((font[0][0])==128);
- if (header)
- #Strip first binary header
- font=font[6];
- end
- if header && (font[info['length1']][0] == 128)
- #Strip second binary header
- font=font[0..info['length1']] + font[info['length1']+6];
- end
- end
- out('<>');
- open(getfontpath(file),'rb') do |f|
- putstream(font)
+ outstr = ""; # string to be returned
+ unicode = UTF8StringToArray(str); # array containing UTF-8 unicode values
+ numitems = unicode.length;
+
+ if (setbom)
+ outstr << "\xFE\xFF"; # Byte Order Mark (BOM)
+ end
+ unicode.each do |char|
+ if (char == 0xFFFD)
+ outstr << "\xFF\xFD"; # replacement character
+ elsif (char < 0x10000)
+ outstr << (char >> 0x08).chr;
+ outstr << (char & 0xFF).chr;
+ else
+ char -= 0x10000;
+ w1 = 0xD800 | (char >> 0x10);
+ w2 = 0xDC00 | (char & 0x3FF);
+ outstr << (w1 >> 0x08).chr;
+ outstr << (w1 & 0xFF).chr;
+ outstr << (w2 >> 0x08).chr;
+ outstr << (w2 & 0xFF).chr;
end
- out('endobj');
- end
- @fonts.each do |k, font|
- #Font objects
- @fonts[k]['n']=@n+1;
- type = font['type'];
- name = font['name'];
- if (type=='core')
- #Standard font
- newobj();
- out('<>');
- out('endobj');
- elsif type == 'Type0'
- putType0(font)
- elsif (type=='Type1' || type=='TrueType')
- #Additional Type1 or TrueType font
- newobj();
- out('<>');
- out('endobj');
- #Widths
- newobj();
- cw=font['cw']; # &
- s='[';
- 32.upto(255) do |i|
- s << cw[i.chr] + ' ';
- end
- out(s + ']');
- out('endobj');
- #Descriptor
- newobj();
- s='<>');
- out('endobj');
- else
- #Allow for additional types
- mtd='put' + type.downcase;
- if (!self.respond_to?(mtd))
- Error('Unsupported font type: ' + type)
- else
- self.send(mtd,font)
- end
- end
- end
- end
+ end
+ return outstr;
+ end
- def putType0(font)
- #Type0
- out('<>')
- out('endobj')
- #CIDFont
- newobj()
- out('<>')
- out('/FontDescriptor '+(@n+1).to_s+' 0 R')
- w='/W [1 ['
- font['cw'].keys.sort.each {|key|
- w+=font['cw'][key].to_s + " "
-# ActionController::Base::logger.debug key.to_s
-# ActionController::Base::logger.debug font['cw'][key].to_s
- }
- out(w+'] 231 325 500 631 [500] 326 389 500]')
- out('>>')
- out('endobj')
- #Font descriptor
- newobj()
- out('<>')
- out('endobj')
- end
-
- #
- # putimages
- # @access protected
- #
- def putimages()
- filter=(@compress) ? '/Filter /FlateDecode ' : '';
- @images.each do |file, info| # was while(list(file, info)=each(@images))
- newobj();
- @images[file]['n']=@n;
- out('<>');
- putstream(info['data']);
- @images[file]['data']=nil
- out('endobj');
- #Palette
- if (info['cs']=='Indexed')
- newobj();
- pal=(@compress) ? gzcompress(info['pal']) : :info['pal'];
- out('<<' + filter + '/Length ' + pal.length.to_s + '>>');
- putstream(pal);
- out('endobj');
- end
- end
- end
-
- #
- # putxobjectdict
- # @access protected
- #
- def putxobjectdict()
- @images.each_value do |image|
- out('/I' + image['i'].to_s + ' ' + image['n'].to_s + ' 0 R');
- end
- end
-
- #
- # putresourcedict
- # @access protected
- #
- def putresourcedict()
- out('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]');
- out('/Font <<');
- @fonts.each_value do |font|
- out('/F' + font['i'].to_s + ' ' + font['n'].to_s + ' 0 R');
- end
- out('>>');
- out('/XObject <<');
- putxobjectdict();
- out('>>');
- end
-
- #
- # putresources
- # @access protected
- #
- def putresources()
- putfonts();
- putimages();
- #Resource dictionary
- @offsets[2]=@buffer.length;
- out('2 0 obj');
- out('<<');
- putresourcedict();
- out('>>');
- out('endobj');
- end
-
- #
- # putinfo
- # @access protected
- #
- def putinfo()
- out('/Producer ' + textstring(PDF_PRODUCER));
- if (!@title.nil?)
- out('/Title ' + textstring(@title));
- end
- if (!@subject.nil?)
- out('/Subject ' + textstring(@subject));
- end
- if (!@author.nil?)
- out('/Author ' + textstring(@author));
- end
- if (!@keywords.nil?)
- out('/Keywords ' + textstring(@keywords));
- end
- if (!@creator.nil?)
- out('/Creator ' + textstring(@creator));
- end
- out('/CreationDate ' + textstring('D:' + Time.now.strftime('%Y%m%d%H%M%S')));
- end
-
- #
- # putcatalog
- # @access protected
- #
- def putcatalog()
- out('/Type /Catalog');
- out('/Pages 1 0 R');
- if (@zoom_mode=='fullpage')
- out('/OpenAction [3 0 R /Fit]');
- elsif (@zoom_mode=='fullwidth')
- out('/OpenAction [3 0 R /FitH null]');
- elsif (@zoom_mode=='real')
- out('/OpenAction [3 0 R /XYZ null null 1]');
- elsif (!@zoom_mode.is_a?(String))
- out('/OpenAction [3 0 R /XYZ null null ' + (@zoom_mode/100) + ']');
- end
- if (@layout_mode=='single')
- out('/PageLayout /SinglePage');
- elsif (@layout_mode=='continuous')
- out('/PageLayout /OneColumn');
- elsif (@layout_mode=='two')
- out('/PageLayout /TwoColumnLeft');
- end
- end
-
- #
- # puttrailer
- # @access protected
- #
- def puttrailer()
- out('/Size ' + (@n+1).to_s);
- out('/Root ' + @n.to_s + ' 0 R');
- out('/Info ' + (@n-1).to_s + ' 0 R');
- end
-
- #
- # putheader
- # @access protected
- #
- def putheader()
- out('%PDF-' + @pdf_version);
- end
-
- #
- # enddoc
- # @access protected
- #
- def enddoc()
- putheader();
- putpages();
- putresources();
- #Info
- newobj();
- out('<<');
- putinfo();
- out('>>');
- out('endobj');
- #Catalog
- newobj();
- out('<<');
- putcatalog();
- out('>>');
- out('endobj');
- #Cross-ref
- o=@buffer.length;
- out('xref');
- out('0 ' + (@n+1).to_s);
- out('0000000000 65535 f ');
- 1.upto(@n) do |i|
- out(sprintf('%010d 00000 n ',@offsets[i]));
- end
- #Trailer
- out('trailer');
- out('<<');
- puttrailer();
- out('>>');
- out('startxref');
- out(o);
- out('%%EOF');
- @state=3;
- end
-
- #
- # beginpage
- # @access protected
- #
- def beginpage(orientation)
- @page += 1;
- @pages[@page]='';
- @state=2;
- @x=@l_margin;
- @y=@t_margin;
- @font_family='';
- #Page orientation
- if (orientation.empty?)
- orientation=@def_orientation;
- else
- orientation.upcase!
- if (orientation!=@def_orientation)
- @orientation_changes[@page]=true;
- end
- end
- if (orientation!=@cur_orientation)
- #Change orientation
- if (orientation=='P')
- @w_pt=@fw_pt;
- @h_pt=@fh_pt;
- @w=@fw;
- @h=@fh;
- else
- @w_pt=@fh_pt;
- @h_pt=@fw_pt;
- @w=@fh;
- @h=@fw;
- end
- @page_break_trigger=@h-@b_margin;
- @cur_orientation = orientation;
- end
- end
-
- #
- # End of page contents
- # @access protected
- #
- def endpage()
- @state=1;
- end
-
- #
- # Begin a new object
- # @access protected
- #
- def newobj()
- @n += 1;
- @offsets[@n]=@buffer.length;
- out(@n.to_s + ' 0 obj');
- end
-
- #
- # Underline text
- # @access protected
- #
- def dounderline(x, y, txt)
- up = @current_font['up'];
- ut = @current_font['ut'];
- w = GetStringWidth(txt) + @ws * txt.count(' ');
- sprintf('%.2f %.2f %.2f %.2f re f', x * @k, (@h - (y - up / 1000.0 * @font_size)) * @k, w * @k, -ut / 1000.0 * @font_size_pt);
- end
-
- #
- # Extract info from a JPEG file
- # @access protected
- #
- def parsejpg(file)
- a=getimagesize(file);
- if (a.empty?)
- Error('Missing or incorrect image file: ' + file);
- end
- if (a[2]!='JPEG')
- Error('Not a JPEG file: ' + file);
- end
- if (a['channels'].nil? or a['channels']==3)
- colspace='DeviceRGB';
- elsif (a['channels']==4)
- colspace='DeviceCMYK';
- else
- colspace='DeviceGray';
- end
- bpc=!a['bits'].nil? ? a['bits'] : 8;
- #Read whole file
- data='';
- open(file,'rb') do |f|
- data< a[0],'h' => a[1],'cs' => colspace,'bpc' => bpc,'f'=>'DCTDecode','data' => data}
- end
-
- #
- # Extract info from a PNG file
- # @access protected
- #
- def parsepng(file)
- f=open(file,'rb');
- #Check signature
- if (f.read(8)!=137.chr + 'PNG' + 13.chr + 10.chr + 26.chr + 10.chr)
- Error('Not a PNG file: ' + file);
- end
- #Read header chunk
- f.read(4);
- if (f.read(4)!='IHDR')
- Error('Incorrect PNG file: ' + file);
- end
- w=freadint(f);
- h=freadint(f);
- bpc=f.read(1)[0];
- if (bpc>8)
- Error('16-bit depth not supported: ' + file);
- end
- ct=f.read(1)[0];
- if (ct==0)
- colspace='DeviceGray';
- elsif (ct==2)
- colspace='DeviceRGB';
- elsif (ct==3)
- colspace='Indexed';
- else
- Error('Alpha channel not supported: ' + file);
- end
- if (f.read(1)[0] != 0)
- Error('Unknown compression method: ' + file);
- end
- if (f.read(1)[0]!=0)
- Error('Unknown filter method: ' + file);
- end
- if (f.read(1)[0]!=0)
- Error('Interlacing not supported: ' + file);
- end
- f.read(4);
- parms='/DecodeParms <>';
- #Scan chunks looking for palette, transparency and image data
- pal='';
- trns='';
- data='';
- begin
- n=freadint(f);
- type=f.read(4);
- if (type=='PLTE')
- #Read palette
- pal=f.read( n);
- f.read(4);
- elsif (type=='tRNS')
- #Read transparency info
- t=f.read( n);
- if (ct==0)
- trns = t[1][0]
- elsif (ct==2)
- trns = t[[1][0], t[3][0], t[5][0]]
- else
- pos=t.include?(0.chr);
- if (pos!=false)
- trns = [pos]
- end
- end
- f.read(4);
- elsif (type=='IDAT')
- #Read image data block
- data< w, 'h' => h, 'cs' => colspace, 'bpc' => bpc, 'f'=>'FlateDecode', 'parms' => parms, 'pal' => pal, 'trns' => trns, 'data' => data}
- end
-
- #
- # Read a 4-byte integer from file
- # @access protected
- #
- def freadint(f)
- # Read a 4-byte integer from file
- a = f.read(4).unpack('N')
- return a[0]
- end
-
- #
- # Format a text string
- # @access protected
- #
- def textstring(s)
- if (@is_unicode)
- #Convert string to UTF-16BE
- s = UTF8ToUTF16BE(s, true);
- end
- return '(' + escape(s) + ')';
- end
-
- #
- # Format a text string
- # @access protected
- #
- def escapetext(s)
- if (@is_unicode)
- #Convert string to UTF-16BE
- s = UTF8ToUTF16BE(s, false);
- end
- return escape(s);
- end
-
- #
- # Add \ before \, ( and )
- # @access protected
- #
- def escape(s)
- # Add \ before \, ( and )
- s.gsub('\\','\\\\\\').gsub('(','\\(').gsub(')','\\)').gsub(13.chr, '\r')
- end
-
- #
- #
- # @access protected
- #
- def putstream(s)
- out('stream');
- out(s);
- out('endstream');
- end
-
- #
- # Add a line to the document
- # @access protected
- #
- def out(s)
- if (@state==2)
- @pages[@page] << s.to_s + "\n";
- else
- @buffer << s.to_s + "\n";
- end
- end
-
- #
- # Adds unicode fonts.
- # Based on PDF Reference 1.3 (section 5)
- # @access protected
- # @author Nicola Asuni
- # @since 1.52.0.TC005 (2005-01-05)
- #
- def puttruetypeunicode(font)
- # Type0 Font
- # A composite font composed of other fonts, organized hierarchically
- newobj();
- out('<>');
- out('endobj');
-
- # CIDFontType2
- # A CIDFont whose glyph descriptions are based on TrueType font technology
- newobj();
- out('<>');
- out('endobj');
-
- # ToUnicode
- # is a stream object that contains the definition of the CMap
- # (PDF Reference 1.3 chap. 5.9)
- newobj();
- out('<>');
- out('stream');
- out('/CIDInit /ProcSet findresource begin');
- out('12 dict begin');
- out('begincmap');
- out('/CIDSystemInfo');
- out('<> def');
- out('/CMapName /Adobe-Identity-UCS def');
- out('/CMapType 2 def');
- out('1 begincodespacerange');
- out('<0000> ');
- out('endcodespacerange');
- out('1 beginbfrange');
- out('<0000> <0000>');
- out('endbfrange');
- out('endcmap');
- out('CMapName currentdict /CMap defineresource pop');
- out('end');
- out('end');
- out('endstream');
- out('endobj');
-
- # CIDSystemInfo dictionary
- # A dictionary containing entries that define the character collection of the CIDFont.
- newobj();
- out('<>');
- out('endobj');
-
- # Font descriptor
- # A font descriptor describing the CIDFont default metrics other than its glyph widths
- newobj();
- out('<>');
- out('endobj');
-
- # Embed CIDToGIDMap
- # A specification of the mapping from CIDs to glyph indices
- newobj();
- ctgfile = getfontpath(font['ctg'])
- if (!ctgfile)
- Error('Font file not found: ' + ctgfile);
- end
- size = File.size(ctgfile);
- out('<>');
- open(ctgfile, "rb") do |f|
- putstream(f.read())
+ # ====================================================
+
+ #
+ # Set header font.
+ # @param array :font font
+ # @since 1.1
+ #
+ def SetHeaderFont(font)
+ @header_font = font;
+ end
+ alias_method :set_header_font, :SetHeaderFont
+
+ #
+ # Set footer font.
+ # @param array :font font
+ # @since 1.1
+ #
+ def SetFooterFont(font)
+ @footer_font = font;
+ end
+ alias_method :set_footer_font, :SetFooterFont
+
+ #
+ # Set language array.
+ # @param array :language
+ # @since 1.1
+ #
+ def SetLanguageArray(language)
+ @l = language;
+ end
+ alias_method :set_language_array, :SetLanguageArray
+
+ #
+ # Returns the PDF data.
+ #
+ def GetPDFData()
+ if (@state < 3)
+ Close();
end
- out('endobj');
- end
-
- #
- # Converts UTF-8 strings to codepoints array.
- # Invalid byte sequences will be replaced with 0xFFFD (replacement character)
- # Based on: http://www.faqs.org/rfcs/rfc3629.html
- #
- # Char. number range | UTF-8 octet sequence
- # (hexadecimal) | (binary)
- # --------------------+-----------------------------------------------
- # 0000 0000-0000 007F | 0xxxxxxx
- # 0000 0080-0000 07FF | 110xxxxx 10xxxxxx
- # 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
- # 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
- # ---------------------------------------------------------------------
- #
- # ABFN notation:
- # ---------------------------------------------------------------------
- # UTF8-octets =#( UTF8-char )
- # UTF8-char = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4
- # UTF8-1 = %x00-7F
- # UTF8-2 = %xC2-DF UTF8-tail
- #
- # UTF8-3 = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2( UTF8-tail ) /
- # %xED %x80-9F UTF8-tail / %xEE-EF 2( UTF8-tail )
- # UTF8-4 = %xF0 %x90-BF 2( UTF8-tail ) / %xF1-F3 3( UTF8-tail ) /
- # %xF4 %x80-8F 2( UTF8-tail )
- # UTF8-tail = %x80-BF
- # ---------------------------------------------------------------------
- #
- # @param string :str string to process.
- # @return array containing codepoints (UTF-8 characters values)
- # @access protected
- # @author Nicola Asuni
- # @since 1.53.0.TC005 (2005-01-05)
- #
- def UTF8StringToArray(str)
- if (!@is_unicode)
- return str; # string is not in unicode
- end
-
- unicode = [] # array containing unicode values
- bytes = [] # array containing single character byte sequences
- numbytes = 1; # number of octetc needed to represent the UTF-8 character
-
- str = str.to_s; # force :str to be a string
-
- str.each_byte do |char|
- if (bytes.length == 0) # get starting octect
- if (char <= 0x7F)
- unicode << char # use the character "as is" because is ASCII
- numbytes = 1
- elsif ((char >> 0x05) == 0x06) # 2 bytes character (0x06 = 110 BIN)
- bytes << ((char - 0xC0) << 0x06)
- numbytes = 2
- elsif ((char >> 0x04) == 0x0E) # 3 bytes character (0x0E = 1110 BIN)
- bytes << ((char - 0xE0) << 0x0C)
- numbytes = 3
- elsif ((char >> 0x03) == 0x1E) # 4 bytes character (0x1E = 11110 BIN)
- bytes << ((char - 0xF0) << 0x12)
- numbytes = 4
- else
- # use replacement character for other invalid sequences
- unicode << 0xFFFD
- bytes = []
- numbytes = 1
- end
- elsif ((char >> 0x06) == 0x02) # bytes 2, 3 and 4 must start with 0x02 = 10 BIN
- bytes << (char - 0x80)
- if (bytes.length == numbytes)
- # compose UTF-8 bytes to a single unicode value
- char = bytes[0]
- 1.upto(numbytes-1) do |j|
- char += (bytes[j] << ((numbytes - j - 1) * 0x06))
- end
- if (((char >= 0xD800) and (char <= 0xDFFF)) or (char >= 0x10FFFF))
- # The definition of UTF-8 prohibits encoding character numbers between
- # U+D800 and U+DFFF, which are reserved for use with the UTF-16
- # encoding form (as surrogate pairs) and do not directly represent
- # characters
- unicode << 0xFFFD; # use replacement character
- else
- unicode << char; # add char to array
- end
- # reset data for next char
- bytes = []
- numbytes = 1;
- end
- else
- # use replacement character for other invalid sequences
- unicode << 0xFFFD;
- bytes = []
- numbytes = 1;
- end
- end
- return unicode;
- end
-
- #
- # Converts UTF-8 strings to UTF16-BE.
- # Based on: http://www.faqs.org/rfcs/rfc2781.html
- #
- # Encoding UTF-16:
- #
- # Encoding of a single character from an ISO 10646 character value to
- # UTF-16 proceeds as follows. Let U be the character number, no greater
- # than 0x10FFFF.
- #
- # 1) If U < 0x10000, encode U as a 16-bit unsigned integer and
- # terminate.
- #
- # 2) Let U' = U - 0x10000. Because U is less than or equal to 0x10FFFF,
- # U' must be less than or equal to 0xFFFFF. That is, U' can be
- # represented in 20 bits.
- #
- # 3) Initialize two 16-bit unsigned integers, W1 and W2, to 0xD800 and
- # 0xDC00, respectively. These integers each have 10 bits free to
- # encode the character value, for a total of 20 bits.
- #
- # 4) Assign the 10 high-order bits of the 20-bit U' to the 10 low-order
- # bits of W1 and the 10 low-order bits of U' to the 10 low-order
- # bits of W2. Terminate.
- #
- # Graphically, steps 2 through 4 look like:
- # U' = yyyyyyyyyyxxxxxxxxxx
- # W1 = 110110yyyyyyyyyy
- # W2 = 110111xxxxxxxxxx
- #
- # @param string :str string to process.
- # @param boolean :setbom if true set the Byte Order Mark (BOM = 0xFEFF)
- # @return string
- # @access protected
- # @author Nicola Asuni
- # @since 1.53.0.TC005 (2005-01-05)
- # @uses UTF8StringToArray
- #
- def UTF8ToUTF16BE(str, setbom=true)
- if (!@is_unicode)
- return str; # string is not in unicode
- end
- outstr = ""; # string to be returned
- unicode = UTF8StringToArray(str); # array containing UTF-8 unicode values
- numitems = unicode.length;
-
- if (setbom)
- outstr << "\xFE\xFF"; # Byte Order Mark (BOM)
- end
- unicode.each do |char|
- if (char == 0xFFFD)
- outstr << "\xFF\xFD"; # replacement character
- elsif (char < 0x10000)
- outstr << (char >> 0x08).chr;
- outstr << (char & 0xFF).chr;
- else
- char -= 0x10000;
- w1 = 0xD800 | (char >> 0x10);
- w2 = 0xDC00 | (char & 0x3FF);
- outstr << (w1 >> 0x08).chr;
- outstr << (w1 & 0xFF).chr;
- outstr << (w2 >> 0x08).chr;
- outstr << (w2 & 0xFF).chr;
- end
- end
- return outstr;
- end
-
- # ====================================================
-
- #
- # Set header font.
- # @param array :font font
- # @since 1.1
- #
- def SetHeaderFont(font)
- @header_font = font;
- end
- alias_method :set_header_font, :SetHeaderFont
-
- #
- # Set footer font.
- # @param array :font font
- # @since 1.1
- #
- def SetFooterFont(font)
- @footer_font = font;
- end
- alias_method :set_footer_font, :SetFooterFont
-
- #
- # Set language array.
- # @param array :language
- # @since 1.1
- #
- def SetLanguageArray(language)
- @l = language;
- end
- alias_method :set_language_array, :SetLanguageArray
-
- #
- # Returns the PDF data.
- #
- def GetPDFData()
- if (@state < 3)
- Close();
- end
- return @buffer;
- end
-
- # --- HTML PARSER FUNCTIONS ---
-
- #
- # Allows to preserve some HTML formatting.
- # Supports: h1, h2, h3, h4, h5, h6, b, u, i, a, img, p, br, strong, em, font, blockquote, li, ul, ol, hr, td, th, tr, table, sup, sub, small
- # @param string :html text to display
- # @param boolean :ln if true add a new line after text (default = true)
- # @param int :fill Indicates if the background must be painted (1) or transparent (0). Default value: 0.
- #
- def writeHTML(html, ln=true, fill=0, h=0)
-
+ return @buffer;
+ end
+
+ # --- HTML PARSER FUNCTIONS ---
+
+ #
+ # Allows to preserve some HTML formatting.
+ # Supports: h1, h2, h3, h4, h5, h6, b, u, i, a, img, p, br, strong, em, font, blockquote, li, ul, ol, hr, td, th, tr, table, sup, sub, small
+ # @param string :html text to display
+ # @param boolean :ln if true add a new line after text (default = true)
+ # @param int :fill Indicates if the background must be painted (1) or transparent (0). Default value: 0.
+ #
+ def writeHTML(html, ln=true, fill=0, h=0)
+
@lasth = h if h > 0
- if (@lasth == 0)
- #set row height
- @lasth = @font_size * @@k_cell_height_ratio;
- end
-
+ if (@lasth == 0)
+ #set row height
+ @lasth = @font_size * @@k_cell_height_ratio;
+ end
+
@href = nil
@style = {}
html.gsub!(/[\t\r\n\f]/, "")#\0\x0B
@@ -3289,456 +3289,456 @@ class TCPDF
if "<" == element[0,1]
#Tag
if (element[1, 1] == '/')
- closedHTMLTagHandler(element[2..-2].downcase);
+ closedHTMLTagHandler(element[2..-2].downcase);
else
- #Extract attributes
- # get tag name
- tag = element.scan(/([a-zA-Z0-9]*)/).flatten.delete_if {|x| x.length == 0}
- tag = tag[0].downcase;
-
- # get attributes
- attr_array = element.scan(/([^=\s]*)=["\']?([^"\']*)["\']?/)
+ #Extract attributes
+ # get tag name
+ tag = element.scan(/([a-zA-Z0-9]*)/).flatten.delete_if {|x| x.length == 0}
+ tag = tag[0].downcase;
+
+ # get attributes
+ attr_array = element.scan(/([^=\s]*)=["\']?([^"\']*)["\']?/)
attrs = {}
attr_array.each do |name, value|
- attrs[name.downcase] = value;
- end
- openHTMLTagHandler(tag, attrs, fill);
- end
-
+ attrs[name.downcase] = value;
+ end
+ openHTMLTagHandler(tag, attrs, fill);
+ end
+
else
#Text
- if (@href)
- addHtmlLink(@href, element, fill);
- elsif (@tdbegin)
- if ((element.strip.length > 0) and (element != " "))
- Cell(@tdwidth, @tdheight, unhtmlentities(element.strip), @tableborder, 0, @tdalign, @tdfill);
- elsif (element == " ")
- Cell(@tdwidth, @tdheight, '', @tableborder, 0, @tdalign, @tdfill);
- end
- elsif ((element.strip.length > 0) and (element != " "))
- Write(@lasth, unhtmlentities(element), '', fill);
- end
+ if (@href)
+ addHtmlLink(@href, element, fill);
+ elsif (@tdbegin)
+ if ((element.strip.length > 0) and (element != " "))
+ Cell(@tdwidth, @tdheight, unhtmlentities(element.strip), @tableborder, 0, @tdalign, @tdfill);
+ elsif (element == " ")
+ Cell(@tdwidth, @tdheight, '', @tableborder, 0, @tdalign, @tdfill);
+ end
+ elsif ((element.strip.length > 0) and (element != " "))
+ Write(@lasth, unhtmlentities(element), '', fill);
+ end
end
end
-
- if (ln)
- Ln(@lasth);
- end
- end
+
+ if (ln)
+ Ln(@lasth);
+ end
+ end
alias_method :write_html, :writeHTML
- #
- # Prints a cell (rectangular area) with optional borders, background color and html text string. The upper-left corner of the cell corresponds to the current position. After the call, the current position moves to the right or to the next line.
- # If automatic page breaking is enabled and the cell goes beyond the limit, a page break is done before outputting.
- # @param float :w Cell width. If 0, the cell extends up to the right margin.
- # @param float :h Cell minimum height. The cell extends automatically if needed.
- # @param float :x upper-left corner X coordinate
- # @param float :y upper-left corner Y coordinate
- # @param string :html html text to print. Default value: empty string.
- # @param mixed :border Indicates if borders must be drawn around the cell. The value can be either a number:0: no border (default) 1: frame or a string containing some or all of the following characters (in any order):L: left T: top R: right B: bottom
- # @param int :ln Indicates where the current position should go after the call. Possible values are:0: to the right 1: to the beginning of the next line 2: below
+ #
+ # Prints a cell (rectangular area) with optional borders, background color and html text string. The upper-left corner of the cell corresponds to the current position. After the call, the current position moves to the right or to the next line.
+ # If automatic page breaking is enabled and the cell goes beyond the limit, a page break is done before outputting.
+ # @param float :w Cell width. If 0, the cell extends up to the right margin.
+ # @param float :h Cell minimum height. The cell extends automatically if needed.
+ # @param float :x upper-left corner X coordinate
+ # @param float :y upper-left corner Y coordinate
+ # @param string :html html text to print. Default value: empty string.
+ # @param mixed :border Indicates if borders must be drawn around the cell. The value can be either a number:0: no border (default) 1: frame or a string containing some or all of the following characters (in any order):L: left T: top R: right B: bottom
+ # @param int :ln Indicates where the current position should go after the call. Possible values are:0: to the right 1: to the beginning of the next line 2: below
# Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0.
- # @param int :fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
- # @see Cell()
- #
- def writeHTMLCell(w, h, x, y, html='', border=0, ln=0, fill=0)
-
- if (@lasth == 0)
- #set row height
- @lasth = @font_size * @@k_cell_height_ratio;
- end
-
- if (x == 0)
- x = GetX();
- end
- if (y == 0)
- y = GetY();
- end
-
- # get current page number
- pagenum = @page;
-
- SetX(x);
- SetY(y);
-
- if (w == 0)
- w = @fw - x - @r_margin;
- end
-
- # store original margin values
- l_margin = @l_margin;
- r_margin = @r_margin;
-
- # set new margin values
- SetLeftMargin(x);
- SetRightMargin(@fw - x - w);
-
- # calculate remaining vertical space on page
- restspace = GetPageHeight() - GetY() - GetBreakMargin();
-
- writeHTML(html, true, fill); # write html text
-
- currentY = GetY();
-
- # check if a new page has been created
- if (@page > pagenum)
- # design a cell around the text on first page
- currentpage = @page;
- @page = pagenum;
- SetY(GetPageHeight() - restspace - GetBreakMargin());
- h = restspace - 1;
- Cell(w, h, "", border, ln, 'L', 0);
- # design a cell around the text on last page
- @page = currentpage;
- h = currentY - @t_margin;
- SetY(@t_margin); # put cursor at the beginning of text
- Cell(w, h, "", border, ln, 'L', 0);
- else
- h = [h, (currentY - y)].max;
- SetY(y); # put cursor at the beginning of text
- # design a cell around the text
- Cell(w, h, "", border, ln, 'L', 0);
- end
-
- # restore original margin values
- SetLeftMargin(l_margin);
- SetRightMargin(r_margin);
-
- if (ln)
- Ln(0);
- end
- end
+ # @param int :fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
+ # @see Cell()
+ #
+ def writeHTMLCell(w, h, x, y, html='', border=0, ln=0, fill=0)
+
+ if (@lasth == 0)
+ #set row height
+ @lasth = @font_size * @@k_cell_height_ratio;
+ end
+
+ if (x == 0)
+ x = GetX();
+ end
+ if (y == 0)
+ y = GetY();
+ end
+
+ # get current page number
+ pagenum = @page;
+
+ SetX(x);
+ SetY(y);
+
+ if (w == 0)
+ w = @fw - x - @r_margin;
+ end
+
+ # store original margin values
+ l_margin = @l_margin;
+ r_margin = @r_margin;
+
+ # set new margin values
+ SetLeftMargin(x);
+ SetRightMargin(@fw - x - w);
+
+ # calculate remaining vertical space on page
+ restspace = GetPageHeight() - GetY() - GetBreakMargin();
+
+ writeHTML(html, true, fill); # write html text
+
+ currentY = GetY();
+
+ # check if a new page has been created
+ if (@page > pagenum)
+ # design a cell around the text on first page
+ currentpage = @page;
+ @page = pagenum;
+ SetY(GetPageHeight() - restspace - GetBreakMargin());
+ h = restspace - 1;
+ Cell(w, h, "", border, ln, 'L', 0);
+ # design a cell around the text on last page
+ @page = currentpage;
+ h = currentY - @t_margin;
+ SetY(@t_margin); # put cursor at the beginning of text
+ Cell(w, h, "", border, ln, 'L', 0);
+ else
+ h = [h, (currentY - y)].max;
+ SetY(y); # put cursor at the beginning of text
+ # design a cell around the text
+ Cell(w, h, "", border, ln, 'L', 0);
+ end
+
+ # restore original margin values
+ SetLeftMargin(l_margin);
+ SetRightMargin(r_margin);
+
+ if (ln)
+ Ln(0);
+ end
+ end
alias_method :write_html_cell, :writeHTMLCell
- #
- # Process opening tags.
- # @param string :tag tag name (in upcase)
- # @param string :attr tag attribute (in upcase)
- # @param int :fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
- # @access private
- #
- def openHTMLTagHandler(tag, attrs, fill=0)
- #Opening tag
- case (tag)
- when 'table'
- if attrs['border'].nil? or attrs['border'] == ''
- @tableborder = 0;
- else
- @tableborder = attrs['border'];
- end
- when 'tr', 'td', 'th'
+ #
+ # Process opening tags.
+ # @param string :tag tag name (in upcase)
+ # @param string :attr tag attribute (in upcase)
+ # @param int :fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
+ # @access private
+ #
+ def openHTMLTagHandler(tag, attrs, fill=0)
+ #Opening tag
+ case (tag)
+ when 'table'
+ if attrs['border'].nil? or attrs['border'] == ''
+ @tableborder = 0;
+ else
+ @tableborder = attrs['border'];
+ end
+ when 'tr', 'td', 'th'
# SetStyle('b', true) if tag == 'th'
-
- if ((!attrs['width'].nil?) and (attrs['width'] != ''))
- @tdwidth = (attrs['width'].to_i/4);
- else
- @tdwidth = ((@w - @l_margin - @r_margin) / @default_table_columns);
- end
- if ((!attrs['height'].nil?) and (attrs['height'] != ''))
- @tdheight=(attrs['height'].to_i / @k);
- else
- @tdheight = @lasth;
- end
- if ((!attrs['align'].nil?) and (attrs['align'] != ''))
- case (attrs['align'])
- when 'center'
- @tdalign = "C";
- when 'right'
- @tdalign = "R";
- when 'left'
- @tdalign = "L";
- end
- end
- if ((!attrs['bgcolor'].nil?) and (attrs['bgcolor'] != ''))
- coul = convertColorHexToDec(attrs['bgcolor']);
- SetFillColor(coul['R'], coul['G'], coul['B']);
- @tdfill=1;
- end
- @tdbegin=true;
-
- when 'hr'
- Ln();
- if ((!attrs['width'].nil?) and (attrs['width'] != ''))
- hrWidth = attrs['width'];
- else
- hrWidth = @w - @l_margin - @r_margin;
- end
- x = GetX();
- y = GetY();
- SetLineWidth(0.2);
- Line(x, y, x + hrWidth, y);
- SetLineWidth(0.2);
- Ln();
-
- when 'strong'
- SetStyle('b', true);
-
- when 'em'
- SetStyle('i', true);
-
- when 'b', 'i', 'u'
- SetStyle(tag, true);
-
- when 'a'
- @href = attrs['href'];
-
- when 'img'
- if (!attrs['src'].nil?)
- # replace relative path with real server path
- attrs['src'] = attrs['src'].gsub(@@k_path_url_cache, @@k_path_cache);
- if (attrs['width'].nil?)
- attrs['width'] = 0;
- end
- if (attrs['height'].nil?)
- attrs['height'] = 0;
- end
-
- Image(attrs['src'], GetX(),GetY(), pixelsToMillimeters(attrs['width']), pixelsToMillimeters(attrs['height']));
- #SetX(@img_rb_x);
- SetY(@img_rb_y);
-
- end
-
- when 'ul'
- @listordered = false;
- @listcount = 0;
-
- when 'ol'
- @listordered = true;
- @listcount = 0;
-
- when 'li'
- Ln();
- if (@listordered)
- @listcount += 1
- @lispacer = " " + (@listcount).to_s + ". ";
- else
- #unordered list simbol
- @lispacer = " - ";
- end
- Write(@lasth, @lispacer, '', fill);
-
- when 'blockquote', 'br'
- Ln();
- if (@lispacer.length > 0)
- @x += GetStringWidth(@lispacer);
- end
-
- when 'p'
- Ln();
- Ln();
-
- when 'sup'
- currentfont_size = @font_size;
- @tempfontsize = @font_size_pt;
- SetFontSize(@font_size_pt * @@k_small_ratio);
- SetXY(GetX(), GetY() - ((currentfont_size - @font_size)*(@@k_small_ratio)));
-
- when 'sub'
- currentfont_size = @font_size;
- @tempfontsize = @font_size_pt;
- SetFontSize(@font_size_pt * @@k_small_ratio);
- SetXY(GetX(), GetY() + ((currentfont_size - @font_size)*(@@k_small_ratio)));
-
- when 'small'
- currentfont_size = @font_size;
- @tempfontsize = @font_size_pt;
- SetFontSize(@font_size_pt * @@k_small_ratio);
- SetXY(GetX(), GetY() + ((currentfont_size - @font_size)/3));
-
- when 'font'
- if (!attrs['color'].nil? and attrs['color']!='')
- coul = convertColorHexToDec(attrs['color']);
- SetTextColor(coul['R'], coul['G'], coul['B']);
- @issetcolor=true;
- end
- if (!attrs['face'].nil? and @fontlist.include?(attrs['face'].downcase))
- SetFont(attrs['face'].downcase);
- @issetfont=true;
- end
- if (!attrs['size'].nil?)
- headsize = attrs['size'].to_i;
- else
- headsize = 0;
- end
- currentfont_size = @font_size;
- @tempfontsize = @font_size_pt;
- SetFontSize(@font_size_pt + headsize);
- @lasth = @font_size * @@k_cell_height_ratio;
-
- when 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'
- headsize = (4 - tag[1,1].to_f) * 2
- @tempfontsize = @font_size_pt;
- SetFontSize(@font_size_pt + headsize);
- SetStyle('b', true);
- @lasth = @font_size * @@k_cell_height_ratio;
-
- end
- end
-
- #
- # Process closing tags.
- # @param string :tag tag name (in upcase)
- # @access private
- #
- def closedHTMLTagHandler(tag)
- #Closing tag
- case (tag)
- when 'td','th'
- @tdbegin = false;
- @tdwidth = 0;
- @tdheight = 0;
- @tdalign = "L";
- @tdfill = 0;
- SetFillColor(@prevfill_color[0], @prevfill_color[1], @prevfill_color[2]);
-
- when 'tr'
- Ln();
-
- when 'table'
- @tableborder=0;
-
- when 'strong'
- SetStyle('b', false);
-
- when 'em'
- SetStyle('i', false);
-
- when 'b', 'i', 'u'
- SetStyle(tag, false);
-
- when 'a'
- @href = nil;
-
- when 'sup'
- currentfont_size = @font_size;
- SetFontSize(@tempfontsize);
- @tempfontsize = @font_size_pt;
- SetXY(GetX(), GetY() - ((currentfont_size - @font_size)*(@@k_small_ratio)));
-
- when 'sub'
- currentfont_size = @font_size;
- SetFontSize(@tempfontsize);
- @tempfontsize = @font_size_pt;
- SetXY(GetX(), GetY() + ((currentfont_size - @font_size)*(@@k_small_ratio)));
-
- when 'small'
- currentfont_size = @font_size;
- SetFontSize(@tempfontsize);
- @tempfontsize = @font_size_pt;
- SetXY(GetX(), GetY() - ((@font_size - currentfont_size)/3));
-
- when 'font'
- if (@issetcolor == true)
- SetTextColor(@prevtext_color[0], @prevtext_color[1], @prevtext_color[2]);
- end
- if (@issetfont)
- @font_family = @prevfont_family;
- @font_style = @prevfont_style;
- SetFont(@font_family);
- @issetfont = false;
- end
- currentfont_size = @font_size;
- SetFontSize(@tempfontsize);
- @tempfontsize = @font_size_pt;
- #@text_color = @prevtext_color;
- @lasth = @font_size * @@k_cell_height_ratio;
-
- when 'ul'
- Ln();
-
- when 'ol'
- Ln();
-
- when 'li'
- @lispacer = "";
-
- when 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'
- SetFontSize(@tempfontsize);
- @tempfontsize = @font_size_pt;
- SetStyle('b', false);
- Ln();
- @lasth = @font_size * @@k_cell_height_ratio;
-
- end
- end
-
- #
- # Sets font style.
- # @param string :tag tag name (in lowercase)
- # @param boolean :enable
- # @access private
- #
- def SetStyle(tag, enable)
- #Modify style and select corresponding font
- style='';
- ['b', 'i', 'u'].each do |s|
- style << s if tag.downcase == s and enable
- end
- SetFont('', style);
- end
-
- #
- # Output anchor link.
- # @param string :url link URL
- # @param string :name link name
- # @param int :fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
- # @access public
- #
- def addHtmlLink(url, name, fill=0)
- #Put a hyperlink
- SetTextColor(0, 0, 255);
- SetStyle('u', true);
- Write(@lasth, name, url, fill);
- SetStyle('u', false);
- SetTextColor(0);
- end
-
- #
- # Returns an associative array (keys: R,G,B) from
- # a hex html code (e.g. #3FE5AA).
- # @param string :color hexadecimal html color [#rrggbb]
- # @return array
- # @access private
- #
- def convertColorHexToDec(color = "#000000")
- tbl_color = {}
- tbl_color['R'] = color[1,2].hex.to_i;
- tbl_color['G'] = color[3,2].hex.to_i;
- tbl_color['B'] = color[5,2].hex.to_i;
- return tbl_color;
- end
-
- #
- # Converts pixels to millimeters in 72 dpi.
- # @param int :px pixels
- # @return float millimeters
- # @access private
- #
- def pixelsToMillimeters(px)
- return px.to_f * 25.4 / 72;
- end
-
- #
- # Reverse function for htmlentities.
- # Convert entities in UTF-8.
- #
- # @param :text_to_convert Text to convert.
- # @return string converted
- #
- def unhtmlentities(string)
- if @@decoder.nil?
+
+ if ((!attrs['width'].nil?) and (attrs['width'] != ''))
+ @tdwidth = (attrs['width'].to_i/4);
+ else
+ @tdwidth = ((@w - @l_margin - @r_margin) / @default_table_columns);
+ end
+ if ((!attrs['height'].nil?) and (attrs['height'] != ''))
+ @tdheight=(attrs['height'].to_i / @k);
+ else
+ @tdheight = @lasth;
+ end
+ if ((!attrs['align'].nil?) and (attrs['align'] != ''))
+ case (attrs['align'])
+ when 'center'
+ @tdalign = "C";
+ when 'right'
+ @tdalign = "R";
+ when 'left'
+ @tdalign = "L";
+ end
+ end
+ if ((!attrs['bgcolor'].nil?) and (attrs['bgcolor'] != ''))
+ coul = convertColorHexToDec(attrs['bgcolor']);
+ SetFillColor(coul['R'], coul['G'], coul['B']);
+ @tdfill=1;
+ end
+ @tdbegin=true;
+
+ when 'hr'
+ Ln();
+ if ((!attrs['width'].nil?) and (attrs['width'] != ''))
+ hrWidth = attrs['width'];
+ else
+ hrWidth = @w - @l_margin - @r_margin;
+ end
+ x = GetX();
+ y = GetY();
+ SetLineWidth(0.2);
+ Line(x, y, x + hrWidth, y);
+ SetLineWidth(0.2);
+ Ln();
+
+ when 'strong'
+ SetStyle('b', true);
+
+ when 'em'
+ SetStyle('i', true);
+
+ when 'b', 'i', 'u'
+ SetStyle(tag, true);
+
+ when 'a'
+ @href = attrs['href'];
+
+ when 'img'
+ if (!attrs['src'].nil?)
+ # replace relative path with real server path
+ attrs['src'] = attrs['src'].gsub(@@k_path_url_cache, @@k_path_cache);
+ if (attrs['width'].nil?)
+ attrs['width'] = 0;
+ end
+ if (attrs['height'].nil?)
+ attrs['height'] = 0;
+ end
+
+ Image(attrs['src'], GetX(),GetY(), pixelsToMillimeters(attrs['width']), pixelsToMillimeters(attrs['height']));
+ #SetX(@img_rb_x);
+ SetY(@img_rb_y);
+
+ end
+
+ when 'ul'
+ @listordered = false;
+ @listcount = 0;
+
+ when 'ol'
+ @listordered = true;
+ @listcount = 0;
+
+ when 'li'
+ Ln();
+ if (@listordered)
+ @listcount += 1
+ @lispacer = " " + (@listcount).to_s + ". ";
+ else
+ #unordered list simbol
+ @lispacer = " - ";
+ end
+ Write(@lasth, @lispacer, '', fill);
+
+ when 'blockquote', 'br'
+ Ln();
+ if (@lispacer.length > 0)
+ @x += GetStringWidth(@lispacer);
+ end
+
+ when 'p'
+ Ln();
+ Ln();
+
+ when 'sup'
+ currentfont_size = @font_size;
+ @tempfontsize = @font_size_pt;
+ SetFontSize(@font_size_pt * @@k_small_ratio);
+ SetXY(GetX(), GetY() - ((currentfont_size - @font_size)*(@@k_small_ratio)));
+
+ when 'sub'
+ currentfont_size = @font_size;
+ @tempfontsize = @font_size_pt;
+ SetFontSize(@font_size_pt * @@k_small_ratio);
+ SetXY(GetX(), GetY() + ((currentfont_size - @font_size)*(@@k_small_ratio)));
+
+ when 'small'
+ currentfont_size = @font_size;
+ @tempfontsize = @font_size_pt;
+ SetFontSize(@font_size_pt * @@k_small_ratio);
+ SetXY(GetX(), GetY() + ((currentfont_size - @font_size)/3));
+
+ when 'font'
+ if (!attrs['color'].nil? and attrs['color']!='')
+ coul = convertColorHexToDec(attrs['color']);
+ SetTextColor(coul['R'], coul['G'], coul['B']);
+ @issetcolor=true;
+ end
+ if (!attrs['face'].nil? and @fontlist.include?(attrs['face'].downcase))
+ SetFont(attrs['face'].downcase);
+ @issetfont=true;
+ end
+ if (!attrs['size'].nil?)
+ headsize = attrs['size'].to_i;
+ else
+ headsize = 0;
+ end
+ currentfont_size = @font_size;
+ @tempfontsize = @font_size_pt;
+ SetFontSize(@font_size_pt + headsize);
+ @lasth = @font_size * @@k_cell_height_ratio;
+
+ when 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'
+ headsize = (4 - tag[1,1].to_f) * 2
+ @tempfontsize = @font_size_pt;
+ SetFontSize(@font_size_pt + headsize);
+ SetStyle('b', true);
+ @lasth = @font_size * @@k_cell_height_ratio;
+
+ end
+ end
+
+ #
+ # Process closing tags.
+ # @param string :tag tag name (in upcase)
+ # @access private
+ #
+ def closedHTMLTagHandler(tag)
+ #Closing tag
+ case (tag)
+ when 'td','th'
+ @tdbegin = false;
+ @tdwidth = 0;
+ @tdheight = 0;
+ @tdalign = "L";
+ @tdfill = 0;
+ SetFillColor(@prevfill_color[0], @prevfill_color[1], @prevfill_color[2]);
+
+ when 'tr'
+ Ln();
+
+ when 'table'
+ @tableborder=0;
+
+ when 'strong'
+ SetStyle('b', false);
+
+ when 'em'
+ SetStyle('i', false);
+
+ when 'b', 'i', 'u'
+ SetStyle(tag, false);
+
+ when 'a'
+ @href = nil;
+
+ when 'sup'
+ currentfont_size = @font_size;
+ SetFontSize(@tempfontsize);
+ @tempfontsize = @font_size_pt;
+ SetXY(GetX(), GetY() - ((currentfont_size - @font_size)*(@@k_small_ratio)));
+
+ when 'sub'
+ currentfont_size = @font_size;
+ SetFontSize(@tempfontsize);
+ @tempfontsize = @font_size_pt;
+ SetXY(GetX(), GetY() + ((currentfont_size - @font_size)*(@@k_small_ratio)));
+
+ when 'small'
+ currentfont_size = @font_size;
+ SetFontSize(@tempfontsize);
+ @tempfontsize = @font_size_pt;
+ SetXY(GetX(), GetY() - ((@font_size - currentfont_size)/3));
+
+ when 'font'
+ if (@issetcolor == true)
+ SetTextColor(@prevtext_color[0], @prevtext_color[1], @prevtext_color[2]);
+ end
+ if (@issetfont)
+ @font_family = @prevfont_family;
+ @font_style = @prevfont_style;
+ SetFont(@font_family);
+ @issetfont = false;
+ end
+ currentfont_size = @font_size;
+ SetFontSize(@tempfontsize);
+ @tempfontsize = @font_size_pt;
+ #@text_color = @prevtext_color;
+ @lasth = @font_size * @@k_cell_height_ratio;
+
+ when 'ul'
+ Ln();
+
+ when 'ol'
+ Ln();
+
+ when 'li'
+ @lispacer = "";
+
+ when 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'
+ SetFontSize(@tempfontsize);
+ @tempfontsize = @font_size_pt;
+ SetStyle('b', false);
+ Ln();
+ @lasth = @font_size * @@k_cell_height_ratio;
+
+ end
+ end
+
+ #
+ # Sets font style.
+ # @param string :tag tag name (in lowercase)
+ # @param boolean :enable
+ # @access private
+ #
+ def SetStyle(tag, enable)
+ #Modify style and select corresponding font
+ style='';
+ ['b', 'i', 'u'].each do |s|
+ style << s if tag.downcase == s and enable
+ end
+ SetFont('', style);
+ end
+
+ #
+ # Output anchor link.
+ # @param string :url link URL
+ # @param string :name link name
+ # @param int :fill Indicates if the cell background must be painted (1) or transparent (0). Default value: 0.
+ # @access public
+ #
+ def addHtmlLink(url, name, fill=0)
+ #Put a hyperlink
+ SetTextColor(0, 0, 255);
+ SetStyle('u', true);
+ Write(@lasth, name, url, fill);
+ SetStyle('u', false);
+ SetTextColor(0);
+ end
+
+ #
+ # Returns an associative array (keys: R,G,B) from
+ # a hex html code (e.g. #3FE5AA).
+ # @param string :color hexadecimal html color [#rrggbb]
+ # @return array
+ # @access private
+ #
+ def convertColorHexToDec(color = "#000000")
+ tbl_color = {}
+ tbl_color['R'] = color[1,2].hex.to_i;
+ tbl_color['G'] = color[3,2].hex.to_i;
+ tbl_color['B'] = color[5,2].hex.to_i;
+ return tbl_color;
+ end
+
+ #
+ # Converts pixels to millimeters in 72 dpi.
+ # @param int :px pixels
+ # @return float millimeters
+ # @access private
+ #
+ def pixelsToMillimeters(px)
+ return px.to_f * 25.4 / 72;
+ end
+
+ #
+ # Reverse function for htmlentities.
+ # Convert entities in UTF-8.
+ #
+ # @param :text_to_convert Text to convert.
+ # @return string converted
+ #
+ def unhtmlentities(string)
+ if @@decoder.nil?
CGI.unescapeHTML(string)
else
- @@decoder.decode(string)
+ @@decoder.decode(string)
end
end
-
+
end # END OF CLASS
-#TODO 2007-05-25 (EJM) Level=0 -
+#TODO 2007-05-25 (EJM) Level=0 -
#Handle special IE contype request
# if (!_SERVER['HTTP_USER_AGENT'].nil? and (_SERVER['HTTP_USER_AGENT']=='contype'))
-# header('Content-Type: application/pdf');
-# exit;
+# header('Content-Type: application/pdf');
+# exit;
# }
diff --git a/lib/plugins/rfpdf/test/test_helper.rb b/lib/plugins/rfpdf/test/test_helper.rb
index 2e2ea3bc52..49ffd26f77 100644
--- a/lib/plugins/rfpdf/test/test_helper.rb
+++ b/lib/plugins/rfpdf/test/test_helper.rb
@@ -1 +1 @@
-#!/usr/bin/env ruby
\ No newline at end of file
+#!/usr/bin/env ruby
diff --git a/lib/plugins/verification/init.rb b/lib/plugins/verification/init.rb
index 0661694374..c8ead87162 100644
--- a/lib/plugins/verification/init.rb
+++ b/lib/plugins/verification/init.rb
@@ -1,3 +1,3 @@
# Include hook code here
-require 'action_controller/verification'
\ No newline at end of file
+require 'action_controller/verification'
diff --git a/lib/plugins/verification/test/verification_test.rb b/lib/plugins/verification/test/verification_test.rb
index 17b7d6d623..c5d0152990 100644
--- a/lib/plugins/verification/test/verification_test.rb
+++ b/lib/plugins/verification/test/verification_test.rb
@@ -267,7 +267,7 @@ class VerificationTest < ActionController::TestCase
def test_second_redirect
assert_nothing_raised { get :two_redirects }
end
-
+
def test_guarded_http_method_respects_overwritten_request_method
# Overwrite http method on application level like Rails supports via sending a _method parameter
@request.stub(:request_method).and_return('POST')
diff --git a/lib/redcloth3.rb b/lib/redcloth3.rb
index de04f02f7a..8dc6186bf7 100644
--- a/lib/redcloth3.rb
+++ b/lib/redcloth3.rb
@@ -72,33 +72,33 @@
#
# == Links
#
-# To make a hypertext link, put the link text in "quotation
+# To make a hypertext link, put the link text in "quotation
# marks" followed immediately by a colon and the URL of the link.
-#
-# Optional: text in (parentheses) following the link text,
-# but before the closing quotation mark, will become a Title
+#
+# Optional: text in (parentheses) following the link text,
+# but before the closing quotation mark, will become a Title
# attribute for the link, visible as a tool tip when a cursor is above it.
-#
+#
# Example:
#
# "This is a link (This is a title) ":http://www.textism.com
-#
+#
# Will become:
-#
+#
# This is a link
#
# == Images
#
# To insert an image, put the URL for the image inside exclamation marks.
#
-# Optional: text that immediately follows the URL in (parentheses) will
-# be used as the Alt text for the image. Images on the web should always
-# have descriptive Alt text for the benefit of readers using non-graphical
+# Optional: text that immediately follows the URL in (parentheses) will
+# be used as the Alt text for the image. Images on the web should always
+# have descriptive Alt text for the benefit of readers using non-graphical
# browsers.
#
-# Optional: place a colon followed by a URL immediately after the
+# Optional: place a colon followed by a URL immediately after the
# closing ! to make the image into a link.
-#
+#
# Example:
#
# !http://www.textism.com/common/textist.gif(Textist)!
@@ -117,13 +117,13 @@
#
# == Defining Acronyms
#
-# HTML allows authors to define acronyms via the tag. The definition appears as a
-# tool tip when a cursor hovers over the acronym. A crucial aid to clear writing,
+# HTML allows authors to define acronyms via the tag. The definition appears as a
+# tool tip when a cursor hovers over the acronym. A crucial aid to clear writing,
# this should be used at least once for each acronym in documents where they appear.
#
-# To quickly define an acronym in Textile, place the full text in (parentheses)
+# To quickly define an acronym in Textile, place the full text in (parentheses)
# immediately following the acronym.
-#
+#
# Example:
#
# ACLU(American Civil Liberties Union)
@@ -146,7 +146,7 @@
# (background:#ddd;color:red). |{}| | | |
#
# == Using RedCloth
-#
+#
# RedCloth is simply an extension of the String class, which can handle
# Textile formatting. Use it like a String and output HTML with its
# RedCloth#to_html method.
@@ -268,14 +268,14 @@ class RedCloth3 < String
rules = DEFAULT_RULES if rules.empty?
# make our working copy
text = self.dup
-
+
@urlrefs = {}
@shelf = []
textile_rules = [:block_textile_table, :block_textile_lists,
:block_textile_prefix, :inline_textile_image, :inline_textile_link,
:inline_textile_code, :inline_textile_span, :glyphs_textile]
markdown_rules = [:refs_markdown, :block_markdown_setext, :block_markdown_atx, :block_markdown_rule,
- :block_markdown_bq, :block_markdown_lists,
+ :block_markdown_bq, :block_markdown_lists,
:inline_markdown_reflink, :inline_markdown_link]
@rules = rules.collect do |rule|
case rule
@@ -289,8 +289,8 @@ class RedCloth3 < String
end.flatten
# standard clean up
- incoming_entities text
- clean_white_space text
+ incoming_entities text
+ clean_white_space text
# start processor
@pre_list = []
@@ -299,7 +299,7 @@ class RedCloth3 < String
escape_html_tags text
# need to do this before #hard_break and #blocks
block_textile_quotes text unless @lite_mode
- hard_break text
+ hard_break text
unless @lite_mode
refs text
blocks text
@@ -326,10 +326,10 @@ class RedCloth3 < String
#
TEXTILE_TAGS =
- [[128, 8364], [129, 0], [130, 8218], [131, 402], [132, 8222], [133, 8230],
- [134, 8224], [135, 8225], [136, 710], [137, 8240], [138, 352], [139, 8249],
- [140, 338], [141, 0], [142, 0], [143, 0], [144, 0], [145, 8216], [146, 8217],
- [147, 8220], [148, 8221], [149, 8226], [150, 8211], [151, 8212], [152, 732],
+ [[128, 8364], [129, 0], [130, 8218], [131, 402], [132, 8222], [133, 8230],
+ [134, 8224], [135, 8225], [136, 710], [137, 8240], [138, 352], [139, 8249],
+ [140, 338], [141, 0], [142, 0], [143, 0], [144, 0], [145, 8216], [146, 8217],
+ [147, 8220], [148, 8221], [149, 8226], [150, 8211], [151, 8212], [152, 732],
[153, 8482], [154, 353], [155, 8250], [156, 339], [157, 0], [158, 0], [159, 376]].
collect! do |a, b|
@@ -357,7 +357,7 @@ class RedCloth3 < String
# Text markup tags, don't conflict with block tags
SIMPLE_HTML_TAGS = [
- 'tt', 'b', 'i', 'big', 'small', 'em', 'strong', 'dfn', 'code',
+ 'tt', 'b', 'i', 'big', 'small', 'em', 'strong', 'dfn', 'code',
'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'a', 'img', 'br',
'br', 'map', 'q', 'sub', 'sup', 'span', 'bdo'
]
@@ -373,9 +373,9 @@ class RedCloth3 < String
['+', 'ins', :limit],
['^', 'sup', :limit],
['~', 'sub', :limit]
- ]
+ ]
QTAGS_JOIN = QTAGS.map {|rc, ht, rtype| Regexp::quote rc}.join('|')
-
+
QTAGS.collect! do |rc, ht, rtype|
rcq = Regexp::quote rc
re =
@@ -395,7 +395,7 @@ class RedCloth3 < String
(#{C})
(?::(\S+))?
(\w|[^\s\-].*?[^\s\-])
- #{rcq}/xm
+ #{rcq}/xm
end
[rc, ht, re, rtype]
end
@@ -464,7 +464,7 @@ class RedCloth3 < String
# Parses Textile attribute lists and builds an HTML attribute string
def pba( text_in, element = "" )
-
+
return '' unless text_in
style = []
@@ -482,7 +482,7 @@ class RedCloth3 < String
cls = $1 if
text.sub!( /\(([^()]+?)\)/, '' )
-
+
style << "padding-left:#{ $1.length }em;" if
text.sub!( /([(]+)/, '' )
@@ -491,7 +491,7 @@ class RedCloth3 < String
style << "text-align:#{ h_align( $& ) };" if text =~ A_HLGN
cls, id = $1, $2 if cls =~ /^(.*?)#(.*)$/
-
+
atts = ''
atts << " style=\"#{ style.join }\"" unless style.empty?
atts << " class=\"#{ cls }\"" unless cls.to_s.empty?
@@ -499,14 +499,14 @@ class RedCloth3 < String
atts << " id=\"#{ id }\"" if id
atts << " colspan=\"#{ colspan }\"" if colspan
atts << " rowspan=\"#{ rowspan }\"" if rowspan
-
+
atts
end
TABLE_RE = /^(?:table(_?#{S}#{A}#{C})\. ?\n)?^(#{A}#{C}\.? ?\|.*?\|)(\n\n|\Z)/m
-
+
# Parses a Textile table block, building HTML from the result.
- def block_textile_table( text )
+ def block_textile_table( text )
text.gsub!( TABLE_RE ) do |matches|
tatts, fullrow = $~[1..2]
@@ -526,7 +526,7 @@ class RedCloth3 < String
catts, cell = pba( $1, 'td' ), $2 if cell =~ /^(_?#{S}#{A}#{C}\. ?)(.*)/
catts = shelve( catts ) if catts
- cells << "\t\t\t#{ cell } "
+ cells << "\t\t\t#{ cell } "
end
ratts = shelve( ratts ) if ratts
rows << "\t\t\n#{ cells.join( "\n" ) }\n\t\t "
@@ -539,13 +539,13 @@ class RedCloth3 < String
LISTS_CONTENT_RE = /^([#*]+)(#{A}#{C}) (.*)$/m
# Parses Textile lists and generates HTML
- def block_textile_lists( text )
+ def block_textile_lists( text )
text.gsub!( LISTS_RE ) do |match|
lines = match.split( /\n/ )
last_line = -1
depth = []
lines.each_with_index do |line, line_id|
- if line =~ LISTS_CONTENT_RE
+ if line =~ LISTS_CONTENT_RE
tl,atts,content = $~[1..3]
if depth.last
if depth.last.length > tl.length
@@ -581,17 +581,17 @@ class RedCloth3 < String
lines.join( "\n" )
end
end
-
+
QUOTES_RE = /(^>+([^\n]*?)(\n|$))+/m
QUOTES_CONTENT_RE = /^([> ]+)(.*)$/m
-
+
def block_textile_quotes( text )
text.gsub!( QUOTES_RE ) do |match|
lines = match.split( /\n/ )
quotes = ''
indent = 0
lines.each do |line|
- line =~ QUOTES_CONTENT_RE
+ line =~ QUOTES_CONTENT_RE
bq,content = $1, $2
l = bq.count('>')
if l != indent
@@ -612,7 +612,7 @@ class RedCloth3 < String
@
(?=\W)/x
- def inline_textile_code( text )
+ def inline_textile_code( text )
text.gsub!( CODE_RE ) do |m|
before,lang,code,after = $~[1..4]
lang = " lang=\"#{ lang }\"" if lang
@@ -620,7 +620,7 @@ class RedCloth3 < String
end
end
- def lT( text )
+ def lT( text )
text =~ /\#$/ ? 'o' : 'u'
end
@@ -655,7 +655,7 @@ class RedCloth3 < String
end
end
- block_applied = 0
+ block_applied = 0
@rules.each do |rule_name|
block_applied += 1 if ( rule_name.to_s.match /^block_/ and method( rule_name ).call( blk ) )
end
@@ -702,7 +702,7 @@ class RedCloth3 < String
BLOCK_RE = /^(([a-z]+)(\d*))(#{A}#{C})\.(?::(\S+))? (.*)$/m
- def block_textile_prefix( text )
+ def block_textile_prefix( text )
if text =~ BLOCK_RE
tag,tagpre,num,atts,cite,content = $~[1..6]
atts = pba( atts )
@@ -712,12 +712,12 @@ class RedCloth3 < String
if respond_to? "textile_#{ tag }", true
replacement = method( "textile_#{ tag }" ).call( tag, atts, cite, content )
elsif respond_to? "textile_#{ tagpre }_", true
- replacement = method( "textile_#{ tagpre }_" ).call( tagpre, num, atts, cite, content )
+ replacement = method( "textile_#{ tagpre }_" ).call( tagpre, num, atts, cite, content )
end
text.gsub!( $& ) { replacement } if replacement
end
end
-
+
SETEXT_RE = /\A(.+?)\n([=-])[=-]* *$/m
def block_markdown_setext( text )
if text =~ SETEXT_RE
@@ -769,10 +769,10 @@ class RedCloth3 < String
def block_markdown_lists( text )
end
- def inline_textile_span( text )
+ def inline_textile_span( text )
QTAGS.each do |qtag_rc, ht, qtag_re, rtype|
text.gsub!( qtag_re ) do |m|
-
+
case rtype
when :limit
sta,oqs,qtag,content,oqa = $~[1..6]
@@ -805,14 +805,14 @@ class RedCloth3 < String
( # $url
(\/|[a-zA-Z]+:\/\/|www\.|mailto:) # $proto
[\w\/]\S+?
- )
+ )
(\/)? # $slash
([^\w\=\/;\(\)]*?) # $post
)
(?=<|\s|$)
- /x
+ /x
#"
- def inline_textile_link( text )
+ def inline_textile_link( text )
text.gsub!( LINK_RE ) do |m|
all,pre,atts,text,title,url,proto,slash,post = $~[1..9]
if text.include?(' ')
@@ -820,7 +820,7 @@ class RedCloth3 < String
else
url, url_title = check_refs( url )
title ||= url_title
-
+
# Idea below : an URL with unbalanced parethesis and
# ending by ')' is put into external parenthesis
if ( url[-1]==?) and ((url.count("(") - url.count(")")) < 0 ) )
@@ -831,9 +831,9 @@ class RedCloth3 < String
atts = " href=\"#{ htmlesc url }#{ slash }\"#{ atts }"
atts << " title=\"#{ htmlesc title }\"" if title
atts = shelve( atts ) if atts
-
+
external = (url =~ /^https?:\/\//) ? ' class="external"' : ''
-
+
"#{ pre }#{ text } #{ post }"
end
end
@@ -844,9 +844,9 @@ class RedCloth3 < String
[ ]? # opt. space
(?:\n[ ]*)? # one optional newline followed by spaces
\[(.*?)\] # $id
- /x
+ /x
- def inline_markdown_reflink( text )
+ def inline_markdown_reflink( text )
text.gsub!( MARKDOWN_REFLINK_RE ) do |m|
text, id = $~[1..2]
@@ -855,11 +855,11 @@ class RedCloth3 < String
else
url, title = check_refs( id )
end
-
+
atts = " href=\"#{ url }\""
atts << " title=\"#{ title }\"" if title
atts = shelve( atts )
-
+
"#{ text } "
end
end
@@ -876,16 +876,16 @@ class RedCloth3 < String
\3 # matching quote
)? # title is optional
\)
- /x
+ /x
- def inline_markdown_link( text )
+ def inline_markdown_link( text )
text.gsub!( MARKDOWN_LINK_RE ) do |m|
text, url, quote, title = $~[1..4]
atts = " href=\"#{ url }\""
atts << " title=\"#{ title }\"" if title
atts = shelve( atts )
-
+
"#{ text } "
end
end
@@ -899,14 +899,14 @@ class RedCloth3 < String
end
end
- def refs_textile( text )
+ def refs_textile( text )
text.gsub!( TEXTILE_REFS_RE ) do |m|
flag, url = $~[2..3]
@urlrefs[flag.downcase] = [url, nil]
nil
end
end
-
+
def refs_markdown( text )
text.gsub!( MARKDOWN_REFS_RE ) do |m|
flag, url = $~[2..3]
@@ -916,7 +916,7 @@ class RedCloth3 < String
end
end
- def check_refs( text )
+ def check_refs( text )
ret = @urlrefs[text.downcase] if text
ret || [text, nil]
end
@@ -932,16 +932,16 @@ class RedCloth3 < String
(?:\(((?:[^\(\)]|\([^\)]+\))+?)\))? # optional title
\! # closing
(?::#{ HYPERLINK })? # optional href
- /x
+ /x
- def inline_textile_image( text )
+ def inline_textile_image( text )
text.gsub!( IMAGE_RE ) do |m|
stln,algn,atts,url,title,href,href_a1,href_a2 = $~[1..8]
htmlesc title
atts = pba( atts )
atts = " src=\"#{ htmlesc url.dup }\"#{ atts }"
atts << " title=\"#{ title }\"" if title
- atts << " alt=\"#{ title }\""
+ atts << " alt=\"#{ title }\""
# size = @getimagesize($url);
# if($size) $atts.= " $size[3]";
@@ -952,8 +952,8 @@ class RedCloth3 < String
out << "" if href
out << " "
out << " #{ href_a1 }#{ href_a2 }" if href
-
- if algn
+
+ if algn
algn = h_align( algn )
if stln == ""
out = "
#{ out }"
@@ -968,18 +968,18 @@ class RedCloth3 < String
end
end
- def shelve( val )
+ def shelve( val )
@shelf << val
" :redsh##{ @shelf.length }:"
end
-
- def retrieve( text )
+
+ def retrieve( text )
@shelf.each_with_index do |r, i|
text.gsub!( " :redsh##{ i + 1 }:", r )
end
end
- def incoming_entities( text )
+ def incoming_entities( text )
## turn any incoming ampersands into a dummy character for now.
## This uses a negative lookahead for alphanumerics followed by a semicolon,
## implying an incoming html entity, to be skipped
@@ -987,14 +987,14 @@ class RedCloth3 < String
text.gsub!( /&(?![#a-z0-9]+;)/i, "x%x%" )
end
- def no_textile( text )
+ def no_textile( text )
text.gsub!( /(^|\s)==([^=]+.*?)==(\s|$)?/,
'\1\2 \3' )
text.gsub!( /^ *==([^=]+.*?)==/m,
'\1\2 \3' )
end
- def clean_white_space( text )
+ def clean_white_space( text )
# normalize line breaks
text.gsub!( /\r\n/, "\n" )
text.gsub!( /\r/, "\n" )
@@ -1020,11 +1020,11 @@ class RedCloth3 < String
end
end
- def footnote_ref( text )
+ def footnote_ref( text )
text.gsub!( /\b\[([0-9]+?)\](\s)?/,
'\1 \2' )
end
-
+
OFFTAGS = /(code|pre|kbd|notextile)/
OFFTAG_MATCH = /(?:(<\/#{ OFFTAGS }>)|(<#{ OFFTAGS }[^>]*>))(.*?)(?=<\/?#{ OFFTAGS }\W|\Z)/mi
OFFTAG_OPEN = /<#{ OFFTAGS }/
@@ -1046,7 +1046,7 @@ class RedCloth3 < String
elsif line =~ OFFTAG_CLOSE
codepre -= 1
codepre = 0 if codepre < 0
- end
+ end
elsif codepre.zero?
glyphs_textile( line, level + 1 )
else
@@ -1093,7 +1093,7 @@ class RedCloth3 < String
end
codepre -= 1 unless codepre.zero?
used_offtags = {} if codepre.zero?
- end
+ end
line
end
end
@@ -1107,7 +1107,7 @@ class RedCloth3 < String
end
end
- def inline( text )
+ def inline( text )
[/^inline_/, /^glyphs_/].each do |meth_re|
@rules.each do |rule_name|
method( rule_name ).call( text ) if rule_name.to_s.match( meth_re )
@@ -1115,11 +1115,11 @@ class RedCloth3 < String
end
end
- def h_align( text )
+ def h_align( text )
H_ALGN_VALS[text]
end
- def v_align( text )
+ def v_align( text )
V_ALGN_VALS[text]
end
@@ -1133,7 +1133,7 @@ class RedCloth3 < String
'img' => ['src', 'alt', 'title'],
'br' => [],
'i' => nil,
- 'u' => nil,
+ 'u' => nil,
'b' => nil,
'pre' => nil,
'kbd' => nil,
@@ -1158,7 +1158,7 @@ class RedCloth3 < String
'h3' => nil,
'h4' => nil,
'h5' => nil,
- 'h6' => nil,
+ 'h6' => nil,
'blockquote' => ['cite']
}
@@ -1186,11 +1186,10 @@ class RedCloth3 < String
end
end
end
-
+
ALLOWED_TAGS = %w(redpre pre code notextile)
-
+
def escape_html_tags(text)
text.gsub!(%r{<(\/?([!\w]+)[^<>\n]*)(>?)}) {|m| ALLOWED_TAGS.include?($2) ? "<#{$1}#{$3}" : "<#{$1}#{'>' unless $3.blank?}" }
end
end
-
diff --git a/lib/redmine/menu_manager/mapper.rb b/lib/redmine/menu_manager/mapper.rb
index 2be8dc57db..573d799762 100644
--- a/lib/redmine/menu_manager/mapper.rb
+++ b/lib/redmine/menu_manager/mapper.rb
@@ -131,4 +131,4 @@ class Redmine::MenuManager::MapDeferrer
defer(method, *args)
end
end
-end
\ No newline at end of file
+end
diff --git a/lib/redmine/wiki_formatting/null_formatter/formatter.rb b/lib/redmine/wiki_formatting/null_formatter/formatter.rb
index 95d8bd0cc5..428e0e76e7 100644
--- a/lib/redmine/wiki_formatting/null_formatter/formatter.rb
+++ b/lib/redmine/wiki_formatting/null_formatter/formatter.rb
@@ -46,4 +46,4 @@ module Redmine
end
end
end
-end
\ No newline at end of file
+end
diff --git a/lib/redmine/wiki_formatting/null_formatter/helper.rb b/lib/redmine/wiki_formatting/null_formatter/helper.rb
index 440c3cb1ec..c9afada16b 100644
--- a/lib/redmine/wiki_formatting/null_formatter/helper.rb
+++ b/lib/redmine/wiki_formatting/null_formatter/helper.rb
@@ -43,4 +43,4 @@ module Redmine
end
end
end
-end
\ No newline at end of file
+end
diff --git a/public/templates/components/selectable_title.html b/public/templates/components/selectable_title.html
index 4f6f963238..4d18e48002 100644
--- a/public/templates/components/selectable_title.html
+++ b/public/templates/components/selectable_title.html
@@ -8,13 +8,15 @@
-
diff --git a/public/templates/work_packages.html b/public/templates/work_packages.html
index 9a0f9f45e2..6cb3cadd6f 100644
--- a/public/templates/work_packages.html
+++ b/public/templates/work_packages.html
@@ -19,7 +19,7 @@
- {{ I18n.t('js.toolbar.filter') }}
+ {{ I18n.t('js.toolbar.filter') }}
@@ -59,8 +59,8 @@