Skip to main content

Document View

Introduction

Use OpenDocumentPageMessage to display a PDF document page on the tablet display.

The function includes:

  • display of the pdf document
  • acrobat form filling using the tablet pen with a virtual keyboard
  • biometric signature capture
  • document navigation (next page etc)
  • option for thumbnail image display to aid document navigation

Server-Client messages:

OpenDocumentPageMessage

Message DataDescription
AtSelectedAcroFieldoptional data for selecting field when scrolling down
ForDocumentPagepage JSON data (from pdfHelper)
WithDefinitionxaml document view definition
WithThumbnailsoptional thumbnail data: PageNumber, Base64Image (from pdfHelper)

xaml definition

A xaml file is used to define the layout of the tablet display, using the WPF grid format:

Document View

In this example two horizontal toolbars contain buttons in a grid layout with an area defined for the document display.

DocumentView.xaml:

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Name="DocumentView"
Title="DocumentView" WindowStyle="None" Height="1080" Width="1920" >

<Grid ShowGridLines="True">
<StackPanel Orientation="Horizontal">
<Grid HorizontalAlignment="Left" Width="150" Background="LightGray" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="10*"/>
<RowDefinition Height="30*"/>
<RowDefinition Height="20*"/>
<RowDefinition Height="30*"/>
<RowDefinition Height="10*"/>
</Grid.RowDefinitions>

<Button x:Name="ZoomBtn" ToolTip="Page Zoom" Grid.Row="0" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="center" VerticalAlignment="Top">
<Button.Background>
<ImageBrush ImageSource="zoomin.png"/>
</Button.Background>
</Button>
<Button x:Name="PageBack" ToolTip="Previouse Page" Grid.Row="2" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button.Background>
<ImageBrush ImageSource="chevronDoubleLeft.png"/>
</Button.Background>
</Button>
<Button x:Name="ThumbnailsBtn" Grid.Row="4" ToolTip="Show Thumbnail" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="center" VerticalAlignment="Bottom">
<Button.Background>
<ImageBrush ImageSource="ThumbDocView.png"/>
</Button.Background>
</Button>

</Grid>
/// Mandatory
<Grid x:Name="WacomKioskDocumentImageContainer" Width="1620" ShowGridLines="True">
</Grid>
<Grid HorizontalAlignment="Right" Width="150" Background="LightGray" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="10*"/>
<RowDefinition Height="30*"/>
<RowDefinition Height="20*"/>
<RowDefinition Height="30*"/>
<RowDefinition Height="10*"/>
</Grid.RowDefinitions>
<Button x:Name="SignStepping" Grid.Row="0" BorderThickness="1" HorizontalAlignment="Center" Width="100" Height="100" VerticalAlignment="Top">
<Button.Background>
<ImageBrush ImageSource="forwards.png"/>
</Button.Background>
</Button>
<StackPanel Grid.Row="1" Orientation="Vertical" VerticalAlignment="Center">
<Button x:Name="BtnAcceptDoc" BorderThickness="1" HorizontalAlignment="Center" Width="100" Height="100" VerticalAlignment="Top">
<Button.Background>
<ImageBrush ImageSource="DocAccept.png"/>
</Button.Background>
</Button>
<Button x:Name="BtnRejectDoc" BorderThickness="1" HorizontalAlignment="Center" Width="100" Height="100" VerticalAlignment="Top">
<Button.Background>
<ImageBrush ImageSource="DocReject.png"/>
</Button.Background>
</Button>
</StackPanel>
<Button x:Name="PageNext" Grid.Row="2" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button.Background>
<ImageBrush ImageSource="chevronDoubleRight.png"/>
</Button.Background>
</Button>
<Button x:Name="ScrollToTop" Grid.Row="4" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button.Background>
<ImageBrush ImageSource="totop.png"/>
</Button.Background>
</Button>
</Grid>
</StackPanel>
</Grid>

</Window>

Generally the xaml content follows the standard WPF grid format for placement. A number of specific entries are detailed below:

WacomKioskDocumentImageContainer - Mandatory

Name="WacomKioskDocumentImageContainer" - this is the preset name for the document display.

Button Binding

<Button...> - note that a callback function is not defined in the xaml as would normally be the case in a WPF grid.

In the example the button names are defined and the name will be passed in a Client-Server ButtonClicked feedback message. A number of the buttons are processed locally by the Client and as a result do not send a ButtonClicked message:

ButtonAction performed by
ZoomBtnClient
PageBackServer
PageNextServer
ThumbnailsBtnClient
ScrollToTopClient
SignSteppingServer
BtnAcceptDocServer
BtnRejectDocServer

The example shown results in the Document View with buttons:

Document View UI

A number of buttons require local processing by the Client app. For example the thumbnails button displays the images for page selection:

Thumbnail selection

The binding of the buttons in the DocumentView.xaml to a local Client process is defined in the Client app_config.json:

Client app_config.json:

   "DocumentViewConfig": {
"Thumbnails": {
"Panel": {
"PercentageOfScreen": 25, // the height of the panel as a percentage of the screen height
"AlignWith": "DocumentView", // may be set to "DocumentView", where the bottom of the panel is aligned with the bottom of the document,
// or "Screen", where the panel is displayed along the bottom of the screen
"BackgroundColor": "#FFFFFFFF", // the background colour of the panel
"BorderColor": "#FFC0C0C0", // the border colour of the panel
"BorderWidth": 1 // the border width of the panel
},
"Count": 10, // the number of page thumbnails displayed at the bottom for navigation at a time
"ShowPageNumbers": true, // boolean value to toggle display of page numbers
"CurrentPageBorderColor": "#FF43B2FF", // the border colour of the thumbnails
"CurrentPageBorderWidth": 2 // the border width of the thumbnails
},
"PdfFormFieldsX": {
"BorderColor": "Black", // the border colour of fields
"BorderThickness": 1, // the border thickness of fields
"BorderColorRequired": "Green", // the border colour of required fields
"BorderThicknessRequired": 2, // the border thickness of required fields
"BorderColorFocus": "Red", // the border colour when a field is selected
"BorderThicknessFocus": 2 // the border thickness when a field is selected
},
"ButtonsConfiguration": [
{
"Name": "PageSteppingBtn", // used internally
"ButtonAction": "InputStepping" // used internally to bind the virtual keyboard input field step key.
},
{
"Name": "ThumbnailsBtn", // the name expected in the Document View xaml definition data
"ButtonAction": "ToggleThumbnails" // identifies the button to toggle the thumbnail display
},
{
"Name": "ZoomBtn", // the name expected in the Document View xaml definition data
"ButtonAction": "ToggleZoom", // identifies the button to zoom the page display
"ToggleImageOnPath": "/zoomin.png", // image filename for zoom+ in \Wacom Ink SDK for Multi-Display\Resources\DefinitionResources
"ToggleImageOffPath": "/zoomout.png" // image filename for zoom- in \Wacom Ink SDK for Multi-Display\Resources\DefinitionResources
},
{
"Name": "ScrollToTop", // the name expected in the Document View xaml definition data
"ButtonAction": "ScrollToTop" // identifies the button to scroll to top of document display
}
]
},

A default set of button names is supplied in the Client configuration but these can be changed if required by changing both app_config.js and DocumentView.xaml.

For example, to change the binding of the button from "ScrollToTop" to "Home" change app_config.json

  {
"Name": "Home", // the name expected in the Document View xaml definition data
"ButtonAction": "ScrollToTop" // identifies the button to scroll to the top of document display
}

Then to bind to this action, change DocumentView.xaml:

   <Button x:Name="Home" Grid.Row="4" BorderThickness="1" Width="100" Height="100" HorizontalAlignment="Center" VerticalAlignment="Center">

Page JSON data

The SDK includes the PDF Helper library used to create the JSON data which represents the document.

The PDF Helper creates a list of pages, each containing the elements:

  • display image - base64 PNG rendition of the page
  • list of acrobat fields

Acrobat fields are identified by:

  • name
  • type (text/checkbox/signature/radio button/list)
  • page position

Sample page.json for the sample Form-demo.pdf:

{
"Base64Image": "iVBORw0KGgoAAAANSUhEUgAAA/8AAAWoCAYAAADkWXEjAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAGpsSURBVHhe7N0JvK1j3f9xFZmSIk0qlKFEkzJEc0r1pKQ5UjQJDVIkIZQUSaiISiSNFNKfIooG/SUkPWaZH9NjeErDc///36t1b\u002Btse5\u002Bzzz77HOf89vv9eq2Xc9Z4r7X29jqf677u616oAwAAAEoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixP80d9lll3Vf\u002BtKXun333fdel/3337/7yle\u002B0h177LHdRRdd1P3rX/8aPGpi7rjjju6YY47p9ttvv3s9d6474IADusMOO6w77rjjugsuuKC7\u002B\u002B67B4\u002BcnH/\u002B85/dGWec0bZ79OvN7JJt\u002Bd73vtf97W9/GzzT5Mzss5zZ5ctf/nJ37bXXDp6FeWVm31d\u002BJg466KDuiCOO6H760592V1111Wz//AMAwPxE/E9jN910U7fOOut0Cy200IQuD33oQ7utttqq\u002B\u002BMf/zh4hvElxHfZZZcxn2e8yyKLLNJtsMEG3YEHHtjdfPPNg2eauJ///Ofdgx/84DGfe1aXhzzkId1vfvObwTPNvtn9LEdfPvnJTw6eiXlhMt9Xfv7f8IY3dCeeeGL3j3/8Y/BMAACwYBD/01j2Zq6yyipjhs7MLosttli31157dX/9618Hz3RviaMtt9xyzMdP5JLQ\u002BvSnP91mD0zUd7/73e6BD3zgmM83q8vDHvaw7txzzx080\u002Byb7GeZy/3ud7/uc5/73OCZmBfm5PvK5SlPeUr34x//2GwAAAAWGOJ/GhsOoMRvpt9n73d/OfPMM9tezi984Qvdpptu2qK/j58E64c\u002B9KFxp8oPx3/uu9tuu83w3Ln84he/aM\u002Bfae/vec97ulVXXXXk\u002BfvL\u002Buuv3w45mIjh\u002BH/BC17Qtn/0a453ufTSS\u002Bco5Gb1Wc7s8oc//GGODzlg9szq\u002B/r1r3/dZpJ8//vf7z7zmc90r33ta9vskP7nMpeFF16423777WdrgAoAAO4r4n8aGw6gRz/60S2AZybHSP/Hf/zHSPwsuuii3VFHHTW4dUbD8f\u002BABzyg\u002B\u002BpXvzq4ZXyJ71/\u002B8pfdi1/84pHXyCWDAuedd97gXuMbjv/XvOY1c7yGwOyY3c\u002BS\u002B9Zkvq\u002B77rqrO/zww7sVVlhh5Gczl80337y7/fbbB/cCAID5k/ifxiYTQDkWf8MNNxwJn2c961nt\u002BOnRJhP/vTw2i60tueSSI6\u002Bz9tprz3JRPPHPRM3J93XDDTd0b37zm0d\u002BNjOzZccdd5ynP28AADC7xP80NtkAynT9pZdeuj1uiSWW6E466aTBLfeYk/iPzAI48sgj2/P3kfXBD36wPe94xD8TNaff15133jnDmhYPetCD2iEsAAAwvxL/09hkAyhTnHNMfR8\u002BY61UP6fxH3mOnXfeeeR1ll122XY89njEPxM1Fd/X9ddfP8MZA174whd2t9566\u002BBWAACYv4j/aWyyAZQo32abbUaiZ\u002Buttx7cco\u002BpiP\u002B45pprujXXXHPktd73vve10wiOZTrE/\u002BWXX94\u002Byyy2\u002BLa3va1761vf2r3//e/vDj744HYKxtlZtDDT17/zne\u002B0xe6GF63Ln7OWQz7rfIdZrPGMM8641\u002BeedRgyO\u002BOss86a4bZsw\u002B9\u002B97t2RoicGjKLOWbRyEsuuWRwj7Hl7BE/\u002BtGP2oBP3lte/\u002Btf/3p34403Du4xdabq\u002B8r29rNT8t/Z2fufwYN8zjvssEO3xRZbtPf8kY98pDvmmGNm61SX432PkUNlvvSlL7Xf13wXu\u002B\u002B\u002Be5u5M7MZNPn\u002BzjnnnHa2jXe84x3tkkUPL7jggsE9Jue2227rjj/\u002B\u002BG7XXXdt27LZZpt17373u7tPfepT3WmnnWbRSwCAuUz8T2OTDaDEwcc\u002B9rH2uFzyD/nRpir\u002B81qJkBxXned64hOf2AYExlI1/vMZZOX5zLa4//3v315jvMvTn/707gc/\u002BMG4AyS9POfee\u002B/dHpOFG7OqfeQMCautttq9nneRRRaZYXHHzP543vOe127LgoxXX311uz4zM/rrR1\u002ByOn4Wxxu9dkO29dvf/na30korjfm4Bz/4wd0\u002B\u002B\u002Bwz01NLzq6p\u002Br4StMOzYN71rnfNNKwjZ69405ve1D7T/nGjL4svvngb/MgAwcyM9z1mQGDbbbed4Qwdw5enPe1pbUBntPPPP7/baKONxnxMfvZe97rXtc9udlx55ZVtgHB4DY\u002BxLsstt1z3iU98wuwJAIC5RPxPY5MNoMTaBz7wgZF/tOfPo01V/EfOv58p/3mu8dYYiIrxnxXmd9ppp3uFYgZDEsU51nz4\u002BlwSaYnQhOl4Eo05XCP3z2eWzy4DDI985CPv9Xz9JbMLennu5z73ue36vO8rrriiO\u002Byww7qlllpq5P5ZFyJBPzpA11tvvZEBnAwiZK90fkb627MNj33sY9tgQX9d3m9mOEzV3uGp/L4\u002B97nPjQxOPfWpTx032POZf\u002Btb3\u002Boe\u002BtCHjryvXPL5ZxtyysH\u002BefpLBmKyF348Y32Pv//977snP/nJI8\u002BRn518D8sss8zIdblkO/rfpTzP0UcfPcN98rP1\u002BMc/foZ1N3JZa6212vc9K3nOzEYY62cqgxv5\u002BRj\u002B3vtLBrAyCAEAwNQS/9PYZAMoQfqyl72sPS6xcsABBwxuucdUxv8tt9zSgrGPg0xBHku1\u002BM\u002Be7u22227kfSfqX/WqV3WnnHLKDBGcxecSWaP3uL/zne9s39VYRkdj9qxnD37\u002BnujLHtgEXvbSJ1gzdf9Xv/rV4NEzxn8CMavd9599wvOEE04YmX2Q7TvwwANnOE9\u002Bgj\u002BRnPPn99flNJJ/\u002BMMf2mPiuuuua3uv\u002B0GADCJkhsBUmMrvK6enzEBMnitBPV6sZ9uH935nD/vpp58\u002Bw0yBfK45nWA\u002B0/5\u002Bq6\u002B\u002B\u002BriHTIz\u002BHjMj53GPe1z7e7Yps2b6QaDcNwM8GaDonzuH1OR7ztk1\u002BkGavHYOI\u002Bi3Kz9rOfwie\u002Bb7x2W2z6wGYjILYXgwKLN2vvKVr8xwGEd\u002BRvJ5Zfp/Zi70983P0MUXXzy4FwAAU0H8T2OTDaAc693vzcveu8TPaFMZ/3muHA/dh0HCYziYepXiP6F26KGHjuzxT0QdccQRM53On/eb4\u002Bz7x\u002BS/433uw9GYSx/m\u002BV5/9rOfDe41vuH4H74k5sc7Rj\u002BHDfSBmZ\u002Bbddddt/0527nnnnuOGZO5Lnv8\u002B\u002BfPFPs\u002BZufEVH5fmdb\u002BhCc8oT3X8NT7YVmPYcUVVxx5v/meZvbzmZkRz3/\u002B80fed467H\u002BvzGf099pdsz/BgzbA///nPIwM9GbzLoFEf3i996UtHDuEY7Yc//OHITJMMcsxs8c2sD7DCCiuMbE\u002B2f1bf26mnntotv/zyI4954xvfOO7gFQAAs0/8T2OTCaAESPbS9f9AzwrnY/2jfirjP4GTRcL618we4rFCqFL8Z29sH2iJxeyZzecwK/lchhdjzBTqsaahjxWN2Sudz3Aixor/nPt\u002BZoGXxehGH0\u002Be97bffvvNdFAjx8j3e7MzSHH22WcPbpm8qfy\u002BMjOlH8hITGeBvWH5Xcgx7/17zp/H\u002BvkdLbMg\u002BhjOXvexZhSM9T3mfQ3PoBgtj/n85z9/r/UjXvnKV3Y33XTT4F73lpkor3/960fun7UGxvqZzO9dBuj6\u002B7361a9uh3dMxLHHHjsyOyL//clPfjK4BQCAOSX\u002Bp7HZDaD8oz4rcyfY8pgcC5x/rI9lKuM/Eit5rlyy93f0quYxHP/PfOYz22tmb/msLlldffQidLNr\u002BLPMXu0cBz7Wa42\u002BZLX8saIuq\u002BP3cTbeAMt4sme338ucz2OsoB8rGjN1f6wZFWMZHf/ZYzyzcOwNv6/8d5dddpnlIE1COQvN5TE5BCCf25yayvjP3ukNN9xw5LP47Gc/O7jl3/70pz\u002BNRHz2hmcwYyIyINIf9pFBhTzv6Nge/T0\u002B6lGPaos2zkpm7wxP499ggw0m9Dvwta99beQwjHwnY313ee5HPOIR7T6zOj3naBlgyB7/frvGm\u002BUDAMDsE//T2EQDKIGR07n1x/nnkhj58Ic/PG64TXX8Z29q/9qJzrH2JA7H/\u002BxeEr4z2/s8K8Of5exesoDa8FT5HCOfmM5tCa0spDc78tlnmnX//Dlef3RAjY7Gtddee5Yryw8bjv/sjf/tb387uGXmsl5Bv2d39PseT7Y1p6jrtzXrEYyO4Nk1lfGfwYmXv/zlI9uXAbJhOXwjvwO5bXZjNocQ9FPyc0jF6N\u002B30d9jXnsin03OBvCMZzyjPSZT\u002BSdyqEfk/wMZ3Mrj1l9//TFX5s9AXf7/kPtsuumms32WhuH3/KQnPWncs3sAADB7xP80NhxAiebsvcyCcv0l0\u002BvzD/x\u002Bpf3\u002BkpDZfvvtW6SOZ6rjP3uM\u002B9d/0YteNOZrz0n85xjsOQnKOYn/RPRwRCVEH/OYx7TbHv7wh7fjxWdX9o73e2izV3d0pI2Oxky9nx3D8Z/jv7O3dyIyHb1f7T6LOGbK/EQccsghI0GZs0vMyUBNTGX8Z8//S17ykvZcuQx/lvk96KfA5/dgdgdyMiukX48hAzQ333zz4JZ/G/097r///oNbZi6/P/k9ymOyMOBY63aMJYvw5WcyjxvrzAYZnOgPDcjMjhyuMrvyXeRsD3mODDSMt3YBAACzR/xPY5MJ1qzCnZXlZxVfUxn/owMnxybP6pj/F7/4xS2cEqWzumQa9kSOwZ6Z4c8y06lzrPJYrzX6koXRRgfwaaedNrKw2kT3jo\u002BWqd/9HtqVV165LUo3bLLR2Jts/Oezzint8rjZif/hwYysaTA/xf/wZ5EBii9/\u002BcuDW/59KsN\u002B4b7MeMip9RLIE71ceOGFI59XVssfvRd8st9jft5f8YpXtMfMTvxfdtllIwNT\u002BX9BzsgwLId\u002B5JCb3D47MwqGZaDq2c9\u002BdnuO/D5P1RkeAACmO/E/jY2O//xDO6ux55LzcCcK8g/97DnOiuuJ0olOWZ7K\u002BE/oZW9vv53VV/vPGgT9ugrZozyZFc\u002Bzh7Y/7jqDEVkHYNh9Ff/Zjv5Y89mJ/2984xszxP9Efw7HM5XfV/Z\u002B96fPy8/f9773vcEtM942p5dsb7Z72JzEf2b25DGzG//9XvnE/\u002Bh1AjLI1J\u002BmcJlllmmDW7Mr25aZR3mODKZk1gcAAHNO/E9jUxlAo01l/A/HQC6JnUTPaFXiP1PD\u002B0XxNtlkk0m9j5wtoD/V2lgRJv6n7vvKe\u002BpPfZkp\u002BsML3OW0eauttlq7bU4vz3nOc\u002B71ec1v8X/JJZe0RQdzez6T/H125ef9LW95y8h7OuCAAwa3AAAwJ8T/NLagxH\u002BmFq\u002BxxhrtucY7j3pUjP8MeiTUZtfll18\u002Bcnq8rNmQFeeHif\u002Bp\u002B75OOOGENlMmz5XTMw6fJ384/jOjJosVHn300bN9yVk1skjfaPNj/PcDIZl5khkosyu/t29605tG3tPBBx88uAUAgDkh/qexBSX\u002Bf/7zn3dLLbVUe64chjDe3sQq8X/UUUeNTPvPaf5mtrDieHJsfR/ZGQTIYMAw8T8131c\u002Bx4997GPteXLJ6e\u002BGB2uGp/3nmP\u002Bc7WAqzW/xPzzolJ\u002BLc889d3DLxGXb\u002BvUI8nuQ3wcAAOac\u002BJ/GFoT4z/H\u002BO\u002BywQ3ueXBL14506rEr8//jHP\u002B6WWGKJ9lxjrag\u002BEaeeeuoMiwaOPge/\u002BJ\u002Ba72v4lHnZvq985SuDW/5teMG/hGzWc5hK81v8Dw925Gc4P8uza/SigflZBgBgzon/aWxBiP9MV19xxRXb8yTsZ7byd5X4z6n9\u002BkDOlP2cHm92HXjggSOHDrz5zW\u002B\u002B12ch/qfm\u002B8rPdT9LI8\u002BXtRaGZTvf/va3t9tz2WOPPdpnP1Xmt/jP4pQvf/nL2\u002B1ZrG92f64i61P0pxPMuhWjZ60AADA54n8am9/jP3v4\u002B3Ok55LYnFksVon/nMt93XXXHfnshk8dNxEJsI033njk8V/60pcGt9xD/M/595XDT3L6vTxHQnfPPfccM\u002By/\u002BMUvjgzEvPSlL53UYRzjmd/iP9uz6667jmxP1qyY3bNV5Oc1P7d5fH6OJ3O2CwAA7k38T2Pzc/zn8XvvvffIXtUEyqyOl64S/znUYeedd27PlctYq7zPTNZI6M/xn\u002BOvE9yjif85\u002B74y3X\u002BjjTZqj8/lWc961riHZ5x//vkjp13M93LGGWcMbplz81v8x/AaHTn7wZlnnjm4ZdYy5b8f\u002BMrv/te\u002B9rXBLQAAzCnxP43Nr/GfPd8JvH7vX6Jvn332aVE8M1XiP37/\u002B9\u002BPTH3O\u002B//sZz87y/cfidIMFuRxuey0005jPk78T/77ynezzjrrtMfmklPbnXXWWYNb7y2h/ba3vW3k/i960Yvaz/hUmB/jP\u002BscDA\u002BM5M8T\u002BZ7znWbWQD9LIsf9j3WGAwAAJkf8T2PzW/zntGC7775725Y\u002BHBJ8CYLEyqxUiv8E\u002B/Aq8jlN3Gc\u002B85mZfg55zYRl/5inPe1pbbvGIv5n7/vKz1L2aG\u002B\u002B\u002BebtdJN5XC45rd3JJ588uNf4sur98ssvP/K4TGcf77sZduutt7bDPt773vcuEKf66/3sZz8bmX2SyyabbNJdc801g1vvLYdC7LLLLiMzfbLQ349\u002B9KPBrQAATAXxP43Nq/jPZf311\u002B\u002B22GKLGS6bbbZZi4JM801A9vftL5kq/c1vfnNCe7yjUvxHwviVr3zlDJ9JVlLPLIBf/OIX7ZjzLA543HHHde9617taxPX3yykRf/WrXw2e6d7E/z3fV2J\u002B0003vdfPZ841n8Xr1lxzzRmCv7/kZ3qi7zufd36Wc7q//vGZEp\u002BoP/7449vPS6a8Z7syi\u002BCggw5qvxv9/XPfc845Z/Bs95hf4z\u002B/s9mWPuZzedjDHtZ94AMf6E444YTuwgsvbIN9GVDJWgn9d5FLHrPffvtN\u002BPceAICJEf/T2NyO/\u002BHF\u002Bmbnsswyy3Q77rhjd9111w2ebWKqxX8kCBOiWVBu\u002BDOa2SWn9svU9JmZ7vF/9dVXd6uuuurI\u002B5\u002BdyxprrNEdccQRE5qNMiyf\u002Bfe///12mMBYzzuzywtf\u002BMLuxhtvHDzTPebX\u002BI98R5m1MDwoNatLfpZynL/wBwCYeuJ/GktcJ2Tyj\u002B6VVlrpXqcpm1M5p/nw1N\u002BxLgm6xHKOU3//\u002B9/fnXjiiZNe3Tt7FBdffPH2vJmePS/jf25\u002BlgmhvLcXvOAFI\u002BsgjHXJyvMHH3zwhFeTz97VDCrkGOvZPaPAHXfc0b34xS9ur5up7zkl40RkUKSf/p73k\u002BPDJyKneOwHdj7ykY/McRzmZ\u002Bw973nPyPHl413y87Tyyiu3UM4e6kzfT3DPiQRz1mLoFwEc75I95W94wxvazICZ/SxP5nvM8732ta9tr5PgPvvsswe3zNyVV17ZPo88LoNMYw1IjHbRRRe1gcCZDQJkG7bbbjun9QMAmIvE/zSX\u002BMre2BxbXEEiPNPh52X49\u002BbFZ5k95TnGPJG37777tvP5H3vssS3KZlcCOrGVx04maBPQeb\u002BZnTA7sthdHjc7p7zL9uWY8QwezOle//lF3lMGTTKwccABB7TvM6e5S\u002BzPzvc52e8xp9LM1PvZXVQvP9/5/iY6cNPL7\u002BRvf/vbNmvic5/7XJulcOSRR7YBlSrfKQDA/Ez8AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPHPfOFf//pXd9xxx3Wrrrpqd7/73a97znOe01133XXdhRde2J122mnd3/72t8E9Z\u002B3aa6/t1ltvvW6bbbYZXDO2q666qlt33XW7XXfdtfvnP/85uBYAAKAe8T\u002BNnHLKKd2SSy7ZLbTQQuNeXvCCF3S333774BFz7q677upuvvnmwd/GlxBP\u002BOdy4IEHdgcccEB3xRVXdM9//vO7pZdeuvvVr341uOesXXnlld3jH//47nWve93gmrFdfPHF3cMf/vBuyy237P7xj38MrgUAAKhH/E8jN9xwQ/fVr361O/jgg1tgJ/QXW2yxbscdd2zX5fKTn/xkyvaCJ6jf9a53dY961KO6Sy65ZHDt2LJ3/0EPelC3xx57tFkAke045phjur322mtCAwg98Q8AADAj8T9NJazf//73z/Ze9dmRoH7HO97RPeIRj2ihPTMnnHBCt/jii7c9/nNK/AMAAMxI/E9Ts4r/7H0/9thju7XWWqu7//3v3y266KLdxhtv3F1wwQXt9j//\u002Bc/dM5/5zO5tb3tbd8cdd7Tr8t\u002Btttqqe\u002BELX9j97ne/6zbYYIMW9DmcYPnll\u002B9WXnnl7ogjjmj37SW6t99\u002B\u002B2655ZZr93vIQx7SPeEJT\u002Bj233//7u9//3v3sY99rHvuc5/bXXPNNYNHdN1FF13Uwn6JJZZo6wOsscYa3be//e2RGQtjxf/dd9/dZjY89rGPba\u002Bz5pprdl/84hfb6w7Hf9YL2Hvvvbuf/vSnIzMQAAAAFnTif5qaVfwnphPXr3jFK7of/OAH3SGHHNKttNJKLbRzLH4f7Yssskh3\u002BOGHt1BO2Cf2P/e5z3W33HJLC/inPe1p7Xm23XbbbrfddmuDAsPyuB/\u002B8Ifdm970pu4BD3hA99KXvrQtwPeLX/yivcYWW2zRBg4uu\u002Byydv9LL720W3311VvcH3rood33v//97uUvf3l7jfw5Rsd/XiP3zbaus8463Wc/\u002B9nu9a9/fbfwwgu3gYDh\u002BM9hBrlfBjpmZ5FBAACA\u002BZn4n6ZmFv8J9/XXX7971rOe1d14442Da7vuu9/9bov7DAREIjuDAauttlp3\u002Bumnd0984hPbOgJ5fCSoJzrt//jjj7/XtP/R8Z\u002BI33333bulllqqO/XUUwf3\u002Bvd2ZKHAV73qVd1f//rXe8V/1gvIqv7Zzssvv7xdl/efQYqE/nD8Z0ZDZi8cddRR9vwDAABliP9pambxf95553XLLLNMt8kmm3Qnn3xymwKfy9e\u002B9rXuwQ9\u002BcPfBD35wZIr9t771rXZIQKbr55JBgN5Ux/\u002Bdd97Zbbjhht2KK67Yfe973xvZrh//\u002BMftEITMMrj\u002B\u002BuvvFf9//OMf2/T\u002BHKLQR3445h8AAJguxP80NbP4T8Bn73qO9c/ZAIYvif999tlnZK/4rbfe2mYJZPp8Bguy57031fGfPfhrr712e60MOAxvVx6bQxQy62B0/J911lntfX74wx8eGbQI8Q8AAEwX4n\u002Bamln8/\u002BY3v2l78bfbbrsZYnksWRsg8Z2ZAhkYOOWUUwa3TH3833bbbW3xvyzWd9111w3udW\u002Bj4/\u002Bcc85p7\u002Bfd7373DJEv/gEAgOlC/E9TM4v/q6\u002B\u002Buh0fn9X6s2d/PInsHPO/3nrrtWPwH/3oR7fH3HTTTe32BHXO87/ssst2F154YbtuPBOJ//z9ne98Zwv57M0fz\u002Bj4z/vJmgCZNdBvW3zzm99sAxej4/\u002Buu\u002B5yvD8AAFCK\u002BJ\u002BmZhb/uS0r7mfaf46T//3vf9\u002BC\u002BqSTTup22GGH7g9/\u002BEOL5Q984APdkksu2cI9sbzXXnu1FfT7wwJy2WOPPdp1OWVfZgX0pwocbSLxHz//\u002Bc9b/Of4/hNPPLG76qqrurPPPrvbc889uyOPPLK95uj4z/PkbAN5P1tvvXUbOMi25tCGnCpwOP7zHvOe3v72t88wIAAAALAgE//TVAI/p\u002BpLSP/2t78dXHuPnLN/p512aqfQyzH2uSSUn/Oc57Tz7GddgAwcJJz7U\u002BLdcMMNbe96zqX/pz/9qV2X/2aafh6fU/nl3PpjyaJ9ea2DDjpocM2/oz3P/7jHPW5klf7EfRb7y6J//XblkgGCnKYvt2dAYJVVVune\u002BMY3tsdEzt\u002BfswH0988CgDkVYRYKzKEJfeifcMIJbTs233zz7u67727XAQAALOjE/zSW4M0K\u002BjOTBfwS8Nljf/vttw\u002Bu/ffgQY7BT2wPy3MO3y9yXY6vzx750fcflgGHPO\u002BwBPhY25jnueKKK9oshIT9aHnMWPGe\u002B\u002Bb99AMWeX99\u002BPfyvkZfBwAAsCAT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/4BAACgOPEPAAAAxYl/AAAAKE78AwAAQHHiHwAAAIoT/wAAAFCc\u002BAcAAIDixD8AAAAUJ/6BBdLBBx/crb322vfJ5dhjjx1sxZy59tprx3z\u002BeXHZYostBlsBAMB0IP6BBdKOO\u002B7YLbTQQu2y9NJLz5NL/3qHHHLIYCvmzGWXXTbP30Mueb1nPOMZg60AAGA6EP/AAqmP/9///veDa\u002Ba\u002B73//\u002B3Ml/t/znvcMrpk3Hvawh4l/AIBpRvwDCyTxP3niHwBg\u002BhH/wAJJ/E\u002Be\u002BAcAmH7EP7BAEv\u002BTJ/4BAKYf8Q8skMT/5Il/AIDpR/wDCyTxP3niHwBg\u002BhH/wAJJ/E\u002Be\u002BAcAmH7EP7BAEv\u002BTJ/4BAKYf8Q8skMT/5Il/AIDpR/wDCyTxP3niHwBg\u002BhH/09zdd9/dXXHFFd11113X/etf/xpc23XXXnttt95663XbbLNN949//GNw7dyR5//Qhz7UrbXWWt3VV189uHbmJvMYahH/kyf\u002BAQCmH/E/TSU6Nttss27RRRdt8ZHLIx7xiG6vvfbq7rzzzu7KK6/sHv/4x3eve93r2gDB3JSQ32KLLbrll1\u002B\u002BbddETOYx1CL\u002BJ0/8AwBMP\u002BJ/GvrTn/7UPelJT\u002BoWWWSRbvPNN\u002B\u002BOOuqo7vDDD\u002B822WSTbqmllupOOOEE8c98T/xPnvgHAJh\u002BxP8089e//rXt8U/4f\u002BlLX5phqn/\u002BfM4557Qp/\u002BKf\u002BZ34nzzxDwAw/Yj/aebcc8/tlltuue65z31ud\u002Buttw6uvbc\u002B/l/96ld3\u002B\u002B\u002B/f4vs\u002B93vft2znvWs7pe//OXgXv92\u002B\u002B23d7vvvnv36Ec/uoVMnv\u002BjH/1od9tttw3u8e9YP\u002BKII7onP/nJ3f3vf/9umWWW6bbeeuu21sBYIf/HP/6xe97zntde/5ZbbmnXDRt\u002BzLe//e32fvrn3WOPPbq77rprcM\u002Buu\u002BOOO7pPfvKT3QorrNC2L4c6bLTRRt1vf/vbwT267sgjj\u002BxWXnnl7rDDDhsZEMk2rLPOOt3HPvax7p///GcbFNl77727n/70pzMMmnDfEP\u002BTJ/4BAKYf8T/NJMAXXnjhbpdddplpwPbx/4AHPKDF/E477dR95CMfaYcFrLnmmi2EIzMJ3vnOd3aLL754u08OGUiULbbYYi3u//a3v7XXSSxltsFznvOc7sADD2yDAwn3gw466F7xn0vC5FGPelR32mmntdcZrX9MBiTyWm94wxu6/fbbr1t33XXbNn/mM59pr9tvX657/etf3w5v2HXXXdt7yutlpkPk/eQ1V1xxxXZYRAYP3vKWt3SPfOQju9/97nftPsccc0x7DxtvvHF7X9y3xP/kiX8AgOlH/E8jieFPf/rTLZhnFS99/D/mMY/pfv3rX7frsvc7AwBLLLFE95Of/KRdl1kASy\u002B9dIv53B45TGCrrbZq8Z6QvuGGG1poPOUpTxkZNIibbrqp3TYc/3mtF7zgBe2xp5566uCe99Y/JjG\u002B7777jrz2pZde2vbg5/Xy3Keffnr34Ac/uHv7298\u002BQ7D/4Ac/aIMG22233chjc13e25Zbbtl985vfbH/\u002B1Kc\u002BNTJI8uc//7m9r6yRMLOBE\u002BYN8T954h8AYPoR/9NIgnXPPfds0\u002BMPPfTQwbVjG\u002B\u002BY/6997Wtt2vy3vvWt9vccEvDABz5wZDp8f0lU94MEZ599dveQhzxk3NMG9iGf\u002B6y99trtrAM/\u002B9nPBreObXjAIAHVy7a\u002B9rWv7ZZddtnuggsuaDMAsr0J\u002B2E5PeBqq63WbbDBBiOHP2SWQAYJMjMiMxzWX3/9NkDB/En8T574BwCYfsT/NPPFL36x7fnPcfEz23s9Xvzn2PjsMc\u002Be8Tw\u002Bx8MnXrIHPtcPXzKF/le/\u002BlV3yimndEsuuWS32267jfmafcg/6EEP6lZaaaV23P7M9vrHePGf69/1rne1gYSzzjqr22GHHVrIn3HGGYN7/NvNN9/cjud/\u002BtOf3mYI9M4888w2kyGHCUxV4DF3iP/JE/8AANOP\u002BJ9mEtWJ7Cx4l4XwxjPR\u002BM9Cejne/8QTTxzc494S3gnw7bfffmSK/bDhkM8e\u002Bvw36woMR/1oM9vz/\u002BY3v7nFzfnnn999/OMfH3P7stDgGmus0dYg6BcmzGEBmdafmQL5jLK44fXXX99uY/4j/idP/AMATD/if5rJyvkJ3j7gR0swJ/wnEv\u002BRWE8sz2wmweWXX95W2s8U\u002B\u002BGV\u002BzPNPmcKGA75HLP/jW98o71Gpu\u002BPN0DRPyYzCo477rjBtf\u002Bezr/66qt3a621VnfjjTe2wxMyK6Ffsb\u002BXQxMS\u002BO9///vvdcx/FkPM4QyZ/p\u002BzGAw/LgsBzmzGBPOO\u002BJ888Q8AMP2I/2ko4Zup9Qns7OlObOcUdwn97KH/7ne/O\u002BH4zzHxz372s9s0\u002BwRz4j0L4331q19tq\u002Bpnr3pCfdttt21rDWQxvazgn0XznvnMZ7bF\u002Bkbvxc/rffCDH2z3zxoFM5stkHDKa\u002B\u002Bzzz7tebO9eVy/UF/23GcgIO8rix3mVIff\u002Bc53ulVXXbW9Xr/a/zXXXNMOAXjqU5/a/pxBiuc///ntrAD9gocnnXRSG2zIugB5fe5b4n/yxD8AwPQj/qepX/ziF20GQEI58ZFLYjgL5GXv9lVXXdWtssoq3Rvf\u002BMYZ4v/oo49ue8dz2rveRRdd1L3kJS9pawn0z5UBguxVv/POO9t9clz95ptv3vam5/bc90UvelF34YUXtpDOoMDjHve4NksgMqiQ2xP2o4/XjzwmEZ7j9nfeeee2TXne7OXPwoKZUdDLwn/Pe97zRrYtl4R\u002B/7wZXMhARba5X8gwMkiSMwVsuumm7TPJaQzzOnkfw58J9w3xP3niHwBg\u002BhH/01wi\u002BeKLLx7z2PaE\u002B\u002BjIzd70PGasqe9ZRO\u002B8887rLrnkknHjOPfJoQWZkj8s9\u002B8HCnqJ8swcGG\u002BafQYAcuhA5H6J/OHDCkbLAES2b/h0g70c7z/WIQbZpoR/r5/JwH1P/E\u002Be\u002BAcAmH7EP7BAEv\u002BTJ/4BAKYf8Q8skMT/5Il/AIDpR/wDCyTxP3niHwBg\u002BhH/wAKpj/8sDPmhD31onlxyBoy5Ef\u002B5jPV6c\u002BuS1xP/AADTi/gHFkh9/N8Xl7kR//P6Iv4BAKYX8Q8skHKGipy94b64zOysErPj73//\u002B5jPPy8uOcsHAADTh/gHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxDwAAAMWJfwAAAChO/AMAAEBx4h8AAACKE/8AAABQnPgHAACA4sQ/AAAAFCf\u002BAQAAoDjxD5R38cUXd0ceeWT3vve9r3vxi1/crbfeet2zn/3sbqONNuo\u002B/OEPd9/5zne6v/zlL4N7z1/\u002B/ve/d7/85S\u002B7z3/\u002B891mm23WPfe5z\u002B3WWWed7jnPeU73ute9rttnn326n/3sZ91dd901eMT863//93\u002B7c845pzvkkEO6d7zjHd3zn//8bt111\u002B022GCDbuONN\u002B5233337oQTTuhuueWWwSMAAJgq4h8oKdF89NFHt8hfaKGFRi4PeMADuqWWWqp70IMe1N3//vcfuf5\u002B97tf97KXvaw78cQTW6Te16699tput9126x71qEfNsP2LLrpot/TSS3eLL774DNc/5CEP6T7wgQ\u002B0gY75zX//9393BxxwQLfaaqvNsM2LLLJI9\u002BAHP7hbYokl2uffX5/3\u002BNa3vrU7\u002B\u002ByzB88AAMCcEv9AOaeffnr3\u002BMc/voVkYv/Nb35z95nPfKb79Kc/3f47fMl1ufzHf/zHSHyutdZa3fnnnz94tnnrn//8Z7fXXnt1D3zgA9u2POIRj\u002Bg\u002B8pGPdJ/97Gfvtf3Z65/rd9111\u002B4JT3hCu38ietttt51vZgIcccQRbWAi27bkkkt222yzzbjvJf/dc889u2c961kj38WrX/3q7vrrrx88GwAAkyX\u002BgTL\u002B8Y9/dB/84AdbAC\u002B22GLdRz/60e7ggw9u08lz2W\u002B//bovfelLM1wSnP3t\u002BXvCOTMCsvc5QTovZa99H75rrLFGt//\u002B\u002B7dQ7rcv72V427/4xS92e\u002ByxR7tt77337g466KB2WEAev/LKK3e/\u002Bc1vBs887910001tKn\u002B2JbMXsn05dKF/L1/4whdmeC\u002B5fPKTn2y3ZQAgf990003b4x/2sId1P/jBDwbPDADAZIh/oISE/2te85oWi8973vNabCYkP/GJT3Tf/va3u0svvXTM6fz/\u002Bte/ugsvvLD7xje\u002BMRKmif4nP/nJ7bkymDAvXHTRRd0jH/nI9prbb7/9yLYk/n/60592t9566\u002BCeM7rzzju7X/ziFzOEdS6ZOZA97WecccbgnvNOwv\u002BpT31qey\u002Bbb755i/ls06c\u002B9anu\u002BOOP76677rrBPWd09913d7/73e\u002B6L3/5yyPvI99j4j8DMl//\u002BtcH9wQAYHaJf2CBl6nyffi/5S1vadPms0f81FNP7W6//fbBvWbt5ptvbsf8JzozAPDCF75wJMbnpj//\u002Bc8t/BO4/Z7\u002BHCN/wQUXtPc2ERnYyMyBQw89tD0\u002BgwE5nj4DABkcmFfyGfbhv/POO498ljl\u002B/29/\u002B9vgXrN29dVXtzUb8vjMgMhhHPl8chgBAACzT/wDC7zsUU5svulNb2p7\u002BrO3OHv6J\u002Bvcc8/tPve5z3W/\u002BtWvule84hXtuTN7YG7IwoSJ5Ryq0B\u002BCcPjhh0/6mP3MgMi25gwGGfzIwoYZWEiUzwv9VP0\u002B/DOIkZkAk5EBjZNPPrn7yle\u002B0s54kHUNcjhGBkUAAJg94p8pd9VVV7XTd2URsn6vZaZVn3baabO1528sWQE9p2nLomGJHDjvvPPaFPenP/3p7ZjxXK655prBrZN3ww03dD//\u002Bc/bXvMVV1yxW3bZZefKwnO77LJLi\u002BUdd9yxxfJXv/rVOf7ZTjT/8Y9/bNt/7LHHjgyMzG3ZU5/XygKLeS\u002BZfXDHHXcMbp28yy67rL2X/D8k3/UznvEMv/8AALNJ/E8z2Zu4ySabtH\u002Bg95fsSXvRi17U/nE9FTL1\u002BOEPf3i35ZZbtn\u002BgZ9p1zued05NlT\u002BqcuPLKK9v035zfPMcHT4WcUzzHTY\u002BWz2pe7S1l8nK\u002B\u002B\u002Bw1z3T57PXPFPqpkqnn\u002Bb3Iuefzu7LFFlsMbpka\u002BV1ZeOGF2yJ/ieUDDzyw\u002B5//\u002BZ/BrXMmaxn8/ve/b9u/9dZbt\u002B3P2gFzS35fcmz\u002Bcsst1w67yGr\u002B//Vf/zW4dc5lTYS8l3xGeS\u002BZUQAAwMSJ/2kmIZ7VwJdffvm2MnimF\u002Bd45pyKK3s2zzzzzME9J290/Gfv/zHHHNOCYE5jeqrjP3GXc49nQGT4\u002BbLd73rXu9oq5ZdccsngWuY3//f//t8WgllULvE8N1aEP\u002Becc1p0ZhHB7HXOjICpkvPyZ/sTtNn\u002Bqf5Zy0BCtj2/13mdV77ylYNbpl7WGshr9Iv7zelA32j5/0im/ue9ZC2DnM1grAUcAQAYm/ifZvr4z0rmmULfy2m1cj70HKc70QXGxjM6/qfS3Ij/VVddtXvVq141wyEJ2e53vOMd7RzreT/Mn972tre14OxXh88hJ1MtU/0T0BlY6ON2KmS2SWbDJGKzZkH2ZM\u002BNmP3DH/7Qtj8DXFkwL1Po54asW5DTK2YgIwN9UzWDYVh\u002BF/Ne8vz5Ln784x8PbgEAYFbE/zQzXvxnhfPFF1\u002B8e9/73jcS/9lzlxXUEyj5h3am9Oa45OHV0xPgOff4Yx/72HafNddcs517PFN/h/f8f\u002BxjH2uvO3wsdv4hn5XZl1pqqfbYPOb9739/d\u002BONNw7ucW99/CdkEhmPe9zj2mNzTvRMzc5U58jr5PU\u002B/vGPzzCYkYDLfX/2s5913//\u002B90dWEM8e3RVWWKFbe\u002B21220bbLBB\u002Bzzy3JklkUDrVxnPa\u002BR0ZVnXIFO28/jVV199hmO1\u002B/ecQYpsV9YpyP2y8Fq2e3jgIt9DFqjLlOx\u002B\u002B5m1hHL2AD/lKU9pMZifu7kh30n2OJ911llthkwidyr0x\u002BL35\u002BnPa8wN\u002BX1KMOd3PK\u002B37777Dm6ZOv/5n//Znju/83kveW9zQw4tGJ7JkNcDAGBixP80M1b8//Wvf20L6CWAv/Wtb7Xrslfy5S9/efeCF7ygxX2uzyre/YrkCaJcMtV3kUUW6dZZZ512zPXrX//6FsT9P8wTw7nkWOlEdL/XMSuxJ5gf\u002BtCHdh/96EdbOGfqdp4rU5Nvu\u002B22dr/R\u002BvjPa2SwYKeddup22223toc\u002Bsw1\u002B85vftPvl\u002BfN62TPcB3lke7PGwXe/\u002B922YviHP/zhFnTZ\u002B59ZDwmjbGNOLfa0pz2tW2KJJbptt922vUbOPx5ZST3XJzqztzaHT\u002BSY7Wx7/p7PpX/PGUDIautvfOMb2\u002BnOnvSkJ7XHZvCgl0Mi8tiNN954jhdEnE7\u002B9Kc/tZ\u002BznIc/wdl/93NDv8f5Pe95T/vZm4q92vl5y/bvt99\u002BbQBgsqv7z0oGSTJwkYULs\u002B1veMMbBrdMnW9\u002B85vtveQ4/3wXf/nLXwa3TL1\u002BHYP8zmawEQCAiRH/00wf/4nSF7/4xd1LX/rStpJ54jMRnoGA3ugYufzyy7uVVlppZIp8jt/P3u8cM5/bInu8c4q0PN948Z84zgrnifB\u002BsCGyN/zd735327bsLR9LH/95ruFjihMfGbzYYYcd2jZMJP5jdqf95z1noCOPGT6VXLYrgxmJkeuuu27kPedzyOfRzz7IrIIMBmSdhf66LFC31VZbdUcddVT7bJiYI488cobgnIpV5ceTwagEZ9bIyGsmpufUS17ykhbj2fa5fe76/Ixl\u002B5/5zGe20\u002BVNtQzA5HPJAODcmFkwrF\u002BEcbvttmuHKs2tQRMAgGrE/zQzHP/Zq58pzJmOvuGGG7ZoHUsGBBK62XOY0M\u002BgQf7BnVOJZe/76MBOLA8f89\u002BHcB//ibS8dp4r/5Aflmn5ifMcVz1WCI93zH8f\u002BxnMyLbNrfjP4m\u002BZKfDOd75zhufNn7NAYH9Gg9HvuddvV2Y5DD\u002Be2Ze95QnOrFeRgB4euJpq\u002Bb1JcP7whz9sr5nBpjm1yiqrtJ/lbPtUPN/M9DMXstc/s3emWn5/8rlk5ktO7zc3ZcZS3ktm0uQ1MwMEAIBZE//TzOhp/wnsLJaWveaZ3j4cpJlGnUjP3rX8I7u/9PGfvZ\u002BJ3Uyd7/dix6ziP6ul5zzd2YM\u002BevX/008/va0B8KEPfWiG5\u002ByNF/85xv\u002BJT3xie2/ZSzu34v\u002BUU07pllxyyTZzYXhwop/NkNtOPvnke73nXmZIZJ2CrHUwvP3Mvn7afL7TeRX/WWAur3nYYYcNbpm8rJOR38N5Gf/5fcj2T/XhJRl0y6DCF77whXkW/3mdvJcMyAEAMGvif5oZHf9x6623tsjPae3OP//8dl1iOgvjZe/8aaed1mI20Z7j4Pv47/eCZ6r\u002BcGDPKv77wwX6KfLDMt0/sxJmd89/ojoL9m200UZt2/I6/R724fvNafyfccYZbZG5TDkeHpzIn3NdBkN\u002B/etf3\u002Bs998T/1Nl1111b/PUr/c\u002BL\u002BM9aDXnNqZimn0No8vs1L\u002BN/s802a9s/1u/WnHjFK17Rnnde7vnPWgl5zf7/WQAAzJz4n2bGiv845JBD2vHHfXQncrMHfngPdwYEclx7H/99OGeF/JtuuqndJxIyOeXXePGf6H3rW9/anj//iO8loD/ykY\u002B0BfHGO4VXH/85XOGKK64YXNt1xx13XHvNPD7P029bBjX6Y8GzzTm2PrMc\u002BvjvZwxk0GA4HrPNmca/7LLLdhdeeOHg2q69Zl5/9HvOwMhaa63VFgEcPuZ/ovGfbZvqIKsue5kTf1mccV7Ff9aoyGuOtybF7MgikRksmpfxn3UGMmA31fKzns8lQT6v4j9n08hrDv9/DACA8Yn/aWa8\u002BE\u002BgZk/k05/\u002B9BayCd7MBEjk5tj\u002BrIyf0\u002BvlH9t9/Cdwc6hA1gzYeuut22EAOeVaoj5TgMeL/8jU\u002BNwvgwk55V5W8M4x3An/iaz2n\u002B1IaCfiv/e977XQT6j3iwAmBHOawuzl/8QnPtGdeuqp7UwE/Wn9\u002BvjPrIec1i\u002Bn4Muq\u002BzkdWmYmJMSzPRkQSWRkun8\u002Bgwws5DCHvL83velN7ZRjWQshr5X7jl7tfyLxf9JJJ7XDBd7\u002B9re3xzEx\u002Bdzzc5DTOSagc6jH3JJBogRnf375qQjODC7luXKO/0Tz3Bz8ySydbH9\u002BR170ohcNrp06\u002BbnPe8mZQPJ7k7OFzC394oU5G0n\u002BHwUAwMSI/2km8Z\u002B94Qnn66\u002B/fnDtv/d0v/e9723xnRhN5OYUdlmZPv\u002BoT\u002BzmVHR5bL\u002BoXiSC\u002BsW\u002BcskCgNkTm1XFM22\u002Bj/8MBCR6E7\u002BR0MnezsRx/9isjJ9p\u002BjMLq6uuuqqdcz\u002BDDtme4dcdvVr\u002Bueee2w5d6O\u002BTc\u002B0nUpZZZpm2sGDk/nlcBiJynwwCZLAjspBYDk3I9Vn3oD\u002BPfAYmPvCBD7SBhf65E1XZ49kH/VjvOTJzIGdXyMBAH/rZi5zPffQhCsxcfgbzvbz61a9u8Z9TMM4tOc1j1qPI701\u002BZqfCV77ylfazk7NBZPsvuuiiwS1TKyGeWM725/V23HHHwS1Tpz/vftZhyHvJwMzckN\u002BZzErKQGP\u002Bn5SBQgAAJkb8T0M5tr2P92EJ/gwODAd0wiF7vPtj8xOnYy0WlmBPLPe3Zc97H7eRx421NzCvmT3jeY289kRk2/O4yPT\u002B4dcdLfe75JJLWnT37yvbMfweI6\u002Bd2Q633HLL4Jp/y3vIlOnMOBj9mDxPBgpy\u002B/B77Y33nnPd6MjPgMJYz8HMPfvZz26DRgcffHDb4zw3Tvf33//93y2eE50J3AzSTIX8XPaDagnmDELNDf/5n//Ztr8/O8L/\u002BT//Z3DL1Mnvew4nyKycvffeuw2E/e///u/g1qnTz8DoD7/IQCMAABMj/oEFVn\u002Bu/yz\u002Bl4BOoE\u002B17JFPcOYMFHmtqTjHfy/H4GcAoD9dYQ5DmUoZ/Mpe\u002BGxzZvHk9IJzI8qjP9d/ZgzlvQwvlDlVzj777DaDITOLMltm9GAdAADjE//AAiszKHJmiZyVIcfO77vvvmPOtpiszDLJgEICOmtFZFHHqfSjH/2oBfN73vOeFsxZuHIqZcZLBi6\u002B\u002BtWvzvU95Yn9DGTk0KC8l8MPP3xkhs5U\u002BK//\u002Bq/2Xn7yk5\u002B095LDigAAmDjxDyzQstd8OKBzLP3f//73wa2Tl4GFnLYxwZnFGPMaUz1lPoeSZMHJLESZxfKy/Tl\u002BfirceOONbdszeJF1LjIlfyoHRsaSIM/nlEMMpnIwI4fl5H3kkkVJM4theC0NAABmTfwDC7wNN9ywRednP/vZdslij3OyhkLWkMgU88TzoYce2p773e9\u002B9\u002BDWqZVj/3O2hywEmZkLWbjwL3/5y\u002BDWycle8n7GQs7OkcGF/H1uS6SvsMIKbUp\u002BFtfMZ5fV\u002BefkUIM8ZwZE8l1ss8027bvIqUkBAJg94h9Y4OUsEJn\u002Bn9X/cyaHhGLi/X/\u002B538G95i4xGZOGZnn6NcUeOITnzhXFhPsHXbYYe11cnaJX/7yl\u002B21MygwepHJWUlkZ\u002BAgj0/s5/SWed6PfvSjg3vMfXntHCKR7yN/ziULek5mNkZmL\u002BR95Dn68/pngUQAAGaf\u002BAdKyJkXEpzZy3300UePhOf555/f3XTTTTPd\u002B5zIvuGGG7rf//73I4/rz12/2mqrjZztYm7KKf/yek996lPbonbZhgwEZBBgrLNzDMtMhUyD7wctEswve9nL2vPltJjz2vHHHz8yAHDyySePbFPOzJGzJ8xMZmzkLB6//e1vRx639dZbt/ey0UYbjXtmDwAAZk78A2VkAOCxj31sC8Ucf95PF88lYZzTSiYshy\u002BJ6\u002BH7Jbxz/vg8R87rPy/Cv5cBh4UXXrhNm8\u002BU\u002BeHtyqEMmeEwvO3Zy5\u002B96v19MliQwwYe/ehHt\u002B3ffvvtB888751wwgndUkst1QZj9txzz3bGgX47f/e737XTZw6/l1wyONDv6c9/f/zjH7fvIO/lVa96lfAHAJgD4h8oJXuWt9xyyxaMWX3\u002BzW9\u002Bc9v7nOPf\u002B/gcfUlkZ2919izncTl8YOedd26L/s1rOVxh9dVXb9vx0Ic\u002BtJ03f3gQYKxLBjYOPvjg7jGPeUx73PLLL9\u002BddNJJg2e87\u002BRsA1n9P9u06KKLdjvssEOL\u002Bn5mw1iXDBJ885vfbDMg8rgMIGQRRwAA5oz4B0o65ZRT2kKAGQBIRGZv\u002Bhve8IZul112aacF/OQnP9nttNNObY9y9rbnPvnva1/72rZn\u002Br6UPdxZ/G\u002BllVZq25XLqquu2hYdzEr6GRDI3vRM6X/GM54xcp9Ms8\u002Bx8bfeeuvgme57OdziiCOO6J72tKeNbOcjH/nI7m1ve1u32267tfey1157dR/60Ie65z//\u002BSP3yYr\u002Bme6fGQIAAMw58Q\u002BUdtFFF7W9\u002BC984Qu7pZdeeiQu\u002B8tyyy3Xjo9PTM/pKvtTLWsR/PCHP\u002By22mqrtie8H6ToLxnYyGKEm222WXfUUUfdJzMVZkcOS9huu\u002B26ddddt1tsscVmeC\u002B55EwBm266aXfQQQd1t9122\u002BBRAABMBfEPTBv9avgZEMgp6K699trBLQuGnL3g0ksv7S688MK2VkHOTLCgyur/WaQw7\u002BXiiy9uizICADD3iH8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4n\u002Bbuvvvu7oorruiuu\u002B667l//\u002Btfg2nnj2muv7dZbb71um2226f7xj38Mrp06ec4PfehD3VprrdVdffXVg2sBAACmH/E/TV122WXdZptt1i266KLdQgst1C6PeMQjur322qu78847B/eau6688sru8Y9/fPe6172uDUJMtcT/Flts0S2//PLt/QIAAExX4n8a\u002BtOf/tQ96UlP6hZZZJFu880374466qju8MMP7zbZZJNuqaWW6k444YTBPecu8c/c9rvf/a575jOf2R166KGDawAAYHoS/9PMX//617bHP\u002BH/pS99aYap/vnzOeec06bjzwvin7kpP1/rrLNOm9Wy9957D64FAIDpSfxPM\u002Beee2633HLLdc997nO7W2\u002B9dXDt2O64447uk5/8ZLfCCiu0gMohAhtttFH329/\u002BdnCPrrv\u002B\u002Buu7DTfcsPvsZz/b7bvvvt3DH/7w7gEPeED3kpe8pPvzn//c7vv85z\u002B/u//979897nGP64488siRAYc\u002B/jPj4MADD2y353XWWGONNvtgeGBiItsy2nD8f/vb327vOduxzDLLdHvssUd31113De7574GP448/vlt33XW7hRdeuN1v9dVX77761a\u002B254ls\u002B8orr9wddthhI9v2xz/\u002BsQXmxz72se6f//xnGzhJaP70pz\u002BdYfuZt84777zuGc94RvtZEf8AACD\u002Bp50jjjiixe0uu\u002Bwy0zjNDIF3vvOdLeRf//rXt8MCdt111zZwkJjODIHoA37ppZfuHvWoR7Xn3WqrrdrMglVXXbUNBmy66aYt3FdcccVu2WWX7X7zm9/M8NhsT553p5126nbbbbe29kAe199votsyWh//97vf/brFFluse8Mb3tDtt99\u002BLfDzXJ/5zGdGPoMMDiyxxBLdU57ylO6AAw7oDjrooO5Zz3pWex/5e\u002B6XsE9Q5n3k0IkMHrzlLW/pHvnIR7bp5XHMMce0x2y88cbd3/72t3Yd887tt9/eBnYe/OAHt5\u002Br/LyJfwAAEP/TSgL205/\u002BdIvhQw45ZHDt2E4//fQWUG9/\u002B9tniNgf/OAHLaS32267tqe7D/jHPvaxI7GevfQvfelLW2An5vsp/VlboI/p6B\u002BbgP/Vr37VrotvfvOb3QMf\u002BMBuhx12aK8x0W0ZrY//vGZmJfT3ufTSS9se/IT8DTfc0N18881t730GK3JbL9uXvf9rrrlmOxtC5DUzSLDlllu27cyfP/WpT40MImS2QwY/8l5nNrjC3PHrX/\u002B6DUTl\u002B8139a53vUv8AwDA/yf\u002Bp5HE6J577tmmtM9qAbTsFc/U\u002BgTUsJwyb7XVVus22GCDdthAH/DDx\u002B0nst///ve36fUXXHBBuy7OPPPMFmbZax9jPTYS4BkQyABC9q5PdFtGG\u002B\u002BY/7zWa1/72rZXONuXmQMPechD2uyCfop/5M\u002BJx2xzPziRWQgZhMhe5SyOuP7663c33XRTu437Xn6mjj766DYAle/vPe95j/gHAID/T/xPM1/84hfbnv9MjR5vz3TiPXvdE7dnnHHG4Np/6/eSP/3pT297zceL/5xff3T893tlP/7xj7e/jxf/11xzTffEJz6xHaOf15votow2Xvz3UZ/gz2yFU045pVtyySXvdShE/pzrctvJJ588uPaeQYzMbJjVDAruO\u002BIfAADuIf6nmVNPPbV70IMe1BbLy97RsSR6E\u002BiLL754d\u002BKJJw6u/bdMf8\u002BCfM95znO62267ba7E/\u002BWXX94W9uu3caLbMtp48Z/XevOb39w97GEPawv2ZVAhhxWMPnwgf8512eZse\u002BSwg0zrz0yEfI5ZFyCLHjL/Ef8AAHAP8T/N3HLLLS2Wc6x8jlkf7fzzz29R/q1vfasdK9\u002BvYt/LKvaJ3kzrz/VTEf9PfepTuyuuuKJdF8cdd1zbvo985CPtuSa6LaP18Z8993nOXg4XyLH8a621VnfjjTe21852rL322jNM4c9sgtwniwCOPuY/MwL233//Nv1/9913n\u002BH1c6jCeLMqmHfEPwAA3EP8T0OJ5oR5Ajt7sb/xjW\u002B009cl4DO9/rvf/W7bm53wzd\u002BzSGBOEfid73ynLYqXPemjV/ufk/hPnCWw87rf\u002B9732mvkePz\u002BOPuJbstoffzn\u002BTPFf5999ulOO\u002B20tq1Z96BfqC/b\u002B\u002BEPf7gdDvGmN72pTev/xS9\u002B0b3mNa9pcd\u002Bv9p/DEXKIQQYr8ucMpOQ0hjnrQD8z4KSTTmqDDVkXIK/PfUf8AwDAPcT/NJW4zQyARHDiKJeEdBbX689/n3B/3vOeN3J7Lonf4WPvr7rqqm6VVVbp3vjGN84Q/9lr30\u002Br7\u002BWc/InwnAEg8tisyr7tttu2U\u002BP1r5GYHr1a/kS2ZbTEXyI86wLsvPPObY99HpdZBNtss007LVwvhw184AMfaNP5\u002B\u002BfPAMTnP//59r7ynrJQYQZMMhOhl4GUHDKQ0xnmczvhhBPa62y\u002B\u002BeYjnwf3DfEPAAD3EP/TXAL44osvnulx65n\u002Bft5557Xz3I/lzjvvvFfoJrxy/Wg5hn/0FPn\u002B75mOn/Pnz\u002Bz8\u002BLPaltGyHVmhPxL4GUTIHvvxZJszYJHPJI8dlu0aa52EPKYfMIm8zujHMu\u002BJfwAAuIf4B0oS/wAAcA/xD5Qk/gEA4B7iHyhJ/AMAwD3EPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvxPU//617\u002B6K6\u002B8srvwwgu7u\u002B66a3Dtv910003dSSed1N1www2DawAAAFiQif9pJtF/wgkndKusskq30EILtcsiiyzSve1tb\u002BtuueWWdvunP/3pdv0ee\u002BzR/n5fyLbceeedg78BAAAwJ8T/NPOHP/yhe/SjH92tuuqq3dFHH92dfvrp3Sc\u002B8YlunXXW6f785z\u002B3\u002B5x77rndRz/60e6cc85pf5/Xrr766m611VbrNtlkk\u002B7uu\u002B8eXAsAAMBkif9p5stf/nK38MILd4cffvjgmvlP4j\u002BDE6961au6v/3tb4NrAQAAmCzxP80ccsgh3f3vf/\u002BZTuk/\u002BeSTuzXWWKM7/vjjB9d03Zlnntm94AUvaIcILLroot1jH/vYboUVVujWX3/97tJLL22PWXvttbsTTzyx23LLLbvFF1\u002B8W2yxxdrhBNdff/3gWbruuuuu6z784Q93K664Yne/\u002B92ve\u002BADH9i94hWv6P74xz\u002B227///e93j3/849s25ra8Rp73T3/6U3fNNdd0z33uc7uPf/zj3T//\u002Bc92//jBD37QtvdnP/tZ\u002B3teb8MNN\u002Bz22Wefbocddmjb\u002B/SnP709Pi666KLuda97XbfEEku0bchjv/3tb8/wnL/85S\u002B7vfbaq7v88ssH1wAAACy4xP80c8EFF3SPecxjWpxnAOC2224b3HKPY445poX717/\u002B9fb3iy\u002B\u002BuHvCE57QAvq73/1ud9hhh7XneNzjHtd97nOf62699db2mMT6Qx7ykG6ttdZq4f2a17ymxfW2227b/eMf/2jPtf/\u002B\u002B3crr7xyt9tuu3Xf\u002Bc53Wsg/6EEP6l70ohe1bcn2ZXAgz5O9/zvvvHO37777tkUIM8iw/PLLtwGF/vni0EMPbYGfbYssZJgBhGWXXbZbZplluq222qr74Ac/2BYwzHOsvvrq7fY8LoMNL3/5y9tAQP4cee63vvWtbdtzHwAAgAWd\u002BJ\u002BGsnc\u002B8Z5F/ZZbbrnuU5/61AyDAKPj/4gjjuiWXHLJ7thjj21/z4yBT37yky3Q\u002B3UB8pjMCnjlK1/Z3Xzzze26G2\u002B8sQ0EPO1pTxs5c0Cm8Q\u002BHe47p32yzzbpHPvKRbZAhxpv2P7vxv9RSS3U/\u002BtGP2nWR7d59993b9aeeeurg2n/fv3\u002B9v/71r\u002B1\u002Bea9vf/vbu/POO29wLwAAgAWX\u002BJ\u002BmEuiZ1v6IRzyiDQKst956LYJjdPxnfYDEf84SEInjPDbxf/bZZ7frRj8mEvabbrppt9JKK408dy9T7DMNP3G9xRZbdA996ENHQnuq4v/Vr371DI/P2QNyOEAOOfje977X/fSnP22XH//4x90zn/nMNkgxfIgCAABAFeJ/msve\u002BTe\u002B8Y1tAGDHHXdsUT465HM8fo7xf/azn93WAcj1mTmwwQYbjOzlHy/\u002B89w5bv\u002BKK65o1\u002BX13vve97ap/nnN/jI34j/H9Q\u002BfLSDbmvUD8nq5f7a3v\u002BQwiKw9kFMMAgAAVCP\u002BadGdY\u002BNz7Htie3TI5zCBxPmTnvSkNrU/x/ZvvPHGbRG\u002B3kTiP8G\u002BzTbbtOPrDzjggHaoQQYbtt9\u002B\u002BwnF/2WXXdbif/PNN58h6ica/3m9LBi45pprtoUHAQAApgvxP83k2PvhveZxxhlntOPgM/0\u002Btw2HfOI8K\u002BYnphPf45lI/GfP\u002BzrrrNP2vvczBvJ6W2\u002B99Qzxn8MBnvjEJ3YbbbRROwa/1w8K5KwDd9xxR7vurrvuagv6ZUBiVvGf13rnO9/ZDlc466yzBteOLYc25LkBAAAqEP/TSPaib7LJJm0RvgMPPLCdGi/H8ye0E/859j1Gh3xW5c/e\u002BlwS1U95ylNagH/iE59o0/hjIvGfmM7e/MR3jrnP3vcsHJgp98Pxn7MH5JCCLAKY583MgwwWZCAgZxDIXv68dhbte/3rXz9yWsBZxX/8/Oc/b6\u002Bf4/vzvFdddVVbt2DPPffsjjzyyBb9GfDI2QHynHnvAAAACzrxP80k8DPtffh4\u002ByyAl/PcJ3yjj/3EcCSSc1aA1772tW2hv49\u002B9KNtMb0cApD/Zi/86MdEwjsr\u002BSfEE\u002BTxm9/8pg029K\u002BdPfnvfve728KDOc1fZDuOOuqoNiCR\u002B2QQIOsOxLnnntvOy98/PgsV5hCCHLaQ8/1Hgn6VVVZpAw\u002Bj4z/PnYGHvOf\u002BOXLJ4QQZaOjjf7vttmvv71vf\u002BtbgkQAAAAsu8T9NZfp/9rQnyvvo7\u002BXvt99\u002B\u002B8h/s5d/3XXXnWExvER19rrnXP\u002BXX375DI8Zlvtllf1hietLLrmkndovf85jRt8n8nwXXnjhvRbh6x\u002Bf2QT96\u002BXxw6\u002Bdv48O/2G5bx7/hz/8obv22msH194jhwgMn/4QAABgQSb\u002Bmal\u002Bhfzsbc9q\u002B70MHGSv/fOe97w2TR8AAID5l/hnprKHPFP5c5z8wgsv3I7fz2n\u002Bcpz9k5/85DaNHwAAgPmb\u002BGdCMgPguOOOawsFHnLIId0vf/nLmU6rBwAAYP4h/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAADFiX8AAAAoTvwDAABAceIfAAAAihP/AAAAUJz4BwAAgOLEPwAAABQn/gEAAKA48Q8AAP\u002Bv/TqgAQAAQBjUP7X2\u002BKAFAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAHHyDwAAAGnbAaVcjcfLuuvkAAAAAElFTkSuQmCC",
"Width": 1023,
"Height": 1448,
"Number": 1,
"ScaleFactor": 1.720083236694336,
"Acrofields": [
{
"Name": "Text1",
"Type": "TextBox",
"DefaultValue": "",
"Left": 303.6525526771191,
"Top": 250.64718005025634,
"Width": 297.24092532109705,
"Height": 37.847112936203956,
"Options": {}
},
{
"Name": "Check Box1",
"Type": "CheckBox",
"DefaultValue": false,
"Left": 303.8091079788211,
"Top": 330.13128322624016,
"Width": 30.965819675075963,
"Height": 30.965819675075963,
"Options": {}
},
{
"Name": "Check Box2",
"Type": "CheckBox",
"DefaultValue": false,
"Left": 353.2666707898398,
"Top": 330.13128322624016,
"Width": 30.965819675075963,
"Height": 30.965819675075963,
"Options": {}
},
{
"Name": "RadioGroup1",
"Type": "RadioButton",
"DefaultValue": false,
"Left": 303.8091079788211,
"Top": 413.1489582118668,
"Width": 30.965819675075963,
"Height": 30.965819675075963,
"Options": {}
},
{
"Name": "RadioGroup1",
"Type": "RadioButton",
"DefaultValue": false,
"Left": 351.49991113506906,
"Top": 413.1489582118668,
"Width": 30.965819675075963,
"Height": 30.965819675075963,
"Options": {}
},
{
"Name": "RadioGroup1",
"Type": "RadioButton",
"DefaultValue": false,
"Left": 402.7225273475703,
"Top": 413.1489582118668,
"Width": 30.965819675075963,
"Height": 30.965819675075963,
"Options": {}
},
{
"Name": "Dropdown1",
"Type": "ComboBox",
"DefaultValue": "1",
"Left": 303.6525526771191,
"Top": 488.87079913749244,
"Width": 123.86327870030385,
"Height": 34.40646630563996,
"Options": {
"1": "1",
"2": "2",
"3": "3"
}
},
{
"Name": "Signature1",
"Type": "SignatureArea",
"DefaultValue": "",
"Left": 303.6525526771191,
"Top": 577.4174172780961,
"Width": 298.6739155826517,
"Height": 176.9267059602823,
"Options": {}
}
]
}

