-
Notifications
You must be signed in to change notification settings - Fork 3
/
cv.tex
568 lines (486 loc) · 21.8 KB
/
cv.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%% Simple LaTeX CV Template %%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% NOTE: If you find that it says %%
%% %%
%% 1 of ?? %%
%% %%
%% at the bottom of your first page, this means that the AUX file %%
%% was not available when you ran LaTeX on this source. Simply RERUN %%
%% LaTeX to get the ``??'' replaced with the number of the last page %%
%% of the document. The AUX file will be generated on the first run %%
%% of LaTeX and used on the second run to fill in all of the %%
%% references. %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%% Document Setup %%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Don't like 10pt? Try 11pt or 12pt
\documentclass[10pt]{article}
% This is a helpful package that puts math inside length specifications
\usepackage{calc}
% Layout: Puts the section titles on left side of page
\reversemarginpar
%
% PAPER SIZE, PAGE NUMBER, AND DOCUMENT LAYOUT NOTES:
%
% The next \usepackage line changes the layout for CV style section
% headings as marginal notes. It also sets up the paper size as either
% letter or A4. By default, letter was used. If A4 paper is desired,
% comment out the letterpaper lines and uncomment the a4paper lines.
%
% As you can see, the margin widths and section title widths can be
% easily adjusted.
%
% ALSO: Notice that the includefoot option can be commented OUT in order
% to put the PAGE NUMBER *IN* the bottom margin. This will make the
% effective text area larger.
%
% IF YOU WISH TO REMOVE THE ``of LASTPAGE'' next to each page number,
% see the note about the +LP and -LP lines below. Comment out the +LP
% and uncomment the -LP.
%
% IF YOU WISH TO REMOVE PAGE NUMBERS, be sure that the includefoot line
% is uncommented and ALSO uncomment the \pagestyle{empty} a few lines
% below.
%
%% Use these lines for letter-sized paper
% \usepackage[paper=letterpaper,
% %includefoot, % Uncomment to put page number above margin
% marginparwidth=1.2in, % Length of section titles
% marginparsep=.05in, % Space between titles and text
% margin=1in, % 1 inch margins
% includemp]{geometry}
%% Use these lines for A4-sized paper
\usepackage[paper=a4paper,
%includefoot, % Uncomment to put page number above margin
marginparwidth=30.5mm, % Length of section titles
marginparsep=1.5mm, % Space between titles and text
margin=25mm, % 25mm margins
includemp]{geometry}
%% More layout: Get rid of indenting throughout entire document
\setlength{\parindent}{0in}
%% This gives us fun enumeration environments. compactenum will be nice.
\usepackage{paralist}
\usepackage[T1]{fontenc}
\usepackage[medfamily,opticals,mathlf,minionint,loosequotes,mathtabular]{MinionPro}
\usepackage[scaled=.9]{blgothic}
\usepackage{microtype}
%% Reference the last page in the page number
%
% NOTE: comment the +LP line and uncomment the -LP line to have page
% numbers without the ``of ##'' last page reference)
%
% NOTE: uncomment the \pagestyle{empty} line to get rid of all page
% numbers (make sure includefoot is commented out above)
%
\usepackage{fancyhdr,lastpage}
\pagestyle{fancy}
%\pagestyle{empty} % Uncomment this to get rid of page numbers
\fancyhf{}\renewcommand{\headrulewidth}{0pt}
\fancyfootoffset{\marginparsep+\marginparwidth}
\newlength{\footpageshift}
\setlength{\footpageshift}
{0.5\textwidth+0.5\marginparsep+0.5\marginparwidth-2in}
\lfoot{\hspace{\footpageshift}%
\parbox{4in}{\, \hfill %
\arabic{page} of \protect\pageref*{LastPage} % +LP
% \arabic{page} % -LP
\hfill \,}}
% Finally, give us PDF bookmarks
\usepackage{color,hyperref}
\definecolor{darkblue}{rgb}{0.0,0.0,0.3}
\hypersetup{colorlinks,breaklinks,
linkcolor=darkblue,urlcolor=darkblue,
anchorcolor=darkblue,citecolor=darkblue}
%%%%%%%%%%%%%%%%%%%%%%%% End Document Setup %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%% Helper Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The title (name) with a horizontal rule under it
%
% Usage: \makeheading{name}
%
% Place at top of document. It should be the first thing.
\newcommand{\makeheading}[1]%
{\hspace*{-\marginparsep minus \marginparwidth}%
\begin{minipage}[t]{\textwidth+\marginparwidth+\marginparsep}%
{\large \bfseries #1}\\%[-0.15\baselineskip]%
\rule{\columnwidth}{.3pt}%
\end{minipage}}
% The section headings
%
% Usage: \section{section name}
%
% Follow this section IMMEDIATELY with the first line of the section
% text. Do not put whitespace in between. That is, do this:
%
% \section{My Information}
% Here is my information.
%
% and NOT this:
%
% \section{My Information}
%
% Here is my information.
%
% Otherwise the top of the section header will not line up with the top
% of the section. Of course, using a single comment character (%) on
% empty lines allows for the function of the first example with the
% readability of the second example.
\renewcommand{\section}[2]%
{\pagebreak[2]\vspace{1.3\baselineskip}%
\phantomsection\addcontentsline{toc}{section}{#1}%
\hspace{0in}%
\marginpar{%
\raggedright \scshape #1}#2}
% An itemize-style list with lots of space between items
\newenvironment{outerlist}[1][\enskip\textbullet]%
{\begin{enumerate}[#1]}{\end{enumerate}%
\vspace{-.6\baselineskip}}
% An itemize-style list with little space between items
\newenvironment{innerlist}[1][\enskip\textbullet]%
{\begin{compactenum}[#1]}{\end{compactenum}}
% To add some paragraph space between lines.
% This also tells LaTeX to preferably break a page on one of these gaps
% if there is a needed pagebreak nearby.
\newcommand{\blankline}{\quad\pagebreak[2]}
%%%%%%%%%%%%%%%%%%%%%%%% End Helper Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%% Begin CV Document %%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\makeheading{{\LARGE Arnar~Birgisson}
\hspace{.2cm}
{\LARGE\sc curriculum~vitae}
\hspace{\fill}
{\normalsize\textmd{updated \today}}}
\section{contact information}
%
% NOTE: Mind where the & separators and \\ breaks are in the following
% table.
%
% ALSO: \rcollength is the width of the right column of the table
% (adjust it to your liking; default is 1.85in).
%
\newlength{\rcollength}\setlength{\rcollength}{1.85in}%
%
\begin{tabular}[t]{@{}p{\textwidth-\rcollength}p{\rcollength}}
\href{http://www.chalmers.se/}%
{Department of Computer Science and Engineering}
& \textit{Phone:} (+46) 31 772 1062 \\
Chalmers University of Technology
& \textit{Mobile:} (+46) 72 040 1784 \\
Rännvägen 6B & \textit{E-mail:}
\href{mailto:arnarb@chalmers.se}{arnarb@chalmers.se},\\
41296 Göteborg & \hspace{29pt}
\href{mailto:arnarbi@gmail.com}{arnarbi@gmail.com}\\
SWEDEN & \hspace{29pt} \href{http://www.hvergi.net/arnar/}{www.hvergi.net/arnar}\\
\end{tabular}
\section{citizenship}
%
Icelandic
% \section{Research Interests}
% %
% Control theory, communication theory, behavioral ecology, cooperation
% theory, engineering education
\section{education}
%
\href{http://www.chalmers.se/}{\textbf{Chalmers University of Technology}},
Göteborg, Sweden
\begin{outerlist}
\item[] Ph.D., Computer Science, ongoing since August 2009
\begin{innerlist}
\item Supervisor:
\href{http://www.math.chalmers.se/~andrei/}
{Andrei Sabelfeld}
\item Areas of Study: Language based security, type based information flow analysis,
application of information flow analysis to web security
\end{innerlist}
\end{outerlist}
\blankline
\href{http://www.ru.is/}{\textbf{Reykjavik University}},
Reykjavik, Iceland
\begin{outerlist}
\item[] M.Sc., Computer Science, June 2009
\begin{innerlist}
\item Thesis Topic: \href{http://www.hvergi.net/arnar/projects/msc-thesis}{Topics in Structural Operational Semantics}
\item Supervisor:
\href{http://www.ru.is/faculty/luca/}
{Luca Aceto}
\item Areas of Study: Process Algebra, Operational Semantics
\end{innerlist}
\end{outerlist}
\blankline
\href{http://www.hi.is/}{\textbf{University of Iceland}},
Reykjavik, Iceland
\begin{outerlist}
\item[] B.Sc., Mathematics, June 2004
\begin{innerlist}
\item Emphasis on Computer Science
\end{innerlist}
\end{outerlist}
\section{academic experience}
\href{http://www.chalmers.se}{\textbf{Chalmers University of Technology}},
Göteborg, Sweden
\begin{outerlist}
\item[] \textit{Graduate Student}%
\hfill \textbf{August 2009 to present}
\begin{innerlist}
\item Participated in the Marktoberdorf Summer School of
Logics and Languages for Reliability and Security, Germany, Agust 2009.
\item Participated in the FOSAD Summer School in Bertinoro, Italy, September 2009.
\end{innerlist}
\item[] \textit{Teaching Assistant}%
\hfill \textbf{November 2009 to present}
\begin{innerlist}
\item {\em Data Structures}, exercises and lab supervision.
\item {\em Mathematical Modeling}, exercise supervision.
\item {\em Programming Language Technology}, exercises, lab supervision, exam grading and admin.
\item {\em Language Based Security}, lab supervision.
\end{innerlist}
\end{outerlist}
\blankline
\href{http://www.ru.is}{\textbf{Reykjavik University}},
Reykjavik, Iceland
\begin{outerlist}
\item[] \textit{Graduate Student}%
\hfill \textbf{September 2007 to June 2009}
\begin{innerlist}
\item Research assistantship from January 2008
\item Visiting Technical University of Eindhoven (TU/e) for two months
during fall semester of 2008 for research related to M.Sc.\ thesis.
\end{innerlist}
\item[] \textit{Teaching Assistant}%
\hfill \textbf{January 2008 to April 2009}
\begin{innerlist}
\item {\em Algorithm Design and Analysis}, weekly grading of assignments
and preparation and presentation of solutions in class.
\item {\em Computer Science for Engineers II}, administering daily lab sessions
in a three-week intensive course on programming, assisted with creation
of excercises and exams.
\item {\em Introduction to Artificial Intelligence}, weekly lab sessions,
creation of exercises, assistance with programming projects and grading.
\end{innerlist}
\end{outerlist}
\blankline
\href{http://www.hi.is}{\textbf{University of Iceland}},
Reykjavik, Iceland
\begin{outerlist}
\item[] \textit{Undergraduate Student}%
\hfill \textbf{September 2001 to June 2004}
\end{outerlist}
\section{awards and honours}
Recipient of the \href{http://research.google.com/university/relations/fellowship_recipients.html}{Google European Doctoral Fellowship in Computer Security}, 2010.
\\[.5em]
Recipient of \href{http://www.vi.is/um-vi/frettir/nr/998/}{Icelandic Chamber of Commerce Scholarship for Higher Education in Information Technology}, 2010.
\\[.5em]
Recipient of scholarship from the Icelandic Research Fund for Graduate Students, 2008.
\section{publications}
%
\textbf{Conference and workshop papers}
\begin{outerlist}
\item Arnar Birgisson and Andrei Sabelfeld.
{\em Multi-run security.}
Proceedings of the European Symposium on Research in Computer Science (ESORICS 2011)
%
\item Arnar Birgisson, Frank McSherry, and Mart{\'\i}n Abadi.
{\em Capabilities for Information Flow.}
ACM SIGPLAN Sixth Workshop on Programming Languages and Analysis for Security (PLAS 2011).
%
\item Arnar Birgisson, Alejandro Russo, and Andrei Sabelfeld.
{\em Capabilities for Information Flow.}
ACM SIGPLAN Sixth Workshop on Programming Languages and Analysis for Security (PLAS 2011).
%
\item Luca Aceto, Arnar Birgisson, Anna Ingolfsdottir, and MohammadReza Mousavi.
{\em Decompositional Reasoning about the History of Parallel Processes.}
Proceedings of the 4th International on Fundamentals of Software Engineering (FSEN 2011).
%
\item Arnar Birgisson, Alejandro Russo, and Andrei Sabelfeld
{\em Unifying Facets of Information Integrity.}
Sixth International Conference on Information Systems Security (ICISS 2010).
%
\item Arnar Birgisson and Úlfar Erlingsson.
{\em An Implementation and Semantics for Transactional Memory Introspection in Haskell.}
ACM SIGPLAN Fourth Workshop on Programming Languages and Analysis for Security (PLAS 2009).
%
\item Luca Aceto, Arnar Birgisson, Anna Ingolfsdottir, MohammadReza Mousavi and Michel Reniers.
{\em Rule Formats for Determinism and Idempotency.}
LNCS proceedings of Fundamentals of Software Engineering 2009.
%
\item Arnar Birgisson, Mohan Dhawan, Úlfar Erlingsson,
Vinod Ganapathy, Liviu Iftode.
{\em Enforcing Authorization Policies using Transactional Memory Inspection}.
ACM Conference on Computer and Communications Security (CCS 2008),~pp.~223--234.
2008.
%
\end{outerlist}
\blankline
\textbf{Journal papers}
\begin{outerlist}
\item Luca Aceto, Arnar Birgisson, Anna Ingolfsdottir, MohammadReza Mousavi and Michel Reniers.
{\em Rule Formats for Determinism and Idempotency (journal version).}
Science of Computer Programming. Guest editors Farhad Arbab and Marjan Sirjani. 2010.
\end{outerlist}
\blankline
%\blankline
%\textbf{Technical reports}
%\begin{outerlist}
%\item Arnar Birgisson, Mohan Dhawan, Úlfar Erlingsson,
%Vinod Ganapathy, Liviu Iftode.
%{\em Enforcing Authorization Policies using Transactional Memory Inspection}.
%Technical report, Rutgers University, Dept. of C.S. USA. DCS-TR-$628$.
%{\em (Superseded by CCS 2008 conference paper.)}
%%
%\item Arnar Birgisson, Úlfar Erlingsson.
%{\em An Implementation and Semantics for Transactional Memory Introspection in Haskell}.
%Technical report, Reykjavik University, School of Computer Science, Iceland. RUTR-CS$08007$.
%
%\end{outerlist}
\section{professional experience}
%
\href{http://research.microsoft.com/en-us/}{\textbf{Microsoft Research Silicon Valley}, Mountain View, CA, USA}
\begin{outerlist}
\item[] Research Intern \hfill \textbf{June 2010 to September 2010}
\begin{innerlist}
\item Research on Differential Privacy and Information Flow, supervised by Frank McSherry and Mart{\'\i}n Abadi.
\end{innerlist}
\end{outerlist}
\blankline
%
\href{http://www.kvos.is/}{\textbf{Kvos}} (Oddi Printing Ltd.\ before
company restructure in 2006),
Reykjavik, Iceland
\begin{outerlist}
\item[] \textit{IT Systems Analyst}%
\hfill \textbf{June 2004 to December 2007}
\begin{innerlist}
\item Designed and implemented specialised in-house web-based IT systems
for billing and production planning, human resources among others.
\item Implemented and maintained IT infrastructure for web-based
information systems.
\item Design and maintenance on several mission-critical databases.
\item Partly responsible for design and maintenance of networking
and telephone infrastructure.
\item Technical consultant on automated layout and desktop publishing.
Helped with various jobs dealing with computer-driven layout.
\end{innerlist}
\item[] \textit{Part-time IT systems designer and programmer}%
\hfill \textbf{May 2000 to June 2004}
\begin{innerlist}
\item Designed and implemented web-based information systems for
production planning and management, billing, website content
management.
\item Implemented and maintained Linux based infrastructure for
several web-based information systems.
\end{innerlist}
\end{outerlist}
\blankline
\href{http://www.visir.is/}{\textbf{visir.is}}, Reykjavik, Iceland
\begin{outerlist}
\item[] \textit{Web application programmer}%
\hfill \textbf{July 1998 to April 2000}
\begin{innerlist}
\item Custom web development for high-volume Icelandic news website.
Included database design and maintenance.
\end{innerlist}
\end{outerlist}
\blankline
\textbf{MotorIs},
Reykjavik, Iceland
\begin{outerlist}
\item[] \textit{Production assistant}%
\hfill \textbf{summers of 1996--1998}
\begin{innerlist}
\item Various jobs in producing a weekly 30 minute show on Icelandic
motor sport aired internationally. Jobs included cameraman, non-linear
editing, sound mixing and graphical design.
\item Assisting in administration of rally and off-road tournaments,
including implementing simple systems for score keeping, public
announcements etc.
\end{innerlist}
\end{outerlist}
\blankline
\textbf{Various}, Eskifjörður, Iceland \hfill \textbf{summers before 1996}
\begin{outerlist}
\item[] Various summer jobs as a teenager in fish factories, public service and commerce.
\end{outerlist}
% \section{technical skills}
% %
% Programming (advanced): Python, C, C++, Java, SQL. Good generic
% and cross-language programming experience, ability to work with
% diverse environments.
% \blankline
% Programming (intermediate): Pascal, Perl, PHP, Scheme, Haskell, PostScript,
% UNIX shell scripting and others.
% \blankline
% Operating Systems: Microsoft Windows XP/2000, Apple OS X, Linux,
% HP Unix, and other UNIX variants
\section{personal research statement}
%
Already, many critical parts of modern society rest on top of several layers
of computer software and hardware, and things will only become more complex
in the future. As with other engineering efforts, I believe that such systems
cannot meet the requirements of reliability and maintainability unless they are
built on solid, well specified and sound foundations.
To address this, and preferably further the state of the art, my research interests
lie in the various topics surrounding programming languages and language based
security. Programming languages
provide system designers with the necessary high-level abstractions to realize their
designs, and as such, programming languages and the related technologies need to be
all things to everyone. They must be expressive enough to allow the designer to
create a complete and maintainable system. They must be simple, so that the systems
they express can be understood and maintained. They must be built on solid foundations
which provide assurances of correctness, in many cases through mathematical verification.
All of this is important in the context of security, where language technology can
significantly contribute to the task of designing and implementing safe systems.
% I believe at the moment, functional and declarative programming languages deserve to
% be continued to be studied in detail, as they fit these requirements better in many
% ways that imperative languages cannot. I also believe that the use of formal specifications
% of their semantics (to the extent possible) is beneficial, both to build verifiable
% systems as well as providing language designers important insight into their languages.
\blankline
The main purpose of programming languages is to provide a mapping from a high-level
specification of a system to a lower level. The lower level can be abstract,
mathematical models of execution -- or it can be hardware or even a lower layer of
software (actually the most common case). I find great joy in studying such mappings,
designing new ones and finding ways to improve them.
A particularly useful application of such research is in security. Security issues
cross-cut the abstraction levels of systems, i.e. a system that appears safe on one
abstraction level may very well not be on another one. By building in helpful
features in the mapping between layers, namely programming languages, it is possible
to make it significantly easier to write verifiably safe systems.
% This particular joy sparks
% my interest in a wide range of topics, from low level compilation and interpretation
% of languages, to high level and abstract specifications of language semantics.
My experience and interest in the practicalities of programming and computer
architecture fuses rather well with my fascination for the theoretical aspect.
By combining these two, I'd like to gain even deeper understanding of the current
state of the art to be able to find ways to advance it.
\blankline
% To be more specific, my current research interest lies across process algebra,
% structural operational semantics and functional programming (preferably lazy,
% pure and strongly typed, e.g. Haskell). I am interested in using these areas
% of study to work on language based security, modelling and verification and efficient
% and correct execution (dynamic or compiled).
% \blankline
% For a further description of my recent and current projects, as well as my
% qualifications for job offerings, please refer to the cover letter included
% in my application.
\section{references}
For letters of references, please contact any of the following persons.
\begin{itemize}
\item Andrei Sabelfeld \\
Professor, Chalmers University of Technology \\
{\tt http://www.math.chalmers.se/\string~andrei/} \\
{\tt andrei@chalmers.se}
\item Luca Aceto \\
Professor, Reykjavik University \\
{\tt http://www.ru.is/faculty/luca/} \\
{\tt luca@ru.is}
\item Úlfar Erlingsson \\
Associate Professor, Reykjavik University and Manager of Security Research, Google \\
{\tt http://www.ru.is/faculty/ulfar/} \\
{\tt ulfar@ru.is}
%\item MohammadReza Mousavi\\
%Assistant Professor, Eindhoven University of Technology \\
%{\tt http://www.win.tue.nl/\string~mousavi/} \\
%{\tt m.r.mousavi@tue.nl}
\end{itemize}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%% End CV Document %%%%%%%%%%%%%%%%%%%%%%%%%%%%%