source: doc/papers/OOPSLA17/acmart.cls @ 5c216b4

ADTast-experimentalenumpthread-emulationqualifiedEnum
Last change on this file since 5c216b4 was f4e3419d, checked in by Peter A. Buhr <pabuhr@…>, 7 years ago

restructure paper documents

  • Property mode set to 100644
File size: 68.3 KB
Line 
1%%
2%% This is file `acmart.cls',
3%% generated with the docstrip utility.
4%%
5%% The original source files were:
6%%
7%% acmart.dtx  (with options: `class')
8%%
9%% IMPORTANT NOTICE:
10%%
11%% For the copyright see the source file.
12%%
13%% Any modified versions of this file must be renamed
14%% with new filenames distinct from acmart.cls.
15%%
16%% For distribution of the original source see the terms
17%% for copying and modification in the file acmart.dtx.
18%%
19%% This generated file may be distributed as long as the
20%% original source files, as listed above, are part of the
21%% same distribution. (The sources need not necessarily be
22%% in the same archive or directory.)
23%% \CharacterTable
24%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
25%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
26%%   Digits        \0\1\2\3\4\5\6\7\8\9
27%%   Exclamation   \!     Double quote  \"     Hash (number) \#
28%%   Dollar        \$     Percent       \%     Ampersand     \&
29%%   Acute accent  \'     Left paren    \(     Right paren   \)
30%%   Asterisk      \*     Plus          \+     Comma         \,
31%%   Minus         \-     Point         \.     Solidus       \/
32%%   Colon         \:     Semicolon     \;     Less than     \<
33%%   Equals        \=     Greater than  \>     Question mark \?
34%%   Commercial at \@     Left bracket  \[     Backslash     \\
35%%   Right bracket \]     Circumflex    \^     Underscore    \_
36%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
37%%   Right brace   \}     Tilde         \~}
38
39\NeedsTeXFormat{LaTeX2e}
40\ProvidesClass{acmart}
41[2016/12/03 v1.25 Typesetting articles for Association of
42Computing Machinery]
43\def\@classname{acmart}
44\RequirePackage{xkeyval}
45\define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{%
46  manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph,
47  sigplan, sigchi, sigchi-a}[manuscript]{}{%
48  \ClassError{\@classname}{The option format must be manuscript,
49    acmsmall, acmlarge, acmtog, sigconf, siggraph,
50    sigplan, sigchi or sigchi-a}}
51\def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{acmart.cls}{format=#1}}}
52\@DeclareACMFormat{manuscript}
53\@DeclareACMFormat{acmsmall}
54\@DeclareACMFormat{acmlarge}
55\@DeclareACMFormat{acmtog}
56\@DeclareACMFormat{sigconf}
57\@DeclareACMFormat{siggraph}
58\@DeclareACMFormat{sigplan}
59\@DeclareACMFormat{sigchi}
60\@DeclareACMFormat{sigchi-a}
61\ExecuteOptionsX{format}
62\define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{%
63  \if@ACM@screen
64    \PackageInfo{\@classname}{Using screen mode}%
65  \else
66    \PackageInfo{\@classname}{Not using screen mode}%
67  \fi}{\PackageError{\@classname}{Option screen can be either true or
68    false}}
69\ExecuteOptionsX{screen=false}
70\define@boolkey+{acmart.cls}[@ACM@]{review}[true]{%
71  \if@ACM@review
72    \PackageInfo{\@classname}{Using review mode}%
73  \else
74    \PackageInfo{\@classname}{Not using review mode}%
75  \fi}{\PackageError{\@classname}{Option review can be either true or
76    false}}
77\ExecuteOptionsX{review=false}
78\define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{%
79  \if@ACM@authorversion
80    \PackageInfo{\@classname}{Using authorversion mode}%
81  \else
82    \PackageInfo{\@classname}{Not using authorversion mode}%
83  \fi}{\PackageError{\@classname}{Option authorversion can be either true or
84    false}}
85\ExecuteOptionsX{authorversion=false}
86\newif\if@ACM@natbib@override
87\@ACM@natbib@overridefalse
88\define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{%
89  \@ACM@natbib@overridetrue
90  \if@ACM@natbib
91    \PackageInfo{\@classname}{Explicitly selecting natbib mode}%
92  \else
93    \PackageInfo{\@classname}{Explicitly deselecting natbib mode}%
94  \fi}{\PackageError{\@classname}{Option natbib can be either true or
95    false}}
96\define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{%
97  \if@ACM@anonymous
98    \PackageInfo{\@classname}{Using anonymous mode}%
99  \else
100    \PackageInfo{\@classname}{Not using anonymous mode}%
101  \fi}{\PackageError{\@classname}{Option anonymous can be either true or
102    false}}
103\ExecuteOptionsX{anonymous=false}
104\def\ACM@fontsize{}
105\DeclareOptionX{9pt}{\edef\ACM@fontsize{\CurrentOption}}
106\DeclareOptionX{10pt}{\edef\ACM@fontsize{\CurrentOption}}
107\DeclareOptionX{11pt}{\edef\ACM@fontsize{\CurrentOption}}
108\DeclareOptionX{12pt}{\edef\ACM@fontsize{\CurrentOption}}
109\DeclareOptionX{draft}{\PassOptionsToClass{\CurrentOption}{amsart}}
110\DeclareOptionX{*}{\PassOptionsToClass{\CurrentOption}{amsart}}
111\ProcessOptionsX
112\ClassInfo{\@classname}{Using format \ACM@format, number \ACM@format@nr}
113\newif\if@ACM@manuscript
114\newif\if@ACM@journal
115\newif\if@ACM@sigchiamode
116\ifnum\ACM@format@nr=0\relax
117  \@ACM@manuscripttrue
118\else
119  \@ACM@manuscriptfalse
120\fi
121\@ACM@sigchiamodefalse
122\ifcase\ACM@format@nr
123\relax % manuscript
124  \@ACM@journaltrue
125\or % acmsmall
126  \@ACM@journaltrue
127\or % acmlarge
128  \@ACM@journaltrue
129\or % acmtog
130  \@ACM@journaltrue
131\or % sigconf
132  \@ACM@journalfalse
133\or % siggraph
134  \@ACM@journalfalse
135 \or % sigplan
136  \@ACM@journalfalse
137 \or % sigchi
138  \@ACM@journalfalse
139\or % sigchi-a
140  \@ACM@journalfalse
141  \@ACM@sigchiamodetrue
142\fi
143\if@ACM@natbib@override\else
144    \@ACM@natbibtrue
145\fi
146\ifx\ACM@fontsize\@empty
147  \ifcase\ACM@format@nr
148  \relax % manuscript
149    \def\ACM@fontsize{9pt}%
150  \or % acmsmall
151    \def\ACM@fontsize{10pt}%
152  \or % acmlarge
153    \def\ACM@fontsize{10pt}%
154  \or % acmtog
155    \def\ACM@fontsize{9pt}%
156  \or % sigconf
157    \def\ACM@fontsize{9pt}%
158  \or % siggraph
159    \def\ACM@fontsize{9pt}%
160   \or % sigplan
161    \def\ACM@fontsize{9pt}%
162   \or % sigchi
163    \def\ACM@fontsize{10pt}%
164  \or % sigchi-a
165    \def\ACM@fontsize{10pt}%
166  \fi
167\fi
168\ClassInfo{\@classname}{Using fontsize \ACM@fontsize}
169\LoadClass[\ACM@fontsize, reqno]{amsart}
170\RequirePackage{microtype}
171\RequirePackage{totpages}
172\RequirePackage{environ}
173\if@ACM@manuscript
174\RequirePackage{setspace}
175\onehalfspacing
176\fi
177\if@ACM@natbib
178  \RequirePackage{natbib}
179  \renewcommand{\bibsection}{%
180     \section*{\refname}%
181     \phantomsection\addcontentsline{toc}{section}{\refname}%
182  }
183  \renewcommand{\bibfont}{\bibliofont}
184  \renewcommand\setcitestyle[1]{
185  \@for\@tempa:=#1\do
186  {\def\@tempb{round}\ifx\@tempa\@tempb
187     \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi
188   \def\@tempb{square}\ifx\@tempa\@tempb
189     \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi
190   \def\@tempb{angle}\ifx\@tempa\@tempb
191     \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi
192   \def\@tempb{curly}\ifx\@tempa\@tempb
193     \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi
194   \def\@tempb{semicolon}\ifx\@tempa\@tempb
195     \renewcommand\NAT@sep{;}\fi
196   \def\@tempb{colon}\ifx\@tempa\@tempb
197     \renewcommand\NAT@sep{;}\fi
198   \def\@tempb{comma}\ifx\@tempa\@tempb
199     \renewcommand\NAT@sep{,}\fi
200   \def\@tempb{authoryear}\ifx\@tempa\@tempb
201     \NAT@numbersfalse\fi
202   \def\@tempb{numbers}\ifx\@tempa\@tempb
203     \NAT@numberstrue\NAT@superfalse\fi
204   \def\@tempb{super}\ifx\@tempa\@tempb
205     \NAT@numberstrue\NAT@supertrue\fi
206   \def\@tempb{nobibstyle}\ifx\@tempa\@tempb
207     \let\bibstyle=\@gobble\fi
208   \def\@tempb{bibstyle}\ifx\@tempa\@tempb
209     \let\bibstyle=\@citestyle\fi
210   \def\@tempb{sort}\ifx\@tempa\@tempb
211     \def\NAT@sort{\@ne}\fi
212   \def\@tempb{nosort}\ifx\@tempa\@tempb
213     \def\NAT@sort{\z@}\fi
214   \def\@tempb{compress}\ifx\@tempa\@tempb
215     \def\NAT@cmprs{\@ne}\fi
216   \def\@tempb{nocompress}\ifx\@tempa\@tempb
217     \def\NAT@cmprs{\@z}\fi
218   \def\@tempb{sort&compress}\ifx\@tempa\@tempb
219     \def\NAT@sort{\@ne}\def\NAT@cmprs{\@ne}\fi
220   \def\@tempb{mcite}\ifx\@tempa\@tempb
221     \let\NAT@merge\@ne\fi
222   \def\@tempb{merge}\ifx\@tempa\@tempb
223     \@ifnum{\NAT@merge<\tw@}{\let\NAT@merge\tw@}{}\fi
224   \def\@tempb{elide}\ifx\@tempa\@tempb
225     \@ifnum{\NAT@merge<\thr@@}{\let\NAT@merge\thr@@}{}\fi
226   \def\@tempb{longnamesfirst}\ifx\@tempa\@tempb
227     \NAT@longnamestrue\fi
228   \def\@tempb{nonamebreak}\ifx\@tempa\@tempb
229     \def\NAT@nmfmt#1{\mbox{\NAT@up#1}}\fi
230   \expandafter\NAT@find@eq\@tempa=\relax\@nil
231   \if\@tempc\relax\else
232     \expandafter\NAT@rem@eq\@tempc
233     \def\@tempb{open}\ifx\@tempa\@tempb
234      \xdef\NAT@open{\@tempc}\fi
235     \def\@tempb{close}\ifx\@tempa\@tempb
236      \xdef\NAT@close{\@tempc}\fi
237     \def\@tempb{aysep}\ifx\@tempa\@tempb
238      \xdef\NAT@aysep{\@tempc}\fi
239     \def\@tempb{yysep}\ifx\@tempa\@tempb
240      \xdef\NAT@yrsep{\@tempc}\fi
241     \def\@tempb{notesep}\ifx\@tempa\@tempb
242      \xdef\NAT@cmt{\@tempc}\fi
243     \def\@tempb{citesep}\ifx\@tempa\@tempb
244      \xdef\NAT@sep{\@tempc}\fi
245   \fi
246  }%
247  \NAT@@setcites
248  }
249  \renewcommand\citestyle[1]{%
250    \ifcsname bibstyle@#1\endcsname%
251    \csname bibstyle@#1\endcsname\let\bibstyle\@gobble%
252    \else%
253    \@latex@error{Undefined `#1' citestyle}%
254    \fi
255  }%
256\fi
257\newcommand{\bibstyle@acmauthoryear}{%
258  \setcitestyle{%
259    authoryear,%
260    open={(},close={)},citesep={;},%
261    aysep={},yysep={,},%
262    notesep={, }}}
263\newcommand{\bibstyle@acmnumeric}{%
264  \setcitestyle{%
265    numbers,sort&compress,%
266    open={[},close={]},citesep={,},%
267    notesep={, }}}
268\citestyle{acmnumeric}
269\def\@startsection#1#2#3#4#5#6{%
270  \if@noskipsec \leavevmode \fi
271  \par
272  \@tempskipa #4\relax
273  \@afterindenttrue
274  \ifdim \@tempskipa <\z@
275    \@tempskipa -\@tempskipa \@afterindentfalse
276  \fi
277  \if@nobreak
278    \everypar{}%
279  \else
280    \addpenalty\@secpenalty\addvspace\@tempskipa
281  \fi
282  \@ifstar
283    {\@ssect{#3}{#4}{#5}{#6}}%
284    {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
285\def\@sect#1#2#3#4#5#6[#7]#8{%
286  \ifnum #2>\c@secnumdepth
287    \let\@svsec\@empty
288  \else
289    \refstepcounter{#1}%
290    \protected@edef\@svsec{\@seccntformat{#1}\relax}%
291  \fi
292  \@tempskipa #5\relax
293  \ifdim \@tempskipa>\z@
294    \begingroup
295      #6{%
296        \@hangfrom{\hskip #3\relax\@svsec}%
297          \interlinepenalty \@M #8\@@par}%
298    \endgroup
299    \csname #1mark\endcsname{#7}%
300    \addcontentsline{toc}{#1}{%
301      \ifnum #2>\c@secnumdepth \else
302        \protect\numberline{\csname the#1\endcsname}%
303      \fi
304      #7}%
305  \else
306    \def\@svsechd{%
307      #6{\hskip #3\relax
308      \@svsec #8}%
309      \csname #1mark\endcsname{#7}%
310      \addcontentsline{toc}{#1}{%
311        \ifnum #2>\c@secnumdepth \else
312          \protect\numberline{\csname the#1\endcsname}%
313        \fi
314        #7}}%
315  \fi
316  \@xsect{#5}}
317\def\@xsect#1{%
318  \@tempskipa #1\relax
319  \ifdim \@tempskipa>\z@
320    \par \nobreak
321    \vskip \@tempskipa
322    \@afterheading
323  \else
324    \@nobreakfalse
325    \global\@noskipsectrue
326    \everypar{%
327      \if@noskipsec
328        \global\@noskipsecfalse
329       {\setbox\z@\lastbox}%
330        \clubpenalty\@M
331        \begingroup \@svsechd \endgroup
332        \unskip
333        \@tempskipa #1\relax
334        \hskip -\@tempskipa
335      \else
336        \clubpenalty \@clubpenalty
337        \everypar{}%
338      \fi}%
339  \fi
340  \ignorespaces}
341\def\@seccntformat#1{\csname the#1\endcsname\quad}
342\def\@ssect#1#2#3#4#5{%
343  \@tempskipa #3\relax
344  \ifdim \@tempskipa>\z@
345    \begingroup
346      #4{%
347        \@hangfrom{\hskip #1}%
348          \interlinepenalty \@M #5\@@par}%
349    \endgroup
350  \else
351    \def\@svsechd{#4{\hskip #1\relax #5}}%
352  \fi
353  \@xsect{#3}}
354\let\@footnotemark@nolink\@footnotemark
355\let\@footnotetext@nolink\@footnotetext
356\RequirePackage[bookmarksnumbered,breaklinks]{hyperref}
357\urlstyle{rm}
358\ifcase\ACM@format@nr
359\relax % manuscript
360\or % acmsmall
361\or % acmlarge
362\or % acmtog
363\or % sigconf
364\or % siggraph
365\or % sigplan
366  \urlstyle{sf}
367\or % sigchi
368\or % sigchi-a
369  \urlstyle{sf}
370\fi
371\if@ACM@screen
372%  \hypersetup{colorlinks,
373%    linkcolor=ACMRed,
374%    citecolor=ACMPurple,
375%    urlcolor=ACMDarkBlue,
376%    filecolor=ACMDarkBlue}
377\else
378  \hypersetup{hidelinks}
379\fi
380\if@ACM@natbib
381  \let\citeN\cite
382  \let\cite\citep
383  \let\citeANP\citeauthor
384  \let\citeNN\citeyearpar
385  \let\citeyearNP\citeyear
386  \let\citeyear\citeyearpar
387  \let\citeNP\citealt
388  \def\shortcite#1{\citeyear{#1}}
389  \DeclareRobustCommand\citeA
390     {\begingroup\NAT@swafalse
391       \let\NAT@ctype\@ne\NAT@partrue\NAT@fullfalse\NAT@open\NAT@citetp}%
392  \providecommand\newblock{}%
393\else
394  \providecommand\citename[1]{#1}
395\fi
396\def\bibliographystyle#1{%
397  \ifx\@begindocumenthook\@undefined\else
398    \expandafter\AtBeginDocument
399  \fi
400    {\if@filesw
401       \immediate\write\@auxout{\string\bibstyle{#1}}%
402     \fi}}
403%\RequirePackage{graphicx, xcolor}
404%\definecolor[named]{ACMBlue}{cmyk}{1,0.1,0,0.1}
405%\definecolor[named]{ACMYellow}{cmyk}{0,0.16,1,0}
406%\definecolor[named]{ACMOrange}{cmyk}{0,0.42,1,0.01}
407%\definecolor[named]{ACMRed}{cmyk}{0,0.90,0.86,0}
408%\definecolor[named]{ACMLightBlue}{cmyk}{0.49,0.01,0,0}
409%\definecolor[named]{ACMGreen}{cmyk}{0.20,0,1,0.19}
410%\definecolor[named]{ACMPurple}{cmyk}{0.55,1,0,0.15}
411%\definecolor[named]{ACMDarkBlue}{cmyk}{1,0.58,0,0.21}
412\RequirePackage{geometry}
413\ifcase\ACM@format@nr
414\relax % manuscript
415   \geometry{letterpaper,head=1pc}%
416\or % acmsmall
417   \geometry{twoside=true,
418     includeheadfoot, head=1pc, foot=2pc,
419     paperwidth=6.75in, paperheight=10in,
420     top=58pt, bottom=44pt, inner=46pt, outer=46pt
421   }%
422\or % acmlarge
423   \geometry{twoside=true, head=1pc, foot=2pc,
424     paperwidth=8.5in, paperheight=11in,
425     includeheadfoot,
426     top=78pt, bottom=114pt, inner=81pt, outer=81pt
427     }%
428\or % acmtog
429   \geometry{twoside=true, head=1pc, foot=2pc,
430     paperwidth=8.5in, paperheight=11in,
431     includeheadfoot, columnsep=24pt,
432     top=52pt, bottom=75pt, inner=52pt, outer=52pt
433     }%
434\or % sigconf
435   \geometry{twoside=true, head=1pc,
436     paperwidth=8.5in, paperheight=11in,
437     includeheadfoot, columnsep=2pc,
438     top=57pt, bottom=73pt, inner=54pt, outer=54pt
439     }%
440\or % siggraph
441   \geometry{twoside=true, head=1pc,
442     paperwidth=8.5in, paperheight=11in,
443     includeheadfoot, columnsep=2pc,
444     top=57pt, bottom=73pt, inner=54pt, outer=54pt
445     }%
446\or % sigplan
447   \geometry{twoside=true, head=1pc,
448     paperwidth=8.5in, paperheight=11in,
449     includeheadfoot=false, columnsep=2pc,
450     top=1in, bottom=1in, inner=0.75in, outer=0.75in
451     }%
452\or % sigchi
453   \geometry{twoside=true, head=1pc,
454     paperwidth=8.5in, paperheight=11in,
455     includeheadfoot, columnsep=2pc,
456     top=66pt, bottom=73pt, inner=54pt, outer=54pt
457     }%
458\or % sigchi-a
459   \geometry{twoside=false, head=1pc,
460     paperwidth=11in, paperheight=8.5in,
461     includeheadfoot, marginparsep=72pt,
462     marginparwidth=170pt, columnsep=20pt,
463     top=72pt, bottom=72pt, left=314pt, right=72pt
464     }%
465     \@mparswitchfalse
466     \reversemarginpar
467\fi
468\setlength\parindent{10\p@}
469\setlength\parskip{\z@}
470\ifcase\ACM@format@nr
471\relax % manuscript
472\or % acmsmall
473\or % acmlarge
474\or % acmtog
475  \setlength\parindent{9\p@}%
476\or % sigconf
477\or % siggraph
478\or % sigplan
479\or % sigchi
480\or % sigchi-a
481\fi
482\def\copyrightpermissionfootnoterule{\kern-3\p@
483  \hrule \@width \columnwidth \kern 2.6\p@}
484\RequirePackage{manyfoot}
485\SelectFootnoteRule[2]{copyrightpermission}
486\DeclareNewFootnote{copyrightpermission}
487\def\footnoterule{\kern-3\p@
488  \hrule \@width 4pc \kern 2.6\p@}
489\def\endminipage{%
490    \par
491    \unskip
492    \ifvoid\@mpfootins\else
493      \vskip\skip\@mpfootins
494      \normalcolor
495      \unvbox\@mpfootins
496    \fi
497    \@minipagefalse   %% added 24 May 89
498  \color@endgroup
499  \egroup
500  \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
501\def\@makefntext{\noindent\@makefnmark}
502\if@ACM@sigchiamode
503\long\def\@footnotetext#1{\marginpar{%
504    \reset@font\small
505    \interlinepenalty\interfootnotelinepenalty
506    \protected@edef\@currentlabel{%
507       \csname p@footnote\endcsname\@thefnmark
508    }%
509    \color@begingroup
510      \@makefntext{%
511        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
512    \color@endgroup}}%
513\fi
514\long\def\@mpfootnotetext#1{%
515  \global\setbox\@mpfootins\vbox{%
516    \unvbox\@mpfootins
517    \reset@font\footnotesize
518    \hsize\columnwidth
519    \@parboxrestore
520    \protected@edef\@currentlabel
521         {\csname p@mpfootnote\endcsname\@thefnmark}%
522    \color@begingroup\centering
523      \@makefntext{%
524        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
525    \color@endgroup}}
526\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
527\newif\if@ACM@newfonts
528\@ACM@newfontstrue
529\IfFileExists{libertine.sty}{}{\ClassWarning{\@classname}{You do not
530    have libertine package installed.  Please upgrade your
531    TeX}\@ACM@newfontsfalse}
532\IfFileExists{zi4.sty}{}{\ClassWarning{\@classname}{You do not
533    have zi4 package installed.  Please upgrade your TeX}\@ACM@newfontsfalse}
534\IfFileExists{newtxmath.sty}{}{\ClassWarning{\@classname}{You do not
535    have newtxmath package installed.  Please upgrade your
536    TeX}\@ACM@newfontsfalse}
537\if@ACM@newfonts
538\RequirePackage[tt=false]{libertine}
539\RequirePackage[varqu]{zi4}
540\RequirePackage[libertine]{newtxmath}
541\else
542\RequirePackage{textcomp}
543\fi
544\if@ACM@sigchiamode
545  \renewcommand{\familydefault}{\sfdefault}
546\fi
547\RequirePackage{caption, float}
548\captionsetup[table]{position=top}
549\if@ACM@journal
550  \captionsetup{labelfont={sf, small},
551    textfont={sf, small},  margin=\z@}
552  \captionsetup[figure]{name={Fig.}}
553\else
554  \captionsetup{labelfont={bf},
555    textfont={bf}, labelsep=colon, margin=\z@}
556  \ifcase\ACM@format@nr
557  \relax % manuscript
558  \or % acmsmall
559  \or % acmlarge
560  \or % acmtog
561  \or % sigconf
562  \or % siggraph
563    \captionsetup{textfont={it}}
564  \or % sigplan
565    \captionsetup{labelfont={bf},
566      textfont={normalfont}, labelsep=period, margin=\z@}
567  \or % sigchi
568    \captionsetup[figure]{labelfont={bf, small},
569      textfont={bf, small}}
570  \or % sigchi-a
571    \captionsetup[figure]{labelfont={bf, small},
572      textfont={bf, small}}
573  \fi
574\fi
575\newfloat{sidebar}{}{sbar}
576\floatname{sidebar}{Sidebar}
577\renewenvironment{sidebar}{\Collect@Body\@sidebar}{}
578\long\def\@sidebar#1{\bgroup\captionsetup{type=sidebar}%
579  \marginpar{\small#1}\egroup}
580\newenvironment{marginfigure}{\Collect@Body\@marginfigure}{}
581\long\def\@marginfigure#1{\bgroup\captionsetup{type=figure}%
582  \marginpar{\centering\small#1}\egroup}
583\newenvironment{margintable}{\Collect@Body\@margintable}{}
584\long\def\@margintable#1{\bgroup\captionsetup{type=table}%
585  \marginpar{\centering\small#1}\egroup}
586\newdimen\fulltextwidth
587\fulltextwidth=\dimexpr(\textwidth+\marginparwidth+\marginparsep)
588\if@ACM@sigchiamode
589\def\@dblfloat{\bgroup\columnwidth=\fulltextwidth
590  \let\@endfloatbox\@endwidefloatbox
591  \def\@fpsadddefault{\def\@fps{tp}}%
592  \@float}
593\fi
594\if@ACM@sigchiamode
595\def\end@dblfloat{%
596    \end@float\egroup}
597\fi
598\def\@endwidefloatbox{%
599  \par\vskip\z@skip
600  \@minipagefalse
601  \outer@nobreak
602  \egroup
603  \color@endbox
604  \global\setbox\@currbox=\vbox{\moveleft
605    \dimexpr(\fulltextwidth-\textwidth)\box\@currbox}%
606  \wd\@currbox=\textwidth
607}
608\ifcase\ACM@format@nr
609\relax % manuscript
610\or % acmsmall
611\or % acmlarge
612\or % acmtog
613\or % sigconf
614\or % siggraph
615\or % sigplan
616\def\labelenumi{\theenumi.}
617\def\labelenumii{\theenumii.}
618\def\labelenumiii{\theenumiii.}
619\def\labelenumiv{\theenumiv.}
620\or % sigchi
621\or % sigchi-a
622\fi
623\renewcommand{\descriptionlabel}[1]{\hspace\labelsep \upshape\bfseries #1}
624\renewenvironment{description}{\list{}{%
625    \itemindent-12\p@
626    \labelwidth\z@ \let\makelabel\descriptionlabel}%
627}{
628  \endlist
629}
630\let\enddescription=\endlist % for efficiency
631\define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{%
632  CIE,%
633  CSUR,%
634  IMWUT,%
635  JACM,%
636  JDIQ,%
637  JEA,%
638  JERIC,%
639  JETC,%
640  JOCCH,%
641  PACMPL,%
642  TAAS,%
643  TACCESS,%
644  TACO,%
645  TALG,%
646  TALLIP,%
647  TAP,%
648  TCPS,%
649  TEAC,%
650  TECS,%
651  TIIS,%
652  TISSEC,%
653  TIST,%
654  TKDD,%
655  TMIS,%
656  TOCE,%
657  TOCHI,%
658  TOCL,%
659  TOCS,%
660  TOCT,%
661  TODAES,%
662  TODS,%
663  TOG,%
664  TOIS,%
665  TOIT,%
666  TOMACS,%
667  TOMM,%
668  TOMPECS,%
669  TOMS,%
670  TOPC,%
671  TOPS,%
672  TOPLAS,%
673  TOS,%
674  TOSEM,%
675  TOSN,%
676  TRETS,%
677  TSAS,%
678  TSC,%
679  TSLP,%
680  TWEB%
681}{%
682\ifcase\@journalCode@nr
683\relax % CIE
684  \def\@journalName{ACM Computers in Entertainment}%
685  \def\@journalNameShort{ACM Comput. Entertain.}%
686  \def\@permissionCodeOne{1544-3574}%
687\or % CSUR
688  \def\@journalName{ACM Computing Surveys}%
689  \def\@journalNameShort{ACM Comput. Surv.}%
690  \def\@permissionCodeOne{0360-0300}%
691\or % IMWUT
692  \def\@journalName{PACM on Interactive, Mobile, Wearable and
693    Ubiquitous Technologies}%
694  \def\@journalNameShort{PACM Interact. Mob. Wearable Ubiquitous Technol.}%
695  \def\@permissionCodeOne{2474-9567}%
696\or % JACM
697  \def\@journalName{Journal of the ACM}%
698  \def\@journalNameShort{J. ACM}%
699  \def\@permissionCodeOne{0004-5411}%
700\or % JDIQ
701  \def\@journalName{ACM Journal of Data and Information Quality}%
702  \def\@journalNameShort{ACM J. Data Inform. Quality}%
703  \def\@permissionCodeOne{1936-1955}%
704\or % JEA
705  \def\@journalName{ACM Journal of Experimental Algorithmics}%
706  \def\@journalNameShort{ACM J. Exp. Algor.}%
707  \def\@permissionCodeOne{1084-6654}%
708\or % JERIC
709  \def\@journalName{ACM Journal of Educational Resources in Computing}%
710  \def\@journalNameShort{ACM J. Edu. Resources in Comput.}%
711  \def\@permissionCodeOne{1073-0516}%
712\or % JETC
713  \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems}%
714  \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.}%
715  \def\@permissionCodeOne{1550-4832}%
716\or % JOCCH
717  \def\@journalName{ACM Journal on Computing and Cultural Heritage}%
718  \def\@journalName{ACM J. Comput. Cult. Herit.}%
719\or % PACMPL
720  \def\@journalName{PACM on Programming Languages}%
721  \def\@journalName{PACM Progr. Lang.}%
722  \def\@permissionCodeOne{2475-1421}%
723\or % TAAS
724  \def\@journalName{ACM Transactions on Autonomous and Adaptive Systems}%
725  \def\@journalNameShort{ACM Trans. Autonom. Adapt. Syst.}%
726  \def\@permissionCodeOne{1556-4665}%
727\or % TACCESS
728  \def\@journalName{ACM Transactions on Accessible Computing}%
729  \def\@journalNameShort{ACM Trans. Access. Comput.}%
730  \def\@permissionCodeOne{1936-7228}%
731\or % TACO
732  \def\@journalName{ACM Transactions on Architecture and Code Optimization}%
733\or % TALG
734  \def\@journalName{ACM Transactions on Algorithms}%
735  \def\@journalNameShort{ACM Trans. Algor.}%
736  \def\@permissionCodeOne{1549-6325}%
737\or % TALLIP
738  \def\@journalName{ACM Transactions on Asian and Low-Resource Language Information Processing}%
739  \def\@journalNameShort{ACM Trans. Asian Low-Resour. Lang. Inf. Process.}%
740  \def\@permissionCodeOne{2375-4699}%
741\or % TAP
742  \def\@journalName{ACM Transactions on Applied Perception}%
743\or % TCPS
744  \def\@journalName{ACM Transactions on Cyber-Physical Systems}%
745\or % TEAC
746  \def\@journalName{ACM Transactions on Economics and Computation}%
747\or % TECS
748  \def\@journalName{ACM Transactions on Embedded Computing Systems}%
749  \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}%
750  \def\@permissionCodeOne{1539-9087}%
751\or % TIIS
752  \def\@journalName{ACM Transactions on Interactive Intelligent Systems}%
753  \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}%
754  \def\@permissionCodeOne{2160-6455}%
755\or % TISSEC
756  \def\@journalName{ACM Transactions on Information and System Security}%
757  \def\@journalNameShort{ACM Trans. Info. Syst. Sec.}%
758  \def\@permissionCodeOne{1094-9224}%
759\or % TIST
760  \def\@journalName{ACM Transactions on Intelligent Systems and Technology}%
761  \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.}%
762  \def\@permissionCodeOne{2157-6904}%
763\or % TKDD
764  \def\@journalName{ACM Transactions on Knowledge Discovery from Data}%
765  \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.}%
766  \def\@permissionCodeOne{1556-4681}%
767\or % TMIS
768  \def\@journalName{ACM Transactions on Management Information Systems}%
769  \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.}%
770  \def\@permissionCodeOne{2158-656X}%
771\or % TOCE
772  \def\@journalName{ACM Transactions on Computing Education}%
773  \def\@journalNameShort{ACM Trans. Comput. Educ.}%
774  \def\@permissionCodeOne{1946-6226}%
775\or % TOCHI
776  \def\@journalName{ACM Transactions on Computer-Human Interaction}%
777  \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.}%
778  \def\@permissionCodeOne{1073-0516}%
779\or % TOCL
780  \def\@journalName{ACM Transactions on Computational Logic}%
781  \def\@journalNameShort{ACM Trans. Comput. Logic}%
782  \def\@permissionCodeOne{1529-3785}%
783\or % TOCS
784  \def\@journalName{ACM Transactions on Computer Systems}%
785  \def\@journalNameShort{ACM Trans. Comput. Syst.}%
786  \def\@permissionCodeOne{0734-2071}%
787\or % TOCT
788  \def\@journalName{ACM Transactions on Computation Theory}%
789  \def\@journalNameShort{ACM Trans. Comput. Theory}%
790  \def\@permissionCodeOne{1942-3454}%
791\or % TODAES
792  \def\@journalName{ACM Transactions on Design Automation of Electronic Systems}%
793  \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.}%
794  \def\@permissionCodeOne{1084-4309}%
795\or % TODS
796  \def\@journalName{ACM Transactions on Database Systems}%
797  \def\@journalNameShort{ACM Trans. Datab. Syst.}%
798  \def\@permissionCodeOne{0362-5915}%
799\or % TOG
800  \def\@journalName{ACM Transactions on Graphics}%
801  \def\@journalNameShort{ACM Trans. Graph.}%
802  \def\@permissionCodeOne{0730-0301}
803\or % TOIS
804  \def\@journalName{ACM Transactions on Information Systems}%
805  \def\@journalName{ACM Transactions on Information Systems}%
806  \def\@permissionCodeOne{1046-8188}%
807\or % TOIT
808  \def\@journalName{ACM Transactions on Internet Technology}%
809  \def\@journalNameShort{ACM Trans. Internet Technol.}%
810  \def\@permissionCodeOne{1533-5399}%
811\or % TOMACS
812  \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
813  \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
814  \def\@journalNameShort{ACM Trans. Model. Comput. Simul.}%
815\or % TOMM
816  \def\@journalName{ACM Transactions on Multimedia Computing, Communications and Applications}%
817  \def\@journalNameShort{ACM Trans. Multimedia Comput. Commun. Appl.}%
818  \def\@permissionCodeOne{1551-6857}%
819  \def\@permissionCodeTwo{0100}%
820\or % TOMPECS
821  \def\@journalName{ACM Transactions on Modeling and Performance Evaluation of Computing Systems}%
822  \def\@journalNameShort{ACM Trans. Model. Perform. Eval. Comput. Syst.}%
823  \def\@permissionCodeOne{2376-3639}%
824\or % TOMS
825  \def\@journalName{ACM Transactions on Mathematical Software}%
826  \def\@journalNameShort{ACM Trans. Math. Softw.}%
827  \def\@permissionCodeOne{0098-3500}%
828\or % TOPC
829  \def\@journalName{ACM Transactions on Parallel Computing}%
830  \def\@journalNameShort{ACM Trans. Parallel Comput.}%
831  \def\@permissionCodeOne{1539-9087}%
832\or % TOPS
833  \def\@journalName{ACM Transactions on Privacy and Security}%
834  \def\@journalNameShort{ACM Trans. Priv. Sec.}%
835  \def\@permissionCodeOne{2471-2566}%
836\or % TOPLAS
837  \def\@journalName{ACM Transactions on Programming Languages and Systems}%
838  \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}%
839  \def\@permissionCodeOne{0164-0925}%
840\or % TOS
841  \def\@journalName{ACM Transactions on Storage}%
842  \def\@journalNameShort{ACM Trans. Storage}%
843  \def\@permissionCodeOne{1553-3077}%
844\or % TOSEM
845  \def\@journalName{ACM Transactions on Software Engineering and Methodology}%
846  \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.}%
847  \def\@permissionCodeOne{1049-331X}%
848\or % TOSN
849  \def\@journalName{ACM Transactions on Sensor Networks}%
850  \def\@journalNameShort{ACM Trans. Sensor Netw.}%
851  \def\@permissionCodeOne{1550-4859}%
852\or % TRETS
853  \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems}%
854  \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.}%
855  \def\@permissionCodeOne{1936-7406}%
856\or % TSAS
857  \def\@journalName{ACM Transactions on Spatial Algorithms and Systems}%
858  \def\@journalNameShort{ACM Trans. Spatial Algorithms Syst.}%
859  \def\@permissionCodeOne{2374-0353}%
860\or % TSC
861  \def\@journalName{ACM Transactions on Social Computing}%
862  \def\@journalNameShort{ACM Trans. Soc. Comput.}%
863  \def\@permissionCodeOne{2469-7818}%
864\or % TSLP
865  \def\@journalName{ACM Transactions on Speech and Language Processing}%
866  \def\@journalNameShort{ACM Trans. Speech Lang. Process.}%
867  \def\@permissionCodeOne{1550-4875}%
868\or % TWEB
869  \def\@journalName{ACM Transactions on the Web}%
870  \def\@journalNameShort{ACM Trans. Web}%
871  \def\@permissionCodeOne{1559-1131}%
872\fi
873\ClassInfo{\@classname}{Using journal code \@journalCode}%
874}{%
875  \ClassError{\@classname}{Incorrect journal #1}%
876}%
877\def\acmJournal#1{\setkeys{ACM}{acmJournal=#1}}
878\def\@journalCode@nr{0}
879\def\@journalName{}%
880\def\@journalNameShort{\@journalName}%
881\def\@permissionCodeOne{XXXX-XXXX}%
882\def\@permissionCodeTwo{}%
883\newcommand\acmConference[4][]{%
884  \gdef\acmConference@shortname{#1}%
885  \gdef\acmConference@name{#2}%
886  \gdef\acmConference@date{#3}%
887  \gdef\acmConference@venue{#4}%
888  \ifx\acmConference@shortname\@empty
889    \gdef\acmConference@shortname{#2}%
890  \fi}
891\acmConference[Conference'17]{ACM Conference}{July 2017}{Washington,
892  DC, USA}
893\def\subtitle#1{\def\@subtitle{#1}}
894\subtitle{}
895\newcount\num@authorgroups
896\num@authorgroups=0\relax
897\newif\if@insideauthorgroup
898\@insideauthorgroupfalse
899\renewcommand\author[2][]{%
900  \if@insideauthorgroup\else
901    \global\advance\num@authorgroups by 1\relax
902    \global\@insideauthorgrouptrue
903  \fi
904  \ifx\addresses\@empty
905    \if@ACM@anonymous
906      \gdef\addresses{\@author{Anonymous Author(s)}}%
907      \gdef\authors{Anonymous Author(s)}%
908    \else
909      \gdef\addresses{\@author{#2}}%
910      \gdef\authors{#2}%
911    \fi
912  \else
913    \if@ACM@anonymous\else
914      \g@addto@macro\addresses{\and\@author{#2}}%
915      \g@addto@macro\authors{\and#2}%
916    \fi
917  \fi
918  \if@ACM@anonymous
919    \ifx\shortauthors\@empty
920      \gdef\shortauthors{Anon.}%
921    \fi
922  \else
923    \def\@tempa{#1}%
924    \ifx\@tempa\@empty
925      \ifx\shortauthors\@empty
926        \gdef\shortauthors{#2}%
927      \else
928        \g@addto@macro\shortauthors{\and#2}%
929      \fi
930    \else
931      \ifx\shortauthors\@empty
932        \gdef\shortauthors{#1}%
933      \else
934        \g@addto@macro\shortauthors{\and#1}%
935      \fi
936    \fi
937  \fi}
938\newcommand{\affiliation}[2][]{%
939  \global\@insideauthorgroupfalse
940  \if@ACM@anonymous\else
941    \g@addto@macro\addresses{\affiliation{#1}{#2}}%
942  \fi}
943\renewcommand{\email}[2][]{%
944  \if@ACM@anonymous\else
945    \g@addto@macro\addresses{\email{#1}{#2}}%
946  \fi}
947\let\orcid\@gobble
948\def\@titlenotes{}
949\def\titlenote#1{%
950  \g@addto@macro\@title{\footnotemark}%
951  \if@ACM@anonymous
952    \g@addto@macro\@titlenotes{%
953      \stepcounter{footnote}\footnotetext{Title note}}%
954  \else
955    \g@addto@macro\@titlenotes{\stepcounter{footnote}\footnotetext{#1}}%
956  \fi}
957\def\@subtitlenotes{}
958\def\subtitlenote#1{%
959  \g@addto@macro\@subtitle{\footnotemark}%
960  \if@ACM@anonymous
961    \g@addto@macro\@subtitlenotes{%
962      \stepcounter{footnote}\footnotetext{Subtitle note}}%
963  \else
964    \g@addto@macro\@subtitlenotes{%
965      \stepcounter{footnote}\footnotetext{#1}}%
966  \fi}
967\def\@authornotes{}
968\def\authornote#1{%
969  \if@ACM@anonymous\else
970    \g@addto@macro\addresses{\@authornotemark}
971    \g@addto@macro\@authornotes{%
972      \stepcounter{footnote}\footnotetext{#1}}%
973  \fi}
974\def\acmVolume#1{\def\@acmVolume{#1}}
975\acmVolume{1}
976\def\acmNumber#1{\def\@acmNumber{#1}}
977\acmNumber{1}
978\def\acmArticle#1{\def\@acmArticle{#1}}
979\acmArticle{1}
980\def\acmArticleSeq#1{\def\@acmArticleSeq{#1}}
981\acmArticleSeq{\@acmArticle}
982\def\acmYear#1{\def\@acmYear{#1}}
983\acmYear{2016}
984\def\acmMonth#1{\def\@acmMonth{#1}}
985\acmMonth{1}
986\def\@acmPubDate{\ifcase\@acmMonth\or
987  January\or February\or March\or April\or May\or June\or
988  July\or August\or September\or October\or November\or
989  December\fi~\@acmYear}
990\def\acmPrice#1{\def\@acmPrice{#1}}
991\acmPrice{15.00}
992\def\acmISBN#1{\def\@acmISBN{#1}}
993\acmISBN{978-x-xxxx-xxxx-x/YY/MM}
994\def\acmDOI#1{\def\@acmDOI{#1}}
995\acmDOI{10.1145/nnnnnnn.nnnnnnn}
996\newif\if@ACM@badge
997\@ACM@badgefalse
998\newlength\@ACM@badge@width
999\setlength\@ACM@badge@width{5pc}
1000\newlength\@ACM@title@width
1001\newlength\@ACM@badge@skip
1002\setlength\@ACM@badge@skip{1pc}
1003\newcommand\acmBadgeR[2][]{\@ACM@badgetrue
1004  \def\@acmBadgeR@url{#1}%
1005  \def\@acmBadgeR@image{#2}}
1006\def\@acmBadgeR@url{}
1007\def\@acmBadgeR@image{}
1008\newcommand\acmBadgeL[2][]{\@ACM@badgetrue
1009  \def\@acmBadgeL@url{#1}%
1010  \def\@acmBadgeL@image{#2}}
1011\def\@acmBadgeL@url{}
1012\def\@acmBadgeL@image{}
1013\def\startPage#1{\def\@startPage{#1}}
1014\startPage{}
1015\def\terms#1{\def\@terms{#1}}
1016\terms{}
1017\def\keywords#1{\def\@keywords{#1}}
1018\keywords{}
1019\renewenvironment{abstract}{\Collect@Body\@saveabstract}{}
1020\long\def\@saveabstract#1{\long\gdef\@abstract{#1}}
1021\@saveabstract{}
1022\long\def\@lempty{}
1023\define@boolkey+{@ACM@topmatter@}[@ACM@]{printcss}[true]{%
1024  \if@ACM@printcss
1025    \ClassInfo{\@classname}{Printing CSS}%
1026  \else
1027    \ClassInfo{\@classname}{Suppressing CSS}%
1028  \fi}{\ClassError{\@classname}{printcss must be true or false}}
1029\define@boolkey+{@ACM@topmatter@}[@ACM@]{printacmref}[true]{%
1030  \if@ACM@printacmref
1031    \ClassInfo{\@classname}{Printing bibformat}%
1032  \else
1033    \ClassInfo{\@classname}{Suppressing bibformat}%
1034  \fi}{\ClassError{\@classname}{printacmref must be true or false}}
1035\define@boolkey+{@ACM@topmatter@}[@ACM@]{printfolios}[true]{%
1036  \if@ACM@printfolios
1037    \ClassInfo{\@classname}{Printing folios}%
1038  \else
1039    \ClassInfo{\@classname}{Suppressing folios}%
1040  \fi}{\ClassError{\@classname}{printfolios must be true or false}}
1041\def\settopmatter#1{\setkeys{@ACM@topmatter@}{#1}}
1042\settopmatter{printcss=true, printacmref=true}
1043\if@ACM@manuscript
1044  \settopmatter{printfolios=true}
1045\else
1046  \if@ACM@journal
1047    \settopmatter{printfolios=true}
1048  \else
1049    \settopmatter{printfolios=false}
1050  \fi
1051\fi
1052\def\@received{}
1053\newcommand\received[2][]{\def\@tempa{#1}%
1054  \ifx\@tempa\@empty
1055    \ifx\@received\@empty
1056      \gdef\@received{Received #2}%
1057    \else
1058      \g@addto@macro{\@received}{; revised #2}%
1059    \fi
1060  \else
1061    \ifx\@received\@empty
1062      \gdef\@received{#1 #2}%
1063    \else
1064      \g@addto@macro{\@received}{; #1 #2}%
1065    \fi
1066  \fi}
1067\AtEndDocument{%
1068  \ifx\@received\@empty\else
1069    \par\bigskip\noindent\small\normalfont\@received\par
1070  \fi}
1071\RequirePackage{comment}
1072\excludecomment{CCSXML}
1073\let\@concepts\@empty
1074\newcommand\ccsdesc[2][100]{%
1075  \ccsdesc@parse#1~#2~}
1076\def\ccsdesc@parse#1~#2~#3~{%
1077  \expandafter\ifx\csname CCS@#2\endcsname\relax
1078    \expandafter\gdef\csname CCS@#2\endcsname{\textbullet\textbf{#2} $\to$ }%
1079  \g@addto@macro{\@concepts}{\csname CCS@#2\endcsname}\fi
1080  \expandafter\g@addto@macro\expandafter{\csname CCS@#2\endcsname}{%
1081    \ifnum#1>499\textbf{#3; }\else
1082    \ifnum#1>299\textit{#3; }\else
1083    #3; \fi\fi}}
1084\newif\if@printcopyright
1085\@printcopyrighttrue
1086\newif\if@printpermission
1087\@printpermissiontrue
1088\newif\if@acmowned
1089\@acmownedtrue
1090\define@choicekey*{ACM@}{acmcopyrightmode}[%
1091  \acm@copyrightinput\acm@copyrightmode]{none,acmcopyright,acmlicensed,%
1092  rightsretained,usgov,usgovmixed,cagov,cagovmixed,%
1093  licensedusgovmixed,licensedcagovmixed,othergov,licensedothergov}{%
1094  \@printpermissiontrue
1095  \@printcopyrighttrue
1096  \@acmownedtrue
1097  \ifnum\acm@copyrightmode=0\relax % none
1098   \@printpermissionfalse
1099   \@printcopyrightfalse
1100   \@acmownedfalse
1101  \fi
1102  \ifnum\acm@copyrightmode=2\relax % acmlicensed
1103   \@acmownedfalse
1104  \fi
1105  \ifnum\acm@copyrightmode=3\relax % rightsretained
1106   \@acmownedfalse
1107  \fi
1108  \ifnum\acm@copyrightmode=4\relax % usgov
1109   \@printpermissiontrue
1110   \@printcopyrightfalse
1111   \@acmownedfalse
1112  \fi
1113  \ifnum\acm@copyrightmode=6\relax % cagov
1114   \@acmownedfalse
1115  \fi
1116  \ifnum\acm@copyrightmode=8\relax % licensedusgovmixed
1117   \@acmownedfalse
1118  \fi
1119  \ifnum\acm@copyrightmode=9\relax % licensedcagovmixed
1120   \@acmownedfalse
1121  \fi
1122  \ifnum\acm@copyrightmode=10\relax % othergov
1123   \@acmownedtrue
1124  \fi
1125  \ifnum\acm@copyrightmode=11\relax % licensedothergov
1126   \@acmownedfalse
1127  \fi}
1128\def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}}
1129\setcopyright{acmcopyright}
1130\def\@copyrightowner{%
1131  \ifcase\acm@copyrightmode\relax % none
1132  \or % acmcopyright
1133  ACM\@.
1134  \or % acmlicensed
1135  Copyright held by the owner/author(s). Publication rights licensed to
1136  ACM\@.
1137  \or % rightsretained
1138  Copyright held by the owner/author(s).
1139  \or % usgov
1140  \or % usgovmixed
1141  ACM\@.
1142  \or % cagov
1143  Crown in Right of Canada.
1144  \or %cagovmixed
1145  ACM\@.
1146  \or %licensedusgovmixed
1147  Copyright held by the owner/author(s). Publication rights licensed to
1148  ACM\@.
1149  \or %licensedcagovmixed
1150  Copyright held by the owner/author(s). Publication rights licensed to
1151  ACM\@.
1152  \or % othergov
1153  ACM\@.
1154  \or % licensedothergov
1155  Copyright held by the owner/author(s). Publication rights licensed to
1156  ACM\@.
1157  \fi}
1158\def\@formatdoi#1{\url{http://dx.doi.org/#1}}
1159\def\@copyrightpermission{%
1160  \ifcase\acm@copyrightmode\relax % none
1161  \or % acmcopyright
1162   Permission to make digital or hard copies of all or part of this
1163   work for personal or classroom use is granted without fee provided
1164   that copies are not made or distributed for profit or commercial
1165   advantage and that copies bear this notice and the full citation on
1166   the first page. Copyrights for components of this work owned by
1167   others than ACM must be honored. Abstracting with credit is
1168   permitted. To copy otherwise, or republish, to post on servers or to
1169   redistribute to lists, requires prior specific permission
1170   and\hspace*{.5pt}/or  a fee. Request permissions from
1171   permissions@acm.org.
1172  \or % acmlicensed
1173   Permission to make digital or hard copies of all or part of this
1174   work for personal or classroom use is granted without fee provided
1175   that copies are not made or distributed for profit or commercial
1176   advantage and that copies bear this notice and the full citation on
1177   the first page. Copyrights for components of this work owned by
1178   others than the author(s) must be honored. Abstracting with credit
1179   is permitted.  To copy otherwise, or republish, to post on servers
1180   or to  redistribute to lists, requires prior specific permission
1181   and\hspace*{.5pt}/or  a fee. Request permissions from
1182   permissions@acm.org.
1183  \or % rightsretained
1184   Permission to make digital or hard copies of part or all of this work
1185   for personal or classroom use is granted without fee provided that
1186   copies are not made or distributed for profit or commercial advantage
1187   and that copies bear this notice and the full citation on the first
1188   page. Copyrights for third-party components of this work must be
1189   honored. For all other uses, contact the
1190   owner\hspace*{.5pt}/author(s).
1191  \or % usgov
1192   This paper is authored by an employee(s) of the United States
1193   Government and is in the public domain. Non-exclusive copying or
1194   redistribution is allowed, provided that the article citation is
1195   given and the authors and agency are clearly identified as its
1196   source.
1197  \or % usgovmixed
1198   ACM acknowledges that this contribution was authored or co-authored
1199   by an employee, or contractor of the national government. As such,
1200   the Government retains a nonexclusive, royalty-free right to
1201   publish or reproduce this article, or to allow others to do so, for
1202   Government purposes only. Permission to make digital or hard copies
1203   for personal or classroom use is granted. Copies must bear this
1204   notice and the full citation on the first page. Copyrights for
1205   components of this work owned by others than ACM must be
1206   honored. To copy otherwise, distribute, republish, or post,
1207   requires prior specific permission and\hspace*{.5pt}/or a
1208   fee. Request permissions from permissions@acm.org.
1209  \or % cagov
1210   This article was authored by employees of the Government of Canada.
1211   As such, the Canadian government retains all interest in the
1212   copyright to this work and grants to ACM a nonexclusive,
1213   royalty-free right to publish or reproduce this article, or to allow
1214   others to do so, provided that clear attribution is given both to
1215   the authors and the Canadian government agency employing them.
1216   Permission to make digital or hard copies for personal or classroom
1217   use is granted. Copies must bear this notice and the full citation
1218   on the first page.  Copyrights for components of this work owned by
1219   others than the Canadain Government must be honored. To copy
1220   otherwise, distribute, republish, or post, requires prior specific
1221   permission and\hspace*{.5pt}/or a fee. Request permissions from
1222   permissions@acm.org.
1223  \or % cagovmixed
1224   ACM acknowledges that this contribution was co-authored by an
1225   affiliate of the national government of Canada. As such, the Crown
1226   in Right of Canada retains an equal interest in the copyright.
1227   Reprints must include clear attribution to ACM and the author's
1228   government agency affiliation.  Permission to make digital or hard
1229   copies for personal or classroom use is granted.  Copies must bear
1230   this notice and the full citation on the first page. Copyrights for
1231   components of this work owned by others than ACM must be honored.
1232   To copy otherwise, distribute, republish, or post, requires prior
1233   specific permission and\hspace*{.5pt}/or a fee. Request permissions
1234   from permissions@acm.org.
1235  \or % licensedusgovmixed
1236   Publication rights licensed to ACM\@. ACM acknowledges that this
1237   contribution was authored or co-authored by an employee, contractor
1238   or affiliate of the United States government. As such, the
1239   Government retains a nonexclusive, royalty-free right to publish or
1240   reproduce this article, or to allow others to do so, for Government
1241   purposes only.
1242  \or % licensedcagovmixed
1243   Publication rights licensed to ACM\@. ACM acknowledges that this
1244   contribution was authored or co-authored by an employee, contractor
1245   or affiliate of the national government of Canada. As such, the
1246   Government retains a nonexclusive, royalty-free right to publish or
1247   reproduce this article, or to allow others to do so, for Government
1248   purposes only.
1249  \or % othergov
1250   ACM acknowledges that this contribution was authored or co-authored
1251   by an employee, contractor or affiliate of a national government. As
1252   such, the Government retains a nonexclusive, royalty-free right to
1253   publish or reproduce this article, or to allow others to do so, for
1254   Government purposes only.
1255  \or % licensedothergov
1256   Publication rights licensed to ACM\@. ACM acknowledges that this
1257   contribution was authored or co-authored by an employee, contractor
1258   or affiliate of a national government. As such, the Government
1259   retains a nonexclusive, royalty-free right to publish or reproduce
1260   this article, or to allow others to do so, for Government purposes
1261   only.
1262  \fi}
1263\def\copyrightyear#1{\def\@copyrightyear{#1}}
1264\copyrightyear{\@acmYear}
1265\def\@teaserfigures{}
1266\newenvironment{teaserfigure}{\Collect@Body\@saveteaser}{}
1267\long\def\@saveteaser#1{\g@addto@macro\@teaserfigures{\@teaser{#1}}}
1268\renewcommand{\thanks}[1]{%
1269  \@ifnotempty{#1}{%
1270    \if@ACM@anonymous
1271      \g@addto@macro\thankses{\thanks{A note}}%
1272   \else
1273    \g@addto@macro\thankses{\thanks{#1}}%
1274   \fi}}
1275\newbox\mktitle@bx
1276\def\maketitle{%
1277  \if@ACM@anonymous
1278    % Anonymize omission of \author-s
1279    \ifnum\num@authorgroups=0\author{}\fi
1280  \fi
1281  \begingroup
1282  \let\@footnotemark\@footnotemark@nolink
1283  \let\@footnotetext\@footnotetext@nolink
1284  \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
1285  \@topnum\z@ % this prevents figures from falling at the top of page
1286              % 1
1287  \hsize=\textwidth
1288  \def\@makefnmark{\hbox{\@textsuperscript{\@thefnmark}}}%
1289  \@mktitle\if@ACM@sigchiamode\else\@mkauthors\fi\@mkteasers
1290  \@printtopmatter
1291  \if@ACM@sigchiamode\@mkauthors\fi
1292  \setcounter{footnote}{0}%
1293  \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}%
1294  \@titlenotes
1295  \@subtitlenotes
1296  \@authornotes
1297  \let\@makefnmark\relax  \let\@thefnmark\relax
1298  \let\@makefntext\noindent
1299  \ifx\@empty\thankses\else
1300    \footnotetextcopyrightpermission{%
1301      \def\par{\let\par\@par}\parindent\z@\@setthanks}%
1302  \fi
1303  \footnotetextcopyrightpermission{\parindent\z@\parskip0.1\baselineskip
1304  \if@ACM@authorversion\else
1305    \if@printpermission\@copyrightpermission\par\fi
1306  \fi
1307  \if@ACM@manuscript\else
1308    \if@ACM@journal\else % Print the conference short name
1309      {\itshape \acmConference@shortname, \acmConference@venue}\par
1310    \fi
1311  \fi
1312  \if@printcopyright
1313    \copyright\ \@copyrightyear\ \@copyrightowner\
1314  \else
1315    \@copyrightyear.\
1316  \fi
1317  \if@ACM@manuscript
1318    Manuscript submitted to ACM\\
1319  \else
1320    \if@ACM@authorversion
1321        This is the author's version of the work. It is posted here for
1322        your personal use. Not for redistribution. The definitive Version
1323        of Record was published in
1324        \if@ACM@journal
1325          \emph{\@journalName}%
1326        \else
1327          \emph{Proceedings of \acmConference@name, \acmConference@date}%
1328        \fi
1329        \ifx\@acmDOI\@empty
1330        .
1331        \else
1332          , \@formatdoi{\@acmDOI}.
1333        \fi\\
1334      \else
1335        \if@ACM@journal
1336          \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle\
1337          \$\@acmPrice\\
1338          DOI: \nolinkurl{\@acmDOI}%
1339        \else % Conference
1340           \@acmISBN
1341           \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\
1342           DOI: \nolinkurl{\@acmDOI}%
1343        \fi
1344      \fi
1345    \fi}%
1346  \endgroup
1347  \setcounter{footnote}{0}%
1348  \@mkabstract
1349  \if@ACM@printcss
1350    \ifx\@concepts\@empty\else\bgroup
1351      {\@specialsection{CCS Concepts}%
1352         \@concepts\par}\egroup
1353     \fi
1354   \fi
1355   \if\@terms\@empty\else\bgroup
1356      {\@specialsection{General Terms}%
1357         \@terms\par}\egroup
1358   \fi
1359   \ifx\@keywords\@empty\else\bgroup
1360      {\if@ACM@journal
1361         \@specialsection{Additional Key Words and Phrases}%
1362       \else
1363         \@specialsection{Keywords}%
1364       \fi
1365         \@keywords}\par\egroup
1366   \fi
1367  \andify\authors
1368  \andify\shortauthors
1369  \global\let\authors=\authors
1370  \global\let\shortauthors=\shortauthors
1371  \if@ACM@printacmref
1372     \@mkbibcitation
1373  \fi
1374  \hypersetup{pdfauthor={\authors},
1375    pdftitle={\@title}, pdfkeywords={\@concepts}}%
1376  \@printendtopmatter
1377  \@afterindentfalse
1378  \@afterheading
1379}
1380\def\@specialsection#1{%
1381  \ifcase\ACM@format@nr
1382  \relax % manuscript
1383    \par\medskip\small\noindent#1: %
1384  \or % acmsmall
1385    \par\medskip\small\noindent#1: %
1386  \or % acmlarge
1387    \par\medskip\small\noindent#1: %
1388  \or % acmtog
1389    \par\medskip\small\noindent#1: %
1390  \or % sigconf
1391    \section*{#1}%
1392  \or % siggraph
1393    \section*{#1}%
1394  \or % sigplan
1395    \paragraph*{#1}%
1396  \or % sigchi
1397    \section*{#1}%
1398  \or % sigchi-a
1399    \section*{#1}%
1400  \fi}
1401\def\@printtopmatter{%
1402  \ifx\@startPage\@empty
1403     \gdef\@startPage{1}%
1404  \else
1405     \setcounter{page}{\@startPage}%
1406  \fi
1407  \thispagestyle{firstpagestyle}%
1408  \noindent
1409  \ifcase\ACM@format@nr
1410  \relax % manuscript
1411    \box\mktitle@bx\par
1412    \noindent\hrulefill\par
1413  \or % acmsmall
1414    \box\mktitle@bx\par
1415    \noindent\hrulefill\par
1416  \or % acmlarge
1417    \box\mktitle@bx\par
1418    \noindent\hrulefill\par
1419  \or % acmtog
1420    \twocolumn[\box\mktitle@bx]%
1421  \or % sigconf
1422    \twocolumn[\box\mktitle@bx]%
1423  \or % siggraph
1424    \twocolumn[\box\mktitle@bx]%
1425  \or % sigplan
1426    \twocolumn[\box\mktitle@bx]%
1427  \or % sigchi
1428    \twocolumn[\box\mktitle@bx]%
1429  \or % sigchi-a
1430    \par\box\mktitle@bx\par\bigskip
1431    \if@ACM@badge
1432       \marginpar{\noindent
1433         \ifx\@acmBadgeL@image\@empty\else
1434           \href{\@acmBadgeL@url}{%
1435             \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}%
1436            \hskip\@ACM@badge@skip
1437          \fi
1438         \ifx\@acmBadgeR@image\@empty\else
1439           \href{\@acmBadgeR@url}{%
1440             \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}%
1441          \fi}%
1442    \fi
1443  \fi
1444}
1445\def\@mktitle{%
1446  \ifcase\ACM@format@nr
1447  \relax % manuscript
1448    \@mktitle@i
1449  \or % acmsmall
1450    \@mktitle@i
1451  \or % acmlarge
1452    \@mktitle@i
1453  \or % acmtog
1454    \@mktitle@i
1455  \or % sigconf
1456    \@mktitle@iii
1457  \or % siggraph
1458    \@mktitle@iii
1459  \or % sigplan
1460    \@mktitle@iii
1461  \or % sigchi
1462    \@mktitle@iii
1463  \or % sigchi-a
1464    \@mktitle@iv
1465  \fi
1466}
1467\def\@titlefont{%
1468  \ifcase\ACM@format@nr
1469  \relax % manuscript
1470    \LARGE\bfseries\sffamily
1471  \or % acmsmall
1472    \LARGE\bfseries\sffamily
1473  \or % acmlarge
1474    \LARGE\bfseries\sffamily
1475  \or % acmtog
1476    \Huge\sffamily
1477  \or % sigconf
1478    \Huge\sffamily\bfseries
1479  \or % siggraph
1480    \Huge\sffamily\bfseries
1481  \or % sigplan
1482    \Huge\bfseries
1483  \or % sigchi
1484    \Huge\sffamily\bfseries
1485  \or % sigchi-a
1486     \Huge\bfseries
1487  \fi}
1488\def\@subtitlefont{%
1489  \ifcase\ACM@format@nr
1490  \relax % manuscript
1491    \mdseries
1492  \or % acmsmall
1493    \mdseries
1494  \or % acmlarge
1495    \mdseries
1496  \or % acmtog
1497     \LARGE
1498  \or % sigconf
1499     \LARGE\mdseries
1500  \or % siggraph
1501     \LARGE\mdseries
1502  \or % sigplan
1503     \LARGE\mdseries
1504  \or % sigchi
1505     \LARGE\mdseries
1506  \or % sigchi-a
1507     \mdseries
1508  \fi}
1509\def\@mktitle@i{\hsize=\textwidth
1510  \@ACM@title@width=\hsize
1511  \ifx\@acmBadgeL@image\@empty\else
1512    \advance\@ACM@title@width by -\@ACM@badge@width
1513    \advance\@ACM@title@width by -\@ACM@badge@skip
1514  \fi
1515  \ifx\@acmBadgeR@image\@empty\else
1516    \advance\@ACM@title@width by -\@ACM@badge@width
1517    \advance\@ACM@title@width by -\@ACM@badge@skip
1518  \fi
1519  \setbox\mktitle@bx=\vbox{\noindent\@titlefont
1520    \ifx\@acmBadgeL@image\@empty\else
1521      \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{%
1522          \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}%
1523      \hskip\@ACM@badge@skip
1524    \fi
1525    \parbox[t]{\@ACM@title@width}{\raggedright
1526      \@titlefont\noindent
1527      \@title
1528  \ifx\@subtitle\@empty\else
1529    \par\noindent{\@subtitlefont\@subtitle}
1530  \fi}%
1531  \ifx\@acmBadgeR@image\@empty\else
1532    \hskip\@ACM@badge@skip
1533    \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{%
1534        \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}%
1535  \fi
1536  \par\bigskip}}%
1537\def\@mktitle@iii{\hsize=\textwidth
1538    \setbox\mktitle@bx=\vbox{\@titlefont\centering
1539      \@ACM@title@width=\hsize
1540      \if@ACM@badge
1541        \advance\@ACM@title@width by -2\@ACM@badge@width
1542        \advance\@ACM@title@width by -2\@ACM@badge@skip
1543        \parbox[b]{\@ACM@badge@width}{\strut
1544          \ifx\@acmBadgeL@image\@empty\else
1545            \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{%
1546                \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}%
1547          \fi}%
1548        \hskip\@ACM@badge@skip
1549      \fi
1550      \parbox[t]{\@ACM@title@width}{\centering\@titlefont
1551        \@title
1552        \ifx\@subtitle\@empty\else
1553          \par\noindent{\@subtitlefont\@subtitle}
1554        \fi
1555      }%
1556      \if@ACM@badge
1557        \hskip\@ACM@badge@skip
1558        \parbox[b]{\@ACM@badge@width}{\strut
1559          \ifx\@acmBadgeR@image\@empty\else
1560            \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{%
1561                \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}%
1562          \fi}%
1563      \fi
1564      \par\bigskip}}%
1565\def\@mktitle@iv{\hsize=\textwidth
1566    \setbox\mktitle@bx=\vbox{\raggedright\leftskip5pc\@titlefont
1567      \noindent\leavevmode\leaders\hrule height 2pt\hfill\kern0pt\par
1568      \noindent\@title
1569     \ifx\@subtitle\@empty\else
1570       \par\noindent\@subtitlefont\@subtitle
1571     \fi
1572     \par\bigskip}}%
1573\newbox\@ACM@commabox
1574\def\@ACM@addtoaddress#1{%
1575  \ifvmode\else
1576    \setbox\@ACM@commabox=\hbox{, }%
1577    \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox
1578  \fi
1579  #1}
1580\if@ACM@journal
1581  \let\position\@gobble
1582  \def\institution#1{#1\ignorespaces}%
1583  \let\department\@gobble
1584  \let\streetaddress\@gobble
1585  \let\city\@gobble
1586  \let\state\@gobble
1587  \let\postcode\@gobble
1588  \let\country\@gobble
1589\else
1590  \def\position#1{#1\par}%
1591  \def\institution#1{#1\par}%
1592  \def\department#1{#1\par}%
1593  \def\streetaddress#1{#1\par}%
1594  \let\city\@ACM@addtoaddress
1595  \let\state\@ACM@addtoaddress
1596  \def\postcode#1{\unskip\space#1}%
1597  \let\country\@ACM@addtoaddress
1598\fi
1599\def\@mkauthors{\begingroup
1600  \hsize=\textwidth
1601  \ifcase\ACM@format@nr
1602  \relax % manuscript
1603    \@mkauthors@i
1604  \or % acmsmall
1605    \@mkauthors@i
1606  \or % acmlarge
1607    \@mkauthors@i
1608  \or % acmtog
1609    \@mkauthors@i
1610  \or % sigconf
1611    \@mkauthors@iii
1612  \or % siggraph
1613    \@mkauthors@iii
1614  \or % sigplan
1615    \@mkauthors@iii
1616  \or % sigchi
1617    \@mkauthors@iii
1618  \or % sigchi-a
1619    \@mkauthors@iv
1620  \fi
1621  \endgroup
1622}
1623\def\@authorfont{\Large\sffamily}
1624\def\@affiliationfont{\normalsize\normalfont}
1625\ifcase\ACM@format@nr
1626\relax % manuscript
1627\or % acmsmall
1628  \def\@authorfont{\large\sffamily}
1629  \def\@affiliationfont{\small\normalfont}
1630\or % acmlarge
1631\or % acmtog
1632  \def\@authorfont{\LARGE\sffamily}
1633  \def\@affiliationfont{\large}
1634\or % sigconf
1635  \def\@authorfont{\LARGE}
1636  \def\@affiliationfont{\large}
1637\or % siggraph
1638  \def\@authorfont{\normalsize\normalfont}
1639  \def\@affiliationfont{\normalsize\normalfont}
1640\or % sigplan
1641  \def\@authorfont{\Large\normalfont}
1642  \def\@affiliationfont{\normalsize\normalfont}
1643\or % sigchi
1644  \def\@authorfont{\bfseries}
1645  \def\@affiliationfont{\mdseries}
1646\or % sigchi-a
1647  \def\@authorfont{\bfseries}
1648  \def\@affiliationfont{\mdseries}
1649\fi
1650\def\@typeset@author@line{%
1651  \andify\@currentauthors\par\noindent
1652  \@currentauthors\def\@currentauthors{}%
1653  \ifx\@currentaffiliations\@empty\else
1654    \andify\@currentaffiliations
1655      \unskip, {\@currentaffiliations}\par
1656  \fi
1657  \def\@currentaffiliations{}}
1658\def\@mkauthors@i{%
1659  \def\@currentauthors{}%
1660  \def\@currentaffiliations{}%
1661  \global\let\and\@typeset@author@line
1662  \def\@author##1{%
1663    \ifx\@currentauthors\@empty
1664      \gdef\@currentauthors{\@authorfont\MakeUppercase{##1}}%
1665    \else
1666       \g@addto@macro{\@currentauthors}{\and\MakeUppercase{##1}}%
1667    \fi
1668    \gdef\and{}}%
1669  \def\email##1##2{}%
1670  \def\affiliation##1##2{%
1671    \def\@tempa{##2}\ifx\@tempa\@empty\else
1672       \ifx\@currentaffiliations\@empty
1673          \gdef\@currentaffiliations{\@affiliationfont##2}%
1674       \else
1675         \g@addto@macro{\@currentaffiliations}{\and##2}%
1676      \fi
1677    \fi
1678     \global\let\and\@typeset@author@line}
1679  \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par\medskip
1680    \noindent\addresses\@typeset@author@line
1681   \par\medskip}%
1682}
1683\newbox\author@bx
1684\newdimen\author@bx@wd
1685\newskip\author@bx@sep
1686\author@bx@sep=1pc\relax
1687\def\@typeset@author@bx{\bgroup\hsize=\author@bx@wd\def\and{\par}%
1688  \global\setbox\author@bx=\vtop{\if@ACM@sigchiamode\else\centering\fi
1689    \@authorfont\@currentauthors\par\@affiliationfont
1690    \@currentaffiliation}\egroup
1691  \box\author@bx\hspace{\author@bx@sep}%
1692  \gdef\@currentauthors{}%
1693  \gdef\@currentaffiliation{}}
1694\def\@mkauthors@iii{%
1695  \author@bx@wd=\textwidth\relax
1696  \advance\author@bx@wd by -\author@bx@sep\relax
1697  \ifcase\num@authorgroups
1698  \relax % 0?
1699  \or  % 1=one author per row
1700  \or  % 2=two authors per row
1701     \divide\author@bx@wd by \num@authorgroups\relax
1702  \or  % 3=three authors per row
1703     \divide\author@bx@wd by \num@authorgroups\relax
1704  \or  % 4=two authors per row (!)
1705     \divide\author@bx@wd by 2\relax
1706  \else % three authors per row
1707     \divide\author@bx@wd by 3\relax
1708  \fi
1709  \advance\author@bx@wd by -\author@bx@sep\relax
1710  \gdef\@currentauthors{}%
1711  \gdef\@currentaffiliation{}%
1712  \def\@author##1{\ifx\@currentauthors\@empty
1713    \gdef\@currentauthors{\par##1}%
1714  \else
1715    \g@addto@macro\@currentauthors{\par##1}%
1716  \fi
1717  \gdef\and{}}%
1718  \def\email##1##2{\ifx\@currentaffiliation\@empty
1719    \gdef\@currentaffiliation{\nolinkurl{##2}}%
1720  \else
1721    \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
1722  \fi}%
1723  \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
1724    \gdef\@currentaffiliation{##2}%
1725  \else
1726    \g@addto@macro\@currentaffiliation{\par##2}%
1727  \fi
1728  \global\let\and\@typeset@author@bx
1729}%
1730  \hsize=\textwidth
1731  \global\setbox\mktitle@bx=\vbox{\noindent
1732    \box\mktitle@bx\par\medskip\leavevmode
1733    \lineskip=1pc\relax\centering\hspace*{-1em}%
1734    \addresses\let\and\@typeset@author@bx\and\par\bigskip}}
1735\def\@mkauthors@iv{%
1736  \author@bx@wd=\columnwidth\relax
1737  \advance\author@bx@wd by -\author@bx@sep\relax
1738  \ifcase\num@authorgroups
1739  \relax % 0?
1740  \or  % 1=one author per row
1741  \else  % 2=two authors per row
1742     \divide\author@bx@wd by 2\relax
1743  \fi
1744  \advance\author@bx@wd by -\author@bx@sep\relax
1745  \gdef\@currentauthors{}%
1746  \gdef\@currentaffiliation{}%
1747  \def\@author##1{\ifx\@currentauthors\@empty
1748    \gdef\@currentauthors{\par##1}%
1749  \else
1750    \g@addto@macro\@currentauthors{\par##1}%
1751  \fi
1752  \gdef\and{}}%
1753  \def\email##1##2{\ifx\@currentaffiliation\@empty
1754    \gdef\@currentaffiliation{\nolinkurl{##2}}%
1755  \else
1756    \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
1757  \fi}%
1758  \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
1759    \gdef\@currentaffiliation{##2}%
1760  \else
1761    \g@addto@macro\@currentaffiliation{\par##2}%
1762  \fi
1763  \global\let\and\@typeset@author@bx}%
1764    \bgroup\hsize=\columnwidth
1765    \par\raggedright\leftskip=\z@
1766    \lineskip=1pc\noindent
1767    \addresses\let\and\@typeset@author@bx\and\par\bigskip\egroup}
1768\def\@authornotemark{\g@addto@macro\@currentauthors{\footnotemark}}
1769\def\@mkteasers{%
1770  \ifx\@teaserfigures\@empty\else
1771    \def\@teaser##1{\par\bigskip\bgroup
1772      \captionsetup{type=figure}##1\egroup\par}
1773    \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par
1774    \noindent\@teaserfigures\par\medskip}%
1775  \fi}
1776\def\@setaddresses{}
1777\def\@mkabstract{\bgroup
1778  \ifx\@abstract\@lempty\else
1779  {\if@ACM@journal
1780       \small\noindent
1781    \else
1782      \section*{Abstract}%
1783    \fi
1784   \phantomsection\addcontentsline{toc}{section}{Abstract}%
1785   \ignorespaces\@abstract\par}%
1786  \fi\egroup}
1787\def\@mkbibcitation{\bgroup
1788  \def\footnotemark{}%
1789  \par\medskip\small\noindent{\bfseries ACM Reference format:}\par\nobreak
1790  \noindent\authors. \@acmYear. \@title.
1791  \if@ACM@journal
1792     \textit{\@journalNameShort}
1793     \@acmVolume, \@acmNumber, Article~\@acmArticle\ (\@acmPubDate),
1794     \ref{TotPages}~pages.
1795  \else
1796     In \textit{Proceedings of \acmConference@name, \acmConference@venue,
1797       \acmConference@date
1798       \ifx\acmConference@name\acmConference@shortname\else
1799         \ (\acmConference@shortname)\fi
1800         ,} \ref{TotPages}~pages.
1801  \fi\par
1802  \noindent DOI: \nolinkurl{\@acmDOI}
1803\par\egroup}
1804\def\@printendtopmatter{\par\medskip
1805  \ifcase\ACM@format@nr
1806  \relax % manuscript
1807    \noindent\hrulefill\par\medskip
1808  \or % acmsmall
1809    \noindent\hrulefill\par\medskip
1810  \or % acmlarge
1811    \noindent\hrulefill\par\medskip
1812  \or % acmtog
1813    \par\bigskip
1814  \or % sigconf
1815    \par\bigskip
1816  \or % siggraph
1817    \par\bigskip
1818  \or % sigplan
1819    \par\bigskip
1820  \or % sigchi
1821    \par\bigskip
1822  \or % sigchi-a
1823  \fi
1824}
1825\def\@setthanks{\long\def\thanks##1{\par##1\@addpunct.}\thankses}
1826\RequirePackage{fancyhdr}
1827\if@ACM@review
1828  \newsavebox{\ACM@linecount@bx}
1829  \savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{%
1830      \newlength\ACM@linecount@bxht\setlength{\ACM@linecount@bxht}{-\baselineskip}
1831      \@tempcnta\@ne\relax
1832%      \loop{\color{ACMRed}\scriptsize\the\@tempcnta}\\
1833      \loop{\scriptsize\the\@tempcnta}\\
1834      \advance\@tempcnta by \@ne
1835      \addtolength{\ACM@linecount@bxht}{\baselineskip}
1836      \ifdim\ACM@linecount@bxht<\textheight\repeat}}
1837\fi
1838\def\ACM@linecount{%
1839  \if@ACM@review
1840  \begin{picture}(0,0)%
1841    \put(-26,-22){\usebox{\ACM@linecount@bx}}%
1842  \end{picture}%
1843  \fi}
1844\def\@shortauthors{\if@ACM@anonymous Anon.\else\shortauthors\fi}
1845\def\@headfootfont{%
1846  \ifcase\ACM@format@nr
1847  \relax % manuscript
1848    \sffamily
1849  \or % acmsmall
1850    \sffamily
1851  \or % acmlarge
1852    \sffamily
1853  \or % acmtog
1854    \sffamily
1855  \or % sigconf
1856    \sffamily
1857  \or % siggraph
1858    \sffamily
1859  \or % sigplan
1860    \sffamily
1861  \or % sigchi
1862    \sffamily
1863  \or % sigchi-a
1864    \sffamily
1865  \fi}
1866\fancypagestyle{standardpagestyle}{%
1867  \fancyhf{}%
1868  \renewcommand{\headrulewidth}{\z@}%
1869  \renewcommand{\footrulewidth}{\z@}%
1870  \ifcase\ACM@format@nr
1871  \relax % manuscript
1872    \fancyhead[LE]{\ACM@linecount\if@ACM@printfolios\thepage\fi}%
1873    \fancyhead[RO]{\if@ACM@printfolios\thepage\fi}%
1874    \fancyhead[RE]{\@shortauthors}%
1875    \fancyhead[LO]{\ACM@linecount\shorttitle}%
1876    \fancyfoot[RO,LE]{\footnotesize Manuscript submitted to ACM}%
1877  \or % acmsmall
1878    \fancyhead[LE]{\ACM@linecount\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}%
1879    \fancyhead[RO]{\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}%
1880    \fancyhead[RE]{\@headfootfont\@shortauthors}%
1881    \fancyhead[LO]{\ACM@linecount\@headfootfont\shorttitle}%
1882    \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
1883    \@acmNumber, Article \@acmArticle.  Publication date: \@acmPubDate.}%
1884  \or % acmlarge
1885    \fancyhead[LE]{\ACM@linecount\@headfootfont
1886      \@acmArticle:\if@ACM@printfolios\thepage\quad\textbullet\quad\fi\@shortauthors}%
1887    \fancyhead[LO]{\ACM@linecount}%
1888    \fancyhead[RO]{\@headfootfont
1889      \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi}%
1890    \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
1891    \@acmNumber, Article \@acmArticle.  Publication date: \@acmPubDate.}%
1892  \or % acmtog
1893    \fancyhead[LE]{\ACM@linecount\@headfootfont
1894      \@acmArticle:\if@ACM@printfolios\thepage\quad\textbullet\quad\fi\@shortauthors}%
1895    \fancyhead[LO]{\ACM@linecount}%
1896    \fancyhead[RO]{\@headfootfont
1897      \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi}%
1898    \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
1899    \@acmNumber, Article \@acmArticle.  Publication date: \@acmPubDate.}%
1900  \else % Proceedings
1901    \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
1902    \fancyhead[LO]{\ACM@linecount\@headfootfont\shorttitle}%
1903    \fancyhead[RE]{\@headfootfont\@shortauthors}%
1904    \fancyhead[LE]{\ACM@linecount\@headfootfont\acmConference@shortname,
1905      \acmConference@date, \acmConference@venue}%
1906    \fancyhead[RO]{\@headfootfont\acmConference@shortname,
1907      \acmConference@date, \acmConference@venue}%
1908  \fi
1909  \if@ACM@sigchiamode
1910     \fancyheadoffset[L]{\dimexpr(\marginparsep+\marginparwidth)}%
1911  \fi
1912}
1913\pagestyle{standardpagestyle}
1914\newdimen\@folio@wd
1915\@folio@wd=\z@
1916\newdimen\@folio@ht
1917\@folio@ht=\z@
1918\newdimen\@folio@voffset
1919\@folio@voffset=\z@
1920\def\@folio@max{1}
1921\ifcase\ACM@format@nr
1922\relax % manuscript
1923\or % acmsmall
1924  \@folio@wd=45.75pt\relax
1925  \@folio@ht=1.25in\relax
1926  \@folio@voffset=.2in\relax
1927  \def\@folio@max{8}
1928\or % acmlarge
1929  \@folio@wd=43.25pt\relax
1930  \@folio@ht=79pt\relax
1931  \@folio@voffset=.55in\relax
1932  \def\@folio@max{10}
1933\fi
1934\def\@folioblob{\@tempcnta=\@acmArticleSeq\relax
1935  \loop
1936     \ifnum\@tempcnta>\@folio@max\relax
1937      \advance\@tempcnta by - \@folio@max
1938   \repeat
1939    \advance\@tempcnta by -1\relax
1940    \@tempdima=\@folio@ht\relax
1941    \multiply\@tempdima by \the\@tempcnta\relax
1942    \advance\@tempdima by -\@folio@voffset\relax
1943    \begin{picture}(0,0)
1944    \makebox[\z@]{\raisebox{-\@tempdima}{%
1945        \rlap{%
1946          \raisebox{-0.45\@folio@ht}[\z@][\z@]{%
1947            \rule{\@folio@wd}{\@folio@ht}}}%
1948        \parbox{\@folio@wd}{%
1949          \centering
1950          \textcolor{white}{\LARGE\bfseries\sffamily\@acmArticle}}}}
1951  \end{picture}}
1952
1953\fancypagestyle{firstpagestyle}{%
1954  \fancyhf{}%
1955  \renewcommand{\headrulewidth}{\z@}%
1956  \renewcommand{\footrulewidth}{\z@}%
1957  \ifcase\ACM@format@nr
1958  \relax % manuscript
1959    \fancyhead[L]{\ACM@linecount}%
1960    \fancyfoot[RO,LE]{\if@ACM@printfolios\small\thepage\fi}%
1961    \fancyfoot[RE,LO]{\footnotesize Manuscript submitted to ACM}%
1962  \or % acmsmall
1963    \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
1964    \@acmNumber, Article \@acmArticle.  Publication date:
1965    \@acmPubDate.}%
1966    \fancyhead[LE]{\ACM@linecount\@folioblob}%
1967    \fancyhead[LO]{\ACM@linecount}%
1968    \fancyhead[RO]{\@folioblob}%
1969    \fancyheadoffset[RO,LE]{0.6\@folio@wd}%
1970  \or % acmlarge
1971    \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
1972    \@acmNumber, Article \@acmArticle.  Publication date:
1973    \@acmPubDate.}%
1974    \fancyhead[RO]{\@folioblob}%
1975    \fancyhead[LE]{\ACM@linecount\@folioblob}%
1976    \fancyhead[LO]{\ACM@linecount}%
1977    \fancyheadoffset[RO,LE]{1.4\@folio@wd}%
1978  \or % acmtog
1979    \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
1980    \@acmNumber, Article \@acmArticle.  Publication date:
1981    \@acmPubDate.}%
1982    \fancyhead[L]{\ACM@linecount}%
1983  \else % Conference proceedings
1984    \fancyhead[L]{\ACM@linecount}%
1985    \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
1986  \fi
1987}
1988\renewcommand\section{\@startsection{section}{1}{\z@}%
1989  {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
1990  {.25\baselineskip}%
1991  {\@secfont}}
1992\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
1993  {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
1994  {.25\baselineskip}%
1995  {\@subsecfont}}
1996\renewcommand\subsubsection{\@startsection{subsubsection}{3}{10pt}%
1997  {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
1998  {-3.5\p@}%
1999  {\@subsubsecfont\@adddotafter}}
2000\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}%
2001  {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2002  {-3.5\p@}%
2003  {\@parfont\@adddotafter}}
2004\renewcommand\part{\@startsection{part}{9}{\z@}%
2005  {-10\p@ \@plus -4\p@ \@minus -2\p@}%
2006  {4\p@}%
2007  {\@parfont}}
2008\def\section@raggedright{\@rightskip\@flushglue
2009  \rightskip\@rightskip
2010  \leftskip\z@skip
2011  \parindent\z@}
2012\def\@secfont{\sffamily\bfseries\section@raggedright\MakeUppercase}
2013\def\@subsecfont{\sffamily\bfseries\section@raggedright}
2014\def\@subsubsecfont{\sffamily\itshape}
2015\def\@parfont{\itshape}
2016\setcounter{secnumdepth}{3}
2017\ifcase\ACM@format@nr
2018\relax % manuscript
2019\or % acmsmall
2020\or % acmlarge
2021 \def\@secfont{\sffamily\large\section@raggedright\MakeUppercase}
2022 \def\@subsecfont{\sffamily\large\section@raggedright}
2023\or % acmtog
2024 \def\@secfont{\sffamily\large\section@raggedright\MakeUppercase}
2025 \def\@subsecfont{\sffamily\large\section@raggedright}
2026\or % sigconf
2027 \def\@secfont{\bfseries\Large\section@raggedright\MakeUppercase}
2028 \def\@subsecfont{\bfseries\Large\section@raggedright}
2029\or % siggraph
2030 \def\@secfont{\bfseries\sffamily\Large\section@raggedright\MakeUppercase}
2031 \def\@subsecfont{\bfseries\sffamily\Large\section@raggedright}
2032\or % sigplan
2033 \def\@secfont{\bfseries\Large\section@raggedright}
2034 \def\@subsecfont{\bfseries\section@raggedright}
2035 \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
2036   {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2037   {.25\baselineskip}%
2038   {\@subsubsecfont}}
2039 \def\@subsubsecfont{\bfseries\section@raggedright}
2040 \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
2041   {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2042   {-3.5\p@}%
2043   {\@parfont\@addspaceafter}}
2044 \def\@parfont{\bfseries\itshape}
2045 \renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}%
2046   {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
2047   {-3.5\p@}%
2048   {\@subparfont\@addspaceafter}}
2049 \def\@subparfont{\itshape}
2050\or % sigchi
2051 \setcounter{secnumdepth}{1}
2052 \def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase}
2053 \def\@subsecfont{\bfseries\sffamily\section@raggedright}
2054\or % sigchi-a
2055 \setcounter{secnumdepth}{0}
2056 \def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase}
2057 \def\@subsecfont{\bfseries\sffamily\section@raggedright}
2058\fi
2059\def\@adddotafter#1{#1\@addpunct{.}}
2060\def\@addspaceafter#1{#1\@addpunct{\enspace}}
2061\def\@acmplainbodyfont{\itshape}
2062\def\@acmplainindent{\parindent}
2063\def\@acmplainheadfont{\scshape}
2064\def\@acmplainnotefont{\@empty}
2065\ifcase\ACM@format@nr
2066\relax % manuscript
2067\or % acmsmall
2068\or % acmlarge
2069\or % acmtog
2070\or % sigconf
2071\or % siggraph
2072\or % sigplan
2073  \def\@acmplainbodyfont{\itshape}
2074  \def\@acmplainindent{\z@}
2075  \def\@acmplainheadfont{\bfseries}
2076  \def\@acmplainnotefont{\normalfont}
2077\or % sigchi
2078\or % sigchi-a
2079\fi
2080\newtheoremstyle{acmplain}%
2081  {.5\baselineskip\@plus.2\baselineskip
2082    \@minus.2\baselineskip}% space above
2083  {.5\baselineskip\@plus.2\baselineskip
2084    \@minus.2\baselineskip}% space below
2085  {\@acmplainbodyfont}% body font
2086  {\@acmplainindent}% indent amount
2087  {\@acmplainheadfont}% head font
2088  {.}% punctuation after head
2089  {.5em}% spacing after head
2090  {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmplainnotefont(#3)}}}% head spec
2091\def\@acmdefinitionbodyfont{\normalfont}
2092\def\@acmdefinitionindent{\parindent}
2093\def\@acmdefinitionheadfont{\itshape}
2094\def\@acmdefinitionnotefont{\@empty}
2095\ifcase\ACM@format@nr
2096\relax % manuscript
2097\or % acmsmall
2098\or % acmlarge
2099\or % acmtog
2100\or % sigconf
2101\or % siggraph
2102\or % sigplan
2103  \def\@acmdefinitionbodyfont{\normalfont}
2104  \def\@acmdefinitionindent{\z@}
2105  \def\@acmdefinitionheadfont{\bfseries}
2106  \def\@acmdefinitionnotefont{\normalfont}
2107\or % sigchi
2108\or % sigchi-a
2109\fi
2110\newtheoremstyle{acmdefinition}%
2111  {.5\baselineskip\@plus.2\baselineskip
2112    \@minus.2\baselineskip}% space above
2113  {.5\baselineskip\@plus.2\baselineskip
2114    \@minus.2\baselineskip}% space below
2115  {\@acmdefinitionbodyfont}% body font
2116  {\@acmdefinitionindent}% indent amount
2117  {\@acmdefinitionheadfont}% head font
2118  {.}% punctuation after head
2119  {.5em}% spacing after head
2120  {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmdefinitionnotefont(#3)}}}% head spec
2121\theoremstyle{acmplain}
2122\newtheorem{theorem}{Theorem}[section]
2123\newtheorem{conjecture}[theorem]{Conjecture}
2124\newtheorem{proposition}[theorem]{Proposition}
2125\newtheorem{lemma}[theorem]{Lemma}
2126\newtheorem{corollary}[theorem]{Corollary}
2127\theoremstyle{acmdefinition}
2128\newtheorem{example}[theorem]{Example}
2129\newtheorem{definition}[theorem]{Definition}
2130\theoremstyle{acmplain}
2131\def\@proofnamefont{\scshape}
2132\def\@proofindent{\indent}
2133\ifcase\ACM@format@nr
2134\relax % manuscript
2135\or % acmsmall
2136\or % acmlarge
2137\or % acmtog
2138\or % sigconf
2139\or % siggraph
2140\or % sigplan
2141  \def\@proofnamefont{\itshape}
2142  \def\@proofindent{\noindent}
2143\or % sigchi
2144\or % sigchi-a
2145\fi
2146\renewenvironment{proof}[1][\proofname]{\par
2147  \pushQED{\qed}%
2148  \normalfont \topsep6\p@\@plus6\p@\relax
2149  \trivlist
2150  \item[\@proofindent\hskip\labelsep
2151        {\@proofnamefont #1\@addpunct{.}}]\ignorespaces
2152}{%
2153  \popQED\endtrivlist\@endpefalse
2154}
2155\specialcomment{acks}{%
2156  \begingroup
2157  \section*{Acknowledgments}
2158  \phantomsection\addcontentsline{toc}{section}{Acknowledgments}
2159}{%
2160  \endgroup
2161}
2162\def\grantsponsor#1#2#3{#2}
2163\newcommand\grantnum[3][]{#3%
2164  \def\@tempa{#1}\ifx\@tempa\@empty\else\space(\url{#1})\fi}
2165\if@ACM@screen
2166  \includecomment{screenonly}
2167  \excludecomment{printonly}
2168\else
2169  \excludecomment{screenonly}
2170  \includecomment{printonly}
2171\fi
2172\if@ACM@anonymous
2173  \excludecomment{anonsuppress}
2174  \excludecomment{acks}
2175\else
2176  \includecomment{anonsuppress}
2177\fi
2178\newcommand\showeprint[2][arxiv]{%
2179  \def\@tempa{#1}%
2180  \ifx\@tempa\@empty\def\@tempa{arxiv}\fi
2181  \def\@tempb{arxiv}%
2182  \ifx\@tempa\@tempb
2183     arXiv:\href{http://arxiv.org/abs/#2}{#2}\else arXiv:#2%
2184  \fi}
2185\normalsize\normalfont
2186\endinput
2187%%
2188%% End of file `acmart.cls'.
Note: See TracBrowser for help on using the repository browser.