Form Data Input

To input form data using the tablet pen a virtual keyboard in used. When an input field is clicked the keyboard is displayed:

Keyboard UI

In addition to data entry a number of features are supported by the keyboard:

  • to exit from keyboard input click the page display away from a form field
  • to accept the input click the Return key
  • to select an alternative keyboard (if configured) click the national flag image
  • to move to the next input field click the InputStepping button:

Next keyboard field

Thumbnail Data

Thumbnail data can be supplied as individual pages or as a collection.

Use pdfHelper to generate the data for a document:

  • PageNumber
  • Base64Image

DocumentView will include the ToggleThumbnails action button to display the page summary images:

Thumbnail list

Clicking an image results in the Client-Server message ThumbnailClickedMessage containing the selected page number. The Server app responds to the message by sending the selected page to the Client for an updated display.

The data is normally supplied with the OpenDocumentPageMessage.

Alternatively the data can be sent in a separate UpdateThumbnailsMessage. This approach can be used to reduce the display refresh time by reducing the data sent in the original OpenDocumentPageMessage.

UpdateThumbnailsMessage

Message DataDescription
WithDataPageNumber, Base64Image

After supplying OpenDocumentPageMessage, thumbnail data can be added to the display. Thumbnail data can be supplied as individual pages or a collection, using pdfHelper.

