pdf viewer in asp net c# : How to add an image to a pdf in preview SDK Library project winforms .net asp.net UWP PowerGREP21-part3041

Select The Text Layout Configuration That You Want to Use 
The Text Layout Configuration screen shows the details of the text layout configuration that you select in the 
list in the top left corner. Any changes you make on the screen are automatically applied to the selected layout 
and persist as you choose different layouts in the list. The changes become permanent when you click OK. 
The layout that is selected in the list when you click OK becomes the new default layout. 
Click the New and Delete buttons to add or remove layouts. You must have at least one text layout 
configuration. If you have more than one, you can use the Up and Down buttons to change their order. The 
order does not affect anything other than the order in which the text layouts configurations appear in 
selection lists. 
PowerGREP comes with a number of preconfigured text layouts. If you find the options on this screen 
bewildering, simply choose the preconfigured layout that matches your needs, and ignore all the other 
settings. You can fully edit and delete all the preconfigured text layouts if you don’t like them. 
Left-to-right: Normal settings with best performance for editing text in European languages and 
ideographic languages (Chinese, Japanese, Korean). The default font is monospaced. The layout does 
respect individual character width if the font is not purely monospaced or if you select another font.  
Proportionally spaced left-to-right: Like left-to-right, but the default font is proportionally spaced.  
Monospaced left-to-right: Like left-to-right, but the text is forced to be monospaced. Columns are 
guaranteed to line up perfectly even if the font is not purely monospaced. This is the best choice for 
working with source code and text files with tabular data.  
Monospaced ideographic width: Like monospaced left-to-right, but ASCII characters are given the 
same width  as  ideographs.  This  is  the  best choice if  you  want  columns of  mixed ASCII and 
ideographic text to line up perfectly.  
Complex script left-to-right: Supports text in any language, including complex scripts (e.g. Indic 
scripts) and right-to-left scripts (Hebrew, Arabic). Choose this for editing text that is written from 
left-to-right, perhaps mixed with an occasional word or phrase written from right-to-left.  
Complex script right-to-left: For writing text in scripts such as Hebrew or Arabic that are written 
from right-to-left, perhaps mixed with an occasional word or phrase written from left-to-right.  
Monospaced complex left-to-right: Like ´complex script left-to-rightµ, but using monospaced fonts 
for as many scripts as possible. Text is not forced to be monospaced, so columns may not line up 
Monospaced complex right-to-left: Like ´complex script right-to-leftµ, but using monospaced fonts 
for as many scripts as possible. Text is not forced to be monospaced, so columns may not line up 
Selected Text Layout Configuration 
The section in the upper right corner provides a box to type in the name of the text layout configuration. This 
name is only used to help you identify it in selection lists when you have prepared more than one text layout 
In the Example box you can type in some text to see how the selected text layout configuration causes the 
editor to behave. 
How to add an image to a pdf in preview - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
adding a jpeg to a pdf; attach image to pdf form
How to add an image to a pdf in preview - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
add image pdf acrobat; add an image to a pdf with acrobat
Text Layout and Direction 
Complex script, predominantly left-to-right: Text is written from left to right and can be mixed with 
text written from right to left. Choose this for complex scripts such as the Indic scripts, or for text in 
any language that mixes in the occasional word or phrase in a right-to-left or complex script.  
Complex script, predominantly right-to-left: Text is written from right to left and can be mixed with 
text written from left to right. Choose this for writing text in scripts written from right to left such as 
Hebrew or Arabic.  
Left-to-right only: Text is always written from left to right. Complex scripts and right-to-left scripts 
are not supported. Choose this for best performance for editing text in European languages and 
ideographic  languages  (Chinese,  Japanese,  Korean)  that  is  written  from  left  to  right  without 
Monospaced  left-to-right  only:  Text  is  always  written  from  left  to  right  and  is  forced  to  be 
monospaced. Complex scripts and right-to-left scripts are not supported. Each character is given the 
same horizontal width even  if the font specifies different  widths for different characters.  This 
guarantees columns to be lined  up perfectly.  To  keep the  text readable, you should  choose a 
monospaced font.  
ASCII characters with full ideographic width: You can choose this option in combination with any of 
the four preceding options. In most fonts, ASCII characters (English letters, digits, and punctuation) 
are about half the width of ideographs. This option substitutes full-width characters for the ASCII 
characters so they are the same width as ideographs. If you turn this on in combination with 
´monospaced left-to-right onlyµ then columns that mix English letters and digits with ideographs will 
line up perfectly.  
Text Cursor Movement 
Monodirectional: The left arrow key on the keyboard always moves the cursor to the left on the 
screen and the right arrow key always moves the cursor to the right on the screen, regardless of the 
predominant or actual text direction.  
Bidirectional: This option is only available if you have chosen one of the complex script options in 
the ´text layout and directionµ list. The direction that the left and right arrow keys move the cursor 
into depends on the predominant text direction selected in the ´text layout and directionµ list and on 
the actual text direction of the word that the cursor is pointing to when you press the left or right 
arrow key on the keyboard.  
Predominantly left-to-right: The left key moves to the preceding character in logical order, 
and the right key moves to the following character in logical order.  
Actual left-to-right: The left key moves left, and the right key moves right.  
Actual right-to-left: The actual direction is reversed from the predominant direction. 
The left key moves right, and the right key moves left.  
Predominantly right-to-left: The left key moves to the following character in logical order, 
and the right key moves to the preceding character in logical order.  
Actual left-to-right: The actual direction is reversed from the predominant direction. 
The left key moves right, and the right key moves left.  
Actual right-to-left: The left key moves left, and the right key moves right.  
C# WinForms Viewer: Load, View, Convert, Annotate and Edit PDF
Convert PDF to Tiff image (.tif, .tiff). • Convert PDF to HTML (.htm, .html). PDF Annotation. • Add sticky notes to PDF document in preview.
adding jpg to pdf; add picture to pdf
C# WPF Viewer: Load, View, Convert, Annotate and Edit PDF
PDF to Tiff image (.tif, .tiff). • Convert PDF to HTML (.htm, .html). PDF Annotation. • Add sticky notes to PDF document. • Highlight PDF text in preview.
add photo to pdf form; add photo to pdf in preview
Selection of Words 
Select only the word: Pressing Ctrl+Shift+Right moves the cursor to the end of the word that the 
cursor is on. The selection stops at the end of the word. This is the default behavior for all Just Great 
Software applications. It makes it easy to select a specific word or string of words without any 
extraneous spaces or characters. To include the space after the last word, press Ctrl+Shift+Right 
once more, and then Ctrl+Shift+Left.  
Select the word plus everything to the next word: Pressing Ctrl+Shift+Right moves the cursor to the 
start of the word after the one that the cursor is on. The selection includes the word that the cursor 
was on and the non-word characters between that word and the next word that the cursor is moved 
to. This is how text editors usually behave on the Windows platform.  
Character Sequences to Treat as words 
Letters, digits, and underscores: Characters that are considered to be letters, digits, or underscores by 
the Unicode standard are selected when you double-click them. Ctrl+Left and Ctrl+Right move the 
cursor to the start of the preceding or following sequence of letters, digits, or underscores. If symbols 
or punctuation appear adjacent to the start of a word, the cursor is positioned between the symbol 
and the first letter of the word. Ideographs are considered to be letters.  
Letters, digits, and symbols: As above, but symbols other than punctuation are included in the 
selection when double-clicking. Ctrl+Left and Ctrl+Right never put the cursor between a symbol and 
another word character.  
Everything except whitespace: All characters except whitespace are selected when you double-click 
them. Ctrl+Left and Ctrl+Right move the cursor to the preceding or following position that has a 
whitespace character to the left of the cursor and a non-whitespace character to the right of the 
Words  determined  by  complex  script  analysis:  If  you  selected  the  ´bidirectionalµ  text  cursor 
movement option, you can turn on this option to allow Ctrl+Left and Ctrl+Right to place the cursor 
between two letters for languages such as Thai that don’t write spaces between words.  
Text Cursor Appearance 
Select a predefined cursor or click the Configure button to show the text cursor configuration screen. There 
you can configure the looks of the blinking text cursor (and even make it stop blinking). 
A text layout uses two cursors. One cursor is used for insert mode, where typing in text pushes ahead the text 
after the cursor. The other cursor is used for overwrite mode, where tying in text replaces the characters after 
the cursor. Pressing the Insert key on the keyboard toggles between insert and overwrite mode. 
Main Font 
Select the font that you want to use from the drop-down list. Turn on ´allow bitmapped fontsµ to include 
bitmapped fonts in the list. Otherwise, only TrueType and OpenType fonts are included. Using a TrueType 
or OpenType font is recommended. Bitmapped fonts may not be displayed perfectly (e.g. italics may be 
clipped) and only support a few specific sizes. 
How to C#: Preview Document Content Using XDoc.Word
C# DLLs for Word File Preview. Add references: Get Preview From File. You may get document preview image from an existing Word file in C#.net.
add image pdf document; add png to pdf acrobat
How to C#: Preview Document Content Using XDoc.PowerPoint
Add necessary XDoc.PowerPoint DLL libraries into your created C# application as You may get document preview image from an existing PowerPoint file in C#.net.
add jpg to pdf; adding images to pdf forms
If you access the text layout configuration screen from a print preview, then turning on ´allow bitmapped 
fontsµ will include printer fonts rather  than screen fonts in the list, in addition  to  the TrueType and 
OpenType fonts that work everywhere. A ´printer fontµ is a font built into your printer’s hardware. If you 
select a printer font, set ´text layout and directionµ to ´left to right onlyµ for best results. 
Fallback Fonts 
Not all fonts are capable of displaying text in all scripts or languages. If you have selected one of the complex 
script options in the ´text layout and directionµ list, you can specify one or more ´fallbackµ fonts. If the main 
font does not support a particular script, PowerGREP will try to use one of the fallback fonts. It starts with 
the topmost font at the list and continues to attempt fonts lower in the list until it finds a font that supports 
the script you are typing with. If none of the fonts supports the script, then the text will appear as squares. 
To figure out which scripts a particular font supports, first type or paste some text using those scripts into the 
Example box. Make sure one of the complex script options is selected. Then remove all fallback fonts. Now 
you can change the main font and see which characters that font can display. When you’ve come up with a 
list of fonts that, if used together, can display all of your characters, select your preferred font as the main 
font. Then add all the others as fallback fonts. 
Line and Character Spacing 
By default all the spacing options are set to zero. This tells PowerGREP to use the default spacing for the 
font you have selected. 
If you find that lines are spaced apart too widely, specify a negative value for "increase (or decrease) the line 
height". Set to ´add 0 pixels of extra space between linesµ. 
If you find that lines are spaced too closely together, specify a positive value for "increase (or decrease) the 
line height" and/or "add ... pixels of extra space between lines". The difference between the two is that when 
you select a line of text, increasing the line height increases the height of the selection highlighting, while 
adding extra space between lines does not. If you select multiple lines of text, extra space between lines shows 
up as gaps between the selected lines. Adding extra space between lines may make it easier to distinguish 
between lines. 
The  "increase  (or  decrease)  the  character  width  by  ...  pixels´  setting  is  only  used  when  you 
select µmonospaced left-to-right´ only in the µtext layout and direction" list. You can specify a positive value 
to increase the character or column width, or a negative value to decrease it. This can be useful if your chosen 
font is not perfectly monospaced and because of that characters appear spaced too widely or too closely. 
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
enables compressing and decompressing in preview in ASP.NET to reduce or minimize original PDF document size Reduce image resources: Since images are usually or
add picture to pdf preview; adding images to pdf files
How to C#: Set Image Thumbnail in C#.NET
VB.NET How-to, VB.NET PDF, VB.NET Word following steps below, you can create an image viewer WinForm Open or create a new WinForms application, add necessary dll
add picture to pdf reader; add jpeg signature to pdf
35. Text Cursor Configuration 
You can access the text cursor configuration screen from the text layout configuration screen by clicking one 
of the Configure buttons in the ´text cursor appearanceµ section. 
Existing Text Cursor Configurations 
The Text Cursor Configuration screen shows the details of the text cursor configuration that you select in the 
list at the top. Any changes you make on the screen are automatically applied to the selected cursor and 
persist as you choose different cursors in the list. The changes become permanent when you click OK. The 
cursor that is selected in the list when you click OK becomes the new default cursor. 
How to C#: Preview Document Content Using XDoc.excel
Add necessary references: RasterEdge.Imaging.Basic.dll. Get Preview From File. You may get document preview image from an existing Excel file in C#.net.
how to add a jpg to a pdf; add image in pdf using java
C# PDF remove image library: remove, delete images from PDF in C#.
Generally speaking, using well-designed APIs, C# developers can do following things. Remove Image from PDF Page Using C#. Add necessary references:
add jpg signature to pdf; acrobat insert image into pdf
Click the New and Delete buttons to add or remove cursors. You must have at least one text cursor 
configuration. If you have more than one, you can use the Up and Down buttons to change their order. The 
order does not affect anything other than the order in which the text cursor configurations appear in selection 
PowerGREP comes  with  a number of preconfigured text cursors. You can fully edit or delete all the 
preconfigured text cursors if you don’t like them. 
Insertion cursor: Blinking vertical bar similar to the standard Windows cursor, except that it is thicker 
and fully black, even on a gray background. 
Bidirectional insertion cursor: Like the insertion cursor, but with a little flag that indicates whether 
the keyboard layout is left-to-right (e.g. you’re tying in English) or right-to-left (e.g. you’re typing in 
Hebrew). The flag is larger than what you get with the standard Windows cursor and is shown even if 
you don’t have any right-to-left layouts installed. 
Underbar cursor: Blinking horizontal bar that lies under the character. This mimics the text cursor 
that was common in DOS applications. 
Overwrite cursor: Blinking rectangle that covers the bottom half of the character. In EditPad this is 
the default cursor for overwrite mode. In this mode, which is toggled with the Insert key on the 
keyboard, typing text overwrites the following characters instead of pushing them ahead. 
Standard Windows cursor: The standard Windows cursor is a very thin blinking vertical bar that is 
XOR-ed on the screen, making it very hard to see on anything except a pure black or pure white 
background. If you have a right-to-left keyboard layout installed, the cursor gets a tiny flag indicating 
keyboard direction. You should only use this cursor if you rely on accessibility software such as a 
screen reader or magnification tool that fails to track any of EditPad’s other cursor shapes. 
Selected Text Cursor Configuration 
Type in the name of the text cursor configuration. This name is only used to help you identify it in selection 
lists when you have prepared more than one text cursor configuration. 
In the Example box you can type in some text to see what the cursor looks like. The box has a word in Latin 
and Arabic so you can see the difference in cursor appearance, if any, based on the text direction of the word 
that the cursor is on. 
Standard Windows Text cursor: The standard Windows cursor is a very thin blinking vertical bar that 
is XOR-ed on the screen, making it very hard to see on anything except a pure black or pure white 
background. If you have a right-to-left keyboard layout installed, the cursor gets a tiny flag indicating 
keyboard direction. You should only use this cursor if you rely on accessibility software such as a 
screen reader or magnification tool that fails to track any of EditPad’s other cursor shapes. The 
standard Windows cursor provides no configuration options. 
Vertical bar in front of the character: On the Windows platform, the normal cursor shape is a vertical 
bar that is positioned in front of the character that it points to. That is to the left of the character for 
left-to-right text, and to the right of the character for right-to-left text. 
Vertical bar with a flag indicating keyboard direction: A vertical bar positioned in front of the 
character that it points to, with a little flag (triangle) at the top that indicates the direction of the 
active keyboard layout. When the cursor points to a character in left-to-right text, it is placed to the 
left of that character. When the cursor point to a character in right-to-left text, it is placed to the right 
of that character. The direction of the cursor’s flag is independent of the text under the cursor. The 
cursor’s flag points to the right when the active keyboard layout is for a left-to-right language. The 
cursor’s flag points to the left when the active keyboard layout is for a right-to-left language. 
Vertical bar with a flag indicating text direction: A vertical bar positioned in front of the character 
that it points to, with a little flag (triangle) at the top that points to that character. When the cursor 
points to a character in left-to-right text, it is placed to the left of that character with its flag pointing 
to the right towards that character. When the cursor point to a character in right-to-left text, it is 
placed to the right of that character with its flag pointing to the left towards that character. 
Horizontal bar under the character: In DOS applications, the cursor was a horizontal line under the 
character that the cursor points to. 
Half rectangle covering half the character: The cursor covers the bottom half of the character that it 
points to. This is a traditional cursor shape to indicate typing will overwrite the character rather than 
push it ahead. 
Rectangle covering the whole character: The cursor makes the character invisible. This can also be 
used to indicate overwrite mode. 
Blinking Style 
Do not blink: The cursor is permanently visible in a single color. Choose this option if the blinking 
distracts you or if it confuses accessibility software such as screen readers or magnification tools.  
Blink on and off: The usual blinking style for text cursors on the Windows platform. The cursor is 
permanently visible while you type (quickly). When you stop typing for about half a second, the 
cursor blinks by becoming temporarily invisible. Blinking makes it easier to locate the cursor with 
your eyes in a large block of text.  
Alternate between two colors: Makes the cursor blink when you stop typing like ´on and offµ. But 
instead of making the cursor invisible, it is displayed with an alternate color. This option gives the 
cursor  maximum  visibility:  the  blinking  animation  attracts  the  eye  while  keeping  the  cursor 
permanently visible.  
Width: Width in pixels for the vertical bar shape.  
Height: Height in pixels for the horizontal bar shape.  
Flag: Length in pixels of the edges of the flag that indicates text direction.  
Regular: Used for all shapes and blinking styles except the standard Windows cursor.  
Alternate: Alternate color used by the ´alternate between two colorsµ blinking style.  
Dragging: Color of a second ´ghostµ cursor that appears while dragging and dropping text with the 
mouse. It indicates the position the text is moved or copied to when you release the mouse button.  
36. Text Encoding Preferences 
Computers deal with numbers, not with characters. When you save a text file, each character is mapped to a 
number, and the numbers are stored on disk. When you open a text file, the numbers are read and mapped 
back to characters. When saving a file in one application, and opening the that file in another application, 
both applications need to use the same character mappings. 
Traditional character mappings or code pages use only 8 bits per character. This means that only 256 
characters can be represented in any text file. As a result, different character mappings are used for different 
language  and  scripts.  Since different  computer manufacturers had  different ideas  about  how to create 
character mappings, there’s a wide variety of legacy character mappings. PowerGREP supports a wide range 
of these. 
In addition to conversion problems, the main problem with using traditional character mappings is that it is 
impossible to create text files written in multiple languages using multiple scripts. You can’t mix Chinese, 
Russian and French in a text file, unless you use Unicode. Unicode is a standard that aims to encompass all 
traditional character mappings, and all scripts used by current and historical human languages. 
What This Means to You 
If you only search through files created on your own Windows computer, or on other Windows computers 
using the same regional settings, PowerGREP’s default settings will suit you perfectly. All your files will all 
use the same traditional Windows code page and/or Unicode. 
In the section ´default settings for files not configured belowµ, select the Windows code page that matches 
the language you work with. All Windows code pages are an extension of US ASCII, which supports the 
English alphabet. Code page 1252 is the default for the Americas and Western Europe. 
Text files normally should not contain NULL characters. Binary files usually do contain NULL bytes. Turn 
on "treat files containing NULL characters as binary files" to be able to exclude binary files in the File 
Selector with the option Search through Binary Files. When you do search through binary files, PowerGREP 
will display the results in hexadecimal. The file editor edits binary files in hexadecimal mode. 
If PowerGREP treats certain text files as binary files, that is because those text files contain spurious NULL 
characters. You can turn off ´treat files containing NULL characters as binary filesµ to force PowerGREP to 
treat all files as text files. 
On the Windows platform, Unicode files should start with a byte order marker. The byte order marker is a 
special code that indicates the Unicode encoding (UTF-8, UTF-16 or UTF-32) used by the file. PowerGREP 
will always detect the byte order marker, and treat the file with the corresponding Unicode encoding. By 
default, PowerGREP will also write the byte order marker when creating new files. When changing existing 
files, PowerGREP will write the byte order marker only if it was previously present in the file. 
Some applications save Unicode files without byte order markers. Reading a UTF-16 file as if it was encoded 
with a Windows code page will cause every other character in the file to appear as a NULL character. 
PowerGREP can detect this situation and read the file as UTF-16. Reading a UTF-8 file as if it was encoded 
with a Windows code page will cause non-ASCII characters to appear as two or three garbage characters. E.g. 
the French character é will appear as Ã©. PowerGREP can detect if a file contains non-ASCII characters and 
if all of them are valid UTF-8 sequences, indicating the file is highly likely an UTF-8 file. You should turn on 
the option ´detect UTF-8 and UTF-16 files without a byte order markerµ, to prevent UTF-16 files from 
being treated as binary files, and to make sure UTF-8 files are processed properly. 
Text Encoding Definitions 
Creating additional text  encoding definitions is only necessary when you work with files encoded with 
different traditional character mappings. This will be  the case with  files created  on different Windows 
computers using different regional or language settings. It will also be the case with text files created on 
computers using operating systems other than Windows. Linux systems usually use UTF-8 without a byte 
order marker (meaning PowerGREP cannot auto-detect the UTF-8 format), or one of the ISO-8859 code 
pages. Old files created with MS-DOS will use one of the DOS code pages. Files created on IBM mainframes 
are likely to use one of the EBCDIC encodings. 
Click the New button to create a new text encoding definition. Click the Delete button to remove the selected 
definition. Use the Move Up and Move Down buttons to change the order. PowerGREP looks through the 
definitions from top to bottom when looking up the encoding to use for a particular file. If the file matches 
more than one text encoding definition, the topmost definition is used. 
Assign each definition a meaningful label. This label is only used in the text encoding preferences. It makes it 
easy to look up the encoding later in the list. 
Select the character mapping to use for files of this type (i.e. files matching the definition’s file mask) from the 
Encoding drop-down list. This list has one extra mapping not available for the default encoding. At the top 
of the list, you’ll find the "binary file" encoding. This is not really an encoding, but tells PowerGREP to treat 
all files of this type as 8-bit binary files. These files can be excluded in the File Selector with the option Search 
through Binary Files. When you do search through binary files, PowerGREP will display the results in 
hexadecimal. The file editor edits binary files in hexadecimal mode. 
The file mask is a semicolon-delimited list of file masks, just like the include files masks in the File Selector. If 
a file’s name matches one of the masks in the list, the text encoding definition is used for that file. 
If some files of this type are text files, and others are binary files, you can turn on ´treat files containing 
NULL characters as binary filesµ to make PowerGREP auto-detect binary files. For most text encoding 
definitions though, you will leave this option off. 
If some files of this type are UTF-8 or UTF-16 Unicode files without a byte order marker, while others use 
another encoding, select the other encoding from the Encoding list, and turn on ´detect UTF-8 and UTF-16 
Unicode files without a byte order markerµ. If you’re not sure, turn on the option. 
On the Windows platform, Unicode files should start with a byte order marker. PowerGREP will write this 
marker at the start of each Unicode file, unless you’ve turned off that option for certain text encoding 
definitions.  If an  application  that  claims  to  support Unicode  can’t read  the  Unicode  files  created  by 
PowerGREP, try turning off the option to write the byte order marker for the files you’re trying to open with 
that application. 
If you’re not sure whether files of this type should use a byte order marker or not, or if some applications 
require it and others can’t handle it, turn on the option to ´preserve the presence of absence of the byte order 
marker in existing filesµ. When this option is on, and PowerGREP modifies a file, PowerGREP will keep the 
BOM if it was present in the file, but won’t write it if it wasn’t present, regardless of whether you turned the 
´write a byte order markerµ option on or off. Note that the ´write a byte order markerµ option will still 
determine whether PowerGREP writes the byte order marker to new files that it creates. 
Encoding of XML Files 
XML files start with an XML declaration that indicates the encoding of the XML file. Before searching a file, 
PowerGREP will check if it starts with an XML declaration. If so, PowerGREP will process the file using the 
encoding indicated by the XML declaration. 
PowerGREP will always do the XML declaration check for files for which you did not define a text encoding 
on the Text Encoding page in the Preferences. There is no XML option among the default text encoding 
You can turn off the XML declaration check for text encoding definitions. This can be useful when you want 
to search through XML files that use an encoding not recognized by PowerGREP. Otherwise, PowerGREP 
will skip those files with an error message indicating the unsupported encoding. Instead, you can select a fixed 
encoding from PowerGREP’s list that is close enough to the one actually used by the XML file. 
Documents you may be interested
Documents you may be interested