]> AND Private Git Repository - JournalMultiPeriods.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
add other files
authorraphael couturier <couturie@extinction>
Fri, 6 Jun 2014 19:15:36 +0000 (21:15 +0200)
committerraphael couturier <couturie@extinction>
Fri, 6 Jun 2014 19:15:36 +0000 (21:15 +0200)
12 files changed:
Modelgeneral.pdf [new file with mode: 0644]
R1/ASR.pdf [new file with mode: 0644]
R1/CR.pdf [new file with mode: 0644]
R1/EC50.pdf [new file with mode: 0644]
R1/EC95.pdf [new file with mode: 0644]
R1/LT50.pdf [new file with mode: 0644]
R1/LT95.pdf [new file with mode: 0644]
R1/SR.pdf [new file with mode: 0644]
R1/T.pdf [new file with mode: 0644]
biblio.bib [new file with mode: 0755]
elsarticle-num.bst [new file with mode: 0644]
elsarticle.cls [new file with mode: 0644]

diff --git a/Modelgeneral.pdf b/Modelgeneral.pdf
new file mode 100644 (file)
index 0000000..a0e5cbf
Binary files /dev/null and b/Modelgeneral.pdf differ
diff --git a/R1/ASR.pdf b/R1/ASR.pdf
new file mode 100644 (file)
index 0000000..92df87a
Binary files /dev/null and b/R1/ASR.pdf differ
diff --git a/R1/CR.pdf b/R1/CR.pdf
new file mode 100644 (file)
index 0000000..4c58490
Binary files /dev/null and b/R1/CR.pdf differ
diff --git a/R1/EC50.pdf b/R1/EC50.pdf
new file mode 100644 (file)
index 0000000..d8baf9b
Binary files /dev/null and b/R1/EC50.pdf differ
diff --git a/R1/EC95.pdf b/R1/EC95.pdf
new file mode 100644 (file)
index 0000000..0e3c9e4
Binary files /dev/null and b/R1/EC95.pdf differ
diff --git a/R1/LT50.pdf b/R1/LT50.pdf
new file mode 100644 (file)
index 0000000..498b7f6
Binary files /dev/null and b/R1/LT50.pdf differ
diff --git a/R1/LT95.pdf b/R1/LT95.pdf
new file mode 100644 (file)
index 0000000..696b72f
Binary files /dev/null and b/R1/LT95.pdf differ
diff --git a/R1/SR.pdf b/R1/SR.pdf
new file mode 100644 (file)
index 0000000..f26a2a0
Binary files /dev/null and b/R1/SR.pdf differ
diff --git a/R1/T.pdf b/R1/T.pdf
new file mode 100644 (file)
index 0000000..8de9d3a
Binary files /dev/null and b/R1/T.pdf differ
diff --git a/biblio.bib b/biblio.bib
new file mode 100755 (executable)
index 0000000..6ff1c2b
--- /dev/null
@@ -0,0 +1,479 @@
+@ARTICLE{Torkestani,
+ author = "J. A. Torkestani",
+ title = "An adaptive energy-efficient area coverage algorithm for wireless sensor networks ",
+ journal = {Ad Hoc Networks},
+ volume = {11},
+ number = {6},
+ pages = {1655-1666},
+ year = {2013},
+ }
+@ARTICLE{Zhang,
+ author = "L. Zhang and Q. Zhu and J. Wang",
+ title = "Adaptive Clustering for Maximizing Network Lifetime and Maintaining Coverage ",
+ journal = {JOURNAL OF NETWORKS},
+ volume = {8},
+ number = {3},
+ pages = {616-622},
+ year = {2013},
+ }
+
+@ARTICLE{pc10,
+ author = "T.V. Padmavathy and M. Chitra",
+ title = "Extending the Network Lifetime of Wireless Sensor Networks Using Residual Energy Extraction-Hybrid Scheduling Algorithm",
+  JOURNAL = {Int. J. of Communications, Network and System Sciences},
+ VOLUME = {3},
+ NUMBER = {1},
+PAGES = {98-106},
+YEAR = {2010},
+ }
+
+
+@ARTICLE{Misra,
+ author = "S. Misra and M. P. Kumar and M. S. Obaidat",
+ title = "Connectivity preserving localized coverage algorithm for area monitoring using
+wireless sensor networks ",
+ JOURNAL = {Computer Communications},
+ VOLUME = {34},
+ NUMBER = {12},
+ PAGES = {1484-1496},
+ YEAR = {2011},
+}
+
+
+@ARTICLE{Zhixin,
+ author = "Z. Liu and Q. Zheng and L. Xue and X. Guan",
+ title = "A distributed energy-efficient clustering algorithm with improved coverage in
+wireless sensor networks",
+ JOURNAL = {Future Generation Computer Systems},
+ VOLUME = {28},
+ NUMBER = {5},
+ PAGES = {780-790},
+ YEAR = {2012},
+ }
+
+@ARTICLE{Bang,
+ author = "B. Wang and H. B. Lim and D. Ma ",
+ title = "A coverage-aware clustering protocol for wireless sensor networks",
+ JOURNAL = {Computer Networks},
+ VOLUME = {56},
+ NUMBER = {5},
+ PAGES = {1599-1611},
+ YEAR = {2012},
+ }
+
+
+@ARTICLE{Shibo,
+ author = " S. He and J. Chen and X. Li and X. Shen and Y. Sun ",
+ title = "Leveraging Prediction to Improve the Coverage of Wireless Sensor Networks",
+ JOURNAL = {IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS},
+ VOLUME = {23},
+ NUMBER = {4},
+ PAGES = {701-712},
+ YEAR = {2012},
+ }
+@book{Akyildiz02,
+ author = {I. F. Akyildiz and M. C. Vuran},
+ title = {Wireless Sensor Networks},
+ publisher = {John Wiley and Sons Ltd.},
+ year = {2010},
+} 
+
+@book{Sudip03,
+ author = {S. Misra and I. Woungang and S. C. Misra},
+ title = {Guide to Wireless Sensor Networks},
+ publisher = {Springer-Verlag London Limited},
+ year = {2009},
+} 
+
+@book{Nayak04,
+ author = {A. Nayak and I. Stojmenovic},
+ title = {Wireless Sensor and Actuator Networks: Algorithms and Protocols for Scalable Coordination and Data Communication},
+ publisher = {John Wiley and Sons, Inc},
+  year = {2010},
+} 
+
+@ARTICLE{Misra05,
+ author = "S. Misra and M. P. Kumar and M. S. Obaidat",
+ title = "Connectivity preserving localized coverage algorithm for area monitoring using wireless
+sensor networks",
+ JOURNAL = {Computer Communications},
+ VOLUME = {34},
+ NUMBER = {12},
+ PAGES = {1484-1496},
+ YEAR = {2011},
+ }
+@ARTICLE{Huang:2003:CPW:941350.941367,
+ author = "C.-F. HUANG and Y.-C. TSENG",
+ title = "The Coverage Problem in a Wireless Sensor Network",
+ JOURNAL = {Mobile Networks and Applications},
+ VOLUME = {10},
+ NUMBER = {4},
+ PAGES = {519-528}, 
+ YEAR = {2005},
+ }
+
+
+@ARTICLE{Zhang05,
+  author    = {H. Zhang and J. C. Hou},
+  title     = {Maintaining Sensing Coverage and Connectivity in Large Sensor Networks},
+  journal   = {Ad Hoc {\&} Sensor Wireless Networks},
+  volume    = {1},
+  number    = {1-2},
+  year      = {2005},
+
+}
+
+@ARTICLE{HeinzelmanCB02,
+  author    = {W. B. Heinzelman and A. P. Chandrakasan and H. Balakrishnan},
+  title     = {An application-specific protocol architecture for wireless microsensor networks},
+  journal   = {IEEE Transactions on Wireless Communications},
+  volume    = {1},
+  number    = {4},
+  pages     = {660-670},
+  year      = {2002},
+}
+
+
+@inproceedings{pedraza2006,
+       author = {F. Pedraza and A. L. Medaglia and A. Garcia},
+       title = {Efficient coverage algorithms for wireless sensor networks},   
+       booktitle = {Proceedings of the 2006 Systems and Information Engineering Design Symposium},
+       pages = {78-83},
+       YEAR = {2006},
+} 
+
+@PhDThesis{chin2007,
+author = {C. T. Vu},
+title = {DISTRIBUTED ENERGY-EFFICIENT SOLUTIONS FOR AREA COVERAGE PROBLEMS IN WIRELESS SENSOR NETWORKS},
+school = {Georgia State University},
+year = {2009},
+}
+
+@ARTICLE{varga,
+author = {A. Varga},
+title = {OMNeT++ Discrete Event Simulation System},
+journal = {Available: http://www.omnetpp.org},
+year = {2003},
+}
+
+
+@ARTICLE{die09,
+  author    = {Isabel Dietrich and
+               Falko Dressler},
+  title     = {On the lifetime of wireless sensor networks},
+  journal   = {TOSN},
+  volume    = {5},
+  number    = {1},
+  year      = {2009},
+  ee        = {http://doi.acm.org/10.1145/1464420.1464425},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+  
+@ARTICLE{mulligan2010coverage,
+  title={Coverage in Wireless Sensor Networks: A Survey.},
+  author={Mulligan, Raymond and Ammari, Habib M},
+  journal={Network Protocols \& Algorithms},
+  volume={2},
+  number={2},
+  year={2010}
+}
+
+
+@phdthesis{vu2009distributed,
+  title={Distributed energy-efficient solutions for area coverage problems in wireless sensor networks},
+  author={Vu, Chinh Trung},
+  year={2009},
+  school={GEORGIA STATE UNIVERSITY}
+}
+
+
+@ARTICLE{raghunathan2002energy,
+  title={Energy-aware wireless microsensor networks},
+  author={Raghunathan, Vijay and Schurgers, Curt and Park, Sung and Srivastava, Mani B},
+  journal={Signal Processing Magazine, IEEE},
+  volume={19},
+  number={2},
+  pages={40--50},
+  year={2002},
+  publisher={IEEE}
+}
+
+@ARTICLE{ChinhVu,
+author = {Chinh Vu and Shan Gao and Wiwek Deshmukh and Yingshu Li},
+title = {Distributed Energy-Efficient Scheduling Approach for K-Coverage in Wireless Sensor Networks},
+journal ={MILCOM},
+volume = {0},
+isbn = {1-4244-0617-X},
+year = {2006},
+pages = {1-7},
+doi = {http://doi.ieeecomputersociety.org/10.1109/MILCOM.2006.302146},
+publisher = {IEEE Computer Society},
+address = {Los Alamitos, CA, USA},
+}
+
+
+@ARTICLE{ghosh2008coverage,
+  title={Coverage and connectivity issues in wireless sensor networks: A survey},
+  author={Ghosh, Amitabha and Das, Sajal K},
+  journal={Pervasive and Mobile Computing},
+  volume={4},
+  number={3},
+  pages={303--334},
+  year={2008},
+  publisher={Elsevier}
+}
+
+@ARTICLE{wang2011coverage,
+  title={Coverage problems in sensor networks: A survey},
+  author={Wang, Bang},
+  journal={ACM Computing Surveys (CSUR)},
+  volume={43},
+  number={4},
+  pages={32},
+  year={2011},
+  publisher={ACM}
+}
+
+@ARTICLE{yang2014novel, 
+author={Changlin Yang and Kwan-Wu Chin}, 
+journal={Communications Letters, IEEE}, 
+title={Novel Algorithms for Complete Targets Coverage in Energy Harvesting Wireless Sensor Networks}, 
+year={2014}, 
+month={January}, 
+volume={18}, 
+number={1}, 
+pages={118-121}, 
+keywords={energy harvesting;linear programming;secondary cells;telecommunication power supplies;wireless sensor networks;MUA;WSN;activation schedule;complete targets coverage;energy conservation;energy harvesting wireless sensor networks;linear programming based solution;maximum utility algorithm;network lifetime maximization problem;recharging opportunities;sensor nodes;sleep state;time interval;wake-up schedule;Batteries;Energy harvesting;Erbium;Monitoring;Schedules;Sensors;Wireless sensor networks;Wireless sensor network;energy harvesting;targets coverage}, 
+doi={10.1109/LCOMM.2013.111513.132436}, 
+ISSN={1089-7798},}
+
+@ARTICLE{HeShibo, 
+author={He, Shibo and Gong, Xiaowen and Zhang, Junshan and Chen, Jiming and Sun, Youxian}, 
+journal={Wireless Communications, IEEE Transactions on}, 
+title={Curve-Based Deployment for Barrier Coverage in Wireless Sensor Networks}, 
+year={2014}, 
+month={February}, 
+volume={13}, 
+number={2}, 
+pages={724-735}, 
+keywords={Algorithm design and analysis;Approximation algorithms;Approximation methods;Educational institutions;Sensors;Wireless communication;Wireless sensor networks;Barrier coverage;curved-based deployment;deployment algorithms;optimal deployment curve}, 
+doi={10.1109/TWC.2013.121813.130198}, 
+ISSN={1536-1276},
+}
+
+
+@inproceedings{Zorbas2007,
+ author = {D. Zorbas and D. Glynos and P. Kotzanikolaou and C. Douligeris},
+ title = {B\{GOP\}: an adaptive coverage algorithm for wireless sensor networks},
+ booktitle = {Proceedings of the 13th European Wireless Conference},
+ series = {EW'07},
+ year = {2007},
+ location = {Paris, France},
+} 
+
+@ARTICLE{zorbas2010solving,
+  title={Solving coverage problems in wireless sensor networks using cover sets},
+  author={Zorbas, Dimitrios and Glynos, Dimitris and Kotzanikolaou, Panayiotis and Douligeris, Christos},
+  journal={Ad Hoc Networks},
+  volume={8},
+  number={4},
+  pages={400-415},
+  year={2010},
+  publisher={Elsevier},
+}
+
+@INPROCEEDINGS{Slijepcevic01powerefficient,
+    author = {S. Slijepcevic and M. Potkonjak},
+    title = {Power Efficient Organization of Wireless Sensor Networks},
+    booktitle = {IEEE International conference on Communications},
+    year = {2001},
+    pages = {472-476}
+}
+
+@ARTICLE{cardei2006energy,
+  title={Energy-efficient coverage problems in wireless ad-hoc sensor networks},
+  author={Cardei, Mihaela and Wu, Jie},
+  journal={Computer communications},
+  volume={29},
+  number={4},
+  pages={413-420},
+  year={2006},
+  publisher={Elsevier}
+}
+
+@inproceedings{cardei2005energy,
+  title={Energy-efficient target coverage in wireless sensor networks},
+  author={Cardei, Mihaela and Thai, My T and Li, Yingshu and Wu, Weili},
+  booktitle={INFOCOM 2005. 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings IEEE},
+  volume={3},
+  pages={1976-1984},
+  year={2005},
+  organization={IEEE}
+}
+
+@ARTICLE{cardei2005improving,
+  title={Improving wireless sensor network lifetime through power aware organization},
+  author={Cardei, Mihaela and Du, Ding-Zhu},
+  journal={Wireless Networks},
+  volume={11},
+  number={3},
+  pages={333-340},
+  year={2005},
+  publisher={Springer-Verlag New York, Inc.}
+}
+
+@inproceedings{abrams2004set,
+  title={Set k-cover algorithms for energy efficient monitoring in wireless sensor networks},
+  author={Abrams, Zo{\"e} and Goel, Ashish and Plotkin, Serge},
+  booktitle={Proceedings of the 3rd international symposium on Information processing in sensor networks},
+  pages={424-432},
+  year={2004},
+  organization={ACM}
+}
+
+@ARTICLE{pujari2011high,
+  title={High-Energy-First (HEF) Heuristic for Energy-Efficient Target Coverage Problem.},
+  author={Pujari, Arun K},
+  journal={International Journal of Ad Hoc, Sensor \& Ubiquitous Computing},
+  volume={2},
+  number={1},
+  year={2011}
+}
+
+@INPROCEEDINGS{berman04,
+    author = {P. Berman and G. Calinescu},
+    title = {Power Efficient Monitoring Management in Sensor Networks},
+    booktitle = {Proceedings of IEEE Wireless Communication and Networking Conference (WCNC'04)},
+    year = {2004},
+    pages = {2329--2334}
+}
+
+@inproceedings{Gallais06,
+ author = {Gallais, Antoine and Carle, Jean and Simplot-Ryl, David and Stojmenovic, Ivan},
+ title = {Localized Sensor Area Coverage with Low Communication Overhead},
+ booktitle = {Proceedings of the Fourth Annual IEEE International Conference on Pervasive Computing and Communications},
+ year = {2006},
+ pages = {328-337},
+}
+
+@inproceedings{Tian02,
+ author = {Tian, Di and Georganas, Nicolas D.},
+ title = {A coverage-preserving node scheduling scheme for large wireless sensor networks},
+ booktitle = {Proceedings of the 1st ACM international workshop on Wireless sensor networks and applications},
+ series = {WSNA '02},
+ year = {2002},
+ pages = {32-41},
+ publisher = {ACM},
+} 
+
+@inproceedings{Ye03,
+ author = {Ye, Fan and Zhong, Gary and Cheng, Jesse and Lu, Songwu and Zhang, Lixia},
+ title = {PEAS: A Robust Energy Conserving Protocol for Long-lived Sensor Networks},
+ booktitle = {Proceedings of the 23rd International Conference on Distributed Computing Systems},
+ series = {ICDCS'03},
+ year = {2003},
+ pages = {28-37},
+} 
+
+
+@INPROCEEDINGS{Berman05efficientenergy,
+    author = {P. Berman and G. Calinescu and C. Shah and A. Zelikovsky},
+    title = {Efficient energy management in sensor networks},
+    booktitle = {Ad Hoc and Sensor Networks. Nova Science Publishers},
+    year = {2005},
+    publisher = {Nova Science Publisher}
+}
+
+@inproceedings{lu2003coverage,
+  title={Coverage-aware self-scheduling in sensor networks},
+  author={Lu, Jun and Suda, Tatsuya},
+  booktitle={Computer Communications, 2003. CCW 2003. Proceedings. 2003 IEEE 18th Annual Workshop on},
+  pages={117--123},
+  year={2003},
+  organization={IEEE}
+}
+
+@incollection{prasad2007distributed,
+  title={Distributed algorithms for lifetime of wireless sensor networks based on dependencies among cover sets},
+  author={Prasad, Sushil K and Dhawan, Akshaye},
+  booktitle={High Performance Computing--HiPC 2007},
+  pages={381-392},
+  year={2007},
+  publisher={Springer}
+}
+
+@inproceedings{cardei2005maximum,
+  title={Maximum network lifetime in wireless sensor networks with adjustable sensing ranges},
+  author={Cardei, Mihaela and Wu, Jie and Lu, Mingming and Pervaiz, Mohammad O},
+  booktitle={Wireless And Mobile Computing, Networking And Communications, 2005.(WiMob'2005), IEEE International Conference on},
+  volume={3},
+  pages={438--445},
+  year={2005},
+  organization={IEEE}
+}
+
+@inproceedings{garg98,
+ author = {Garg, Naveen and Koenemann, Jochen},
+ title = {Faster and Simpler Algorithms for Multicommodity Flow and other Fractional Packing Problems.},
+ booktitle = {Proceedings of the 39th Annual Symposium on Foundations of Computer Science},
+ series = {FOCS '98},
+ year = {1998},
+ pages = {300-309},
+}
+
+@article{wang2010clique,
+  title={A clique base node scheduling method for wireless sensor networks},
+  author={Wang, Lei and Wei, Ruizhong and Lin, Yaping and Wang, Bo},
+  journal={Journal of Network and Computer Applications},
+  volume={33},
+  number={4},
+  pages={383--396},
+  year={2010},
+  publisher={Elsevier}
+}
+
+@article{yardibi2010distributed,
+  title={A distributed activity scheduling algorithm for wireless sensor networks with partial coverage},
+  author={Yardibi, Tarik and Karasan, Ezhan},
+  journal={Wireless Networks},
+  volume={16},
+  number={1},
+  pages={213--225},
+  year={2010},
+  publisher={Springer}
+}
+
+@article{conti2014mobile,
+  title={Mobile ad hoc networking: milestones, challenges, and new research directions},
+  author={Conti, Marco and Giordano, Silvia},
+  journal={Communications Magazine, IEEE},
+  volume={52},
+  number={1},
+  pages={85--96},
+  year={2014},
+  publisher={IEEE}
+}
+
+@inproceedings{idrees2014coverage,
+  title={Coverage and Lifetime Optimization in Heterogeneous Energy Wireless Sensor Networks},
+  author={Idrees, Ali Kadhum and Deschinkel, Karine and Salomon, Michel and Couturier, Rapha{\"e}l},
+  booktitle={ICN 2014, The Thirteenth International Conference on Networks},
+  pages={49--54},
+  year={2014}
+}
+
+@inproceedings{xu2001geography,
+  title={Geography-informed energy conservation for ad hoc routing},
+  author={Xu, Ya and Heidemann, John and Estrin, Deborah},
+  booktitle={Proceedings of the 7th annual international conference on Mobile computing and networking},
+  pages={70--84},
+  year={2001},
+  organization={ACM}
+}
\ No newline at end of file
diff --git a/elsarticle-num.bst b/elsarticle-num.bst
new file mode 100644 (file)
index 0000000..0257b4f
--- /dev/null
@@ -0,0 +1,1517 @@
+%% 
+%% Copyright 2007, 2008, 2009 Elsevier Ltd
+%% 
+%% This file is part of the 'Elsarticle Bundle'.
+%% ---------------------------------------------
+%% 
+%% It may be distributed under the conditions of the LaTeX Project Public
+%% License, either version 1.2 of this license or (at your option) any
+%% later version.  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%% 
+%% The list of all files belonging to the 'Elsarticle Bundle' is
+%% given in the file `manifest.txt'.
+%% 
+%%% Modification of BibTeX style file elsarticle-num.bst
+%%% ... by urlbst, version 0.6 (marked with "% urlbst")
+%%% See <http://purl.org/nxg/dist/urlbst>
+%%% Added webpage entry type, and url and lastchecked fields.
+%%% Added eprint support.
+%%% Added DOI support.
+%%% Added hyperref support.
+%%% Original headers follow...
+
+%%
+%% This is file `elsarticle-num.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% merlin.mbs  (with options: `,seq-no,nm-init,ed-au,dt-end,yr-par,yrp-x,jttl-rm,thtit-a,vnum-sp,volp-blk,jdt-p,pp-last,jnm-x,btit-rm,bt-rm,pub-date,pub-xpar,pre-edn,url,url-nl,edpar,blk-com,in-col,pp,ed,abr,ednx,ord,jabr,and-xcom,xand,em-x,nfss')
+%% After docstrip generation some manual changes were made (SP)
+
+%% ----------------------------------------
+
+ENTRY
+  { address
+    author
+    booktitle
+    chapter
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    volume
+    year
+    eprint % urlbst
+    doi % urlbst
+    url % urlbst
+    lastchecked % urlbst
+  }
+  {}
+  { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl openinlinelink closeinlinelink } % urlbst...
+INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver }
+FUNCTION {init.urlbst.variables}
+{
+  "Available from: " 'urlintro := % prefix before URL
+  "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+  "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+  "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
+  "doi:" 'doiprefix :=      % text prefix printed before DOI ref
+  #1 'addeprints :=         % 0=no eprints; 1=include eprints
+  #1 'adddoiresolver :=     % 0=no DOI resolver; 1=include it
+  #2 'hrefform :=           % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
+  #1 'inlinelinks :=        % 0=URLs explicit; 1=URLs attached to titles
+  % the following are internal state variables, not config constants
+  #0 'makeinlinelink :=     % state variable managed by setup.inlinelink
+  "" 'openinlinelink :=     % ditto
+  "" 'closeinlinelink :=    % ditto
+}
+INTEGERS {
+  bracket.state
+  outside.brackets
+  open.brackets
+  within.brackets
+  close.brackets
+}
+FUNCTION {init.state.consts}
+{ #0 'outside.brackets := % urlbst
+  #1 'open.brackets :=
+  #2 'within.brackets :=
+  #3 'close.brackets :=
+
+  #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull.original}
+{ 's :=
+  output.state mid.sentence =
+    { ", " * write$ }
+    { output.state after.block =
+        { add.period$ write$
+          newline$
+          "\newblock " write$
+        }
+        { output.state before.all =
+            'write$
+            { add.period$ " " * write$ }
+          if$
+        }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+
+FUNCTION {setup.inlinelink}
+{ makeinlinelink
+    { hrefform #1 = % hypertex
+        { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink :=
+          "\special {html:</a>}" 'closeinlinelink :=
+          }
+        { hrefform #2 = % hyperref
+            { "\href{" url * "}{" * 'openinlinelink :=
+              "}" 'closeinlinelink :=
+              }
+            'skip$
+          if$ % hrefform #2 =
+        }
+      if$ % hrefform #1 =
+      #0 'makeinlinelink :=
+    }
+    'skip$
+ if$ % makeinlinelink
+}
+FUNCTION {add.inlinelink}
+{ openinlinelink empty$
+    'skip$
+    { openinlinelink swap$ * closeinlinelink *
+      "" 'openinlinelink :=
+      }
+  if$
+}
+FUNCTION {output.nonnull}
+{ % Save the thing we've been asked to output
+  's :=
+  % If the bracket-state is close.brackets, then add a close-bracket to
+  % what is currently at the top of the stack, and set bracket.state
+  % to outside.brackets
+  bracket.state close.brackets =
+    { "]" *
+      outside.brackets 'bracket.state :=
+    }
+    'skip$
+  if$
+  bracket.state outside.brackets =
+    { % We're outside all brackets -- this is the normal situation.
+      % Write out what's currently at the top of the stack, using the
+      % original output.nonnull function.
+      s
+      add.inlinelink
+      output.nonnull.original % invoke the original output.nonnull
+    }
+    { % Still in brackets.  Add open-bracket or (continuation) comma, add the
+      % new text (in s) to the top of the stack, and move to the close-brackets
+      % state, ready for next time (unless inbrackets resets it).  If we come
+      % into this branch, then output.state is carefully undisturbed.
+      bracket.state open.brackets =
+        { " [" * }
+        { ", " * } % bracket.state will be within.brackets
+      if$
+      s *
+      close.brackets 'bracket.state :=
+    }
+  if$
+}
+
+FUNCTION {inbrackets}
+{ bracket.state close.brackets =
+    { within.brackets 'bracket.state := } % reset the state: not open nor closed
+    { open.brackets 'bracket.state := }
+  if$
+}
+
+FUNCTION {format.lastchecked}
+{ lastchecked empty$
+    { "" }
+    { inbrackets "cited " lastchecked * }
+  if$
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+
+FUNCTION {fin.entry.original}
+{ add.period$
+  write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+        'skip$
+        { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+
+FUNCTION {add.blank}
+{  " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+  add.blank
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+
+FUNCTION {emphasize}
+{ skip$ }
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+{ "Eds." }
+
+FUNCTION {bbl.editor}
+{ "Ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "Edition" }
+
+FUNCTION {bbl.volume}
+{ "Vol." }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "no." }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "pp." }
+
+FUNCTION {bbl.page}
+{ "p." }
+
+FUNCTION {bbl.chapter}
+{ "Ch." }
+
+FUNCTION {bbl.techrep}
+{ "Tech. Rep." }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+FUNCTION {bbl.first}
+{ "1st" }
+
+FUNCTION {bbl.second}
+{ "2nd" }
+
+FUNCTION {bbl.third}
+{ "3rd" }
+
+FUNCTION {bbl.fourth}
+{ "4th" }
+
+FUNCTION {bbl.fifth}
+{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"Jun."}
+
+MACRO {jul} {"Jul."}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sep."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+  #-2 #1 substring$ "1" =
+     { bbl.th * }
+     { duplicate$ #-1 #1 substring$
+       duplicate$ "1" =
+         { pop$ bbl.st * }
+         { duplicate$ "2" =
+             { pop$ bbl.nd * }
+             { "3" =
+                 { bbl.rd * }
+                 { bbl.th * }
+               if$
+             }
+           if$
+          }
+       if$
+     }
+   if$
+}
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Programming"}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Gr."}
+
+MACRO {toms} {"ACM Trans. Math. Softw."}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+
+MACRO {tcs} {"Theoretical Comput. Sci."}
+
+FUNCTION {write.url}
+{ url empty$
+    { skip$ }
+    { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{f.~}{vv~}{ll}{, jj}" format.name$
+    't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+            { ", " * t * }
+            {
+              "," *
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              t "others" =
+                {
+                  " " * bbl.etal *
+                }
+                { " " * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+FUNCTION {format.names.ed}
+{ format.names }
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+    { author format.names }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+        { " (" * bbl.editors * ")" * }
+        { " (" * bbl.editor * ")" * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.in.editors}
+{ editor empty$
+    { "" }
+    { editor format.names.ed
+      editor num.names$ #1 >
+        { " (" * bbl.editors * ")" * }
+        { " (" * bbl.editor * ")" * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.note}
+{
+ note empty$
+    { "" }
+    { note #1 #1 substring$
+      duplicate$ "{" =
+        'skip$
+        { output.state mid.sentence =
+          { "l" }
+          { "u" }
+        if$
+        change.case$
+        }
+      if$
+      note #2 global.max$ substring$ *
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+    { "" }
+    { title "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {output.bibitem.original}
+{ newline$
+  "\bibitem{" write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {n.dashify}
+{
+  't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+        { t #1 #2 substring$ "--" = not
+            { "--" *
+              t #2 global.max$ substring$ 't :=
+            }
+            {   { t #1 #1 substring$ "-" = }
+                { "-" *
+                  t #2 global.max$ substring$ 't :=
+                }
+              while$
+            }
+          if$
+        }
+        { t #1 #1 substring$ *
+          t #2 global.max$ substring$ 't :=
+        }
+      if$
+    }
+  while$
+}
+
+FUNCTION {word.in}
+{ bbl.in
+  ":" *
+  " " * }
+
+FUNCTION {format.date}
+{ year empty$
+    { month empty$
+        { "" }
+        { "there's a month but no year in " cite$ * warning$
+          month
+        }
+      if$
+    }
+    { month empty$
+        'year
+        { month " " * year * }
+      if$
+    }
+  if$
+  duplicate$ empty$
+    'skip$
+    {
+      before.all 'output.state :=
+    " (" swap$ * ")" *
+    }
+  if$
+}
+
+FUNCTION{format.year}
+{ year duplicate$ empty$
+    { "empty year in " cite$ * warning$ pop$ "" }
+    { "(" swap$ * ")" * }
+  if$
+}
+
+FUNCTION {format.btitle}
+{ title
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { bbl.volume volume tie.or.space.connect
+      series empty$
+        'skip$
+        { bbl.of space.word * series emphasize * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+        { series field.or.null }
+        { output.state mid.sentence =
+            { bbl.number }
+            { bbl.number capitalize }
+          if$
+          number tie.or.space.connect
+          series empty$
+            { "there's a number but no series in " cite$ * warning$ }
+            { bbl.in space.word * series * }
+          if$
+        }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {is.num}
+{ chr.to.int$
+  duplicate$ "0" chr.to.int$ < not
+  swap$ "9" chr.to.int$ > not and
+}
+
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+  "" 's :=
+  { t empty$ not }
+  { t #1 #1 substring$
+    t #2 global.max$ substring$ 't :=
+    duplicate$ is.num
+      { s swap$ * 's := }
+      { pop$ "" 't := }
+    if$
+  }
+  while$
+  s empty$
+    'skip$
+    { pop$ s }
+  if$
+}
+
+FUNCTION {convert.edition}
+{ edition extract.num "l" change.case$ 's :=
+  s "first" = s "1" = or
+    { bbl.first 't := }
+    { s "second" = s "2" = or
+        { bbl.second 't := }
+        { s "third" = s "3" = or
+            { bbl.third 't := }
+            { s "fourth" = s "4" = or
+                { bbl.fourth 't := }
+                { s "fifth" = s "5" = or
+                    { bbl.fifth 't := }
+                    { s #1 #1 substring$ is.num
+                        { s eng.ord 't := }
+                        { edition 't := }
+                      if$
+                    }
+                  if$
+                }
+              if$
+            }
+          if$
+        }
+      if$
+    }
+  if$
+  t
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+    { "" }
+    { output.state mid.sentence =
+        { convert.edition "l" change.case$ " " * bbl.edition * }
+        { convert.edition "t" change.case$ " " * bbl.edition * }
+      if$
+    }
+  if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+        { #1 'multiresult := }
+        { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+        { bbl.pages pages n.dashify tie.or.space.connect }
+        { bbl.page pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.journal.pages}
+{ pages empty$
+    'skip$
+    { duplicate$ empty$
+        { pop$ format.pages }
+        {
+          " " *
+          format.year * " " *
+          pages n.dashify *
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.vol.num.pages}
+{
+  % volume field.or.null
+  " "
+  volume empty$
+    { pop$ "" }
+    { volume * }
+  if$
+  number empty$
+    'skip$
+    {
+      "~(" number * ")" * *
+      volume empty$
+        { "there's a number but no volume in " cite$ * warning$ }
+        'skip$
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    { "" }
+    { type empty$
+        { bbl.chapter }
+        { type "l" change.case$ }
+      if$
+      chapter tie.or.space.connect
+    }
+  if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { editor empty$
+        { word.in booktitle * }
+        { word.in format.in.editors * ", " *
+          booktitle * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+  month empty$ year empty$ note empty$
+  and and and and and
+    { "all relevant fields are empty in " cite$ * warning$ }
+    'skip$
+  if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+    'skip$
+    { pop$
+      type "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+    { bbl.techrep }
+    'type
+  if$
+  number empty$
+    { "t" change.case$ }
+    { number tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.article.crossref}
+{
+  key empty$
+    { journal empty$
+        { "need key or journal for " cite$ * " to crossref " * crossref *
+          warning$
+          ""
+        }
+        { word.in journal emphasize * }
+      if$
+    }
+    { word.in key * " " *}
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+  editor num.names$ duplicate$
+  #2 >
+    { pop$
+      " " * bbl.etal *
+    }
+    { #2 <
+        'skip$
+        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            {
+              " " * bbl.etal *
+            }
+            { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$
+              * }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      word.in
+    }
+    { bbl.volume volume tie.or.space.connect
+      bbl.of space.word *
+    }
+  if$
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { series empty$
+            { "need editor, key, or series for " cite$ * " to crossref " *
+              crossref * warning$
+              "" *
+            }
+            { series emphasize * }
+          if$
+        }
+        { key * }
+      if$
+    }
+    { format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+        { booktitle empty$
+            { "need editor, key, or booktitle for " cite$ * " to crossref " *
+              crossref * warning$
+              ""
+            }
+            { word.in booktitle * }
+          if$
+        }
+        { word.in key * " " *}
+      if$
+    }
+    { word.in format.crossref.editor * " " *}
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.org.or.pub}
+{ 't :=
+  ""
+  year empty$
+    { "empty year in " cite$ * warning$ }
+    'skip$
+  if$
+  address empty$ t empty$ and
+  year empty$ and
+    'skip$
+    {
+      t empty$
+        { address empty$
+          'skip$
+          { address * }
+          if$
+        }
+        { t *
+          address empty$
+            'skip$
+            { ", " * address * }
+          if$
+        }
+      if$
+      year empty$
+        'skip$
+        { t empty$ address empty$ and
+            'skip$
+            { ", " * }
+          if$
+          year *
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.publisher.address}
+{ publisher empty$
+    { "empty publisher in " cite$ * warning$
+      ""
+    }
+    { publisher }
+  if$
+  format.org.or.pub
+}
+
+FUNCTION {format.organization.address}
+{ organization empty$
+    { "" }
+    { organization }
+  if$
+  format.org.or.pub
+}
+
+FUNCTION {make.href.null}
+{
+  pop$
+}
+FUNCTION {make.href.hypertex}
+{
+  "\special {html:<a href=" quote$ *
+  swap$ * quote$ * "> }" * swap$ *
+  "\special {html:</a>}" *
+}
+FUNCTION {make.href.hyperref}
+{
+  "\href {" swap$ * "} {\path{" * swap$ * "}}" *
+}
+FUNCTION {make.href}
+{ hrefform #2 =
+    'make.href.hyperref      % hrefform = 2
+    { hrefform #1 =
+        'make.href.hypertex  % hrefform = 1
+        'make.href.null      % hrefform = 0 (or anything else)
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.url}
+{ inlinelinks #1 = url empty$ or
+   { "" }
+   { hrefform #1 =
+       { % special case -- add HyperTeX specials
+         urlintro "\url{" url * "}" * url make.href.hypertex * }
+       { urlintro "\url{" * url * "}" * }
+     if$
+   }
+  if$
+}
+
+FUNCTION {format.eprint}
+{ eprint empty$
+    { "" }
+    { eprintprefix eprint * eprinturl eprint * make.href }
+  if$
+}
+
+FUNCTION {format.doi}
+{ doi empty$
+    { "" }
+    { doiprefix doi * doiurl doi * make.href }
+  if$
+}
+
+FUNCTION {output.url}
+{ url empty$
+    'skip$
+    { new.block
+      format.url output
+      format.lastchecked output
+    }
+  if$
+}
+
+FUNCTION {output.web.refs}
+{
+  new.block
+  output.url
+  addeprints eprint empty$ not and
+    { format.eprint output.nonnull }
+    'skip$
+  if$
+  adddoiresolver doi empty$ not and
+    { format.doi output.nonnull }
+    'skip$
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ outside.brackets 'bracket.state :=
+  output.bibitem.original
+  inlinelinks url empty$ not and
+    { #1 'makeinlinelink := }
+    { #0 'makeinlinelink := }
+  if$
+}
+
+FUNCTION {fin.entry}
+{ output.web.refs  % urlbst
+  makeinlinelink       % ooops, it appears we didn't have a title for inlinelink
+    { setup.inlinelink % add some artificial link text here, as a fallback
+      "[link]" output.nonnull }
+    'skip$
+  if$
+  bracket.state close.brackets = % urlbst
+    { "]" * }
+    'skip$
+  if$
+  fin.entry.original
+}
+
+FUNCTION {webpage}
+{ output.bibitem
+  author empty$
+    { editor empty$
+        'skip$  % author and editor both optional
+        { format.editors output.nonnull }
+      if$
+    }
+    { editor empty$
+        { format.authors output.nonnull }
+        { "can't use both author and editor fields in " cite$ * warning$ }
+      if$
+    }
+  if$
+  new.block
+  title empty$ 'skip$ 'setup.inlinelink if$
+  format.title "title" output.check
+  inbrackets "online" output
+  new.block
+  year empty$
+    'skip$
+    { format.date "year" output.check }
+  if$
+  % We don't need to output the URL details ('lastchecked' and 'url'),
+  % because fin.entry does that for us, using output.web.refs.  The only
+  % reason we would want to put them here is if we were to decide that
+  % they should go in front of the rather miscellaneous information in 'note'.
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  crossref missing$
+    { journal
+      "journal" output.check
+      % add.blank
+  before.all 'output.state :=
+      format.vol.num.pages output
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  format.journal.pages
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.btitle "title" output.check
+  crossref missing$
+    { format.edition output
+      format.bvolume output
+      format.number.series output
+      format.publisher.address output
+    }
+    {
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  howpublished output
+  address output
+  format.note output
+  format.date output
+  fin.entry
+  write.url
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.btitle "title" output.check
+  crossref missing$
+    {
+      format.edition output
+      format.bvolume output
+      format.number.series output
+      format.publisher.address output
+      format.chapter.pages "chapter and pages" output.check
+    }
+    {
+      format.chapter.pages "chapter and pages" output.check
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.pages "pages" output.check
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.edition output
+      format.bvolume output
+      format.number.series output
+      format.publisher.address output
+      format.chapter.pages output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  format.pages "pages" output.check
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.edition output
+      format.bvolume output
+      format.number.series output
+      publisher empty$
+        { format.organization.address output }
+        { organization output
+          format.publisher.address output
+        }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+    }
+  if$
+  format.pages "pages" output.check
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+  author empty$
+    { organization empty$
+        'skip$
+        { organization output.nonnull
+          address output
+        }
+      if$
+    }
+    { format.authors output.nonnull }
+  if$
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.btitle "title" output.check
+  author empty$
+    { organization empty$
+    {
+          address output
+        }
+        'skip$
+      if$
+    }
+    {
+      organization output
+      address output
+    }
+  if$
+  format.edition output
+  format.note output
+  format.date output
+  fin.entry
+  write.url
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  bbl.mthesis format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.note output
+  format.date "year" output.check
+  fin.entry
+  write.url
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title output
+  howpublished output
+  format.note output
+  format.date output
+  fin.entry
+  write.url
+  empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  bbl.phdthesis format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.note output
+  format.date "year" output.check
+  fin.entry
+  write.url
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  editor empty$
+    { organization output }
+    { format.editors output.nonnull }
+  if$
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  editor empty$
+    { publisher empty$
+        'skip$
+        {
+          format.publisher.address output
+        }
+      if$
+    }
+    { publisher empty$
+        {
+          format.organization.address output }
+        {
+          organization output
+          format.publisher.address output
+        }
+      if$
+     }
+  if$
+  format.note output
+  fin.entry
+  write.url
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  format.tr.number output.nonnull
+  institution "institution" output.check
+  address output
+  format.note output
+  format.date "year" output.check
+  fin.entry
+  write.url
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
+  format.title "title" output.check
+  format.note "note" output.check
+  format.date output
+  fin.entry
+  write.url
+}
+
+FUNCTION {default.type} { misc }
+
+READ
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #1 'number.label :=
+  #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+  number.label #1 + 'number.label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{"  longest.label  * "}" *
+  write$ newline$
+  "\expandafter\ifx\csname url\endcsname\relax"
+  write$ newline$
+  "  \def\url#1{\texttt{#1}}\fi"
+  write$ newline$
+  "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
+  write$ newline$
+  "\expandafter\ifx\csname href\endcsname\relax"
+  write$ newline$
+  "  \def\href#1#2{#2} \def\path#1{#1}\fi"
+  write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.urlbst.variables}
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+%% End of customized bst file
+%%
+%% End of file `elsarticle-num.bst'.
diff --git a/elsarticle.cls b/elsarticle.cls
new file mode 100644 (file)
index 0000000..1b15bce
--- /dev/null
@@ -0,0 +1,810 @@
+%%\r
+%% This is file `elsarticle.cls',\r
+%% generated with the docstrip utility.\r
+%%\r
+%% The original source files were:\r
+%%\r
+%% elsarticle.dtx  (with options: `class')\r
+%% \r
+%% Copyright 2007, 2008, 2009 Elsevier Ltd\r
+%% \r
+%% This file is part of the 'Elsarticle Bundle'.\r
+%% -------------------------------------------\r
+%% \r
+%% It may be distributed under the conditions of the LaTeX Project Public\r
+%% License, either version 1.2 of this license or (at your option) any\r
+%% later version.  The latest version of this license is in\r
+%%    http://www.latex-project.org/lppl.txt\r
+%% and version 1.2 or later is part of all distributions of LaTeX\r
+%% version 1999/12/01 or later.\r
+%% \r
+%% The list of all files belonging to the 'Elsarticle Bundle' is\r
+%% given in the file `manifest.txt'.\r
+%% \r
+%%\r
+%% $Id: elsarticle.dtx 19 2009-12-17 07:07:52Z rishi $\r
+%%\r
+ \def\RCSfile{elsarticle}%\r
+ \def\RCSversion{1.20b}%\r
+ \def\RCSdate{2009/09/17}%\r
+ \def\@shortjnl{\relax}\r
+ \def\@journal{Elsevier Ltd} \def\@company{Elsevier Ltd}\r
+ \def\@issn{000-0000}\r
+ \def\@shortjid{elsarticle}\r
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]\r
+\ProvidesClass{\@shortjid}[\RCSdate, \RCSversion: \@journal]\r
+\def\ABD{\AtBeginDocument}\r
+\newif\ifpreprint \preprintfalse\r
+\newif\iflongmktitle \longmktitlefalse\r
+\r
+\def\@blstr{1}\r
+\newdimen\@bls\r
+\@bls=\baselineskip\r
+\r
+\def\@finalWarning{%\r
+  *****************************************************\MessageBreak\r
+   This document is typeset in the CRC style which\MessageBreak\r
+   is not suitable for submission.\MessageBreak\r
+   \MessageBreak\r
+   Please typeset again using 'preprint' option\MessageBreak\r
+   for creating PDF suitable for submission.\MessageBreak\r
+  ******************************************************\MessageBreak\r
+}\r
+\r
+\DeclareOption{preprint}{\global\preprinttrue\r
+  \gdef\@blstr{1}\xdef\jtype{0}%\r
+   \AtBeginDocument{\@twosidefalse\@mparswitchfalse}}\r
+\DeclareOption{final}{\gdef\@blstr{1}\global\preprintfalse}\r
+\DeclareOption{review}{\global\preprinttrue\gdef\@blstr{1.5}}\r
+\DeclareOption{authoryear}{\xdef\@biboptions{round,authoryear}}\r
+\DeclareOption{number}{\xdef\@biboptions{numbers}}\r
+\DeclareOption{numbers}{\xdef\@biboptions{numbers}}\r
+\DeclareOption{longtitle}{\global\longmktitletrue}\r
+\DeclareOption{5p}{\xdef\jtype{5}\global\preprintfalse\r
+  \ExecuteOptions{twocolumn}}\r
+  \def\jtype{0}\r
+\DeclareOption{3p}{\xdef\jtype{3}\global\preprintfalse}\r
+\DeclareOption{1p}{\xdef\jtype{1}\global\preprintfalse\r
+  \AtBeginDocument{\@twocolumnfalse}}\r
+\DeclareOption{times}{\IfFileExists{txfonts.sty}%\r
+  {\AtEndOfClass{\RequirePackage{txfonts}%\r
+  \gdef\ttdefault{cmtt}%\r
+   \let\iint\relax\r
+  \let\iiint\relax\r
+  \let\iiiint\relax\r
+  \let\idotsint\relax\r
+  \let\openbox\relax}}{\RequirePackage{times}}}\r
+\ExecuteOptions{a4paper,10pt,oneside,onecolumn,number,preprint}\r
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}\r
+\ProcessOptions\r
+\LoadClass{article}\r
+\RequirePackage{graphicx}\r
+\let\comma\@empty\r
+\let\tnotesep\@empty\r
+\def\title#1{\gdef\@title{#1}}\r
+\let\@title\@empty\r
+\r
+\def\elsLabel#1{\@bsphack\protected@write\@auxout{}%\r
+         {\string\Newlabel{#1}{\@currentlabel}}\@esphack}\r
+\def\Newlabel#1#2{\expandafter\xdef\csname X@#1\endcsname{#2}}\r
+\r
+\def\elsRef#1{\@ifundefined{X@#1}{0}{\csname X@#1\endcsname}%\r
+}\r
+\r
+\def\tnotemark[#1]{\textsuperscript{\@for\@@tmark:=#1\do{%\r
+      \edef\tnotenum{\@ifundefined{X@\@@tmark}{1}{\elsRef{\@@tmark}}}%\r
+      \ifcase\tnotenum\or\ding{73}\or,\ding{73}\ding{73}\fi}}%\r
+}\r
+\let\@tnotemark\@empty\r
+\r
+\let\@tnotes\@empty\r
+\RequirePackage{pifont}\r
+\newcounter{tnote}\r
+\def\tnotetext[#1]#2{\g@addto@macro\@tnotes{%\r
+  \refstepcounter{tnote}\elsLabel{#1}%\r
+   \def\thefootnote{\ifcase\c@tnote\or\ding{73}\or\ding{73}\ding{73}\fi}%\r
+    \footnotetext{#2}}}\r
+\r
+\let\@nonumnotes\@empty\r
+\def\nonumnote#1{\g@addto@macro\@nonumnotes{%\r
+     \let\thefootnote\relax\footnotetext{#1}}}\r
+\r
+\newcounter{fnote}\r
+\def\fnmark[#1]{\let\comma\@empty\r
+    \def\@fnmark{\@for\@@fnmark:=#1\do{%\r
+    \edef\fnotenum{\@ifundefined{X@\@@fnmark}{1}{\elsRef{\@@fnmark}}}%\r
+  \unskip\comma\fnotenum\let\comma,}}%\r
+}\r
+\r
+\let\@fnotes\@empty\let\@fnmark\@empty\r
+\def\fntext[#1]#2{\g@addto@macro\@fnotes{%\r
+     \refstepcounter{fnote}\elsLabel{#1}%\r
+   \def\thefootnote{\thefnote}%\r
+   \global\setcounter{footnote}{\thefnote}%\r
+   \footnotetext{#2}}}\r
+\r
+\def\cormark[#1]{\edef\cnotenum{\elsRef{#1}}%\r
+    \unskip\textsuperscript{\sep\ifcase\cnotenum\or\r
+       $\ast$\or$\ast\ast$\fi\hspace{-1pt}}\let\sep=,}\r
+\r
+\let\@cormark\@empty\r
+\let\@cornotes\@empty\r
+\newcounter{cnote}\r
+\def\cortext[#1]#2{\g@addto@macro\@cornotes{%\r
+    \refstepcounter{cnote}\elsLabel{#1}%\r
+    \def\thefootnote{\ifcase\thecnote\or$\ast$\or\r
+    $\ast\ast$\fi}%\r
+    \footnotetext{#2}}}\r
+\r
+\let\@corref\@empty\r
+\def\corref#1{\edef\cnotenum{\elsRef{#1}}%\r
+    \edef\@corref{\ifcase\cnotenum\or\r
+         $\ast$\or$\ast\ast$\fi\hskip-1pt}}\r
+\r
+\def\fnref#1{\fnmark[#1]}\r
+\def\tnoteref#1{\tnotemark[#1]}\r
+\r
+\def\resetTitleCounters{\c@cnote=0\r
+   \c@fnote=0 \c@tnote=0 \c@footnote=0}\r
+\r
+\let\eadsep\@empty\r
+\let\@elseads\@empty\r
+\let\@elsuads\@empty\r
+\let\@cormark\@empty\r
+\def\hashchar{\expandafter\@gobble\string\~}\r
+\def\underscorechar{\expandafter\@gobble\string\_}\r
+\def\lbracechar{\expandafter\@gobble\string\{}\r
+\def\rbracechar{\expandafter\@gobble\string\}}\r
+\r
+\def\ead{\@ifnextchar[{\@uad}{\@ead}}\r
+\gdef\@ead#1{\bgroup\def\_{\string\underscorechar\space}%\r
+  \def\{{\string\lbracechar\space}%\r
+   \def~{\hashchar\space}%\r
+   \def\}{\string\rbracechar\space}%\r
+   \edef\tmp{\the\@eadauthor}\r
+   \immediate\write\@auxout{\string\emailauthor\r
+     {#1}{\expandafter\strip@prefix\meaning\tmp}}%\r
+  \egroup\r
+}\r
+\newcounter{ead}\r
+\gdef\emailauthor#1#2{\stepcounter{ead}%\r
+     \g@addto@macro\@elseads{\raggedright%\r
+      \let\corref\@gobble\r
+      \eadsep\texttt{#1} (#2)\def\eadsep{\unskip,\space}}%\r
+}\r
+\gdef\@uad[#1]#2{\bgroup\r
+  \def~{\string\hashchar\space}%\r
+  \def\_{\string\underscorechar\space}%\r
+   \edef\tmp{\the\@eadauthor}\r
+   \immediate\write\@auxout{\string\urlauthor\r
+     {#2}{\expandafter\strip@prefix\meaning\tmp}}%\r
+  \egroup\r
+}\r
+\def\urlauthor#1#2{\g@addto@macro\@elsuads{\let\corref\@gobble%\r
+     \raggedright\eadsep\texttt{#1}\space(#2)%\r
+     \def\eadsep{\unskip,\space}}%\r
+}\r
+\r
+\def\elsauthors{}\r
+\def\pprinttitle{}\r
+\let\authorsep\@empty\r
+\let\sep\@empty\r
+\newcounter{author}\r
+\def\author{\@ifnextchar[{\@@author}{\@author}}\r
+\r
+\newtoks\@eadauthor\r
+\def\@@author[#1]#2{\g@addto@macro\elsauthors{%\r
+    \def\baselinestretch{1}%\r
+    \authorsep#2\unskip\textsuperscript{%#1%\r
+      \@for\@@affmark:=#1\do{%\r
+       \edef\affnum{\@ifundefined{X@\@@affmark}{1}{\elsRef{\@@affmark}}}%\r
+     \unskip\sep\affnum\let\sep=,}%\r
+      \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi\r
+      \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi\r
+      }%\r
+    \def\authorsep{\unskip,\space}%\r
+    \global\let\sep\@empty\global\let\@corref\@empty\r
+    \global\let\@fnmark\@empty}%\r
+    \@eadauthor={#2}\r
+}\r
+\r
+\def\@author#1{\g@addto@macro\elsauthors{\normalsize%\r
+    \def\baselinestretch{1}%\r
+    \upshape\authorsep#1\unskip\textsuperscript{%\r
+      \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi\r
+      \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi\r
+      }%\r
+    \def\authorsep{\unskip,\space}%\r
+    \global\let\@fnmark\@empty\r
+    \global\let\@corref\@empty\r
+    \global\let\sep\@empty}%\r
+    \@eadauthor={#1}\r
+}\r
+\r
+\def\elsaddress{}\r
+\def\addsep{\par\vskip6pt}\r
+\def\address{\@ifnextchar[{\@@address}{\@address}}\r
+\r
+\def\@alph#1{%\r
+  \ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or\r
+  l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or\r
+  y\or z%\r
+  \or aa\or ab\or ac\or ad\or ae\or af\or ag\or ah\or ai\or aj\or\r
+  ak\or al\or am\or an\or ao\or ap\or aq\or ar\or as\or at\or au\or\r
+  av\or aw\or ax\or ay\or az%\r
+  \or ba\or bb\or bc\or bd\or be\or bf\or bg\or bh\or bi\or bj\or\r
+  bk\or bl\or bm\or bn\or bo\or bp\or bq\or br\or bs\or bt\or bu\or\r
+  bv\or bw\or bx\or by\or bz%\r
+  \or ca\or cb\or cc\or cd\or ce\or cf\or cg\or ch\or ci\or cj\or\r
+  ck\or cl\or cm\or cn\or co\or cp\or cq\or cr\or cs\or ct\or cu\or\r
+  cv\or cw\or cx\or cy\or cz%\r
+  \or da\or db\or dc\or dd\or de\or df\or dg\or dh\or di\or dj\or\r
+  dk\or dl\or dm\or dn\or do\or dp\or dq\or dr\or ds\or dt\or du\or\r
+  dv\or dw\or dx\or dy\or dz%\r
+  \or ea\or eb\or ec\or ed\or ee\or ef\or eg\or eh\or ei\or ej\or\r
+  ek\or el\or em\or en\or eo\or ep\or eq\or er\or es\or et\or eu\or\r
+  ev\or ew\or ex\or ey\or ez%\r
+  \or fa\or fb\or fc\or fd\or fe\or ff\or fg\or fh\or fi\or fj\or\r
+  fk\or fl\or fm\or fn\or fo\or fp\or fq\or fr\or fs\or ft\or fu\or\r
+  fv\or fw\or fx\or fy\or fz%\r
+  \or ga\or gb\or gc\or gd\or ge\or gf\or gg\or gh\or gi\or gj\or\r
+  gk\or gl\or gm\or gn\or go\or gp\or gq\or gr\or gs\or gt\or gu\or\r
+  gv\or gw\or gx\or gy\or gz%\r
+  \else\@ctrerr\fi}\r
+\r
+\newcounter{affn}\r
+\renewcommand\theaffn{\alph{affn}}\r
+\r
+\long\def\@@address[#1]#2{\g@addto@macro\elsaddress{%\r
+    \def\baselinestretch{1}%\r
+     \refstepcounter{affn}\r
+     \xdef\@currentlabel{\theaffn}\r
+     \elsLabel{#1}%\r
+    \textsuperscript{\theaffn}#2\par}}\r
+\r
+\long\def\@address#1{\g@addto@macro\elsauthors{%\r
+    \def\baselinestretch{1}%\r
+    \addsep\footnotesize\itshape#1\def\addsep{\par\vskip6pt}%\r
+    \def\authorsep{\par\vskip8pt}}}\r
+\r
+\newbox\absbox\r
+\renewenvironment{abstract}{\global\setbox\absbox=\vbox\bgroup\r
+  \hsize=\textwidth\def\baselinestretch{1}%\r
+  \noindent\unskip\textbf{Abstract}\r
+ \par\medskip\noindent\unskip\ignorespaces}\r
+ {\egroup}\r
+\r
+\newbox\keybox\r
+\def\keyword{%\r
+  \def\sep{\unskip, }%\r
+ \def\MSC{\@ifnextchar[{\@MSC}{\@MSC[2000]}}\r
+  \def\@MSC[##1]{\par\leavevmode\hbox {\it ##1~MSC:\space}}%\r
+  \def\PACS{\par\leavevmode\hbox {\it PACS:\space}}%\r
+  \def\JEL{\par\leavevmode\hbox {\it JEL:\space}}%\r
+  \global\setbox\keybox=\vbox\bgroup\hsize=\textwidth\r
+  \normalsize\normalfont\def\baselinestretch{1}\r
+  \parskip\z@\r
+  \noindent\textit{Keywords: }\r
+  \raggedright                         % Keywords are not justified.\r
+  \ignorespaces}\r
+\def\endkeyword{\par \egroup}\r
+\r
+\newdimen\Columnwidth\r
+\Columnwidth=\columnwidth\r
+\r
+\def\printFirstPageNotes{%\r
+  \iflongmktitle\r
+   \let\columnwidth=\textwidth\fi\r
+  \ifx\@tnotes\@empty\else\@tnotes\fi\r
+  \ifx\@nonumnotes\@empty\else\@nonumnotes\fi\r
+  \ifx\@cornotes\@empty\else\@cornotes\fi\r
+  \ifx\@elseads\@empty\relax\else\r
+   \let\thefootnote\relax\r
+   \footnotetext{\ifnum\theead=1\relax\r
+      \textit{Email address:\space}\else\r
+      \textit{Email addresses:\space}\fi\r
+     \@elseads}\fi\r
+  \ifx\@elsuads\@empty\relax\else\r
+   \let\thefootnote\relax\r
+   \footnotetext{\textit{URL:\space}%\r
+     \@elsuads}\fi\r
+  \ifx\@fnotes\@empty\else\@fnotes\fi\r
+  \iflongmktitle\if@twocolumn\r
+   \let\columnwidth=\Columnwidth\fi\fi\r
+}\r
+\r
+\long\def\pprintMaketitle{\clearpage\r
+  \iflongmktitle\if@twocolumn\let\columnwidth=\textwidth\fi\fi\r
+  \resetTitleCounters\r
+  \def\baselinestretch{1}%\r
+  \printFirstPageNotes\r
+  \begin{center}%\r
+ \thispagestyle{pprintTitle}%\r
+   \def\baselinestretch{1}%\r
+    \Large\@title\par\vskip18pt\r
+    \normalsize\elsauthors\par\vskip10pt\r
+    \footnotesize\itshape\elsaddress\par\vskip36pt\r
+    \hrule\vskip12pt\r
+    \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi\r
+    \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi\r
+    \hrule\vskip12pt\r
+    \end{center}%\r
+  \gdef\thefootnote{\arabic{footnote}}%\r
+  }\r
+\r
+\def\printWarning{%\r
+     \mbox{}\par\vfill\par\bgroup\r
+     \fboxsep12pt\fboxrule1pt\r
+     \hspace*{.18\textwidth}\r
+     \fcolorbox{gray50}{gray10}{\box\warnbox}\r
+     \egroup\par\vfill\thispagestyle{empty}\r
+     \setcounter{page}{0}\r
+     \clearpage}\r
+\r
+\long\def\finalMaketitle{%\r
+  \resetTitleCounters\r
+  \def\baselinestretch{1}%\r
+   \MaketitleBox\r
+   \thispagestyle{pprintTitle}%\r
+  \gdef\thefootnote{\arabic{footnote}}%\r
+  }\r
+\r
+\long\def\MaketitleBox{%\r
+  \resetTitleCounters\r
+  \def\baselinestretch{1}%\r
+  \begin{center}%\r
+   \def\baselinestretch{1}%\r
+    \Large\@title\par\vskip18pt\r
+    \normalsize\elsauthors\par\vskip10pt\r
+    \footnotesize\itshape\elsaddress\par\vskip36pt\r
+    \hrule\vskip12pt\r
+    \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi\r
+    \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi\r
+    \hrule\vskip12pt\r
+    \end{center}%\r
+  }\r
+\r
+\def\FNtext#1{\par\bgroup\footnotesize#1\egroup}\r
+\newdimen\space@left\r
+\def\alarm#1{\typeout{******************************}%\r
+             \typeout{#1}%\r
+             \typeout{******************************}%\r
+}\r
+\long\def\getSpaceLeft{%\global\@twocolumnfalse%\r
+   \global\setbox0=\vbox{\hsize=\textwidth\MaketitleBox}%\r
+   \global\setbox1=\vbox{\hsize=\textwidth\r
+    \let\footnotetext\FNtext\r
+    \printFirstPageNotes}%\r
+    \xdef\noteheight{\the\ht1}%\r
+    \xdef\titleheight{\the\ht0}%\r
+    \@tempdima=\vsize\r
+    \advance\@tempdima-\noteheight\r
+    \advance\@tempdima-1\baselineskip\r
+}\r
+\r
+  \skip\footins=24pt\r
+\r
+\newbox\els@boxa\r
+\newbox\els@boxb\r
+\r
+\ifpreprint\r
+  \def\maketitle{\pprintMaketitle}\r
+  \else\r
+   \ifnum\jtype=1\r
+    \def\maketitle{%\r
+      \iflongmktitle\getSpaceLeft\r
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima\r
+       \box\els@boxa\par\resetTitleCounters\r
+       \thispagestyle{pprintTitle}%\r
+       \printFirstPageNotes\r
+       \box0%\r
+      \else\r
+       \finalMaketitle\printFirstPageNotes\r
+      \fi\r
+    \gdef\thefootnote{\arabic{footnote}}}%\r
+  \else\r
+ \ifnum\jtype=5\r
+    \def\maketitle{%\r
+      \iflongmktitle\getSpaceLeft\r
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima\r
+       \box\els@boxa\par\resetTitleCounters\r
+       \thispagestyle{pprintTitle}%\r
+       \printFirstPageNotes\r
+       \twocolumn[\box0]%\printFirstPageNotes\r
+      \else\r
+       \twocolumn[\finalMaketitle]\printFirstPageNotes\r
+     \fi\r
+     \gdef\thefootnote{\arabic{footnote}}}\r
+  \else\r
+  \if@twocolumn\r
+    \def\maketitle{%\r
+      \iflongmktitle\getSpaceLeft\r
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima\r
+       \box\els@boxa\par\resetTitleCounters\r
+       \thispagestyle{pprintTitle}%\r
+       \printFirstPageNotes\r
+       \twocolumn[\box0]%\r
+      \else\r
+       \twocolumn[\finalMaketitle]\printFirstPageNotes\r
+      \fi\r
+     \gdef\thefootnote{\arabic{footnote}}}%\r
+   \else\r
+    \def\maketitle{%\r
+      \iflongmktitle\getSpaceLeft\r
+       \global\setbox\els@boxa=\vsplit0 to \@tempdima\r
+       \box\els@boxa\par\resetTitleCounters\r
+       \thispagestyle{pprintTitle}%\r
+       \printFirstPageNotes\r
+       \box0%\r
+     \else\r
+       \finalMaketitle\printFirstPageNotes\r
+      \fi\r
+    \gdef\thefootnote{\arabic{footnote}}}%\r
+   \fi\r
+  \fi\r
+ \fi\r
+\fi\r
+\def\ps@pprintTitle{%\r
+     \let\@oddhead\@empty\r
+     \let\@evenhead\@empty\r
+     \def\@oddfoot{\footnotesize\itshape\r
+       Preprint submitted to \ifx\@journal\@empty Elsevier\r
+       \else\@journal\fi\hfill\today}%\r
+     \let\@evenfoot\@oddfoot}\r
+\def\@seccntDot{.}\r
+\def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em}\r
+\r
+\renewcommand\section{\@startsection {section}{1}{\z@}%\r
+           {18\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {9\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {\normalsize\bfseries\boldmath}}\r
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%\r
+           {12\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {3\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {\normalfont\normalsize\itshape}}\r
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%\r
+           {12\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {\p@}%\r
+           {\normalfont\normalsize\itshape}}\r
+\r
+\def\paragraph{\secdef{\els@aparagraph}{\els@bparagraph}}\r
+\def\els@aparagraph[#1]#2{\elsparagraph[#1]{#2.}}\r
+\def\els@bparagraph#1{\elsparagraph*{#1.}}\r
+\r
+\newcommand\elsparagraph{\@startsection{paragraph}{4}{0\z@}%\r
+           {10\p@ \@plus 6\p@ \@minus 3\p@}%\r
+           {-6\p@}%\r
+           {\normalfont\itshape}}\r
+\newdimen\leftMargin\r
+\leftMargin=2em\r
+\newtoks\@enLab  %\newtoks\@enfont\r
+\def\@enQmark{?}\r
+\def\@enLabel#1#2{%\r
+  \edef\@enThe{\noexpand#1{\@enumctr}}%\r
+  \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}%\r
+  \@enloop}\r
+\def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= }\r
+\def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop}\r
+\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop}\r
+\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop}\r
+\def\@enloop{\futurelet\@entemp\@enloop@}\r
+\def\@enloop@{%\r
+  \ifx A\@entemp         \def\@tempa{\@enLabel\Alph  }\else\r
+  \ifx a\@entemp         \def\@tempa{\@enLabel\alph  }\else\r
+  \ifx i\@entemp         \def\@tempa{\@enLabel\roman }\else\r
+  \ifx I\@entemp         \def\@tempa{\@enLabel\Roman }\else\r
+  \ifx 1\@entemp         \def\@tempa{\@enLabel\arabic}\else\r
+  \ifx \@sptoken\@entemp \let\@tempa\@enSpace         \else\r
+  \ifx \bgroup\@entemp   \let\@tempa\@enGroup         \else\r
+  \ifx \@enum@\@entemp   \let\@tempa\@gobble          \else\r
+                         \let\@tempa\@enOther\r
+             \fi\fi\fi\fi\fi\fi\fi\fi\r
+  \@tempa}\r
+\newlength{\@sep} \newlength{\@@sep}\r
+\setlength{\@sep}{.5\baselineskip plus.2\baselineskip\r
+            minus.2\baselineskip}\r
+\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip\r
+            minus.05\baselineskip}\r
+\providecommand{\sfbc}{\rmfamily\upshape}\r
+\providecommand{\sfn}{\rmfamily\upshape}\r
+\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt}\r
+\def\enumerate{%\r
+   \ifnum \@enumdepth >3 \@toodeep\else\r
+      \advance\@enumdepth \@ne\r
+      \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi\r
+   \@ifnextchar[{\@@enum@}{\@enum@}}\r
+\def\@@enum@[#1]{%\r
+  \@enLab{}\let\@enThe\@enQmark\r
+  \@enloop#1\@enum@\r
+  \ifx\@enThe\@enQmark\@warning{The counter will not be printed.%\r
+   ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi\r
+  \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}%\r
+  \expandafter\let\csname the\@enumctr\endcsname\@enThe\r
+  \csname c@\@enumctr\endcsname7\r
+  \expandafter\settowidth\r
+            \csname leftmargin\romannumeral\@enumdepth\endcsname\r
+            {\the\@enLab\hskip\labelsep}%\r
+  \@enum@}\r
+\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}%\r
+           {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}%\r
+     \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else\r
+           \setlength{\topsep}{\@sep}\fi\r
+     \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}%\r
+      \else \setlength{\itemsep}{\@@sep}\fi\r
+     %\setlength\leftmargin{\leftMargin}%%%{1.8em}\r
+     \setlength{\parsep}{0pt plus1pt minus1pt}%\r
+     \setlength{\parskip}{0pt plus1pt minus1pt}\r
+                   }}\r
+\r
+\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else\r
+           \addvspace{\@sep}\fi \endlist}\r
+\r
+\def\sitem{\@noitemargtrue\@item[\@itemlabel *]}\r
+\r
+\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}}\r
+\r
+\def\@Itemize[#1]{\def\next{#1}%\r
+  \ifnum \@itemdepth >\thr@@\@toodeep\else\r
+   \advance\@itemdepth\@ne\r
+  \ifx\next\@empty\else\expandafter\def\csname\r
+   labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi%\r
+  \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%\r
+  \expandafter\list\csname\@itemitem\endcsname\r
+  {\def\makelabel##1{\hss\llap{##1}}}%\r
+ \fi}\r
+\def\newdefinition#1{%\r
+  \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%]\r
+\def\@ndfn#1#2{%\r
+  \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}}\r
+\def\@xndfn#1#2[#3]{%\r
+  \expandafter\@ifdefinable\csname #1\endcsname\r
+    {\@definecounter{#1}\@newctr{#1}[#3]%\r
+     \expandafter\xdef\csname the#1\endcsname{%\r
+       \expandafter\noexpand\csname the#3\endcsname \@dfncountersep\r
+          \@dfncounter{#1}}%\r
+     \global\@namedef{#1}{\@dfn{#1}{#2}}%\r
+     \global\@namedef{end#1}{\@enddefinition}}}\r
+\def\@yndfn#1#2{%\r
+  \expandafter\@ifdefinable\csname #1\endcsname\r
+    {\@definecounter{#1}%\r
+     \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}%\r
+     \global\@namedef{#1}{\@dfn{#1}{#2}}%\r
+     \global\@namedef{end#1}{\@enddefinition}}}\r
+\def\@odfn#1[#2]#3{%\r
+  \@ifundefined{c@#2}{\@nocounterr{#2}}%\r
+    {\expandafter\@ifdefinable\csname #1\endcsname\r
+    {\global\@namedef{the#1}{\@nameuse{the#2}}\r
+  \global\@namedef{#1}{\@dfn{#2}{#3}}%\r
+  \global\@namedef{end#1}{\@enddefinition}}}}\r
+\def\@dfn#1#2{%\r
+  \refstepcounter{#1}%\r
+  \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}}\r
+\def\@xdfn#1#2{%\r
+  \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces}\r
+\def\@ydfn#1#2[#3]{%\r
+  \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces}\r
+\def\@dfncounter#1{\noexpand\arabic{#1}}\r
+\def\@dfncountersep{.}\r
+\def\@begindefinition#1#2{\trivlist\r
+   \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape}\r
+\def\@opargbegindefinition#1#2#3{\trivlist\r
+      \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape}\r
+\def\@enddefinition{\endtrivlist}\r
+\r
+\def\@begintheorem#1#2{\trivlist\r
+  \let\baselinestretch\@blstr\r
+   \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape}\r
+\def\@opargbegintheorem#1#2#3{\trivlist\r
+  \let\baselinestretch\@blstr\r
+      \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape}\r
+\r
+\def\newproof#1{%\r
+  \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}}\r
+\def\@nprf#1#2{%\r
+  \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}}\r
+\def\@xnprf#1#2[#3]{%\r
+  \expandafter\@ifdefinable\csname #1\endcsname\r
+    {\@definecounter{#1}\@newctr{#1}[#3]%\r
+     \expandafter\xdef\csname the#1\endcsname{%\r
+       \expandafter\noexpand\csname the#3\endcsname \@prfcountersep\r
+          \@prfcounter{#1}}%\r
+     \global\@namedef{#1}{\@prf{#1}{#2}}%\r
+     \global\@namedef{end#1}{\@endproof}}}\r
+\def\@ynprf#1#2{%\r
+  \expandafter\@ifdefinable\csname #1\endcsname\r
+    {\@definecounter{#1}%\r
+     \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}%\r
+     \global\@namedef{#1}{\@prf{#1}{#2}}%\r
+     \global\@namedef{end#1}{\@endproof}}}\r
+\def\@oprf#1[#2]#3{%\r
+  \@ifundefined{c@#2}{\@nocounterr{#2}}%\r
+    {\expandafter\@ifdefinable\csname #1\endcsname\r
+    {\global\@namedef{the#1}{\@nameuse{the#2}}%\r
+  \global\@namedef{#1}{\@prf{#2}{#3}}%\r
+  \global\@namedef{end#1}{\@endproof}}}}\r
+\def\@prf#1#2{%\r
+  \refstepcounter{#1}%\r
+  \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}}\r
+\def\@xprf#1#2{%\r
+  \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces}\r
+\def\@yprf#1#2[#3]{%\r
+  \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces}\r
+\def\@prfcounter#1{\noexpand\arabic{#1}}\r
+\def\@prfcountersep{.}\r
+\def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr\r
+   \item[\hskip \labelsep{\scshape #1.}]\rmfamily}\r
+\def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr\r
+      \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily}\r
+\def\@endproof{\endtrivlist}\r
+\newcommand*{\qed}{\hbox{}\hfill$\Box$}\r
+\r
+\@ifundefined{@biboptions}{\xdef\@biboptions{numbers}}{}\r
+\InputIfFileExists{\jobname.spl}{}{}\r
+\RequirePackage[\@biboptions]{natbib}\r
+\r
+\newwrite\splwrite\r
+\immediate\openout\splwrite=\jobname.spl\r
+\def\biboptions#1{\def\next{#1}\immediate\write\splwrite{%\r
+   \string\g@addto@macro\string\@biboptions{%\r
+    ,\expandafter\strip@prefix\meaning\next}}}\r
+\r
+\let\baselinestretch=\@blstr\r
+\r
+\ifnum\jtype=1\r
+ \RequirePackage{geometry}\r
+ \geometry{twoside,\r
+  paperwidth=210mm,\r
+  paperheight=297mm,\r
+  textheight=562pt,\r
+  textwidth=384pt,\r
+  centering,\r
+  headheight=50pt,\r
+  headsep=12pt,\r
+  footskip=12pt,\r
+  footnotesep=24pt plus 2pt minus 12pt,\r
+ }\r
+ \global\let\bibfont=\footnotesize\r
+ \global\bibsep=0pt\r
+ \if@twocolumn\global\@twocolumnfalse\fi\r
+\else\ifnum\jtype=3\r
+ \RequirePackage{geometry}\r
+ \geometry{twoside,\r
+  paperwidth=210mm,\r
+  paperheight=297mm,\r
+  textheight=622pt,\r
+  textwidth=468pt,\r
+  centering,\r
+  headheight=50pt,\r
+  headsep=12pt,\r
+  footskip=18pt,\r
+  footnotesep=24pt plus 2pt minus 12pt,\r
+  columnsep=2pc\r
+ }\r
+ \global\let\bibfont=\footnotesize\r
+ \global\bibsep=0pt\r
+ \if@twocolumn\input{fleqn.clo}\fi\r
+\else\ifnum\jtype=5\r
+ \RequirePackage{geometry}\r
+ \geometry{twoside,\r
+  paperwidth=210mm,\r
+  paperheight=297mm,\r
+  textheight=682pt,\r
+  textwidth=522pt,\r
+  centering,\r
+ headheight=50pt,\r
+  headsep=12pt,\r
+  footskip=18pt,\r
+  footnotesep=24pt plus 2pt minus 12pt,\r
+  columnsep=18pt\r
+ }%\r
+ \global\let\bibfont=\footnotesize\r
+ \global\bibsep=0pt\r
+ \input{fleqn.clo}\r
+ \global\@twocolumntrue\r
+%%\r
+%% End of option '5p'\r
+%%\r
+\fi\fi\fi\r
+\def\journal#1{\gdef\@journal{#1}}\r
+ \let\@journal\@empty\r
+\newenvironment{frontmatter}{}{\maketitle}\r
+\r
+\long\def\@makecaption#1#2{%\r
+  \vskip\abovecaptionskip\footnotesize\r
+  \sbox\@tempboxa{#1: #2}%\r
+  \ifdim \wd\@tempboxa >\hsize\r
+    #1: #2\par\r
+  \else\r
+    \global \@minipagefalse\r
+    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%\r
+  \fi\r
+  \vskip\belowcaptionskip}\r
+\r
+\AtBeginDocument{\@ifpackageloaded{hyperref}\r
+  {\def\@linkcolor{blue}\r
+   \def\@anchorcolor{blue}\r
+   \def\@citecolor{blue}\r
+   \def\@filecolor{blue}\r
+   \def\@urlcolor{blue}\r
+   \def\@menucolor{blue}\r
+   \def\@pagecolor{blue}\r
+\begingroup\r
+  \@makeother\`%\r
+  \@makeother\=%\r
+  \edef\x{%\r
+    \edef\noexpand\x{%\r
+      \endgroup\r
+      \noexpand\toks@{%\r
+        \catcode 96=\noexpand\the\catcode`\noexpand\`\relax\r
+        \catcode 61=\noexpand\the\catcode`\noexpand\=\relax\r
+      }%\r
+    }%\r
+    \noexpand\x\r
+  }%\r
+\x\r
+\@makeother\`\r
+\@makeother\=\r
+}{}}\r
+%%\r
+\def\appendixname{Appendix }\r
+\renewcommand\appendix{\par\r
+  \setcounter{section}{0}%\r
+  \setcounter{subsection}{0}%\r
+  \setcounter{equation}{0}\r
+  \gdef\thefigure{\@Alph\c@section.\arabic{figure}}%\r
+  \gdef\thetable{\@Alph\c@section.\arabic{table}}%\r
+  \gdef\thesection{\appendixname~\@Alph\c@section}%\r
+  \@addtoreset{equation}{section}%\r
+  \gdef\theequation{\@Alph\c@section.\arabic{equation}}%\r
+  \addtocontents{toc}{\string\let\string\numberline\string\tmptocnumberline}{}{}\r
+}\r
+\r
+%%%% \numberline width calculation for appendix.\r
+\newdimen\appnamewidth\r
+\def\tmptocnumberline#1{%\r
+   \setbox0=\hbox{\appendixname}\r
+   \appnamewidth=\wd0\r
+   \addtolength\appnamewidth{2.5pc}\r
+   \hb@xt@\appnamewidth{#1\hfill}\r
+}\r
+\r
+%% Added for work with amsrefs.sty\r
+\r
+\@ifpackageloaded{amsrefs}%\r
+  {}\r
+  {%\let\bibsection\relax%\r
+  \AtBeginDocument{\def\cites@b#1#2,#3{%\r
+    \begingroup[%\r
+        \toks@{\InnerCite{#2}#1}%\r
+        \ifx\@empty#3\@xp\@gobble\fi\r
+        \cites@c#3%\r
+}}}\r
+%%\r
+%% Added for avoiding clash with cleveref.sty\r
+\r
+\@ifpackageloaded{cleveref}%\r
+ {}\r
+ {\def\tnotetext[#1]#2{\g@addto@macro\@tnotes{%\r
+    \refstepcounter{tnote}%\r
+    \immediate\write\@auxout{\string\Newlabel{#1}{\thetnote}}\r
+    \def\thefootnote{\ifcase\c@tnote\or\ding{73}\or\ding{73}\ding{73}\fi}%\r
+    \footnotetext{#2}}}\r
+%%%\r
+  \def\fntext[#1]#2{\g@addto@macro\@fnotes{%\r
+    \refstepcounter{fnote}%\r
+    \immediate\write\@auxout{\string\Newlabel{#1}{\thefnote}}\r
+    \def\thefootnote{\thefnote}%\r
+    \global\setcounter{footnote}{\thefnote}%\r
+    \footnotetext{#2}}}\r
+%%%\r
+  \def\cortext[#1]#2{\g@addto@macro\@cornotes{%\r
+    \refstepcounter{cnote}%\r
+    \immediate\write\@auxout{\string\Newlabel{#1}{\thecnote}}\r
+    \def\thefootnote{\ifcase\thecnote\or$\ast$\or\r
+    $\ast\ast$\fi}%\r
+    \footnotetext{#2}}}\r
+}\r
+\endinput\r
+%%\r
+%% End of file `elsarticle.cls'.\r
+\r