% style `christmas': tiles from pine to deep teal with gold, cream and cranberry
% accents, under snow. Trees grow where the dark modules have the outline of
% one (tiered trees, plump firs, slim trees, spires), candy canes take L
% shapes, presents some 2x2 blocks and baubles lone modules; sledges, park
% benches, toy trains, drums, stockings, nutcrackers and other figures take other
% blocks (see below), lone modules of the timing patterns become lights and
% ornaments, white modules get light chains, stars, snowflakes and candles, and
% the finders are wreaths around cores that vary by the seed. Tunables
% \fancyqr@{tree,cane,present,bauble,sledge,bench,train,toy,stocking,pair}@chance
% (those of sledges, benches and trains are expressions of the size \@max@x of the
% code: the smaller the code, the fewer places, the likelier each, so that most
% codes show a few).
\FancyQrSince{2.5}%
\def\fancyqr@xm@ch#1#2{\@ifundefined{fancyqr@#1@chance}{\@namedef{fancyqr@#1@chance}{#2}}{}}%
\fancyqr@xm@ch{tree}1\fancyqr@xm@ch{cane}1\fancyqr@xm@ch{present}{.15}\fancyqr@xm@ch{bauble}{.5}%
\fancyqr@xm@ch{sledge}{max(.12,min(.4,(56-\@max@x)/60))}\fancyqr@xm@ch{train}{min(.5,200/(\@max@x*\@max@x))}%
\fancyqr@xm@ch{bench}{min(.2,60/(\@max@x*\@max@x))}\fancyqr@xm@ch{toy}{.12}\fancyqr@xm@ch{stocking}{.05}%
\fancyqr@xm@ch{pair}{.02}%
% global palette, so that a code drawn outside the group of the load finds it
{\globalcolorstrue
\definecolor{fancyqr@xm@pine}{HTML}{17473A}\definecolor{fancyqr@xm@teal}{HTML}{1A4F5E}%
\definecolor{fancyqr@xm@gold}{HTML}{C8992F}\definecolor{fancyqr@xm@deepgold}{HTML}{A97A1C}%
\definecolor{fancyqr@xm@cream}{HTML}{F4EAD2}\definecolor{fancyqr@xm@berry}{HTML}{8E2B3D}%
\definecolor{fancyqr@xm@bark}{HTML}{5B3B25}%
\definecolor{fancyqr@xm@halo}{HTML}{FFF3CF}\definecolor{fancyqr@xm@wire}{HTML}{2F5E49}\definecolor{fancyqr@xm@spark}{HTML}{FFE58F}%
\definecolor{fancyqr@xm@ice}{HTML}{4A84B8}\definecolor{fancyqr@xm@flame}{HTML}{F6A92B}%
\definecolor{fancyqr@xm@bY}{HTML}{F5B731}\definecolor{fancyqr@xm@bR}{HTML}{D13B47}\definecolor{fancyqr@xm@bB}{HTML}{3F8FD2}%
\definecolor{fancyqr@xm@bG}{HTML}{4DAA62}\definecolor{fancyqr@xm@bO}{HTML}{EE7D2A}}%
\def\fancyqr@xm@shade{\fancyqr@mixcolor{.!68!black}}%
% paths are computed once (#1 a key, #2 the expandable path) and kept
\def\fancyqr@xm@path#1#2{\ifcsname fancyqr@xm@#1\endcsname\else
   \global\expandafter\edef\csname fancyqr@xm@#1\endcsname{#2}\fi\csname fancyqr@xm@#1\endcsname}%
\def\fancyqr@xm@p#1#2{(\fpeval{#1},\fpeval{#2})}%
% a tier of a tree around x=#1 from its apex at height #2 down to tips at #3,
% #4 wide on each side: nearly straight sides, a lower edge that rises to the
% middle; the right half is shaded
\def\fancyqr@xm@tier#1#2#3#4{%
   \fancyqr@xm@tpath{#1}{#2}{#3}{#4}\closepath\fillpath
   {\fancyqr@xm@shade
   \fancyqr@xm@path{h#1/#2/#3/#4}{\noexpand\moveto(#1,#2)\fancyqr@xm@side{#1}{#2}{#3}{#4}{}%
      \fancyqr@xm@lower{#1}{#3}{#4}{}}%
   \closepath\fillpath}}%
\def\fancyqr@xm@tpath#1#2#3#4{\fancyqr@xm@path{t#1/#2/#3/#4}{\noexpand\moveto(#1,#2)%
   \fancyqr@xm@side{#1}{#2}{#3}{#4}{}\fancyqr@xm@lower{#1}{#3}{#4}{}\fancyqr@xm@lower{#1}{#3}{#4}{-}%
   \fancyqr@xm@side{#1}{#2}{#3}{#4}{-}}}%
% ... and an upper tier, which casts a shadow on the one below (narrower, so
% that it stays on that tier)
\def\fancyqr@xm@utier#1#2#3#4{%
   {\fancyqr@mixcolor{.!40!black}\put(0,-.08){\fancyqr@xm@tpath{#1}{#2}{#3}{.85*#4}\closepath\fillpath}}%
   \fancyqr@xm@tier{#1}{#2}{#3}{#4}}%
% #1 minus #3 of the way from #1 to #2
\def\fancyqr@xm@dn#1#2#3{#1-#3*(#1-#2)}%
% the right (#5 empty) or left (#5 -) side, down on the right, up on the left
\def\fancyqr@xm@side#1#2#3#4#5{\noexpand\curveto
   \ifx\relax#5\relax
      \fancyqr@xm@p{#1+.36*#4}{\fancyqr@xm@dn{#2}{#3}{.3}}\fancyqr@xm@p{#1+.74*#4}{\fancyqr@xm@dn{#2}{#3}{.68}}\fancyqr@xm@p{#1+#4}{#3}%
   \else
      \fancyqr@xm@p{#1-.74*#4}{\fancyqr@xm@dn{#2}{#3}{.68}}\fancyqr@xm@p{#1-.36*#4}{\fancyqr@xm@dn{#2}{#3}{.3}}(#1,#2)%
   \fi}%
% the right half of the lower edge, from the tip in (#4 empty) or from the
% middle out to the left tip (#4 -), expandable
\def\fancyqr@xm@lower#1#2#3#4{\noexpand\curveto
   \ifx\relax#4\relax
      \fancyqr@xm@p{#1+.7*#3}{#2+.07}\fancyqr@xm@p{#1+.3*#3}{#2+.13}\fancyqr@xm@p{#1}{#2+.13}%
   \else
      \fancyqr@xm@p{#1-.3*#3}{#2+.13}\fancyqr@xm@p{#1-.7*#3}{#2+.07}\fancyqr@xm@p{#1-#3}{#2}%
   \fi}%
% an arc around #1, #2 with radius #3 from the current point at #4 degrees to
% #5, at most 90 degrees on, as one curve; a circle of four
\def\fancyqr@xm@kk#1#2{4/3*tand(((#2)-(#1))/4)}%
\def\fancyqr@xm@arc#1#2#3#4#5{\noexpand\curveto
   \fancyqr@xm@p{#1+#3*(cosd(#4)-\fancyqr@xm@kk{#4}{#5}*sind(#4))}{#2+#3*(sind(#4)+\fancyqr@xm@kk{#4}{#5}*cosd(#4))}%
   \fancyqr@xm@p{#1+#3*(cosd(#5)+\fancyqr@xm@kk{#4}{#5}*sind(#5))}{#2+#3*(sind(#5)-\fancyqr@xm@kk{#4}{#5}*cosd(#5))}%
   \fancyqr@xm@p{#1+#3*cosd(#5)}{#2+#3*sind(#5)}}%
\def\fancyqr@xm@circ#1#2#3{\noexpand\moveto\fancyqr@xm@p{#1+#3}{#2}%
   \fancyqr@xm@arc{#1}{#2}{#3}{0}{90}\fancyqr@xm@arc{#1}{#2}{#3}{90}{180}%
   \fancyqr@xm@arc{#1}{#2}{#3}{180}{270}\fancyqr@xm@arc{#1}{#2}{#3}{270}{360}\noexpand\closepath}%
\def\fancyqr@xm@ball#1#2#3{\linethickness{#3\unitlength}\roundcap
   \moveto(#1,#2)\lineto(#1,#2)\strokepath\buttcap}%
% ornaments: gold balls #1 and cranberry ones #2, lists of x/y
\def\fancyqr@xm@orn#1#2{{\linethickness{.17\unitlength}\roundcap\color{fancyqr@xm@gold}%
   \fancyqr@xm@path{G#1}{\fancyqr@xm@dots#1,\relax/,}\strokepath
   \color{fancyqr@xm@berry!85!fancyqr@xm@cream}%
   \fancyqr@xm@path{R#2}{\fancyqr@xm@dots#2,\relax/,}\strokepath\buttcap}}%
\def\fancyqr@xm@dots#1/#2,{\ifx\relax#1\else
   \noexpand\moveto(#1,#2)\noexpand\lineto(#1,#2)\expandafter\fancyqr@xm@dots\fi}%
\def\fancyqr@xm@box#1#2#3#4{\fancyqr@xm@path{x#1/#2/#3/#4}{\noexpand\moveto\fancyqr@xm@p{#1}{#2}\noexpand\lineto\fancyqr@xm@p{#3}{#2}%
   \noexpand\lineto\fancyqr@xm@p{#3}{#4}\noexpand\lineto\fancyqr@xm@p{#1}{#4}\noexpand\closepath}\fillpath}%
\def\fancyqr@xm@trunk#1{{\color{fancyqr@xm@bark}\fancyqr@xm@box{1.31}{#1+1.2}{1.69}{#1+.5}%
   \color{fancyqr@xm@berry}%
   \fancyqr@xm@path{q#1}{\noexpand\moveto\fancyqr@xm@p{1.1}{#1+.56}\noexpand\lineto\fancyqr@xm@p{1.9}{#1+.56}%
      \noexpand\lineto\fancyqr@xm@p{1.78}{#1+.03}\noexpand\lineto\fancyqr@xm@p{1.22}{#1+.03}\noexpand\closepath}\fillpath
   \color{fancyqr@xm@gold}\fancyqr@xm@box{1.06}{#1+.5}{1.94}{#1+.62}}}%
% the star on a tree top at x=#1: five straight points, the tips slightly
% rounded, the facets on the left of each point lighter; its lowest notch
% sits on the apex of the tree at .8
\def\fancyqr@xm@topstar#1{\put(#1,.845){\fancyqr@xm@D{topstar}{}{\K{gold}\M(0,.125)\fancyqr@xm@spt{.125}{.052}{90}\F
   \T{.025}\R\M(0,.125)\fancyqr@xm@spt{.125}{.052}{90}\S\K{gold!55!fancyqr@xm@cream}\fancyqr@xm@fac{90}%
   \fancyqr@xm@fac{162}\fancyqr@xm@fac{234}\fancyqr@xm@fac{306}\fancyqr@xm@fac{18}\F}}}%
% a soft glow behind the star (inside the block of the tree), drawn first
\def\fancyqr@xm@halo#1{\put(#1,.845){\fancyqr@xm@D{halo}{}{\KK{fancyqr@xm@gold!16!white}\O(0,0){.155}\F
   \KK{fancyqr@xm@gold!34!white}\O(0,0){.11}\F}}}%
\def\fancyqr@xm@fac#1{\M(0,0)\L({.125*cosd(#1)},{.125*sind(#1)})\L({.052*cosd(#1+36)},{.052*sind(#1+36)})\Z}%
\FancyQrFigure{fir}{\fancyqr@tree@chance}{.0./0x0/xxx/xxx}{\fancyqr@xm@fit{\fancyqr@xm@fir
   \fancyqr@xm@orn{.6/-1.68,2.1/-1.3,1.75/-.62,1.3/.15}{2.4/-1.7,1.05/-1.4,.75/-.78,2.25/-.8}}}%
\FancyQrFigure{tree}{\fancyqr@tree@chance}{.0./0x0/xxx/0x0}{\fancyqr@xm@fit{%
   \fancyqr@xm@trunk{-2}\fancyqr@xm@small
   \fancyqr@xm@orn{.6/-.68,1.75/-.5,1.3/.15}{2.4/-.7,1.05/-.6,2.2/-.1}}}%
\FancyQrFigure{spire}{\fancyqr@tree@chance}{.0./0x0/0x0/xxx}{\fancyqr@xm@fit{\fancyqr@xm@spire
   \fancyqr@xm@orn{.6/-1.68,2.05/-1.35,1.25/-.7}{2.4/-1.7,1.1/-1.42,1.75/-.38}}}%
\FancyQrFigure{smalltree}{\fancyqr@tree@chance}{.0./0x0/xxx}{\fancyqr@xm@fit{\fancyqr@xm@small
   \fancyqr@xm@orn{.6/-.68,1.75/-.5,1.3/.15}{2.4/-.7,1.05/-.6,2.2/-.1}}}%
\FancyQrFigure{smallfir}{\fancyqr@tree@chance}{.00./0xx0/.xx.}{\fancyqr@xm@fit{\fancyqr@xm@stem1{-.97}%
   \fancyqr@xm@tier{1}{.45}{-.82}{.98}\fancyqr@xm@utier{1}{.99}{.1}{.98}%
   \fancyqr@xm@orn{.3/-.72,1.4/-.5,1.25/.3}{1.7/-.74,.65/-.55,.4/.18}}}%
% the tiers on three columns: a fir on two full rows, a spire of two over one
% full row and a small tree on one, each on a short trunk (at x=#1 down to #2)
\def\fancyqr@xm@stem#1#2{{\color{fancyqr@xm@bark}\fancyqr@xm@box{#1-.08}{#2}{#1+.08}{#2+.3}}}%
\def\fancyqr@xm@fir{\fancyqr@xm@halo{1.5}\fancyqr@xm@stem{1.5}{-1.97}%
   \fancyqr@xm@tier{1.5}{-.2}{-1.82}{1.48}\fancyqr@xm@utier{1.5}{.6}{-.93}{1.47}%
   \fancyqr@xm@utier{1.5}{.8}{.12}{.64}\fancyqr@xm@topstar{1.5}}%
\def\fancyqr@xm@spire{\fancyqr@xm@halo{1.5}\fancyqr@xm@stem{1.5}{-1.97}%
   \fancyqr@xm@tier{1.5}{-.15}{-1.82}{1.48}\fancyqr@xm@utier{1.5}{.45}{-.86}{.88}%
   \fancyqr@xm@utier{1.5}{.8}{.06}{.5}\fancyqr@xm@topstar{1.5}}%
\def\fancyqr@xm@small{\fancyqr@xm@halo{1.5}\fancyqr@xm@stem{1.5}{-.97}%
   \fancyqr@xm@tier{1.5}{.62}{-.82}{1.48}\fancyqr@xm@utier{1.5}{.76}{-.3}{1}%
   \fancyqr@xm@utier{1.5}{.8}{.25}{.52}\fancyqr@xm@topstar{1.5}}%
\def\fancyqr@xm@slim#1{\fancyqr@xm@halo{.5}%
   \ifnum#1>2 \fancyqr@xm@stem{.5}{-1.97}%
      \fancyqr@xm@tier{.5}{-1.02}{-1.82}{.48}\fancyqr@xm@utier{.5}{-.32}{-1.3}{.46}%
      \fancyqr@xm@utier{.5}{.38}{-.62}{.42}\fancyqr@xm@utier{.5}{.8}{.02}{.4}%
      \fancyqr@xm@orn{.27/-1.72,.62/-1.15,.3/-.48}{.73/-1.7,.35/-1.18,.68/-.45,.4/.18}%
   \else\fancyqr@xm@stem{.5}{-.97}%
      \fancyqr@xm@tier{.5}{-.3}{-.82}{.48}\fancyqr@xm@utier{.5}{.4}{-.5}{.44}%
      \fancyqr@xm@utier{.5}{.8}{.02}{.4}%
      \fancyqr@xm@orn{.27/-.72,.62/-.35}{.73/-.7,.35/-.36,.4/.18}%
   \fi
   \fancyqr@xm@topstar{.5}}%
\FancyQrFigure{slimtree}{\fancyqr@tree@chance}{.0./0x0/0x0/0x0/.0.}{\fancyqr@xm@fit{\fancyqr@xm@slim3}}%
\FancyQrFigure{slimfir}{\fancyqr@tree@chance}{.0./0x0/0x0/.0.}{\fancyqr@xm@fit{\fancyqr@xm@slim2}}%
% a candy cane, drawn as on an L of a crook over a shaft of three modules with
% the crook to the right, and mapped (#2) to its other places (#1 the key): the
% crook to the left, or lying on a row of three with the crook up or down at
% either end. A cranberry or red tube most of a module wide that curls over,
% with thin slanted stripes (cream or gold, by the seeded generator) that
% follow it and stay clear of the module centers
\def\fancyqr@xm@cane#1#2{\fancyqr@xm@fit{\edef\@tempa{\fancyqr@xm@rand2}%
   \fancyqr@xm@D{cane#1\@tempa}{#2\def\h@s##1{\M(.23,##1-.112)\L(.77,##1+.112)}%
      \def\h@a##1{\M({1+.23*cosd(##1-20)},{.18+.23*sind(##1-20)})\L({1+.77*cosd(##1)},{.18+.77*sind(##1)})}}{%
   \ifcase\@tempa\relax\K{berry}\else\K{red}\fi\T{.6}\R\M(.5,-1.62)\L(.5,.18)\A(1,.18){.5}{180}{-15}\S
   \ifcase\@tempa\relax\K{cream}\else\K{gold!60!fancyqr@xm@cream}\fi\T{.11}%
   \h@s{-1.25}\h@s{-.75}\h@s{-.25}\h@a{172}\h@a{115}\h@a{58}\h@a{3}\S}}}%
\FancyQrFigure{cane/R}{\fancyqr@cane@chance}{.00./0xx0/0x0./.x..}{\fancyqr@xm@cane{r}{}}%
\FancyQrFigure{cane/L}{\fancyqr@cane@chance}{.00./0xx0/.0x0/..x.}{\fancyqr@xm@cane{l}{\fancyqr@xm@mirror2}}%
\FancyQrFigure{present}{\fancyqr@present@chance}{xx/xx}{\fancyqr@xm@fit{%
   \ifodd\numexpr\fancyqr@fig@hash8\i\j\relax\color{fancyqr@xm@berry}\fi
   \fancyqr@xm@box{.1}{-.95}{1.9}{.5}%
   {\fancyqr@xm@shade\fancyqr@xm@box{.03}{.42}{1.97}{.78}\color{fancyqr@xm@gold}%
   \fancyqr@xm@box{.86}{-.95}{1.14}{.78}\fancyqr@xm@box{.1}{-.12}{1.9}{.12}%
   \moveto(1,.78)\curveto(.82,1)(.5,1.02)(.52,.86)\curveto(.54,.76)(.8,.76)(1,.78)\closepath\fillpath
   \moveto(1,.78)\curveto(1.18,1)(1.5,1.02)(1.48,.86)\curveto(1.46,.76)(1.2,.76)(1,.78)\closepath\fillpath}}}%
\FancyQrFigure{bauble}{\fancyqr@bauble@chance}{.0./0x0/.0.}{\fancyqr@xm@fit{%
   \ifodd\numexpr\fancyqr@fig@hash7\i\j\relax
      \color{fancyqr@xm@deepgold}\else\color{fancyqr@xm@berry}\fi
   {\fancyqr@mixcolor{.!65!black}\fancyqr@xm@ball{.5}{.42}{.84}}%
   \fancyqr@xm@ball{.46}{.46}{.74}%
   {\fancyqr@mixcolor{.!45!fancyqr@xm@cream}\fancyqr@xm@ball{.3}{.6}{.12}}%
   \color{fancyqr@xm@gold}%
   \moveto(.4,.79)\lineto(.6,.79)\lineto(.6,.89)\lineto(.4,.89)\closepath\fillpath
   \linethickness{.035\unitlength}\fancyqr@xm@path{loop}{\fancyqr@xm@circ{.5}{.935}{.045}}\strokepath}}%
{\globalcolorstrue
\definecolor{fancyqr@xm@red}{HTML}{A9353B}\definecolor{fancyqr@xm@skin}{HTML}{EFC3A2}%
\definecolor{fancyqr@xm@coal}{HTML}{26262B}\definecolor{fancyqr@xm@frost}{HTML}{4D6D7A}%
\definecolor{fancyqr@xm@fur}{HTML}{87583A}\definecolor{fancyqr@xm@deep}{HTML}{4A1A24}}%
% drawings from named points: \fancyqr@xm@D{key}{definitions}{drawing} keeps
% the drawing under the key; in it \M(p), \L(p), \C(p)(p)(p) move, line and
% curve, \A(c){r}{from}{to} continues with an arc, \O(c){r} and \E(c){rx}{ry}
% are a circle and an ellipse, \B(p)(q) a box, \Z, \F, \S close, fill and
% stroke, \T{w} sets the line width, \R round caps and joins, \K{c} a color of
% the palette, \KK{c} any color; a point p is x,y (expressions, braced if they
% hold parentheses, or a macro that holds both) mapped by
% \fancyqr@xm@map{a}{b}{c}{d}{e}{f} to (ax+by+e,cx+dy+f), the identity unless
% the definitions set another one
\def\fancyqr@xm@map#1#2#3#4#5#6{\def\fancyqr@xm@P##1{\expandafter\fancyqr@xm@P@\expanded{##1}\@nil}%
   \def\fancyqr@xm@P@##1,##2\@nil{\fpeval{(#1)*(##1)+(#2)*(##2)+(#5)},\fpeval{(#3)*(##1)+(#4)*(##2)+(#6)}}}%
% the identity: a plain number stays as it is, anything else is evaluated
\def\fancyqr@xm@id{\def\fancyqr@xm@P##1{\expandafter\fancyqr@xm@P@\expanded{##1}\@nil}%
   \def\fancyqr@xm@P@##1,##2\@nil{\fancyqr@xm@n{##1},\fancyqr@xm@n{##2}}}%
\def\fancyqr@xm@n#1{\expandafter\fancyqr@xm@nf\detokenize{#1}\relax{#1}}%
\def\fancyqr@xm@nf#1{\if-#1\expandafter\fancyqr@xm@nl\else\expandafter\fancyqr@xm@nl\expandafter#1\fi}%
\def\fancyqr@xm@nl#1{\ifx\relax#1\expandafter\fancyqr@xm@nyes\else\expandafter\fancyqr@xm@nc\fi#1}%
\def\fancyqr@xm@nc#1{\ifcsname fancyqr@xm@ok#1\endcsname\expandafter\fancyqr@xm@nl\else\expandafter\fancyqr@xm@nno\fi}%
\def\fancyqr@xm@nyes#1#2{#2}\def\fancyqr@xm@nno#1\relax#2{\fpeval{#2}}%
\@for\@tempa:=0,1,2,3,4,5,6,7,8,9,.\do{\expandafter\let\csname fancyqr@xm@ok\@tempa\endcsname\@empty}%
% the mirror x -> #1-x
\def\fancyqr@xm@mirror#1{\def\fancyqr@xm@P##1{\expandafter\fancyqr@xm@P@\expanded{##1}\@nil}%
   \def\fancyqr@xm@P@##1,##2\@nil{\fpeval{#1-(##1)},\fancyqr@xm@n{##2}}}%
\def\fancyqr@xm@D#1#2#3{\ifcsname fancyqr@xm@D@#1\endcsname\else\begingroup
   \fancyqr@xm@id\fancyqr@xm@dsl#2%
   \expandafter\xdef\csname fancyqr@xm@D@#1\endcsname{#3}\endgroup\fi
   \csname fancyqr@xm@D@#1\endcsname}%
\def\fancyqr@xm@dsl{%
   \def\M(##1){\noexpand\moveto(\fancyqr@xm@P{##1})}\def\L(##1){\noexpand\lineto(\fancyqr@xm@P{##1})}%
   \def\C(##1)(##2)(##3){\noexpand\curveto(\fancyqr@xm@P{##1})(\fancyqr@xm@P{##2})(\fancyqr@xm@P{##3})}%
   \def\A(##1){\expandafter\fancyqr@xm@A\expanded{##1}\@nil}%
   \def\E(##1)##2##3{\expandafter\fancyqr@xm@E\expanded{##1}\@nil{##2}{##3}}%
   \def\O(##1)##2{\E(##1){##2}{##2}}%
   \def\B(##1)(##2){\expandafter\fancyqr@xm@B\expanded{##1,##2}\@nil}%
   \def\Z{\noexpand\closepath}\def\F{\noexpand\fillpath}\def\S{\noexpand\strokepath}%
   \def\T##1{\noexpand\linethickness{##1\noexpand\unitlength}}%
   \def\R{\noexpand\roundcap\noexpand\roundjoin}\def\K##1{\noexpand\fancyqr@mixcolor{fancyqr@xm@##1}}%
   \def\KK##1{\noexpand\fancyqr@mixcolor{##1}}}%
% an arc around #1,#2 with radius #3 from #4 to #5 degrees, a curve per quarter
\def\fancyqr@xm@A#1,#2\@nil#3#4#5{%
   \ifdim\fpeval{abs((#5)-(#4))}\p@>90.01\p@
      \fancyqr@xm@Aq{#1}{#2}{#3}{#4}{(#4)+90*sign((#5)-(#4))}%
      \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
   {\fancyqr@xm@A#1,#2\@nil{#3}{\fpeval{(#4)+90*sign((#5)-(#4))}}{#5}}{\fancyqr@xm@Aq{#1}{#2}{#3}{#4}{#5}}}%
\def\fancyqr@xm@Aq#1#2#3#4#5{\noexpand\curveto
   (\fancyqr@xm@P{#1+#3*(cosd(#4)-\fancyqr@xm@kk{#4}{#5}*sind(#4)),#2+#3*(sind(#4)+\fancyqr@xm@kk{#4}{#5}*cosd(#4))})%
   (\fancyqr@xm@P{#1+#3*(cosd(#5)+\fancyqr@xm@kk{#4}{#5}*sind(#5)),#2+#3*(sind(#5)-\fancyqr@xm@kk{#4}{#5}*cosd(#5))})%
   (\fancyqr@xm@P{#1+#3*cosd(#5),#2+#3*sind(#5)})}%
\def\fancyqr@xm@E#1,#2\@nil#3#4{\noexpand\moveto(\fancyqr@xm@P{#1+(#3),#2})%
   \fancyqr@xm@Eq{#1}{#2}{#3}0{0}{#4}\fancyqr@xm@Eq{#1}{#2}0{#4}{-(#3)}0%
   \fancyqr@xm@Eq{#1}{#2}{-(#3)}0{0}{-(#4)}\fancyqr@xm@Eq{#1}{#2}0{-(#4)}{#3}0\noexpand\closepath}%
% a quarter from the center #1,#2 plus #3,#4 to it plus #5,#6
\def\fancyqr@xm@Eq#1#2#3#4#5#6{\noexpand\curveto(\fancyqr@xm@P{#1+(#3)+.5523*(#5),#2+(#4)+.5523*(#6)})%
   (\fancyqr@xm@P{#1+(#5)+.5523*(#3),#2+(#6)+.5523*(#4)})(\fancyqr@xm@P{#1+(#5),#2+(#6)})}%
\def\fancyqr@xm@B#1,#2,#3,#4\@nil{\noexpand\moveto(\fancyqr@xm@P{#1,#2})\noexpand\lineto(\fancyqr@xm@P{#3,#2})%
   \noexpand\lineto(\fancyqr@xm@P{#3,#4})\noexpand\lineto(\fancyqr@xm@P{#1,#4})\noexpand\closepath}%
% #1 drawn in exact module units (tiles are drawn larger by their overlap,
% toward their right and top), a figure also a little smaller, so that it keeps
% clear of the tiles that reach into its block from the left and from below
\def\fancyqr@xm@fit#1{{\ifcsname fancyqr@F@\the\i @\the\j\endcsname
      \expandafter\expandafter\expandafter\fancyqr@xm@fitf\csname fancyqr@F@\the\i @\the\j\endcsname
   \else\def\fancyqr@xm@k{0}\def\fancyqr@xm@s{1}\def\fancyqr@xm@tx{0}\def\fancyqr@xm@ty{0}\fi
   \unitlength\qr@modulesize
   \put(\fpeval{\fancyqr@xm@k*\fancyqr@edge@compensate/\qr@modulesize+\fancyqr@xm@tx},\fancyqr@xm@ty){%
      \unitlength\fancyqr@xm@s\unitlength#1}}}%
\def\fancyqr@xm@fitf#1#2{\def\fancyqr@xm@k{#2}\csname fancyqr@fig@d@#1\endcsname
   \ifcsname fancyqr@xm@S@#1\endcsname\else
      \global\expandafter\edef\csname fancyqr@xm@S@#1\endcsname{%
         \def\noexpand\fancyqr@xm@s{\fpeval{min(1-.05/\fancyqr@fig@w,1-.05/\fancyqr@fig@h)}}%
         \def\noexpand\fancyqr@xm@ty{\fpeval{(1-\fancyqr@fig@h)*(1-min(1-.05/\fancyqr@fig@w,1-.05/\fancyqr@fig@h))+.04}}}\fi
   \csname fancyqr@xm@S@#1\endcsname\def\fancyqr@xm@tx{.04}}%
% a variant 0 to #2-1 by the place of a figure, #1 a salt
\def\fancyqr@xm@var#1#2{\the\numexpr(\fancyqr@fig@hash{#1}\i\j*#2+50)/100-1\relax}%
% more figures (variants by their place: mirrored, colors); lighter details stay
% off the module centers
\FancyQrFigure{sledge}{\fancyqr@sledge@chance}{xxx/xxx}{\fancyqr@xm@sledge}%
\FancyQrFigure{bench}{\fancyqr@bench@chance}{xxx}{\fancyqr@xm@bench}%
\FancyQrFigure{train}{\fancyqr@train@chance}{xxx}{\fancyqr@xm@train}%
\FancyQrFigure{drum}{\fancyqr@toy@chance}{xx/xx}{\fancyqr@xm@drum}%
\FancyQrFigure{stocking/R}{\fancyqr@stocking@chance}{x./xx}{\fancyqr@xm@stocking0}%
\FancyQrFigure{stocking/L}{\fancyqr@stocking@chance}{.x/xx}{\fancyqr@xm@stocking1}%
\FancyQrFigure{nutcracker}{\fancyqr@pair@chance}{x/x}{%
   \ifnum\fancyqr@fig@hash{50}\i\j<50 \fancyqr@xm@soldier\else\fancyqr@xm@sock\fi}%
\FancyQrFigure{cane/UR}{\fancyqr@cane@chance}{..0./.0x0/xxx0/.00.}{\fancyqr@xm@cane{ur}{\fancyqr@xm@map0110{2}{-1}}}%
\FancyQrFigure{cane/DR}{\fancyqr@cane@chance}{.00./xxx0/.0x0/..0.}{\fancyqr@xm@cane{dr}{\fancyqr@xm@map01{-1}0{2}1}}%
\FancyQrFigure{cane/UL}{\fancyqr@cane@chance}{.0../0x0./0xxx/.00.}{\fancyqr@xm@cane{ul}{\fancyqr@xm@map0{-1}10{1}{-1}}}%
\FancyQrFigure{cane/DL}{\fancyqr@cane@chance}{.00./0xxx/0x0./.0..}{\fancyqr@xm@cane{dl}{\fancyqr@xm@map0{-1}{-1}011}}%
\def\fancyqr@xm@sledge{\fancyqr@xm@fit{\edef\fancyqr@xm@v{\fancyqr@xm@var{32}4}%
   \fancyqr@xm@D{sledge\fancyqr@xm@v}{\ifodd\fancyqr@xm@v\relax\fancyqr@xm@mirror3\fi
      \def\h@p{\ifnum\fancyqr@xm@v<2 teal\else pine\fi}}{%
   \K{gold}\T{.08}\R\M(.5,-.86)\L(.5,-.6)\M(1.5,-.86)\L(1.5,-.6)\M(2.2,-.86)\L(2.2,-.6)\S
   \T{.09}\M(.12,-.86)\L(2.3,-.86)\C(2.7,-.86)(2.92,-.66)(2.9,-.36)\C(2.88,-.12)(2.72,-.04)(2.64,-.18)\S
   \K{berry}\M(.08,-.62)\L(2.36,-.62)\C(2.62,-.62)(2.78,-.4)(2.8,-.1)\C(2.82,.2)(2.9,.4)(2.94,.56)%
      \C(2.9,.76)(2.6,.78)(2.5,.66)\C(2.4,.54)(2.34,.3)(2.3,.02)\L(.08,.02)\Z\F
   \K{gold}\T{.05}\M(.2,-.3)\L(2.3,-.3)\C(2.5,-.3)(2.6,-.2)(2.64,0)\S
   \M(2.86,.52)\C(2.8,.62)(2.66,.62)(2.62,.52)\S
   \K{fur}\M(.12,0)\C(.04,.5)(.24,.84)(.62,.86)\C(1,.84)(1.28,.5)(1.22,0)\Z
   \M(.56,.84)\C(.5,.92)(.54,.97)(.62,.96)\L(.74,.94)\C(.8,.9)(.74,.84)(.68,.82)\Z\F
   \K{fur!70!black}\M(1.2,.4)\C(1.16,.2)(.9,.06)(.6,.08)\C(.9,.14)(1.1,.26)(1.2,.4)\Z\F
   \K\h@p\B(1.3,0)(2.25,.8)\F
   \K{gold}\B(1.73,0)(1.82,.8)\B(1.3,.62)(2.25,.7)\F
   \M(1.775,.8)\C(1.66,.96)(1.5,.96)(1.52,.86)\C(1.54,.8)(1.66,.8)(1.775,.8)\Z
   \M(1.775,.8)\C(1.89,.96)(2.05,.96)(2.03,.86)\C(2.01,.8)(1.89,.8)(1.775,.8)\Z\F}}}%
% the slats and the iron rail between the seat and the backrest cover the module
% centers (a gap there would make the modules read as light)
\def\fancyqr@xm@bench{\fancyqr@xm@fit{\edef\fancyqr@xm@v{\fancyqr@xm@var{34}3}%
   \fancyqr@xm@D{bench\fancyqr@xm@v}{\def\h@w{\ifcase\fancyqr@xm@v bark!45!.\or berry!45!.\else teal!45!.\fi}}{%
   \K{coal}\T{.07}\R\M(.4,.72)\L(.4,.3)\M(2.6,.72)\L(2.6,.3)\S
   \B(.38,.4)(2.62,.48)\F
   \T{.06}\M(.3,.22)\C(.3,.15)(.2,.12)(.12,.08)\M(.5,.22)\C(.5,.15)(.6,.12)(.68,.08)\M(.4,.22)\L(.4,.09)%
   \M(2.5,.22)\C(2.5,.15)(2.4,.12)(2.32,.08)\M(2.7,.22)\C(2.7,.15)(2.8,.12)(2.88,.08)\M(2.6,.22)\L(2.6,.09)\S
   \K\h@w\B(.16,.22)(2.84,.305)\B(.16,.325)(2.84,.41)\B(.22,.47)(2.78,.575)\B(.22,.595)(2.78,.7)\F
   \K{\h@w!60!black}\B(.16,.22)(2.84,.245)\B(.16,.325)(2.84,.35)\B(.22,.47)(2.78,.5)\B(.22,.595)(2.78,.625)\F
   \noexpand\color{\noexpand\fancyqr@snow@color}%
   \M(.15,.64)\C(.06,.69)(.1,.77)(.28,.78)\C(.55,.79)(.75,.93)(1.5,.93)\C(2.25,.93)(2.45,.79)(2.72,.78)%
   \C(2.9,.77)(2.94,.69)(2.85,.64)\C(2.78,.62)(2.7,.66)(2.6,.68)\L(.4,.68)\C(.3,.66)(.22,.62)(.15,.64)\Z
   \M(.13,.41)\C(.1,.48)(.18,.53)(.28,.52)\C(.38,.51)(.4,.46)(.37,.41)\Z
   \M(2.87,.41)\C(2.9,.48)(2.82,.53)(2.72,.52)\C(2.62,.51)(2.6,.46)(2.63,.41)\Z\F}}}%
\def\fancyqr@xm@train{\fancyqr@xm@fit{\edef\fancyqr@xm@v{\fancyqr@xm@var{35}4}%
   \fancyqr@xm@D{train\fancyqr@xm@v}{\ifodd\fancyqr@xm@v\relax\fancyqr@xm@mirror3\fi
      \def\h@w{\ifnum\fancyqr@xm@v<2 teal\else berry\fi}\def\h@p{\ifnum\fancyqr@xm@v<2 berry\else teal\fi}}{%
   \K{pine}\M(.86,.7)\L(1.24,.7)\L(1.05,.96)\Z\F\K\h@p\B(.3,.7)(.78,.94)\F
   \K{gold}\B(.52,.7)(.56,.94)\B(.3,.8)(.78,.84)\F
   \K\h@w\B(.08,.26)(1.3,.7)\F\K{gold}\B(.08,.6)(1.3,.65)\F
   \K{red}\B(1.42,.26)(1.92,.86)\M(1.92,.26)\L(2.7,.26)\A(2.7,.45){.19}{-90}{90}\L(1.92,.64)\Z\F
   \K{gold}\B(2.12,.26)(2.18,.64)\B(2.64,.26)(2.7,.64)\F
   \K{coal}\B(1.36,.84)(1.98,.94)\B(1.28,.3)(1.44,.36)\M(2.48,.62)\L(2.62,.62)\L(2.68,.88)\L(2.42,.88)\Z
   \M(2.8,.3)\L(2.95,.08)\L(2.72,.08)\Z\O(.38,.17){.13}\O(.98,.17){.13}\O(1.62,.17){.13}%
   \O(2.12,.17){.12}\O(2.56,.17){.12}\F
   \K{gold}\O(.38,.17){.04}\O(.98,.17){.04}\O(1.62,.17){.04}\O(2.12,.17){.04}\O(2.56,.17){.04}\F
   \K{cream}\B(1.6,.6)(1.8,.76)\O(2.3,.9){.06}\O(2.18,.92){.045}\F}}}%
\def\fancyqr@xm@drum{\fancyqr@xm@fit{\edef\fancyqr@xm@v{\fancyqr@xm@var{37}3}%
   \fancyqr@xm@D{drum\fancyqr@xm@v}{\def\h@r{deepgold!45!black}}{%
   \ifcase\fancyqr@xm@v\relax\K{red}\or\K{teal}\else\K{berry}\fi
   \M(.1,.76)\L(.1,-.7)\C(.1,-.88)(.55,-.97)(1,-.97)\C(1.45,-.97)(1.9,-.88)(1.9,-.7)\L(1.9,.76)\Z\F
   \K\h@r\M(.1,-.58)\C(.1,-.76)(.55,-.85)(1,-.85)\C(1.45,-.85)(1.9,-.76)(1.9,-.58)\L(1.9,-.7)%
   \C(1.9,-.88)(1.45,-.97)(1,-.97)\C(.55,-.97)(.1,-.88)(.1,-.7)\Z
   \M(.1,.77)\L(.1,.6)\C(.1,.48)(.55,.42)(1,.42)\C(1.45,.42)(1.9,.48)(1.9,.6)\L(1.9,.77)\Z\F
   \K{gold}\T{.045}\R\M(.12,.46)\L(1,-.83)\L(1.88,.46)\M(.14,-.64)\L(1,.42)\L(1.86,-.64)\S
   \K{cream!80!fancyqr@xm@fur}\E(1,.77){.9}{.17}\F\K\h@r\T{.04}\E(1,.77){.9}{.17}\S
   \K{bark}\T{.07}\M(.42,.7)\L(1.38,.9)\M(1.58,.7)\L(.62,.9)\S\K{cream}\O(1.38,.9){.06}\O(.62,.9){.06}\F}}}%
\def\fancyqr@xm@stocking#1{\fancyqr@xm@fit{\edef\fancyqr@xm@v{#1\fancyqr@xm@var{38}4}%
   \fancyqr@xm@D{stocking\fancyqr@xm@v}{\ifnum#1=\@ne\fancyqr@xm@mirror2\fi
      \def\h@c{\ifodd\fancyqr@xm@v\space red\else berry\fi}}{%
   \K\h@c\M(.16,.7)\L(.84,.7)\L(.84,-.1)\C(.86,-.14)(.95,-.14)(1.05,-.14)\L(1.62,-.14)%
   \C(1.84,-.14)(1.95,-.32)(1.95,-.54)\C(1.95,-.78)(1.8,-.95)(1.56,-.95)\L(.48,-.95)%
   \C(.22,-.95)(.05,-.8)(.05,-.56)\C(.05,-.4)(.1,-.28)(.16,-.2)\Z\F
   \K{cream}\M(.05,-.56)\C(.05,-.8)(.22,-.95)(.48,-.95)\C(.34,-.9)(.14,-.78)(.05,-.56)\Z
   \M(1.62,-.14)\C(1.84,-.14)(1.95,-.32)(1.95,-.54)\C(1.95,-.78)(1.8,-.95)(1.56,-.95)%
   \C(1.7,-.78)(1.72,-.4)(1.62,-.14)\Z
   \M(.15,.66)\L(.85,.66)\A(.85,.73){.07}{-90}{0}\L(.92,.88)\A(.85,.88){.07}{0}{90}%
   \L(.15,.95)\A(.15,.88){.07}{90}{180}\L(.08,.73)\A(.15,.73){.07}{180}{270}\Z
   \ifnum\fancyqr@xm@var{38}4<2 \B(.16,.24)(.84,.34)\B(.16,.02)(.84,.12)\else
   \O(.3,.25){.05}\O(.7,.12){.05}\O(.46,-.06){.05}\O(1.1,-.42){.05}\O(1.32,-.76){.05}\fi\F}}}%
\def\fancyqr@xm@soldier{\fancyqr@xm@fit{\edef\fancyqr@xm@v{\fancyqr@xm@var{39}2}%
   \fancyqr@xm@D{soldier\fancyqr@xm@v}{\def\h@c{\ifodd\fancyqr@xm@v\space teal\else red\fi}}{%
   \K\h@c\M(.25,.2)\L(.75,.2)\L(.78,-.46)\L(.22,-.46)\Z\F\T{.12}\R\M(.21,.12)\L(.19,-.34)\M(.79,.12)\L(.81,-.34)\S
   \K{skin}\E(.5,.29){.15}{.14}\O(.19,-.4){.06}\O(.81,-.4){.06}\F
   \K{coal}\M(.3,.36)\L(.7,.36)\L(.68,.84)\C(.66,.96)(.34,.96)(.32,.84)\Z\O(.45,.32){.022}\O(.55,.32){.022}%
   \B(.23,-.5)(.77,-.42)\B(.25,-.94)(.48,-.82)\B(.52,-.94)(.75,-.82)\F
   \K{cream}\M(.5,.27)\C(.45,.3)(.39,.28)(.37,.23)\C(.43,.21)(.48,.22)(.5,.27)\Z
   \M(.5,.27)\C(.55,.3)(.61,.28)(.63,.23)\C(.57,.21)(.52,.22)(.5,.27)\Z\F
   \ifodd\fancyqr@xm@v\relax\K{berry}\else\K{teal}\fi\B(.27,-.86)(.73,-.48)\F}}}%
\def\fancyqr@xm@sock{\fancyqr@xm@fit{\edef\fancyqr@xm@v{\fancyqr@xm@var{41}4}%
   \fancyqr@xm@D{sock\fancyqr@xm@v}{\ifodd\fancyqr@xm@v\relax\fancyqr@xm@mirror1\fi
      \def\h@c{\ifnum\fancyqr@xm@v<2 red\else berry\fi}}{%
   \K\h@c\M(.22,.72)\L(.7,.72)\L(.7,-.38)\C(.7,-.46)(.76,-.5)(.84,-.54)\C(.97,-.6)(.98,-.9)(.8,-.95)%
   \L(.38,-.95)\C(.24,-.95)(.18,-.84)(.2,-.7)\Z\F
   \K{cream}\M(.84,-.54)\C(.97,-.6)(.98,-.9)(.8,-.95)\C(.87,-.82)(.88,-.66)(.84,-.54)\Z
   \M(.38,-.95)\C(.24,-.95)(.18,-.84)(.2,-.7)\C(.25,-.8)(.32,-.85)(.42,-.86)\Z
   \B(.22,.28)(.7,.36)\B(.22,.1)(.7,.18)%
   \M(.22,.66)\L(.7,.66)\A(.7,.73){.07}{-90}{0}\L(.77,.88)\A(.7,.88){.07}{0}{90}%
   \L(.22,.95)\A(.22,.88){.07}{90}{180}\L(.15,.73)\A(.22,.73){.07}{180}{270}\Z\F}}}%
% the timing patterns are decorated where a dark module stands alone (one that
% joins its neighbours keeps its tile; no figure takes a module of a timing
% pattern): by the seeded generator a round or a pointed bulb, a bauble, a
% small gift or a star, in a soft glow, in the tile color (always if there is a
% timing color), cranberry, red or dark gold
\def\fancyqr@xm@light#1#2#3#4{\ifnum#1#2#3#4=1111
      \edef\@tempa{\fancyqr@xm@rand5\ifx\fancyqr@timing@color\@empty\fancyqr@xm@rand4\else0\fi}%
      \fancyqr@xm@fit{\fancyqr@xm@D{t\@tempa}{}{{\K{gold!12!white}\O(.5,.5){.47}\F}%
         {\expandafter\fancyqr@xm@item\@tempa}%
         \ifcase\expandafter\@firstoftwo\@tempa\space\fancyqr@xm@cap{.31,.6}\or\fancyqr@xm@cap{.4,.6}%
         \or\fancyqr@xm@cap{.34,.58}\fi}}%
   \else\fancyqr@rounded@rect#1#2#3#4\fi}%
\def\fancyqr@xm@rand#1{\the\numexpr\csname int_rand:nn\endcsname{0}{#1-1}\relax}%
\def\fancyqr@xm@cap#1{\K{gold}\M(.39,.78)\L(.61,.78)\L(.59,.9)\L(.41,.9)\Z\F\K{cream!65!.}\O(#1){.06}\F}%
\def\fancyqr@xm@item#1#2{\ifcase#2 \KK{.}\or\K{berry}\or\K{red}\else\K{deepgold!70!black}\fi
   \ifcase#1
      \M(.38,.8)\L(.62,.8)\C(.66,.7)(.9,.62)(.9,.42)\A(.5,.42){.4}{0}{-180}\C(.1,.62)(.34,.7)(.38,.8)\Z\F
   \or
      \M(.39,.8)\L(.61,.8)\C(.68,.68)(.8,.5)(.76,.3)\C(.72,.12)(.58,.03)(.5,.02)%
      \C(.42,.03)(.28,.12)(.24,.3)\C(.2,.5)(.32,.68)(.39,.8)\Z\F
   \or\O(.5,.4){.38}\F
   \or\B(.14,.06)(.86,.68)\F\ifnum#2=\z@\K{berry}\else\K{pine}\fi\B(.44,.06)(.56,.68)\B(.14,.3)(.86,.42)\F
      \K{gold}\M(.5,.68)\C(.4,.86)(.24,.86)(.26,.76)\C(.28,.68)(.4,.68)(.5,.68)\Z
      \M(.5,.68)\C(.6,.86)(.76,.86)(.74,.76)\C(.72,.68)(.6,.68)(.5,.68)\Z\F
   \else\M(.5,.92)\fancyqr@xm@pt{126}{.45}\fancyqr@xm@pt{162}1\fancyqr@xm@pt{198}{.45}\fancyqr@xm@pt{234}1%
      \fancyqr@xm@pt{270}{.45}\fancyqr@xm@pt{306}1\fancyqr@xm@pt{342}{.45}\fancyqr@xm@pt{18}1%
      \fancyqr@xm@pt{54}{.45}\Z\F
   \fi}%
\def\fancyqr@xm@pt#1#2{\L({.5+.47*#2*cosd(#1)},{.45+.47*#2*sind(#1)})}%
\def\fancyqr@christmas@tile#1#2#3#4{\FancyQrFigureTile{\FancyQrIfTiming
   {\FancyQrIfExtra{timing}{\fancyqr@xm@light#1#2#3#4}{\fancyqr@rounded@rect#1#2#3#4}}{\fancyqr@rounded@rect#1#2#3#4}}}%
% the finder patterns are wreaths: a soft texture of needles in a darker
% green, a few gold lights and a bow, around a core that the seeded generator
% picks for each finder (see \fancyqr@xm@core); #1 top row, #2 left column, #3
% size
\def\fancyqr@xm@pattern#1#2#3{%
   \iffancyqr@inalign@\else
   \put(#2,\the\numexpr\@max@y-#1-#3+\@ne\relax){%
      \fancyqr@fixedcolor{\roundcap
         {\fancyqr@mixcolor{.!80!black}\linethickness{.035\unitlength}%
         \fancyqr@xm@path{w#3}{\fancyqr@xm@needles{#3}}\strokepath}%
         \color{fancyqr@xm@gold}\linethickness{.17\unitlength}%
         \fancyqr@xm@path{g#3}{\fancyqr@xm@dot{2}{#3-.5}\fancyqr@xm@dot{#3-2}{#3-.5}\fancyqr@xm@dot{.5}{2}%
            \fancyqr@xm@dot{.5}{#3-2}\fancyqr@xm@dot{#3-.5}{2}\fancyqr@xm@dot{#3-.5}{#3-2}}%
         \strokepath
         \color{fancyqr@xm@berry!85!black}\linethickness{.18\unitlength}%
         \fancyqr@xm@path{o#3}{\fancyqr@xm@bow{#3/2}}\strokepath
         \buttcap}%
      \put(\fpeval{#3/2},\fpeval{#3/2}){\unitlength\fpeval{(#3-4)/3}\unitlength\fancyqr@xm@core}%
   }\fi}%
% the cores, around (0,0) in the 3x3 modules of a finder's core: a bauble, a
% ring of light, a gift, a small wreath, a snowflake or two candy canes in a
% knot, all in dark tones (a light line in a core keeps scanners from
% finding the pattern)
\def\fancyqr@xm@core{\edef\fancyqr@xm@v{\fancyqr@xm@rand6}%
   \fancyqr@xm@D{core\fancyqr@xm@v}{\def\h@b##1{\M(0,1.2)\C(##1*.3,1.46)(##1*.7,1.45)(##1*.64,1.3)%
      \C(##1*.58,1.2)(##1*.3,1.19)(0,1.2)\Z}}{%
   \ifcase\fancyqr@xm@v\relax
      \K{berry!62!black}\O(0,0){1.5}\F\K{berry}\O(-.1,.1){1.32}\F
      \K{berry!72!fancyqr@xm@cream}\O(-.62,.62){.13}\F\K{deepgold!50!black}\B(-.13,1.27)(.13,1.45)\F
   \or\K{deep}\O(0,0){1.5}\F\K{gold!40!fancyqr@xm@deep}\T{.26}\O(0,0){1.2}\S
      \K{gold!25!fancyqr@xm@deep}\T{.12}\O(0,0){.62}\S\K{gold!55!fancyqr@xm@deep}\fancyqr@xm@studs0{8}{1.2}{.06}{22.5}\F
   \or\K{berry}\B(-1.5,-1.5)(1.5,1.5)\F\K{berry!78!black}\B(-1.5,.86)(1.5,1.18)\F
      \K{pine}\B(-.17,-1.5)(.17,1.5)\B(-1.5,-.17)(1.5,.17)\F\K{gold}\h@b{-1}\h@b1\F
   \or\K{pine!80!black}\O(0,0){1.5}\F\K{teal!80!black}\T{.06}\R
      \fancyqr@xm@spk0{20}{.9}{1.38}0\fancyqr@xm@spk0{20}{.8}{1.2}{9}\S
      \K{berry}\O(0,0){.62}\F\K{gold!45!fancyqr@xm@pine}\fancyqr@xm@studs0{6}{1.12}{.08}{30}\F
   \or\K{teal!60!black}\O(0,0){1.5}\F\K{frost!65!black}\T{.1}\R\fancyqr@xm@spk0{6}{0}{1.22}{90}%
      \fancyqr@xm@twig{90}\fancyqr@xm@twig{150}\fancyqr@xm@twig{210}\fancyqr@xm@twig{270}%
      \fancyqr@xm@twig{330}\fancyqr@xm@twig{30}\S
   \else\K{pine!65!black}\O(0,0){1.5}\F
   \fi}%
   \ifnum\fancyqr@xm@v=5 \fancyqr@xm@D{core5a}{\fancyqr@xm@turn{-28}}{\fancyqr@xm@kcane}%
      \fancyqr@xm@D{core5b}{\fancyqr@xm@map{-cosd(28)}{-sind(28)}{-sind(28)}{cosd(28)}00}{\fancyqr@xm@kcane}%
      \fancyqr@xm@D{core5c}{}{\K{berry!70!black}\M(0,0)\C(-.2,.3)(-.5,.3)(-.45,.08)%
      \C(-.42,-.08)(-.2,-.05)(0,0)\C(.2,-.05)(.42,-.08)(.45,.08)\C(.5,.3)(.2,.3)(0,0)\Z\F\O(0,0){.1}\F}\fi}%
% a candy cane leaning by the map, shaft and crook, stripes clear of the
% module centers
\def\fancyqr@xm@kcane{\K{red}\T{.42}\R\M(0,-1.06)\L(0,.5)\A(.34,.5){.34}{180}{0}\L(.68,.32)\S
   \K{berry!55!black}\T{.07}\M(-.21,-.78)\L(.21,-.62)\M(-.21,-.36)\L(.21,-.2)\M(-.21,.18)\L(.21,.34)\S}%
\def\fancyqr@xm@turn#1{\fancyqr@xm@map{cosd(#1)}{-sind(#1)}{sind(#1)}{cosd(#1)}00}%
% #2 strokes (from #1 on) from radius #3 to #4, turned by #5 and leaning by
% 12 degrees; dots of radius #4 on radius #3; the 5-pointed star outline
% from the top with radii #1, #2; a branch pair on the arm at #1 degrees
\def\fancyqr@xm@spk#1#2#3#4#5{\ifnum#1<#2
   \M({#3*cosd(360*#1/#2+#5)},{#3*sind(360*#1/#2+#5)})%
   \L({#4*cosd(360*#1/#2+#5+(#3>0)*12)},{#4*sind(360*#1/#2+#5+(#3>0)*12)})%
   \expandafter\fancyqr@xm@spk\expandafter{\the\numexpr#1+1\relax}{#2}{#3}{#4}{#5}\fi}%
\def\fancyqr@xm@studs#1#2#3#4#5{\ifnum#1<#2
   \O({#3*cosd(360*#1/#2+#5)},{#3*sind(360*#1/#2+#5)}){#4}%
   \expandafter\fancyqr@xm@studs\expandafter{\the\numexpr#1+1\relax}{#2}{#3}{#4}{#5}\fi}%
\def\fancyqr@xm@spt#1#2#3{\fancyqr@xm@rp{#2}{#3+36}\fancyqr@xm@rp{#1}{#3+72}\fancyqr@xm@rp{#2}{#3+108}%
   \fancyqr@xm@rp{#1}{#3+144}\fancyqr@xm@rp{#2}{#3+180}\fancyqr@xm@rp{#1}{#3+216}\fancyqr@xm@rp{#2}{#3+252}%
   \fancyqr@xm@rp{#1}{#3+288}\fancyqr@xm@rp{#2}{#3+324}\Z}%
\def\fancyqr@xm@rp#1#2{\L({#1*cosd(#2)},{#1*sind(#2)})}%
\def\fancyqr@xm@twig#1{\M({.72*cosd(#1)},{.72*sind(#1)})\L({1.02*cosd(#1+22)},{1.02*sind(#1+22)})%
   \M({.72*cosd(#1)},{.72*sind(#1)})\L({1.02*cosd(#1-22)},{1.02*sind(#1-22)})}%
\def\fancyqr@xm@dot#1#2{\noexpand\moveto\fancyqr@xm@p{#1}{#2}\noexpand\lineto\fancyqr@xm@p{#1}{#2}}%
% fine needles along the straight parts of the ring, leaning back from its
% middle line
\def\fancyqr@xm@needles#1{\fancyqr@xm@nz{#1}1.75/2.05/2.35/2.65/2.95/3.25/3.55/3.85/4.15/4.45/4.75/5.05/\relax/}%
\def\fancyqr@xm@nz#1#2/{\ifx\relax#2\else\fancyqr@xm@nd{#1}{#2}\expandafter\fancyqr@xm@nz\expandafter{\expandafter#1\expandafter}\fi}%
\def\fancyqr@xm@nd#1#2{%
   \fancyqr@xm@ndl{#2}{.55}{#2-.16}{.8}\fancyqr@xm@ndl{#2+.15}{.45}{#2-.01}{.2}%
   \fancyqr@xm@ndl{#1-#2}{#1-.55}{#1-#2+.16}{#1-.8}\fancyqr@xm@ndl{#1-#2-.15}{#1-.45}{#1-#2+.01}{#1-.2}%
   \fancyqr@xm@ndl{.55}{#1-#2}{.8}{#1-#2+.16}\fancyqr@xm@ndl{.45}{#1-#2-.15}{.2}{#1-#2+.01}%
   \fancyqr@xm@ndl{#1-.55}{#2}{#1-.8}{#2-.16}\fancyqr@xm@ndl{#1-.45}{#2+.15}{#1-.2}{#2-.01}}%
\def\fancyqr@xm@ndl#1#2#3#4{\noexpand\moveto\fancyqr@xm@p{#1}{#2}\noexpand\lineto\fancyqr@xm@p{#3}{#4}}%
% a bow at the bottom of the ring around x=#1: two loops (#2 the sign of the
% side) and the tails
\def\fancyqr@xm@wing#1#2{\noexpand\moveto\fancyqr@xm@p{#1}{.5}\noexpand\curveto\fancyqr@xm@p{#1#2.25}{.85}\fancyqr@xm@p{#1#2.6}{.8}%
      \fancyqr@xm@p{#1#2.58}{.5}\noexpand\curveto\fancyqr@xm@p{#1#2.56}{.22}\fancyqr@xm@p{#1#2.25}{.2}%
      \fancyqr@xm@p{#1}{.5}\noexpand\closepath\noexpand\fillpath}%
\def\fancyqr@xm@bow#1{\fancyqr@xm@wing{#1}-\fancyqr@xm@wing{#1}+
   \noexpand\moveto\fancyqr@xm@p{#1-.08}{.5}\noexpand\lineto\fancyqr@xm@p{#1-.3}{.02}%
      \noexpand\lineto\fancyqr@xm@p{#1-.12}{.06}\noexpand\lineto\fancyqr@xm@p{#1}{.4}%
      \noexpand\lineto\fancyqr@xm@p{#1+.12}{.06}\noexpand\lineto\fancyqr@xm@p{#1+.3}{.02}%
      \noexpand\lineto\fancyqr@xm@p{#1+.08}{.5}\noexpand\closepath\noexpand\fillpath
   \noexpand\moveto\fancyqr@xm@p{#1}{.5}\noexpand\lineto\fancyqr@xm@p{#1}{.5}}%
% snow lies on the tiles and wreaths as in the style `snow', but not on or under
% figures
\let\fancyqr@xm@lend\FancyQrLend\let\FancyQrLend\@gobbletwo
\input{fancyqr-style-snow.code}\fancyqr@style@undo\let\FancyQrLend\fancyqr@xm@lend
% ... no figure takes a module of the timing patterns
\let\fancyqr@xm@snowbegin\fancyqr@style@begin
\def\fancyqr@style@begin{\fancyqr@xm@snowbegin
   \fancyqr@fig@block7\@ne\@ne\@max@x\fancyqr@fig@block\@ne7\@max@y\@ne}%
% ... the outline only follows the top of the snow, so that it lies flush on
% the tile
\def\fancyqr@snow@draw#1#2{%
   \unitlength\qr@modulesize
   \fancyqr@snow@waves{#1}{#2}%
   \roundjoin\roundcap\linethickness{.05\unitlength}%
   \color{\fancyqr@snow@color}\fancyqr@snow@path\lineto\fillpath
   \color{\fancyqr@snow@line}%
   \ifnum\fancyqr@snow@l=\@ne\expandafter\moveto\fancyqr@snow@end\fancyqr@snow@lc
   \else\moveto(0,\fancyqr@snow@tl)\fi
   \fancyqr@snow@up
   \ifnum\fancyqr@snow@r=\@ne\expandafter\fancyqr@xm@first\fancyqr@snow@rc\@nil\fi\strokepath
   \ifnum\fancyqr@xm@rand3=\z@\fancyqr@xm@glint{\fpeval{\fancyqr@snow@xl+(\fancyqr@snow@xr-\fancyqr@snow@xl)%
      *\fancyqr@xm@rand{60}/100+.2*(\fancyqr@snow@xr-\fancyqr@snow@xl)}}%
      {\fpeval{\fancyqr@snow@one+.5*\fancyqr@snow@height}}\fi}%
\def\fancyqr@xm@first#1#2#3#4#5#6#7\@nil{#1{#2}{#3}{#4}{#5}{#6}}%
% no glints any more; the draw stays so that the seeded sequence keeps its place
\def\fancyqr@xm@glint#1#2{}%
\let\fancyqr@xm@snowrings\fancyqr@fixed@extra
\def\fancyqr@fixed@extra{\fancyqr@drawpatterns\fancyqr@xm@pattern\fancyqr@xm@snowrings\fancyqr@xm@decor}%
\def\fancyqr@xm@snowtile#1#2#3#4{\ifnum\fancyqr@pass=\@ne\fancyqr@christmas@tile#1#2#3#4%
   \else\edef\@tempa{\FancyQrFigureAt{\the\i}{\the\j}\fancyqr@xm@figabove{\the\j}}%
      \ifx\@tempa\@empty\FancyQrIfTiming{}{\fancyqr@xm@snowcap}\fi\fi}%
% the figures in the row above, at column #1 and next to it (a figure may reach
% into the light modules beside it)
\def\fancyqr@xm@figabove#1{\FancyQrFigureAt{\the\numexpr\i-\@ne}{\the\numexpr#1-\@ne}%
   \FancyQrFigureAt{\the\numexpr\i-\@ne}{#1}\FancyQrFigureAt{\the\numexpr\i-\@ne}{\the\numexpr#1+\@ne}}%
% as in `snow', but a lone round top gets a crescent that hugs it, and an end
% next to a tile without snow (near a figure or in a timing pattern) tapers off
% over the module
\def\fancyqr@xm@snowcap{\ifnum\@up\ifnum\i=\@ne1\fi=\z@\fancyqr@snow@run{\the\i}{\the\j}\iffancyqr@snow@
   \edef\fancyqr@snow@fl{\fancyqr@xm@end{\the\numexpr\j-\@ne}\@left}%
   \edef\fancyqr@snow@fr{\fancyqr@xm@end{\the\numexpr\j+\@ne}\@right}%
   \ifnum\fancyqr@snow@fl\fancyqr@snow@fr=11 \fancyqr@xm@crescent\else
      \let\fancyqr@snow@one\fancyqr@snow@scale
      \fancyqr@snow@setup1\fancyqr@rounding@factor\fancyqr@snow@fl\fancyqr@snow@fr
      \fancyqr@snow@draw{\the\j}{\the\i}\fi\fi\fi}%
% the end toward column #1, #2 the neighbour there: 1 free, 0 on or at a wall,
% 2 tapered
\def\fancyqr@xm@end#1#2{\ifnum#2=\@ne
   \if\relax\detokenize\expandafter{\expanded{\fancyqr@xm@figabove{#1}}}\relax
   \ifnum\qr@matrixentry\fancyqr@currprint{\the\numexpr\i-\@ne}{#1}=\@ne 0\else
   \ifnum\i=7 \fancyqr@between{#1}\@max@x\else\ifnum#1=7 \fancyqr@between\i\@max@y\else0\fi\fi\fi
   \else2\fi\else1\fi}%
\def\fancyqr@snow@wave@at#1#2#3{\ifcase#1
      \edef\fancyqr@snow@h{\fancyqr@snow@wave*\fancyqr@snow@sin{23*#2+17*#3}}%
      \edef\fancyqr@snow@s{2.3*\fancyqr@snow@wave*\fancyqr@snow@sin{23*#2+17*#3+16}}%
   \or\def\fancyqr@snow@h{0}\def\fancyqr@snow@s{0}%
   \else\edef\fancyqr@snow@h{-\fancyqr@snow@height}\def\fancyqr@snow@s{0}\fi}%
% the crescent rises tangent from the round top at 30 and 150 degrees
\def\fancyqr@xm@crescent{{\unitlength\qr@modulesize
   \fancyqr@xm@D{cr\fancyqr@snow@scale/\fancyqr@snow@height}{%
      \edef\h@r{\fpeval{.5*\fancyqr@snow@scale}}\edef\h@t{\fpeval{2*\h@r+.6*\fancyqr@snow@height}}%
      \def\h@u{\M({1.866*\h@r},{1.5*\h@r})\C({1.866*\h@r-.12},{1.5*\h@r+.208})(1.45*\h@r,\h@t)(\h@r,\h@t)%
         \C(.55*\h@r,\h@t)({.134*\h@r+.12},{1.5*\h@r+.208})({.134*\h@r},{1.5*\h@r})}}{%
   \noexpand\color{\noexpand\fancyqr@snow@color}\h@u\A(\h@r,\h@r){\h@r}{150}{30}\Z\F
   \noexpand\color{\noexpand\fancyqr@snow@line}\T{.05}\R\h@u\S}}}%
% decorations in white modules that no figure, pattern or timing line takes: a
% light chain sagging across a white gap of up to four modules between two
% tiles, one draped over the top of a horizontal run of dark tiles, and, in open
% white, a glowing star, a snowflake or a candle on holly; all of them stay in
% their modules, off the module centers, in pale colors, and vary by position
% and seed
\def\fancyqr@xm@at#1#2{\qr@matrixentry\fancyqr@currprint{\the\numexpr#1}{\the\numexpr#2}}%
\def\fancyqr@xm@fr#1#2{\ifcsname fancyqr@B@\the\numexpr#1@\the\numexpr#2\endcsname0\else
   \ifcsname fancyqr@F@\the\numexpr#1@\the\numexpr#2\endcsname0\else1\fi\fi}%
% 1 if (#1,#2) is a free module of color #3 (0 white, 1 dark) off the timing lines
\def\fancyqr@xm@m#1#2#3{\ifnum\numexpr#1\relax=7 0\else\ifnum\numexpr#2\relax=7 0\else
   \ifnum\fancyqr@xm@at{#1}{#2}=#3 \fancyqr@xm@fr{#1}{#2}\else0\fi\fi\fi}%
\def\fancyqr@xm@lt#1#2{\ifnum#1<#2 1\else0\fi}%
% which of the three small decorations a module gets: by its place, in the gallery
% always the one shown
\def\fancyqr@xm@kind{\iffancyqr@faint@\ifx\fancyqr@gal@e\fancyqr@xm@kS 0\else
   \ifx\fancyqr@gal@e\fancyqr@xm@kF 1\else\ifx\fancyqr@gal@e\fancyqr@xm@kC 2\else\numexpr\fancyqr@xm@h-3*((\fancyqr@xm@h-1)/3)\fi\fi\fi
   \else\numexpr\fancyqr@xm@h-3*((\fancyqr@xm@h-1)/3)\fi\relax}%
\def\fancyqr@xm@kS{stars}\def\fancyqr@xm@kF{snowflakes}\def\fancyqr@xm@kC{candles}%
\def\fancyqr@xm@th#1{#1}%
% the white run from here to the right (at most 6), its modules free above and
% below
\def\fancyqr@xm@scan#1{\ifnum\fancyqr@xm@c<6 \ifnum\numexpr\@tempcntb+\fancyqr@xm@c\relax<\@max@x
   \ifnum\numexpr#1{\@tempcnta}{\@tempcntb+\fancyqr@xm@c}\relax=\@ne\edef\fancyqr@xm@c{\the\numexpr\fancyqr@xm@c+1}\fancyqr@xm@scan#1\fi\fi\fi}%
\def\fancyqr@xm@cw#1#2{\fancyqr@xm@m{#1}{#2}0*\fancyqr@xm@fr{#1-1}{#2}*\fancyqr@xm@fr{#1+1}{#2}}%
\def\fancyqr@xm@decor{{\unitlength\qr@modulesize
   \iffancyqr@faint@\else\blendcolors{!\fancyqr@xm@opacity!\ifx\fancyqr@background\@empty white\else\fancyqr@background\fi}\fi
   \edef\fancyqr@xm@salt{\csname int_rand:nn\endcsname{0}{99}}%
   \@tempcnta\@ne\@whilenum\@tempcnta<\numexpr\@max@y-1\relax\do{\advance\@tempcnta\@ne
   \@tempcntb\@ne\@whilenum\@tempcntb<\numexpr\@max@x-1\relax\do{\advance\@tempcntb\@ne
      \ifnum\fancyqr@xm@m\@tempcnta\@tempcntb0=\@ne\fancyqr@xm@one\fi}}}}%
\def\fancyqr@xm@one{%
   \count@\numexpr\@tempcnta*131+\@tempcntb*71+\@tempcnta*\@tempcntb*17+\fancyqr@xm@salt\relax
   \count@\numexpr\count@-100*((\count@-50)/100)\relax
   \edef\fancyqr@xm@h{\the\numexpr\@tempcnta*37+\@tempcntb*91+\@tempcnta*\@tempcntb*7+3*\fancyqr@xm@salt\relax}%
   \edef\fancyqr@xm@h{\the\numexpr\fancyqr@xm@h-100*((\fancyqr@xm@h-50)/100)\relax}%
   \def\fancyqr@xm@c{0}\fancyqr@xm@scan\fancyqr@xm@cw\edef\fancyqr@xm@l{\fancyqr@xm@c}%
   \def\fancyqr@xm@put{\put(\the\@tempcntb,\the\numexpr\@max@y-\@tempcnta\relax)}%
   \ifnum\numexpr\fancyqr@xm@m\@tempcnta{\@tempcntb-1}1*\fancyqr@xm@m\@tempcnta{\@tempcntb+\fancyqr@xm@l}1%
         *\fancyqr@xm@lt{\fancyqr@xm@l}5*\fancyqr@xm@lt\count@{\fancyqr@xm@th{30}}\relax=\@ne
      \fancyqr@xm@put{\FancyQrExtra{lights}{\fancyqr@xm@swag{\fancyqr@xm@l}{.84}{\fpeval{.1+.04*\fancyqr@xm@l}}{\the\numexpr2*\fancyqr@xm@l}0}}%
   \else\ifnum\numexpr\fancyqr@xm@m\@tempcnta\@tempcntb0*\fancyqr@xm@lt\count@{\fancyqr@xm@th{34}}%
         *\fancyqr@xm@m{\@tempcnta-1}\@tempcntb0*\fancyqr@xm@m{\@tempcnta+1}\@tempcntb0%
         *\fancyqr@xm@m\@tempcnta{\@tempcntb-1}0*\fancyqr@xm@m\@tempcnta{\@tempcntb+1}0\relax=\@ne
      \ifcase\fancyqr@xm@kind
         \fancyqr@xm@put{\FancyQrExtra{stars}\fancyqr@xm@star}\or
         \fancyqr@xm@put{\FancyQrExtra{snowflakes}\fancyqr@xm@flake}\or
         \fancyqr@xm@put{\FancyQrExtra{candles}\fancyqr@xm@candle}\fi
   \fi\fi}%
\def\fancyqr@xm@opacity{45}%
\def\fancyqr@xm@mv#1#2{\moveto(\fpeval{#1},\fpeval{#2})}%
\def\fancyqr@xm@ln#1#2{\lineto(\fpeval{#1},\fpeval{#2})}%
\def\fancyqr@xm@cu#1#2#3#4#5#6{\curveto(\fpeval{#1},\fpeval{#2})(\fpeval{#3},\fpeval{#4})(\fpeval{#5},\fpeval{#6})}%
\def\fancyqr@xm@dc#1#2#3{\moveto(\fpeval{#1+#3},\fpeval{#2})\circlearc{\fpeval{#1}}{\fpeval{#2}}{\fpeval{#3}}{0}{360}}%
\def\fancyqr@xm@disc#1#2#3#4{\fancyqr@mixcolor{#4}\fancyqr@xm@dc{#1}{#2}{#3}\fillpath}%
% a soft glow: discs of the color #4 with more of the warm light toward the middle
\def\fancyqr@xm@glow#1#2#3#4{\fancyqr@xm@disc{#1}{#2}{#3}{#4!9!fancyqr@xm@halo}%
   \fancyqr@xm@disc{#1}{#2}{.72*#3}{#4!18!fancyqr@xm@halo}\fancyqr@xm@disc{#1}{#2}{.46*#3}{#4!30!fancyqr@xm@halo}}%
% a chain of length #1 from height #2, sagging by #3, with #4 bulbs (the
% colors by the place and #5)
\def\fancyqr@xm@swag#1#2#3#4#5{{\fancyqr@mixcolor{fancyqr@xm@wire}\linethickness{.04\unitlength}\roundcap
   \fancyqr@xm@mv0{#2}\fancyqr@xm@cu{.3*#1}{#2-#3}{.7*#1}{#2-#3}{#1}{#2}\strokepath}%
   \@for\@tempa:=1,2,3,4,5,6,7,8\do{\ifnum\@tempa>#4 \else
      \edef\@tempb{\fpeval{\@tempa/(#4+1)}}%
      \fancyqr@xm@lamp{#1*(.9*(1-\@tempb)^2*\@tempb+2.1*(1-\@tempb)*\@tempb^2+\@tempb^3)}{#2-3*#3*\@tempb*(1-\@tempb)}%
         {\numexpr\count@+#5+\@tempa\relax}\fi}}%
\def\fancyqr@xm@lamp#1#2#3{{\edef\@tempc{fancyqr@xm@b\ifcase\numexpr#3-5*((#3-2)/5)\relax Y\or R\or B\or G\else O\fi}%
   \fancyqr@xm@glow{#1}{#2-.11}{.16}\@tempc
   \fancyqr@mixcolor{fancyqr@xm@gold}\fancyqr@xm@mv{#1-.03}{#2}\fancyqr@xm@ln{#1+.03}{#2}%
      \fancyqr@xm@ln{#1+.03}{#2-.05}\fancyqr@xm@ln{#1-.03}{#2-.05}\closepath\fillpath
   \fancyqr@xm@disc{#1}{#2-.11}{.075}\@tempc
   \fancyqr@xm@disc{#1-.025}{#2-.09}{.022}{white}}}%
\def\fancyqr@xm@star{{\fancyqr@xm@glow{.5}{.5}{.49}{fancyqr@xm@gold}%
   \edef\fancyqr@xm@rot{\fpeval{.3*\fancyqr@xm@h}}%
   \edef\fancyqr@xm@pn{\ifcase\numexpr\fancyqr@xm@h-3*((\fancyqr@xm@h-1)/3)\relax 5\or4\else8\fi}%
   \edef\fancyqr@xm@pi{\ifnum\fancyqr@xm@pn=4 .1\else\ifnum\fancyqr@xm@pn=8 .19\else.15\fi\fi}%
   \fancyqr@mixcolor{fancyqr@xm@spark}\fancyqr@xm@poly\fillpath
   \fancyqr@mixcolor{fancyqr@xm@deepgold}\linethickness{.04\unitlength}\roundjoin\fancyqr@xm@poly\strokepath}}%
% a star of \fancyqr@xm@pn points, the inner radius \fancyqr@xm@pi
\def\fancyqr@xm@poly{\fancyqr@xm@mv{.5+.36*sind(\fancyqr@xm@rot)}{.5+.36*cosd(\fancyqr@xm@rot)}%
   \@tempcnta\z@\@whilenum\@tempcnta<\numexpr2*\fancyqr@xm@pn-1\relax\do{\advance\@tempcnta\@ne
      \fancyqr@xm@ln{.5+(\ifodd\@tempcnta\fancyqr@xm@pi\else.36\fi)*sind(180/\fancyqr@xm@pn*\the\@tempcnta+\fancyqr@xm@rot)}%
      {.5+(\ifodd\@tempcnta\fancyqr@xm@pi\else.36\fi)*cosd(180/\fancyqr@xm@pn*\the\@tempcnta+\fancyqr@xm@rot)}}\closepath}%
\def\fancyqr@xm@flake{{\fancyqr@mixcolor{fancyqr@xm@ice}\linethickness{.05\unitlength}\roundcap
   \edef\fancyqr@xm@rot{\fpeval{.3*\fancyqr@xm@h}}%
   \edef\fancyqr@xm@fv{\the\numexpr\fancyqr@xm@h/3-3*((\fancyqr@xm@h/3-1)/3)\relax}%
   \@for\@tempa:=0,1,2,3,4,5\do{\edef\@tempb{\fpeval{60*\@tempa+\fancyqr@xm@rot}}%
      \fancyqr@xm@mv{.5+.14*cosd(\@tempb)}{.5+.14*sind(\@tempb)}\fancyqr@xm@ln{.5+.44*cosd(\@tempb)}{.5+.44*sind(\@tempb)}%
      \ifcase\fancyqr@xm@fv\fancyqr@xm@fk{\@tempb}{.27}{.14}\fancyqr@xm@fk{\@tempb}{.27}{-.14}%
      \or\fancyqr@xm@fk{\@tempb}{.36}{.1}\fancyqr@xm@fk{\@tempb}{.36}{-.1}\fancyqr@xm@fk{\@tempb}{.22}{.1}\fancyqr@xm@fk{\@tempb}{.22}{-.1}\fi
      \strokepath\ifnum\fancyqr@xm@fv>\@ne\fancyqr@xm@dc{.5+.44*cosd(\@tempb)}{.5+.44*sind(\@tempb)}{.04}\fillpath\fi}}}%
\def\fancyqr@xm@fk#1#2#3{\fancyqr@xm@mv{.5+#2*cosd(#1)}{.5+#2*sind(#1)}%
   \fancyqr@xm@ln{.5+#2*cosd(#1)+.12*cosd(#1+(#3)*400)}{.5+#2*sind(#1)+.12*sind(#1+(#3)*400)}}%
\def\fancyqr@xm@candle{{\fancyqr@xm@glow{.5}{.78}{.21}{fancyqr@xm@flame}%
   \fancyqr@mixcolor{fancyqr@xm@pine}\moveto(.5,.17)\curveto(.4,.32)(.1,.26)(.08,.1)\curveto(.3,.03)(.45,.08)(.5,.17)\closepath\fillpath
   \moveto(.5,.17)\curveto(.6,.32)(.9,.26)(.92,.1)\curveto(.7,.03)(.55,.08)(.5,.17)\closepath\fillpath
   \edef\fancyqr@xm@cv{\the\numexpr\fancyqr@xm@h/9-3*((\fancyqr@xm@h/9-1)/3)\relax}%
   \fancyqr@mixcolor{fancyqr@xm@\ifcase\fancyqr@xm@cv cream\or red\else gold\fi}%
      \moveto(.41,.12)\lineto(.59,.12)\lineto(.59,.62)\lineto(.41,.62)\closepath\fillpath
   \fancyqr@mixcolor{fancyqr@xm@\ifcase\fancyqr@xm@cv berry\or cream\else red\fi}%
      \moveto(.41,.2)\lineto(.59,.2)\lineto(.59,.3)\lineto(.41,.3)\closepath\fillpath
   \fancyqr@xm@disc{.34}{.12}{.045}{fancyqr@xm@red}\fancyqr@xm@disc{.66}{.12}{.045}{fancyqr@xm@red}%
   \fancyqr@mixcolor{fancyqr@xm@flame}\moveto(.5,.92)\curveto(.6,.83)(.63,.76)(.5,.67)\curveto(.37,.76)(.4,.83)(.5,.92)\closepath\fillpath
   \fancyqr@mixcolor{fancyqr@xm@spark}\moveto(.5,.84)\curveto(.55,.79)(.56,.76)(.5,.72)\curveto(.44,.76)(.45,.79)(.5,.84)\closepath\fillpath}}%
\FancyQrExtras{timing,lights,stars,snowflakes,candles}%
% what another style gets with add=christmas
\FancyQrLend{after}{\fancyqr@xm@decor}\FancyQrLend{extras}{lights,stars,snowflakes,candles}%
\FancyQrRoundedPatterns\fancyqr@xm@snowtile
\FancyQrInnerRoundings
\FancyQrStyleSet{%
   r color=fancyqr@xm@teal,l color=fancyqr@xm@pine,%
   finder=rounded,finder core=circle,%
   finder core color=fancyqr@xm@berry%
}%