SetDocumentZoomMessage

Message DataDescription
WithZoomZoom factor value
caution

Important Note: By default, the zooming function's accepted values are rendered with . for a decimal point. For example, 1.00 for 100% and 0.00 for 0%. Users from countries that render the decimal point as an , rather than a . will need to adjust this. For eample, users wishing for a zoom of 150% will need to set the value from 1.5 to 1,5.

SetElementEnabledMessage

Message DataDescription
WithNameThe button name
WithStateSets the enable/disable state

SetElementValueMessage

Message DataDescription
WithNameThe button name
WithValueSets the enable/disable state

The code snippet below illustrates how users may specify an element's value.


  SetElementValueMessage DocView
        private void SetValueClick(object sender, RoutedEventArgs e)
        {
            if (ActiveClient != null)
            {
                string eltName = txtElementName.Text;
                string eltValue = txtElementValue.Text;
                SendMessage(new SetElementValueMessage(KioskServer.Sender)
                    .WithName(eltName)
                    .WithValue(eltValue)
                    .Build()
                    .ToByteArray());
            }
        }

Client-Server messages:

OperationSuccessMessage

OperationFailedMessage

InputChangedMessage

Message DataDescription
ControlNamename of the control from the page json data
ControlValuetext entered in the field

ThumbnailClickedMessage

Message DataDescription
PageNumberPageNumber 1...n indicates the selected thumbnail image

ButtonClickedMessage

Message DataDescription
ButtonNamename of the button from the DocumentView.xaml definition

SignatureClickedMessage

Message DataDescription
SignatureFieldNamename of the signature control clicked

PageDataMessage

Message DataDescription
PageDataCollection of all page field data values [Key, Value]. Empty fields returned with "". e.g.
"Field1","value1"
"Field2",""
"Field3","value3"