Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
K
kam-printing
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
wizards
kam-printing
Commits
38f8d959
Commit
38f8d959
authored
13 years ago
by
Martin Mareš
Browse files
Options
Downloads
Patches
Plain Diff
PPD: First bits of Phaser PPD
parent
5d97dd29
No related branches found
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
ppd/PPD.pm
+8
-10
8 additions, 10 deletions
ppd/PPD.pm
ppd/gen-hp
+1
-1
1 addition, 1 deletion
ppd/gen-hp
ppd/gen-phaser
+329
-0
329 additions, 0 deletions
ppd/gen-phaser
with
338 additions
and
11 deletions
ppd/PPD.pm
+
8
−
10
View file @
38f8d959
...
...
@@ -234,8 +234,8 @@ declare('f',
define_head_group
({
Key
=>
'
p
',
Name
=>
'
Product description
'
});
declare
('
p
',
[
'
Manufacturer
',
'
q!
',
undef
],
[
'
ModelName
',
'
q!
',
undef
],
# default: co
py
Product
[
'
NickName
',
'
q!
',
undef
],
# default: copy
Product
[
'
ModelName
',
'
q!
',
undef
],
# default: co
ncatenate Manufacturer and
Product
[
'
NickName
',
'
q!
',
undef
],
# default: copy
ModelName
[
'
ShortNickName
',
'
q!
',
undef
],
# default: copy NickName
[
'
Product
',
'
q!
',
undef
],
[
'
PSVersion
',
'
q!
',
undef
],
...
...
@@ -405,16 +405,14 @@ sub emit_constraints() {
}
sub
fill_defaults
()
{
my
$m
odel
=
get
('
M
odelName
');
if
(
defined
$model
)
{
maybe_set
('
Product
',
"
(
$model
)
");
maybe_set
('
Nick
Name
',
$mod
el
);
my
$m
fg
=
get
('
M
anufacturer
');
my
$prod
=
get
('
Product
');
if
(
defined
(
$mfg
)
&&
defined
(
$prod
))
{
maybe_set
('
Model
Name
',
$m
fg
.
'
'
.
$pr
od
);
}
my
$nick
=
get
('
NickName
');
if
(
$nick
)
{
maybe_set
('
ShortNickName
',
$nick
);
}
maybe_set
('
NickName
',
get
('
ModelName
'))
if
defined
get
('
ModelName
');
maybe_set
('
ShortNickName
',
get
('
NickName
'))
if
defined
get
('
NickName
');
my
$psver
=
get
('
PSVersion
');
if
(
defined
(
$psver
)
&&
$psver
=~
/\((\d)/
)
{
...
...
This diff is collapsed.
Click to expand it.
ppd/gen-hp
+
1
−
1
View file @
38f8d959
...
...
@@ -12,7 +12,7 @@ set('FileVersion', '1.0');
set
('
PCFileName
',
'
HP4350.PPD
');
set
('
Manufacturer
',
'
HP
');
set
('
ModelName
',
'
HP
LaserJet 4350
');
set
('
Product
',
'
LaserJet 4350
');
set
('
PSVersion
',
'
(3010.107) 0
');
set
('
Throughput
',
35
);
...
...
This diff is collapsed.
Click to expand it.
ppd/gen-phaser
0 → 100755
+
329
−
0
View file @
38f8d959
#!/usr/bin/perl
use
strict
;
use
warnings
;
use
lib
"
.
";
use
PPD
;
use
PPD::
PJL
;
use
PPD::
Paper
;
set
('
FileVersion
',
'
1.0
');
set
('
PCFileName
',
'
XR7400.PPD
');
set
('
Manufacturer
',
'
Xerox
');
set
('
Product
',
'
Phaser 7400
');
set
('
PSVersion
',
'
(3016.101) 3
');
# *DefaultOutputOrder: Normal
# *AccurateScreensSupport: True
# *DefaultGuaranteedMaxSeparations: 4
set
('
Throughput
',
35
);
set
('
TTRasterizer
',
'
Type42
');
set
('
Protocols
',
'
PJL BCP TBCP
');
set
('
FileSystem
',
1
);
set
('
ColorDevice
',
1
);
set
('
DefaultColorSpace
',
'
CMYK
');
set
('
cupsProtocol
',
'
None
');
# FIXME: JobPatchFile and magic there...
define_ui_group
({
Key
=>
'
Basic
',
Name
=>
'
Basic options
'
});
option
({
Key
=>
'
Duplex
',
Name
=>
'
2-Sided Printing
',
Choice
=>
'
PickOne
',
Values
=>
[
{
Key
=>
'
None
',
Name
=>
'
Off (1-Sided)
',
PS
=>
"
<< /Duplex false >> setpagedevice
"
},
{
Key
=>
'
DuplexNoTumble
',
Name
=>
'
Long-Edge Binding
',
PS
=>
"
<< /Duplex true /Tumble false >> setpagedevice
",
Default
=>
1
},
{
Key
=>
'
DuplexTumble
',
Name
=>
'
Short-Edge Binding
',
PS
=>
"
<< /Duplex true /Tumble true >> setpagedevice
"
},
]
});
option
({
Key
=>
'
Resolution
',
Name
=>
'
Printer Resolution
',
Choice
=>
'
PickOne
',
Priority
=>
5
,
Section
=>
'
DocumentSetup
',
Values
=>
[
{
Key
=>
'
1200x1200dpi
',
Name
=>
'
ProRes 1200
',
PS
=>
'
<< /HWResolution [1200 1200] /PreRenderingEnhance false >> setpagedevice
'
},
{
Key
=>
'
600x600x2dpi
',
Name
=>
'
FastRes 1200
',
PS
=>
'
<< /HWResolution [1200 1200] /PreRenderingEnhance true >> setpagedevice
',
Default
=>
1
},
{
Key
=>
'
600x600dpi
',
Name
=>
'
600 DPI
',
PS
=>
'
<< /HWResolution [600 600] /PreRenderingEnhance false >> setpagedevice
'
},
]
});
option
({
Key
=>
'
Collate
',
Choice
=>
'
Boolean
',
Values
=>
[
{
Key
=>
'
False
',
Name
=>
'
Off
',
PS
=>
'
<< /Collate false >> setpagedevice
'
},
{
Key
=>
'
True
',
Name
=>
'
On
',
PS
=>
'
<< /Collate true >> setpagedevice
',
Default
=>
1
},
]
});
# FIXME: Jog
PPD::PJL::
add_jcl
();
PPD::Paper::
add_papers
({
MinW
=>
254.6
,
MaxW
=>
930.3
,
MinH
=>
254.6
,
MaxH
=>
3456.5
,
MarginH
=>
14.456
,
MarginV
=>
14.456
,
PSPageSize
=>
sub
{
my
(
$m
)
=
@_
;
return
sprintf
("
<< /PageSize [%d %d] >> setpagedevice
",
$m
->
{
W
},
$m
->
{
H
});
},
# FIXME: LeadingEdge
});
switch_group
('
Media
');
option
({
Key
=>
'
MediaType
',
Name
=>
'
Media Type
',
Choice
=>
'
PickOne
',
Priority
=>
20
,
Values
=>
gen_values
("
<< /MediaType (%s) >> setpagedevice
",
{
Key
=>
'
None
',
PS
=>
'
<< /MediaType null >> setpagedevice
',
Default
=>
1
},
"
Paper
",
"
HeavyPaper
",
"
Transparency
",
"
ThinCardStock
",
"
ThickCardStock
",
"
ThickCardStock
",
"
ExtraThickCardStock
",
"
Envelope
",
"
Label
",
"
Letterhead
",
"
CoatedPaper
",
"
Preprinted
",
"
Prepunched
",
"
ColoredPaper
",
"
Special
",
),
});
option
({
Key
=>
'
InputSlot
',
Name
=>
'
Input Slot
',
Choice
=>
'
PickOne
',
Priority
=>
20
,
Values
=>
[
{
Key
=>
'
ManualFeed
',
Name
=>
'
Tray 1 with manual feed
',
PS
=>
'
<< /ManualFeed true /MediaPosition 0 /TraySwitch false >> setpagedevice
'
},
{
Key
=>
'
Tray1
',
Name
=>
'
Tray 1
',
PS
=>
'
<< /ManualFeed false /MediaPosition 0 /TraySwitch false >> setpagedevice
'
},
{
Key
=>
'
Tray2
',
Name
=>
'
Tray 2
',
PS
=>
'
<< /ManualFeed false /MediaPosition 1 /TraySwitch false >> setpagedevice
'
},
{
Key
=>
'
Tray3
',
Name
=>
'
Tray 3
',
PS
=>
'
<< /ManualFeed false /MediaPosition 2 /TraySwitch false >> setpagedevice
'
},
],
Default
=>
'
Tray2
',
});
option
({
Key
=>
'
OutputBin
',
Name
=>
'
Paper Destination
',
Choice
=>
'
PickOne
',
Priority
=>
21
,
Values
=>
[
{
Key
=>
'
TopBin
',
Name
=>
'
Top Output Tray
',
PS
=>
'
<< /OutputType (Top Bin) >> setpagedevice
'
},
{
Key
=>
'
LeftOutputTray
',
Name
=>
'
Left Output Tray
',
PS
=>
'
<< /OutputType (Left Side Bin) >> setpagedevice
'
},
],
Default
=>
'
TopBin
',
});
option
({
Key
=>
'
RequiresPageRegion
',
Values
=>
[{
Key
=>
'
All
',
String
=>
'
True
'
}],
Default
=>
undef
,
});
# FIXME: Update
constrain
(
undef
,
'
InputSlot
',
'
MediaType
',
sub
{
my
(
$is
,
$mt
)
=
@_
;
return
!
((
$is
eq
'
Tray2
'
||
$is
eq
'
Tray3
')
&&
(
$mt
eq
'
Labels
'
||
$mt
eq
'
Envelope
'));
});
constrain
(
undef
,
'
Duplex
',
'
MediaType
',
sub
{
my
(
$dp
,
$mt
)
=
@_
;
return
!
(
$dp
ne
'
None
'
&&
$mt
=~
/^(Labels|Transparency|Bond)$/
);
});
# FIXME: Replace by XRXMismatch
#option({
# Key => 'HPPaperPolicy',
# Name => 'Fit to Page',
# Choice => 'PickOne',
# Priority => 10,
# Values => [
# { Key => 'PromptUser', Name => 'PromptUser', PS => '', Default => 1 },
# { Key => 'NearestSizeAdjust', Name => 'Nearest Size and Scale', PS => '<< /Policies << /DeferredMediaSelection true /PageSize 3 >> >> setpagedevice' },
# { Key => 'NearestSizeNoAdjust', Name => 'Nearest Size and Crop', PS => '<< /Policies << /DeferredMediaSelection true /PageSize 5 >> >> setpagedevice' },
# ],
#});
define_ui_group
({
Key
=>
'
Quality
',
Name
=>
'
Print Quality / Color
'
});
option
({
Key
=>
'
OutputMode
',
Name
=>
'
Print Quality
',
Choice
=>
'
PickOne
',
Priority
=>
46
,
Values
=>
[
{
Key
=>
'
Automatic
',
PS
=>
'
true /RRCustomProcs /ProcSet findresource /setautopq get exec
',
Default
=>
1
},
# FIXME: ValuesPerColorComponent etc.
{
Key
=>
'
Standard
',
PS
=>
'
<< /HWResolution [600 600] >> setpagedevice
'
},
{
Key
=>
'
Enhanced
',
PS
=>
'
<< /HWResolution [600 1200] >> setpagedevice
'
},
{
Key
=>
'
Photo
',
PS
=>
'
<< /HWResolution [600 600] >> setpagedevice
'
},
],
});
# FIXME: XRXColor, XRXGrayLine, XRXLightness, XRXSaturation, XRXContrast
# FIXME: XRXCyanRed, XRXMagentaGreen, XRXYellowBlue, XRXApplyToCMYK
# FIXME: XRXSmoothing, XRXPrintingOptimization
# As reported by the printer
fonts
(
<<
'
AMEN
'
);
AlbertusMT:
Standard
"
(001.001)
"
Standard
ROM
AlbertusMT
-
Italic:
Standard
"
(001.001)
"
Standard
ROM
AlbertusMT
-
Light:
Standard
"
(001.001)
"
Standard
ROM
AntiqueOlive
-
Bold:
Standard
"
(001.002)
"
Standard
ROM
AntiqueOlive
-
Compact:
Standard
"
(001.002)
"
Standard
ROM
AntiqueOlive
-
Italic:
Standard
"
(001.002)
"
Standard
ROM
AntiqueOlive
-
Roman:
Standard
"
(001.002)
"
Standard
ROM
Apple
-
Chancery:
Standard
"
(001.002)
"
Standard
ROM
Arial
-
BoldItalicMT:
Standard
"
(001.003)
"
Standard
ROM
Arial
-
BoldMT:
Standard
"
(001.003)
"
Standard
ROM
Arial
-
ItalicMT:
Standard
"
(001.003)
"
Standard
ROM
ArialMT:
Standard
"
(001.003)
"
Standard
ROM
ArialNarrowCyrMT:
Special
"
(001.004)
"
Special
ROM
ArialNarrowCyrMT
-
Bold:
Special
"
(001.004)
"
Special
ROM
AvantGarde
-
Book:
Standard
"
(003.000)
"
Standard
ROM
AvantGarde
-
BookOblique:
Standard
"
(003.000)
"
Standard
ROM
AvantGarde
-
Demi:
Standard
"
(003.000)
"
Standard
ROM
AvantGarde
-
DemiOblique:
Standard
"
(003.000)
"
Standard
ROM
Bodoni:
Standard
"
(001.003)
"
Standard
ROM
Bodoni
-
Bold:
Standard
"
(001.003)
"
Standard
ROM
Bodoni
-
BoldItalic:
Standard
"
(001.003)
"
Standard
ROM
Bodoni
-
Italic:
Standard
"
(001.003)
"
Standard
ROM
Bodoni
-
Poster:
Standard
"
(001.003)
"
Standard
ROM
Bodoni
-
PosterCompressed:
Standard
"
(001.002)
"
Standard
ROM
Bookman
-
Demi:
Standard
"
(003.000)
"
Standard
ROM
Bookman
-
DemiItalic:
Standard
"
(003.000)
"
Standard
ROM
Bookman
-
Light:
Standard
"
(003.000)
"
Standard
ROM
Bookman
-
LightItalic:
Standard
"
(003.000)
"
Standard
ROM
Carta:
Special
"
(001.001)
"
Special
ROM
Chicago:
Standard
"
(001.000)
"
Standard
ROM
Clarendon:
Standard
"
(001.002)
"
Standard
ROM
Clarendon
-
Bold:
Standard
"
(001.002)
"
Standard
ROM
Clarendon
-
Light:
Standard
"
(001.002)
"
Standard
ROM
CooperBlack:
Standard
"
(001.004)
"
Standard
ROM
CooperBlack
-
Italic:
Standard
"
(001.004)
"
Standard
ROM
Copperplate
-
ThirtyThreeBC:
Standard
"
(001.003)
"
Standard
ROM
Copperplate
-
ThirtyTwoBC:
Standard
"
(001.003)
"
Standard
ROM
Coronet
-
Regular:
Standard
"
(001.002)
"
Standard
ROM
Courier:
Standard
"
(004.000)
"
Standard
ROM
Courier
-
Bold:
Standard
"
(004.000)
"
Standard
ROM
Courier
-
BoldOblique:
Standard
"
(004.000)
"
Standard
ROM
Courier
-
Oblique:
Standard
"
(004.000)
"
Standard
ROM
Eurostile:
Standard
"
(001.003)
"
Standard
ROM
Eurostile
-
Bold:
Standard
"
(001.002)
"
Standard
ROM
Eurostile
-
BoldExtendedTwo:
Standard
"
(001.003)
"
Standard
ROM
Eurostile
-
ExtendedTwo:
Standard
"
(001.003)
"
Standard
ROM
Geneva:
Standard
"
(001.000)
"
Standard
ROM
GillSans:
Standard
"
(001.003)
"
Standard
ROM
GillSans
-
Bold:
Standard
"
(001.002)
"
Standard
ROM
GillSans
-
BoldCondensed:
Standard
"
(001.002)
"
Standard
ROM
GillSans
-
BoldItalic:
Standard
"
(001.003)
"
Standard
ROM
GillSans
-
Condensed:
Standard
"
(001.002)
"
Standard
ROM
GillSans
-
ExtraBold:
Standard
"
(001.002)
"
Standard
ROM
GillSans
-
Italic:
Standard
"
(001.003)
"
Standard
ROM
GillSans
-
Light:
Standard
"
(001.002)
"
Standard
ROM
GillSans
-
LightItalic:
Standard
"
(001.003)
"
Standard
ROM
Goudy:
Standard
"
(001.004)
"
Standard
ROM
Goudy
-
Bold:
Standard
"
(001.003)
"
Standard
ROM
Goudy
-
BoldItalic:
Standard
"
(001.003)
"
Standard
ROM
Goudy
-
ExtraBold:
Standard
"
(001.002)
"
Standard
ROM
Goudy
-
Italic:
Standard
"
(001.003)
"
Standard
ROM
Helvetica:
Standard
"
(003.000)
"
Standard
ROM
Helvetica
-
Bold:
Standard
"
(003.000)
"
Standard
ROM
Helvetica
-
BoldOblique:
Standard
"
(003.000)
"
Standard
ROM
Helvetica
-
Condensed:
Standard
"
(003.000)
"
Standard
ROM
Helvetica
-
Condensed
-
Bold:
Standard
"
(003.000)
"
Standard
ROM
Helvetica
-
Condensed
-
BoldObl:
Standard
"
(003.000)
"
Standard
ROM
Helvetica
-
Condensed
-
Oblique:
Standard
"
(003.000)
"
Standard
ROM
Helvetica
-
Narrow:
Standard
"
(003.000)
"
Standard
ROM
Helvetica
-
Narrow
-
Bold:
Standard
"
(003.000)
"
Standard
ROM
Helvetica
-
Narrow
-
BoldOblique:
Standard
"
(003.000)
"
Standard
ROM
Helvetica
-
Narrow
-
Oblique:
Standard
"
(003.000)
"
Standard
ROM
Helvetica
-
Oblique:
Standard
"
(003.000)
"
Standard
ROM
HoeflerText
-
Black:
Standard
"
(001.000)
"
Standard
ROM
HoeflerText
-
BlackItalic:
Standard
"
(001.000)
"
Standard
ROM
HoeflerText
-
Italic:
Standard
"
(001.000)
"
Standard
ROM
HoeflerText
-
Ornaments:
Special
"
(001.001)
"
Special
ROM
HoeflerText
-
Regular:
Standard
"
(001.000)
"
Standard
ROM
JoannaMT:
Standard
"
(001.001)
"
Standard
ROM
JoannaMT
-
Bold:
Standard
"
(001.001)
"
Standard
ROM
JoannaMT
-
BoldItalic:
Standard
"
(001.001)
"
Standard
ROM
JoannaMT
-
Italic:
Standard
"
(001.001)
"
Standard
ROM
LetterGothic:
Standard
"
(001.005)
"
Standard
ROM
LetterGothic
-
Bold:
Standard
"
(001.007)
"
Standard
ROM
LetterGothic
-
BoldSlanted:
Standard
"
(001.006)
"
Standard
ROM
LetterGothic
-
Slanted:
Standard
"
(001.005)
"
Standard
ROM
LubalinGraph
-
Book:
Standard
"
(001.004)
"
Standard
ROM
LubalinGraph
-
BookOblique:
Standard
"
(001.004)
"
Standard
ROM
LubalinGraph
-
Demi:
Standard
"
(001.004)
"
Standard
ROM
LubalinGraph
-
DemiOblique:
Standard
"
(001.004)
"
Standard
ROM
Marigold:
Standard
"
(001.001)
"
Standard
ROM
MonaLisa
-
Recut:
Standard
"
(001.001)
"
Standard
ROM
Monaco:
Standard
"
(001.001)
"
Standard
ROM
NewCenturySchlbk
-
Bold:
Standard
"
(003.000)
"
Standard
ROM
NewCenturySchlbk
-
BoldItalic:
Standard
"
(003.000)
"
Standard
ROM
NewCenturySchlbk
-
Italic:
Standard
"
(003.000)
"
Standard
ROM
NewCenturySchlbk
-
Roman:
Standard
"
(003.000)
"
Standard
ROM
NewYork:
Standard
"
(001.000)
"
Standard
ROM
Optima:
Standard
"
(001.006)
"
Standard
ROM
Optima
-
Bold:
Standard
"
(001.007)
"
Standard
ROM
Optima
-
BoldItalic:
Standard
"
(001.001)
"
Standard
ROM
Optima
-
Italic:
Standard
"
(001.001)
"
Standard
ROM
Oxford:
Standard
"
(001.001)
"
Standard
ROM
Palatino
-
Bold:
Standard
"
(003.000)
"
Standard
ROM
Palatino
-
BoldItalic:
Standard
"
(003.000)
"
Standard
ROM
Palatino
-
Italic:
Standard
"
(003.000)
"
Standard
ROM
Palatino
-
Roman:
Standard
"
(003.000)
"
Standard
ROM
StempelGaramond
-
Bold:
Standard
"
(001.003)
"
Standard
ROM
StempelGaramond
-
BoldItalic:
Standard
"
(001.003)
"
Standard
ROM
StempelGaramond
-
Italic:
Standard
"
(001.003)
"
Standard
ROM
StempelGaramond
-
Roman:
Standard
"
(001.003)
"
Standard
ROM
Symbol:
Special
"
(001.008)
"
Special
ROM
Tekton:
Standard
"
(001.002)
"
Standard
ROM
Times
-
Bold:
Standard
"
(003.000)
"
Standard
ROM
Times
-
BoldItalic:
Standard
"
(003.000)
"
Standard
ROM
Times
-
Italic:
Standard
"
(003.000)
"
Standard
ROM
Times
-
Roman:
Standard
"
(003.000)
"
Standard
ROM
TimesNewRomanPS
-
BoldItalicMT:
Standard
"
(001.003)
"
Standard
ROM
TimesNewRomanPS
-
BoldMT:
Standard
"
(001.004)
"
Standard
ROM
TimesNewRomanPS
-
ItalicMT:
Standard
"
(001.003)
"
Standard
ROM
TimesNewRomanPSMT:
Standard
"
(001.003)
"
Standard
ROM
Univers:
Standard
"
(001.004)
"
Standard
ROM
Univers
-
Bold:
Standard
"
(001.004)
"
Standard
ROM
Univers
-
BoldExt:
Standard
"
(001.001)
"
Standard
ROM
Univers
-
BoldExtObl:
Standard
"
(001.001)
"
Standard
ROM
Univers
-
BoldOblique:
Standard
"
(001.004)
"
Standard
ROM
Univers
-
Condensed:
Standard
"
(001.003)
"
Standard
ROM
Univers
-
CondensedBold:
Standard
"
(001.002)
"
Standard
ROM
Univers
-
CondensedBoldOblique:
Standard
"
(001.002)
"
Standard
ROM
Univers
-
CondensedOblique:
Standard
"
(001.003)
"
Standard
ROM
Univers
-
Extended:
Standard
"
(001.001)
"
Standard
ROM
Univers
-
ExtendedObl:
Standard
"
(001.001)
"
Standard
ROM
Univers
-
Light:
Standard
"
(001.004)
"
Standard
ROM
Univers
-
LightOblique:
Standard
"
(001.004)
"
Standard
ROM
Univers
-
Oblique:
Standard
"
(001.004)
"
Standard
ROM
Wingdings:
Special
"
(001.001)
"
Special
ROM
Wingdings
-
Regular:
Special
"
(001.001)
"
Special
ROM
ZapfChancery
-
MediumItalic:
Standard
"
(003.000)
"
Standard
ROM
ZapfDingbats:
Special
"
(002.000)
"
Special
ROM
AMEN
# FIXME: Omitted configuration of halftoning
generate
();
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment