diff --git a/package.json b/package.json --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "moment": "^2.18.1", "mousetrap": "^1.6.1", "qrious": "^4.0.2", - "sticky-sidebar": "3.3.1", + "sticky-sidebar": "3.3.4", "waypoints": "4.0.1", "webpack": "4.23.1", "webpack-cli": "3.1.2", diff --git a/rhodecode/apps/repository/views/repo_commits.py b/rhodecode/apps/repository/views/repo_commits.py --- a/rhodecode/apps/repository/views/repo_commits.py +++ b/rhodecode/apps/repository/views/repo_commits.py @@ -128,6 +128,7 @@ class RepoCommitsView(RepoAppView): c.statuses = [] c.comments = [] c.unresolved_comments = [] + c.resolved_comments = [] if len(c.commit_ranges) == 1: commit = c.commit_ranges[0] c.comments = CommentsModel().get_comments( @@ -148,6 +149,8 @@ class RepoCommitsView(RepoAppView): c.unresolved_comments = CommentsModel()\ .get_commit_unresolved_todos(commit.raw_id) + c.resolved_comments = CommentsModel()\ + .get_commit_resolved_todos(commit.raw_id) diff = None # Iterate over ranges (default commit view is always one commit) diff --git a/rhodecode/model/comment.py b/rhodecode/model/comment.py --- a/rhodecode/model/comment.py +++ b/rhodecode/model/comment.py @@ -187,6 +187,23 @@ class CommentsModel(BaseModel): return todos + def get_commit_resolved_todos(self, commit_id, show_outdated=True): + + todos = Session().query(ChangesetComment) \ + .filter(ChangesetComment.revision == commit_id) \ + .filter(ChangesetComment.resolved_by != None) \ + .filter(ChangesetComment.comment_type + == ChangesetComment.COMMENT_TYPE_TODO) + + if not show_outdated: + todos = todos.filter( + coalesce(ChangesetComment.display_state, '') != + ChangesetComment.COMMENT_OUTDATED) + + todos = todos.all() + + return todos + def _log_audit_action(self, action, action_data, auth_user, comment): audit_logger.store( action=action, diff --git a/rhodecode/public/css/buttons.less b/rhodecode/public/css/buttons.less --- a/rhodecode/public/css/buttons.less +++ b/rhodecode/public/css/buttons.less @@ -71,6 +71,12 @@ input[type="button"] { margin: 0 0 0 0; } + &.btn-active { + color: @rcdarkblue; + background-color: @white; + .border ( @border-thickness, @rcdarkblue ); + } + } @@ -97,6 +103,11 @@ input[type="button"] { .border ( @border-thickness-buttons, @grey5 ); background-color: transparent; } + &.btn-active { + color: @rcdarkblue; + background-color: @white; + .border ( @border-thickness, @rcdarkblue ); + } } .btn-primary, @@ -214,8 +225,28 @@ input[type="button"] { display: inline-block; .btn { float: left; - margin: 0 0 0 -1px; + margin: 0 0 0 0; + // first item + &:first-of-type:not(:last-of-type) { + border-radius: @border-radius 0 0 @border-radius; + + } + // middle elements + &:not(:first-of-type):not(:last-of-type) { + border-radius: 0; + border-left-width: 0; + border-right-width: 0; + } + // last item + &:last-of-type:not(:first-of-type) { + border-radius: 0 @border-radius @border-radius 0; + } + + &:only-child { + border-radius: @border-radius; + } } + } .btn-link { diff --git a/rhodecode/public/css/code-block.less b/rhodecode/public/css/code-block.less --- a/rhodecode/public/css/code-block.less +++ b/rhodecode/public/css/code-block.less @@ -682,13 +682,14 @@ input.filediff-collapse-state { display: none } .filediff-collapse-indicator { - width: 0; - height: 0; - border-style: solid; - border-width: 4.5px 0 4.5px 9.3px; - border-color: transparent transparent transparent #aaa; - margin: 6px 0px; + float: left; + cursor: pointer; + margin: 1px -5px; } + .filediff-collapse-indicator:before { + content: '\f105'; + } + .filediff-menu { display: none; } @@ -696,18 +697,20 @@ input.filediff-collapse-state { } &+ .filediff { /* file diff is expanded */ + .filediff-collapse-indicator { - width: 0; - height: 0; - border-style: solid; - border-width: 9.3px 4.5px 0 4.5px; - border-color: #aaa transparent transparent transparent; - margin: 6px 0px; + float: left; + cursor: pointer; + margin: 1px -5px; + } + .filediff-collapse-indicator:before { + content: '\f107'; + } - } .filediff-menu { display: block; } + margin: 10px 0; &:nth-child(2) { margin: 0; @@ -735,13 +738,14 @@ input.filediff-collapse-state { #diff-file-sticky{ will-change: min-height; + height: 80px; } .sidebar__inner{ transform: translate(0, 0); /* For browsers don't support translate3d. */ transform: translate3d(0, 0, 0); will-change: position, transform; - height: 70px; + height: 65px; z-index: 30; background-color: #fff; padding: 5px 0px; @@ -775,10 +779,17 @@ input.filediff-collapse-state { } .diffset-menu { - margin-bottom: 20px; + } + +#todo-box { + clear:both; + display: none; + text-align: right +} + .diffset { - margin: 20px auto; + margin: 0px auto; .diffset-heading { border: 1px solid @grey5; margin-bottom: -1px; @@ -826,6 +837,8 @@ input.filediff-collapse-state { margin-right: 3px; font-size: 12px; font-weight: normal; + min-width: 30px; + text-align: center; &:first-child { border-radius: @border-radius 0 0 @border-radius; @@ -877,18 +890,10 @@ input.filediff-collapse-state { } } - .filediff-collapse-indicator { - border-style: solid; - float: left; - margin: 4px 0px 0 0; - cursor: pointer; - } - .filediff-heading { - background: @grey7; cursor: pointer; display: block; - padding: 5px 10px; + padding: 10px 10px; } .filediff-heading:after { content: ""; @@ -900,9 +905,9 @@ input.filediff-collapse-state { } .filediff-menu { - float: right; text-align: right; padding: 5px 5px 5px 0px; + background: @grey7; &> a, &> span { @@ -958,8 +963,16 @@ input.filediff-collapse-state { } +.op-added { + color: @alert1; +} + +.op-deleted { + color: @alert2; +} .filediff, .filelist { + .pill { &[op="name"] { background: none; diff --git a/rhodecode/public/css/comments.less b/rhodecode/public/css/comments.less --- a/rhodecode/public/css/comments.less +++ b/rhodecode/public/css/comments.less @@ -10,6 +10,14 @@ width: 100%; } +.comments-heading { + margin-bottom: -1px; + background: @grey6; + display: block; + padding: 10px 0px; + font-size: 18px +} + tr.inline-comments div { max-width: 100%; diff --git a/rhodecode/public/css/main.less b/rhodecode/public/css/main.less --- a/rhodecode/public/css/main.less +++ b/rhodecode/public/css/main.less @@ -1107,6 +1107,52 @@ label { } } +.review-status { + &.under_review { + color: @alert3; + } + &.approved { + color: @alert1; + } + &.rejected, + &.forced_closed{ + color: @alert2; + } + &.not_reviewed { + color: @grey5; + } +} + +.review-status-under_review { + color: @alert3; +} +.status-tag-under_review { + border-color: @alert3; +} + +.review-status-approved { + color: @alert1; +} +.status-tag-approved { + border-color: @alert1; +} + +.review-status-rejected, +.review-status-forced_closed { + color: @alert2; +} +.status-tag-rejected, +.status-tag-forced_closed { + border-color: @alert2; +} + +.review-status-not_reviewed { + color: @grey5; +} +.status-tag-not_reviewed { + border-color: @grey5; +} + .flag_status_comment_box { margin: 5px 6px 0px 2px; } diff --git a/rhodecode/public/css/rcicons.less b/rhodecode/public/css/rcicons.less --- a/rhodecode/public/css/rcicons.less +++ b/rhodecode/public/css/rcicons.less @@ -1,12 +1,12 @@ @font-face { font-family: 'rcicons'; - src: url('../fonts/RCIcons/rcicons.eot?92789106'); - src: url('../fonts/RCIcons/rcicons.eot?92789106#iefix') format('embedded-opentype'), - url('../fonts/RCIcons/rcicons.woff2?92789106') format('woff2'), - url('../fonts/RCIcons/rcicons.woff?92789106') format('woff'), - url('../fonts/RCIcons/rcicons.ttf?92789106') format('truetype'), - url('../fonts/RCIcons/rcicons.svg?92789106#rcicons') format('svg'); + src: url('../fonts/RCIcons/rcicons.eot?44705679'); + src: url('../fonts/RCIcons/rcicons.eot?44705679#iefix') format('embedded-opentype'), + url('../fonts/RCIcons/rcicons.woff2?44705679') format('woff2'), + url('../fonts/RCIcons/rcicons.woff?44705679') format('woff'), + url('../fonts/RCIcons/rcicons.ttf?44705679') format('truetype'), + url('../fonts/RCIcons/rcicons.svg?44705679#rcicons') format('svg'); font-weight: normal; font-style: normal; @@ -163,8 +163,6 @@ .icon-down:before { content: '\e80b'; } /* '' */ .icon-folder:before { content: '\e80c'; } /* '' */ .icon-folder-open:before { content: '\e80d'; } /* '' */ -.icon-folder-empty:before { content: '\f114'; } /* '' */ -.icon-folder-open-empty:before { content: '\f115'; } /* '' */ .icon-trash-empty:before { content: '\e80e'; } /* '' */ .icon-group:before { content: '\e80f'; } /* '' */ .icon-remove:before { content: '\e810'; } /* '' */ @@ -187,6 +185,7 @@ .icon-info-circled:before { content: '\e821'; } /* '' */ .icon-upload:before { content: '\e822'; } /* '' */ .icon-home:before { content: '\e823'; } /* '' */ +.icon-flag-filled:before { content: '\e824'; } /* '' */ .icon-git:before { content: '\e82a'; } /* '' */ .icon-hg:before { content: '\e82d'; } /* '' */ .icon-svn:before { content: '\e82e'; } /* '' */ @@ -195,11 +194,24 @@ .icon-rhodecode:before { content: '\e831'; } /* '' */ .icon-up:before { content: '\e832'; } /* '' */ .icon-merge:before { content: '\e833'; } /* '' */ +.icon-spin-alt:before { content: '\e834'; } /* '' */ +.icon-spin:before { content: '\e838'; } /* '' */ .icon-docs:before { content: '\f0c5'; } /* '' */ .icon-menu:before { content: '\f0c9'; } /* '' */ +.icon-sort:before { content: '\f0dc'; } /* '' */ .icon-paste:before { content: '\f0ea'; } /* '' */ .icon-doc-text:before { content: '\f0f6'; } /* '' */ .icon-plus-squared:before { content: '\f0fe'; } /* '' */ +.icon-angle-left:before { content: '\f104'; } /* '' */ +.icon-angle-right:before { content: '\f105'; } /* '' */ +.icon-angle-up:before { content: '\f106'; } /* '' */ +.icon-angle-down:before { content: '\f107'; } /* '' */ +.icon-circle-empty:before { content: '\f10c'; } /* '' */ +.icon-circle:before { content: '\f111'; } /* '' */ +.icon-folder-empty:before { content: '\f114'; } /* '' */ +.icon-folder-open-empty:before { content: '\f115'; } /* '' */ +.icon-code:before { content: '\f121'; } /* '' */ +.icon-info:before { content: '\f129'; } /* '' */ .icon-minus-squared:before { content: '\f146'; } /* '' */ .icon-minus-squared-alt:before { content: '\f147'; } /* '' */ .icon-doc-inv:before { content: '\f15b'; } /* '' */ @@ -207,10 +219,9 @@ .icon-plus-squared-alt:before { content: '\f196'; } /* '' */ .icon-file-code:before { content: '\f1c9'; } /* '' */ .icon-history:before { content: '\f1da'; } /* '' */ +.icon-circle-thin:before { content: '\f1db'; } /* '' */ .icon-sliders:before { content: '\f1de'; } /* '' */ .icon-trash:before { content: '\f1f8'; } /* '' */ -.icon-spin-alt:before { content: '\e834'; } /* '' */ -.icon-spin:before { content: '\e838'; } /* '' */ // MERGED ICONS BASED ON CURRENT ONES @@ -233,10 +244,12 @@ .icon-false:before { &:extend(.icon-delete:before); } .icon-expand-linked:before { &:extend(.icon-down:before); } .icon-pr-merge-fail:before { &:extend(.icon-delete:before); } +.icon-wide-mode:before { &:extend(.icon-sort:before); } +.icon-flag-filled-red:before { &:extend(.icon-flag-filled:before); } // TRANSFORM - .icon-merge:before {transform: rotate(180deg);} +.icon-wide-mode:before {transform: rotate(90deg);} // -- END ICON CLASSES -- // @@ -254,6 +267,7 @@ .icon-false { color: @grey5 } .icon-expand-linked { cursor: pointer; color: @grey3; font-size: 14px } .icon-more-linked { cursor: pointer; color: @grey3 } +.icon-flag-filled-red { color: @color5 !important; } .repo-switcher-dropdown .select2-result-label { .icon-git:before { diff --git a/rhodecode/public/css/select2.less b/rhodecode/public/css/select2.less --- a/rhodecode/public/css/select2.less +++ b/rhodecode/public/css/select2.less @@ -152,6 +152,8 @@ select.select2{height:28px;visibility:hi .drop-menu-no-width { .drop-menu-base; width: auto; + min-width: 0; + margin: 0; } .field-sm .drop-menu { diff --git a/rhodecode/public/css/summary.less b/rhodecode/public/css/summary.less --- a/rhodecode/public/css/summary.less +++ b/rhodecode/public/css/summary.less @@ -153,6 +153,7 @@ text-align: center; color: #949494; font-size: 11px; + line-height: 1.3em; &:hover { background: #f1f1f1; @@ -199,6 +200,10 @@ .fieldset { margin-bottom: 0; } + + .tags-main { + margin-bottom: 5px; + } } .fieldset { diff --git a/rhodecode/public/fonts/RCIcons/config.json b/rhodecode/public/fonts/RCIcons/config.json --- a/rhodecode/public/fonts/RCIcons/config.json +++ b/rhodecode/public/fonts/RCIcons/config.json @@ -564,6 +564,72 @@ "src": "fontawesome" }, { + "uid": "7034e4d22866af82bef811f52fb1ba46", + "css": "code", + "code": 61729, + "src": "fontawesome" + }, + { + "uid": "f3f90c8c89795da30f7444634476ea4f", + "css": "angle-left", + "code": 61700, + "src": "fontawesome" + }, + { + "uid": "7bf14281af5633a597f85b061ef1cfb9", + "css": "angle-right", + "code": 61701, + "src": "fontawesome" + }, + { + "uid": "5de9370846a26947e03f63142a3f1c07", + "css": "angle-up", + "code": 61702, + "src": "fontawesome" + }, + { + "uid": "e4dde1992f787163e2e2b534b8c8067d", + "css": "angle-down", + "code": 61703, + "src": "fontawesome" + }, + { + "uid": "4i0s2bklai5fywieqm4dqqngfz9ptfab", + "css": "flag-filled", + "code": 59428, + "src": "typicons" + }, + { + "uid": "3d4ea8a78dc34efe891f3a0f3d961274", + "css": "info", + "code": 61737, + "src": "fontawesome" + }, + { + "uid": "56a21935a5d4d79b2e91ec00f760b369", + "css": "sort", + "code": 61660, + "src": "fontawesome" + }, + { + "uid": "130380e481a7defc690dfb24123a1f0c", + "css": "circle", + "code": 61713, + "src": "fontawesome" + }, + { + "uid": "422e07e5afb80258a9c4ed1706498f8a", + "css": "circle-empty", + "code": 61708, + "src": "fontawesome" + }, + { + "uid": "5774d0a0e50f6eefc8be01bd761e5dd3", + "css": "circle-thin", + "code": 61915, + "src": "fontawesome" + }, + { "uid": "c43db6645e7515889fc2193294f50767", "css": "plus", "code": 59411, diff --git a/rhodecode/public/fonts/RCIcons/rcicons.eot b/rhodecode/public/fonts/RCIcons/rcicons.eot index 041a625cef455f924ff6020314e110f7355ddc65..a90776c9222c7300ddafe5d11867c2d70e988e1e GIT binary patch literal 19568 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 Ia7Ez%0xHMQ;s5{u diff --git a/rhodecode/public/fonts/RCIcons/rcicons.svg b/rhodecode/public/fonts/RCIcons/rcicons.svg --- a/rhodecode/public/fonts/RCIcons/rcicons.svg +++ b/rhodecode/public/fonts/RCIcons/rcicons.svg @@ -78,6 +78,8 @@ + + @@ -102,16 +104,34 @@ + + + + + + + + + + + + + + + + + + @@ -126,6 +146,8 @@ + + diff --git a/rhodecode/public/fonts/RCIcons/rcicons.ttf b/rhodecode/public/fonts/RCIcons/rcicons.ttf index 567538e5a7fbcac3d5306bd158d27bf86f0a0721..ff76b7751c85c82f1b21a34d8ded7b9dee20cc58 GIT binary patch literal 19404 zc%0pQdwg8gdEj~6_q}uH-kE#vJTw}OW~3RttjCOI#t&Jx@k6$-jjdpV`|V$=nRD-Xe&;*i`CjKSLKq>WqPq}9y+b=baz*NQT5m%LFNNHlSMBJ@ z5BBU3A^i}fckMqqa_m2jzx7FksD_YW9GtlIz#pGkayLTqpCL5RduVKA)X9t-gt~7+ zC>??f@lN^%#J>)q<+e+ck?3ZZRcYX3;N+WP0vJ^|&A9UZyl7`}o09h5~O zothjuI(FTgfBOVN>!CjR%VSf=XTI6I;cEzO{8PZ883FEe`}|>qxSsj*^XIu9mb2(@ z*v)~k^|ATyel$4ne~?Nmtl+hyC*P^Pq3vF-hwgx+goxjgwHqdXg)}$CauxU>G+$S) zpk6eH$hr-icOrdaWM&e@5m#4UAIB5p2S)(DpMo;ZeM=C8S}y%Kei-r4-ED+X>>=-s z-$Z?wFeG@2F8jCb!1__Nx`Jlkcj>VQ#_~BICj7Ax|GUFyT&m7f(@&fAWsqN)KhNsW z-Ch9NUo77}Kj#MXGI7@C-uVmUwGV;A+pM1&Oc?(PKkfI4$Gkx9_QFD6pYiZvft9=U z&5P|8#oabu9{ll)ToAgv*&~m7G{h$%7rXhCaRKCW_(n+gq7>9KDlL_cN`GbPxo@BQ z?zz{`y>spt=c=>ftTt=T+Oy5G?XyF(*UdgQ``y{Ivv174KMy=qLC|8!B`r9&h2^%` zFuT`n@xxk+f7c%d%x;0teV2S5az7{C&%@{u_wy)xSPKGUlVfTvN#55V21;s@Y! zRPh6FJgWEscpp{#08)S|egJtu6+eJvfXsUVWCT@~cmbpZRl2y#An%(OK&>d*@Ixm10L9>r}0rUx) z{jL{4v!K}@dI2$bXT5+Jyf?f6dIxN%7nrQM7~Y3oLhs@m@nd9|yhC@=yXlwc%k+P8 z-P||%&+xAc+k{7jSHw?ANE(n{SMtjJs;*9|Usum*OSMDVecG#mrGe4F!+M+kh2Txb zQe)ccwKiH`wbRbE&Q~HRl8-zX<)Yi7w?&_fz7qXKtR*%WyDRq3@!|N%_zMkM!}5kF z6D09i;(TLQ;~yrYp0v-uNAD%S0QmsU!f8x~ zk>v+j1xZ>iK~=d!2z#Cxcog6#MVR!I&Hh0Q15RSwv~&z45Q2bFHk=l0v&=|QDw_S- zO!GaNffoF4Edv>NR}CuD>v>bVC)wE}ibPCywx_E68vMRr{wBP6dYu>`LmjE=SdZAz zgj2~*UklHV(PeZy(@#9krbR4t* z63TaAQ*1L`8ydm)!pq*9yujYMc#W4nMZZB4pzlHZ;#QcTu+@ZtWy%;>33p@B!#VHZSE`Q$ zLIHu|Gip@9H>hg0i&GD`72Dg3ZPb!Xz50l#@YNng!6U53-&5huI4f**`+1UXpiy)? zdI0*#6#H}iJs7^lY^Dd7vbp|ju^R)+!nc^srL!3zZZ?z6^!7nkW-0E2nEOhLy?tph zEo6YDEZ{0JBiInt8KSn1?KI@UH)DZN2$0u^GmPsj$K$$Ewza=hF7);llDH8!(Yh}*cXjn=_zSKiH`jNgX73IplBQ-hrN17vN(XEhZ zF0!HKBfWhf{DmZeh|@$IPzVv*X~fP7oG;~i`-=V9{$h^tE)X2(&*mbRt<6Obu1!Xc z%|u zsZ50YUL-?X=KhZ9x5lon*J91Z>&nsgrigmY@W#$g((-hyxm?_P{e+u0e#5?p+uB>m zTj}WBWF!O4ABm>t4s@()?-=Y*(~iUtx z@r=t8U!e-snU4mTSfCrN2zHq8q;p^-K+^N%&o+P}{IMkAHd$T|MxZ(&%lIM5q5OK# z_SH9KTdMv8GVZM4ZOOhyihK3QDpP&CF z7Xug}=KV1xCr!@Gc;3kh3?>V71t%%kb8?sSY@|cZJq-%&x$5&Q z6R%;3G5&i%Z5-4)#=>>_c!oxn-!dd1x#K=cK2Gx*J8 z=#Rm*cSi<-mn#ALF*D4R83-ebt^lRyh+q_e>zSas!rIHTYOF;z*XJ^Ax#Y=iC#Ve} z0+tY1Snxh}Z=Vfnpw+GJ!ek$hs4hsTT&ufK8?F$D~hu86@TuNb<(D?&gHX-Y`5?1T{yh6q&6bW$xO$0aTx>oRXp zP}hbQ3MNfnYYeATYjXpXF3+ybW}QZwPJ}c=;_YB0C`SZE5hDBsUsiukzEAFB-gB#~ zje2}BhndLLoY%7J!9sDwA>R*fHoA-_pM=L|gT0N5>0t25Cxgcv7Wv%gg1=fZ*v%?< zt8wt#qvT(KZ&twCWDE1{vY_NW*N#o^AO@S5@tiwQ-ps9lx%3@8kQ12qUv=-o3+`QX z#g65HfE_%RZ^}w`Y(;xRz9|`%_ic^FSG31_8sgEd`{bw|toDG*nY8S0!K=}-z7Vvm zWH?Mtb}n1d9*fws%J^Ue>E^JJI-Ay*tslJkee5)<4^LVw+({SJ?^E zOxSb34Q;K2O+E%`tI>3KAm;yxtR(;J>kz~Ybt4RknSGG?Ed78qNsp?)M59_Ts9h$8 zPhZTz1@;OCS;pKSLB3l_HCz=A`t&g9ZT`SYMV-yz?E{)W-D=m0v7?t=9r0)?pKZc>Wyj=LPmwSp7l zh~PN_5}?f4#Dcd}V$7FgS>WqrOKu*s;9?VQ^;S_LUvka6D1g)#@^lcpDIK#^I8tQn z>nfTIc+xrE7G0-{FGGJKiRumsr9xc%G;T0>W1|=rs~;caD7Y%6p5bkqdkZ30>K?wj z8w7RTI*HGAUp?Gi;;0kr*|Kf8dnqN7IEX(1%{D^wx$$^nNq@P+hF4)}du&M}?zAs0 zz{~C^|3N7vbpfhN^Gu#{%BxBwTFLZ>Vij3&*|MLKE@M zZH+x$J?lH*6_WV2c3w1ll3P2Q2b`{+#;siq4Yc)Do@esWG>|4 z^`27-4*xALJ|nzTft>0Na;MQBox9U5rMJV&F|vPa3eSiazC;F6_S+Xe@2%OsO!t6q zAfdya?gDbo(HXDajV z8UZwK#0Mri?(V^g?YC?vyJmLbgd`qP)Nq@?2e$=8aZ4;Ni=1)0q!|s7s{}*X;BdUu zrUaz}qJ$OxkfcXiy}HttXk3=4dAq3LU?OrA9~3uQ94C8~6})f7&Yd^y+<6NtH7Edh^HPPBuS5;lX^J^1+)wqGR znr}7D_0UZ~zYuCbx1q0~S>Fa&Ku5km3zE!Ylx4xfz9cRt?PV!jyhvE)P<v=cww zwX_R&Ebqep`&Eg%M$p1d9H*@__|>)}h+N>1pajB^E4YBLjpJLSfcOz!lK5Ss>eW*O zVRbkPYb{n0L(MgOfWMlHno>ach#=qtI|L;`)?wamR5exXqIex`RKy)SM5U4T8<^{m zz>GyWvX&%d$o6Y@NN#QJH&(7O&0CFKq^+s3ql4^*$BK@Q|9%i~(Zi93R#&wr(q|;SRB@1u7Ksr z%oyWRXYW!BBie@#*Nx`o74NJ_@QS!jj%~Xyud2H){6Rk7#KQtrZBemoU%Tl~xbv!$ z+xhzK?KgjC{hI4D#T!%V_*I$1E7>?7#s}+1d4j{^)ji{RIVUJ$N6Rf+%#P4Kf2fpX zL9hhOSLe3g)qtb1ec^D+k{b>WEBB6%u3pu0V=0X2{2b`$kAjZQpkB78-YR~ecWb$Z zk0uF>(gGm{w+QD!>5g6vDsb}_-r%+i!sg9_upJcImd%iPwVR&a{@~{y+D3NX|AqT@ zeQf%r%6BG(+rIwZpWpfZcAnp|h3B_>&2^!c21u;=4Lcs(Nw%H*>`7?*;Eoe7&dj{{ z4tsb$TMhpfc0$qG-vgM!BbyEa?re(%>^ydkroyjq9pn>s6PRBN>$x;Xv2_1Jl9{E$mq1gcZWWtgJ?+OJ&9c-}&}Q1lnX z;21bGlyWL5=ZKTS71y#>l93}2VTtEh?%S@hf7{P>QmlGC4cHtawj>ZU@W_FiEZXph z05g{h@Q5&OF1jpTM}nuoy>Rp)@E4euVFfQHo~;`@UcQm}Ag)(&$_mye3cqeng6>`| z!>8HDqWM?*uI_Mq#ZObJ1cbQ>ib^Ikzq8P+v8G?e7;6Ek6`Q+ z?jpY@Q8znVY6a{%vB@5_MTK3ryr9MU5~j22kYAyQB}ICcZ3-0KeT4I(GNedHSQH+3 ztZq2lcSA;!l|baQ`&96S-F}AhX59ce*Kc})cDp`jJ3GZ{1yfIwz`C`!?Qe^~s3V0W zW~ed$l7gxCc`V0x%s*E74KC-qS}AiXT?)JlE~gxYiDi>|DiStb?=#d`TLfse$OESt z-@yYnwY4=R@pi}eG`pY)_^U7_^B3k{q4&eOH4X{K-Nex`JTuI>EV2jN$&1ii48_?= zbmNs*UP$OW9mT*8!#WsmGo0$nx~}0;^<~S#CC9*z7>2)xM_!}63%A5hOPE8`jYZGU znEkH5k|%e?RtLBJWLwXjg=9yH#qtl4{~Aj)SNGY$ZQHt~ws-9mNkqu!Su*d^`?u&% z=w{%jYteOR^wPc5QWhskAzvWe=m#3}O`0N7 zji^B-8V|;8-Ld3=tbuMfBwZAPyk=+A054(=Up9?SKcky-@e5CReZ+Hf zXM>Rd;b?&)eC{5Vli1dNB$G(SorDpimZ2Fs6*-<4Bt>WvIYHtmCE=iH+YOp?7_V4X ztzxpwv-Q*TP4G*D;FVr`DYg2uU;r~Bj8rU?3lT;+mu@w(1-+$ovESRDSXj0)dUcbW zOD(pKK|g)rKR0Bv4fG@Mtdb4JZ-Jp^{{ULoy$-miJ1@WZQy}7PMA=# z4|oT8x1_*4jBeaRvbk<|g~*(WBw>UAE`#heTk_i$aE#|?Ff$B%wu*qwU=#%x+!ky` zYM@{f0aIO|pS$oycZ53|a=8l?E+pH!D9bV|bL3=aBG8~4q9(+sEJ>OoNI}bzP1&|J zK~xOgXpaXHp|D_6N#P04>7s3l9KkDBZ&@a*IK>f85x7l+fcwlZ!+};&<&R=m0_T?S zln^or(Zxir4hu4s1df+gIbb-Bl?n@j#LH5O=KvPvEJsykD$0@|$4t9T*F%D=ON~6h zqg14V1el1g;boHev@XXRb>V4XUy7@L#S1TR5+^)|mto8i@`A$sg}>H)oqmnHiTcqV z^dQ@bE_zgF8zIf;lbymWu+ng#bY+8L4i)uX9Y?-1q_szIw2bwOIrow-vI9Gg69yY(C=%M6GA*2pmsP(NmgSHV z(4o4(&I|)V{7+Ug8o+!4)RDx=AA_z0=(52RKdXI>ewF+qin;q}&A`S? zFnk^9Zt{bGbYn2PkP=^2pdqxic z(nmRrA%(ZItWV&dX7Z)#bM7r8@agX)zeI=7*KiBI7r#fAk?rIz@;Lb{c?qGg;2pQZ z*Y53e_rU$F@FwC5sTXeoZ==uha4q&0$|aXOJgF=9X47ol>~7chP;YYrgqOH_-U<>wY1TWxB-z?ICfm#Nlw=UwKAH?Gl4mJuMSSGF8hlISE#e|XAUc{S`RB3g|`!iq!KLZX-UOY;zJS1kPJ=}LmI`H7lNv3 zBy{k$TC%x_Aw;6_Ks20A8GKNrq?uw);53^^yu!TEG(PUb1JmIw?;3`lIp)@)v48|hfFQP6^hNI*wWQA~td z8e)N{7IVy~-P9;4fGeRuId!F`2ZN?%+rcYBiG-;_Heh56yxbtF0fA~}DjtgJRy4o? z{Q*}X2*KKoTV|;O}A93X4D>c(DNP8K^dS zJ=Qebhb0`wtXIA{LEZAGE^(|A*6JQJ%&{`s62MwtfUrLvyfrZT>>dIIE5V1b05d>D zNg(Y&3mscb!wZlr5uUL78_?UWoRm~8JuEwzeq7WYBjBhec=F7+5?PUquncTvSz!Lz zoJuCoW8jWxLbX(jH^gX=67N2O%!we;Av>UOKsnVhv+WTn9spx}82VEzrFBr!6|gPR zQpl4fqcLs*WAWN5<{98tIdp_)jHS!e;1xm81U)K+8dY5~LjhB!F+I|qmZ)rOQ$UXn zJ8FodAvx15>M)rmICu>Jj=3L-U86 zOk)U~91}EPtbp0l6i+v_l-o2h91p|;;ShLISl~FuV8FCNNoJERFkc>A0|{i?c9|1C zyyobbYt2|8r#DV`fz1pNnHxYb7vPD=_#2qj#KRcYO&G_Z9DMkAq}OFYoPbVPE3#A% z7^a&=xPrAAYBzcO4Sd0M5u4lww2^t4u@V-UqTr~)qEH`n67W5UJ5NElp+o=v!&mSd z%nG-9yDqL5OrCjK2=PygiiUS(ssX*azeCY$`LbN%s;%$uox7cS?Pm3*+yD zlxML^tWp;L>or&JT(@iD@WI1ZUD4buwCZuAV8V=KaBKGAeS52XGzhL7ZXqq%je9?K z^R0J`u*yfEa*A)21U*EzHzt>@x2b?s(7#BOfSAEp%;QxJT*BFx!!=qS1qJ&c}2Uqvq?_A8ymhq9Rn^DJDG z&8#^y%6yvLP-z0|m~^kGuuF9;ueVQk?I|o@Sf-oDS~{*9<2CKO1p2RLK%-2p)k1ff z8sy%-1<)+Zu3-SSx4t{p5In3)VB`M*+K=17iz5GL0=JhEet=WRUJ#6xxVjCVpt<*g zz_@Qp#yIjPpqevO=Kh4OO)~VtUrRIt)jtKzyf^tPP89g(V7qQ3G>w%Yn zf9k-x*b4s%FARi17X^XAyg1~45%>*0Y~FpkbonD;fglV6%;N>z7&PHFe32NeKY<7f zBV>3ibTZvDHtWa!S>$1EO;3si$zVehyO(`6y6blVD!1!Utf^o@fyjtO+fwP4)Mldbj$3TWxpBChxkj z=R^tSy>_-*e){@BDectB%X}8L0k1J0zmOO3YRdbaq_Td}WkSKdC+@Hkz z$kpslJob*5>aTnPSK@ub*|UPcPROel1aN$LgG&e`E%L9Q6?Di4w-w4@fdlc2FgMp= ziujTPtq8!}%vb*n8YKiDw!r}qyj*12d;-9pecdarUbqO8T#LWYU|w<$tn9%g*Sa{q ze%8g0;prmv4Uu2y#lw<;tik)|i#X=+;`26u2Q>|j4VpCtj2K}2oQI@4=mp4&&t5e4 zizaZKi0esp6I^$4fuG({JBZ`9p2U0W&MC;r?GHWq(02DxJ+tUw2iL(y_2B64`g5Co z^^M5FJ=X~P4M?l$o&_;&2fTN2zchT=8?d{Rk?PIB?8%6G=0KiuQbU(qioFRx06HM$ zw791{bL>nEfBKSpvaU|%+5rc4gJ(UvLE-<5bVbs14IYQN|BB|hMv!!5Rwg^Q=7%;*<9BPlLi0M0vj%rdHP zx!NU@abG`xXC~-ubZ<(*BWTrG#~=7cQm;PmkP}DT=n<%f>UAQs*9&KrV$D=tM*lH; zh&}6g8J$-%!I!8x&o2ls+>>_CE$e@A6?T7S1U-X9L@tpCx95An7WBGy;f$mV`L~x# zE%;1p|Hgf5tGx^jeCCQ9@T0Y>&q{TkmDZ}__ZBL7ikB?dK!N=d5}WRBBhUI@WCO{H zfb^CmRlf}8tLLI6`wP;KB}w|J7zly2o;!WfIH8&kSA*S#ma^Z5#MSUZJ{>goS-}7zG;1eP}aDXGA78j!cNb-%#8z&Z@=bKGgnmq*uPM4hs$($A7rlE zzDdxzEj$*A%eyxpo;kd^yRCJLvBc5ON5i3w%LdoYd}{bSYm|{(W?1A07|iDfKY-oW zq5YTo0h{iy_nN-`__Ef&NZ&~WbTT@ezH9k2qks3KMb7*S%cxrX(z|`c-*u=zC z_x`D))BDHwPfZ@*K6dcL#K^Rt@?X2grjL(LO{V&~d;OfDvB|ONk(sek2Ko3+2lF#C z2T}*7r;esJ_%Kt)rl$^%?VssBG&6H-c~4J$UqH$!bPU~!rqMV$hz_9{lmY{~7PZ4W z@BV9yWe~d&YNVj1S8E(iq7gI!IV0!jIo6l&~; zmiyh(<7hjSAB5Hu0Au=+vc;)gP?JF)chf1rs2lKFTxSUCOuF?(+@41la6XQ1f`0Ol zI|G<8?5168QlM}bzo?kmIgcklUkAg1$H_T3;Ff916 zfJH2Uhpb=~Yd8RAEr<_mw!W;1> zJdCeI!syt<*vuH2IwArm937jSk#3xtI&ySm`iOAj^vLA?Lv&{3AU83!|A=s6lD)VC zV`HP-#Mpru-sNg;bn50w;lR|y=-9OCy_QTJ8=F*Trbmt+S~7O@*vzf`!Re_J$Asyz zqfhSTc3sKyW``H8!zi|M>L&iLueVzBtVtn>cY?V~<)+;OO||#T4(RwDHLUQ?)GN z#4*+>cWCP9n0jDhcn!GNA+5KX6oRuSCPHx`s;?JF`u9<$ipPsIn zuBrLao=TFE05HJUV1fi7{5Q)@{crvMA5v->VgLXb?AMb2OVmkYsC<;vSlGTW@h|=R zmuL#HsKJ=on>c-8kpKWVHvj;QnrgkDX=&$e0RTYs0RWVS0D!=^tU0D&s~;xj001rN z7mxi*xUeZqEUmu4FHHSQ{|~2x34qwPvUl_P!rZ>}A7624!FN8_?HtYi^V|Hw(*6_f z52_A(6R)p*>HhO0`Hv4~48G`KV*kaVOZnmjeC5-xzq^p{Q&&dk`w`4-M(cT$FN+$_=5*d!2;D8QDF;O3AjZA70 z5(y5V=7*97{13OrGOMp|qOVVVxG5qiC?7_QUC8*GxjA?=TOAv_F%+0}4ILsf3$D!O_#Tf_A|~o2#DXtB$!!;zNNPhXw*1o6Koz}x3(9Sej5ZIbX-V4s&odzY%#YnovDCSGFuHYmYwkKIVSU{EW~UB;iL>+JJ-k@@Ez z;hPN?8AV#}rXtUX;$$N^s=+kb7N!#-GZ{w$IiD+SRq#4>HbMtnooV;`aJ@vl&9c(##G z`GjzneEew3KA)WCDEp*>Ex?7aIfy{TdAvcM!PL+_=p6i@i6P_+o} zjz?aWBe&J%E=ktd``Tvc54-PHSNK+5R$djp3U&DU_*lF=m>EtL<|bQk zB+r=@iJ}imLsJ^ZVnjuRlJpzbdE@G3Km}8Yy$!R*U-X$Wv%oe-b5HrfZP@(AJQ1pOT2ed>5)TxPf20X~v<&pT^8`vXeT$#C=Pc8?_-@D< za5Ucz`YZ)yoR9ycog9p=tO`DN_CmJB{X8cu5+ET~OY!xF&@rU?uJ$9Ng!~UAnAJ<# zE<#A~T*DbVEOeGs%>^#3wunMrSr)zWs)Ms82Z2X7AtE7cNzCz1%p#b;_ZZp(`0*8# z1E~?bK}KP=B@)@QImh)Yqu^3;W=l8${!NlgBFjPlGGXBX6^h+)!-ix=*cwvlGJWI7 z`228#__diRQXj8qUKcM}ccl51YY*dgPZIhum#5%pgG>Rtws`N;M|&J-3h*v}bKy0z zSOkVp_W{DZvV{ELAfCdYovEA?b*~;IYhsQ35`AlqXUZlEVBZwEf?!x)Al+4v2@ z8NV~(l06i6RJ-$(qh*Wzgk~^bSC(73Jn)}YwVl|0_q(k-FP!wtqpT0b{3h&a;=q7p z&wO7LFeXQQhJlO5~FmHQ@2SBere)`S{~j{lvpr2RCXBou`*8BTVNm8rUbfs=_4tJyy!END*NoJ+?AV12oMNXQEyp-xD-4 zBRsr&H|?(KKd<^F&dFk*MvcsjszVhPeA0iM5|jfOk!0v9m{Gy*zfHxM$W04WlC<%c zF$8lK%yhf4!)1S)n970Fe^j9+P2iHrNJbjRiaWEJXyf-Vo1juu)ev3HDpn!=jOuwC z4Hruk=Y-oQjyfgBhU2QMk)BIni&9o03#E;Qr4yCbL?ioysKA5A7pR$>@eL{wZ9ehi z@4^6FJS>qM?kf$8@-hPTqvuM$a1y)_vmY)z1d`BFg)l2zOmEs~;`K`%41B+5x8Z?8 zzD*+=>snd*SsZ-2fiVv#cUGc!^LLE%((hRK+&ETsIC#(x%)flWh;P&%$>LA*E6TaU z%jhH8FdbAX)CEK07S&5gjM1=9NSp;zyv!BwBjP4mtrfJU@cK%!4b(89<%lQRgqcKy z^KRe!drB}c{DILx_c@FwI6=yReCcpn8<&YCi2`=YQ~2RA(*i~_G|JG(=xC8gXS+Em zaC!0(Q`3u@aRzjoCop7!tyF z5`|qVt$xxVPQxQvo?Rwyf8u_Gh~)NS6pL2~lFuZP#JzTi^zk@XQ8yIS0PHVbdu0Q(o$peZL4SjM+L>^%l!ip=yR}qnB5pAJ*-MuM5 zjl=W6X&n7M9QY4+E&Ua%RGa?Y-F$}aMiv5bwrlqSbO^UbKnhPD0TGF}-!&$^F{N>_ z*0qrXxWp5?j$}x516r(zS9U?(t9gPnf#^mA3tbK22gH(N=&8~;bC=rsO$(x4g?Qa* zY6}p^1JDAy$be{r0DO7}A_dNsVp4VK$kgsf?uL!lcYtK!YWK?=mDd{(;ZO1I5WuF0 zO_M}pmUusA(Edbp> z)5g`cxv-hn4dbmBZF?w&XL|7j9+*h2|tY1-_6ti zn5Iq~#0CbEG9fggkjd-EeCdN$fIADT+((PcTco(zDamSpv8$68xkVJ?OdJQe#Z7KB z>8RC*{N?{GX51j673dNOd8pA&TdCr5?Dmj1vB#*!9l^)Q?1ng4we8vOJ(j?~pD`?kR?*k8q<0&tj#0VG zrRgtnW93%R-xn)fG{4xsnfc*7=Ex;+;XAUpW<<%3dfQ77Gj=@)zL~jJa@q*qz*6cl zeKaYiE8HeYO`&)R+zzw+adfbXzlIj8+Bc%Heyb(rRvUmeA$Yu)$U87wjaRxt1kc1B znjxZfywvQ|Zy^%UrulZ|=y9bwd1>HdGg=`&z$vVJ!7%AyVN+JRp030Yv$42Vo`3G8 z#MSMuB12%ogUoEX?VKAdRlD!E=9cA0ABGZNm4!d?RO4<>H?O5@A7>${X)&s)cznzK zAY>PND5-fkqH8uX*v&no=in2U*?5uFc?WlVcA)Qvkdkevw|ll9XSBQgl)J$vz8l_w z6FxL8RQ1f}oyo?0J}(maa9mQJOA!&DQzOdx@lC<7{tmA!0pD7)Xh1ag5+XYb)!c;i zp|E^ENX+F)KZJla+)~_0kr0~QZ#T#cr4Q#&N{d(Ny#2>VknPIe$r-Yc3#h}o=^75l z|Lqh8lq>LBde;N$-!^%SierDh{Q0!|su}gq=$>Z7VeJ;u>l55}pYnLd2v`c($#N=p zN(G4mk%7#8`uB(&;h8-L5*tafa9OwsLH}UI1KIvzAZ)AtLNE%`3aV9ekaXV+ZWL0F z_EeF#kvz&)(Y|k{|1GLAF4C29L!j?RA%PJ{W00he&1;~F0AkJJ639ANie4)$8%?g7 zW*iO6;WNOd|1|Og{&KMmDpq5J8Yz9DRfeQ^AF$c?mT09ebZT8;N}bWViLZ|2Dok z)QUQk;uy!<<&#%|Apu-WNE2gLT%hlG_a!U(J!ge>hFu^ohyN5zx%-^&`b<@8TsPLG zIPqnE6fNcs88Ua5@9^LIXS4^PBq2aE6aS5lT>W(C^j4j&q_LN{NAVsZ8~h%z;5$`D z;W4Fn)Kf_8=9b{|uJ;Ozf%ZQuD#>p0dn`I3o#mk$I@ycKx0>Y9Iii@wB&>M(YAAQXtwq zl7_&8z!BsG@z^$QtFiH_xcBWb3NaSSSNWzNIOj9B#({56oAv!1seU**_PPwL6o)H9AO^~QN* z0Xnzl{NB<`HpzPXt;NUoM5myJjj|`P%p#n(?TqT$ap3m~seTKB9%7%Q) zr$7n2Wlv=}7nRJJ>qUtU!U@sNsgHA(9oPp|7%`AyU^VP>qXi5Zq*9S?LUl_B)Tpa> zY+%>%Rh;2cWKZK)cbwGbUhk6hgE|A>707`m^vDM%Ob`W!4IIhFtkHPt8FX|;!UEg9 z`@7{YYJc5xRmb3y?fUYae?Dm*tI*18nbt-)H+@*HEawzM!aszn+FfvBXoyo?q3G>) z7&05DxFE~;D%o78Bg5L6KXswGoa4ON>pLXVstnu-Ijj97+zYepyas>SpFx7eg9n?A z5lOgp5g&~fGZ-~rnJuxsIz)>poNJ#fwY-ikAMJSE7{|3X3Xa;l_`Uv~ZJCbE1v>v&|q$!7MK5+E@vWtU4Z=HN1h2VFPPe7R2pcTthL3Up8Pw#R#>!Yp_{4 zV03aXyD1Z-c;iBYbUy4t!@I)TOGN{+&!a*RLn><02kMQp&iOG-h$wJ~I^cO4iWs)% zKt4mMpuWZ=CGbUyle7q2brb?5o1I2GnZ4kmSRxYi)=LD_EbTJ@lkdSTf^P~>2|&jd z+jS4hLbl{qTdU>lGtKJW7qzDk+tpfK&wuxxJ8>-{8-fJw2DyKY-$_$n{)V6gFlu;Q zdZGUO@QA2ofV1+4w|f7R7buhkHhYRbcUsM=d@NG&NX@4gFUQKAT;JwmMo^2Lo4Glb z`JkGosFpJ;LHJ-i4_?{S#wt0T6omyV*%bNU9(S}>ZlrKXnQE`hcI&CZd9kOKTci0( z`8Ur-0*UUjSWk#1XQ^vq2FH=8)c}nnpw_7KVZeCDMrh`BetD~~OGSJ&ytB5N z9;>1OxHr9V4m=1F*2sh}MwU=*YkH3-PMKjWQ60Xm+2k(W_P)qzwvFyxm4`csqnew) zf+iw@#Tc;Jh49t8T8Tm=88^c%hKRx4Bv*$j?)*ot9HiGOlh!73vQnMG94NNYf$f`Gs{c6^b=92^aG+QFxqQ*9lUQWGL1|5P=`g2=M|yp!b=l@g zlOy~D5~y=kLKi}<)3Y{B%Y=TnTw_^4AitqRXh-5i4*KUtrMs@^!_*B;XL-!y(|BYnc$uOu zTw5Vvy>=Pa)G=SfwuyUa7uSn&?JE2D@xk}~SlnDk>EQi65g0b=eNmZI|FhZP?Edy> zOJLWP7Q_UGKw2J{Ii)Y{hkB%mgq|zsN`ZdDj78cA)=cDsE{SIin|y{_Yq^a@&02>ns(1 z>tyXYB=}a0yki=Ef9o*WbQs3^R|AeJ&jE5x;KYu8v*rTI+N~GJR~hp}m&&Q}%o;#D z7deBb$mXt@`gqGoY2~=;gzX_Jk<%MAHBYNCUv6*#e_vb!7M-+nhl&^DH$!H^lz!F_ zbW7TiUAiHJ9i;NwEU;JP{FxkB{`LNZO=|O3-C#5Sv-M%;QMaNtgh*GD863Ki5j-e8 zAA6O5@ZbXTp>ds6VfIYS>*??B5zqy#=N!?xf&IiPIfzqpd<)z}dR<|}>^epr6-k8N zY_|i2<{msBSjgRbm=3=5qvTBC@e3}CJq`-tPU{&yRhb-@;R&7bl%41tgH77x0)aS@ znEm!QR&btHBd9S*aRv!*sq{S*jVoC{y#wAJbOYLQ|5ZE!KhwsMLSt%pg@vh6dX66U zvl4oTVwNL!eu@}U>xt$tV=?1AWcjD9GZqTeXy|b|$&ypdRk$lE8LLI^{mOihQEWnp zNwDujAF^EZBf9y8eJUqfK@CMI4ONZreY}+JGm*-;wyY+ZS{!QrPkyZrx>zt4^+Z=r ziBiMq4x@Wn$l!>ePhB$<*weG#DCWxKs+hJn1%92(>i5v0hG4=Nq3OLj5s{%kQHw zUb}H-J+#j-T_HAiB_o2dtQ_%^sr6P7W7*LHN3j69kW=uTn@(hD`EyGrc0`vJ=#c4M zLMWWgVrENDr#h67@|q-;oEKS+fo#FliE<26RcE9UT6jCxls9SSc{6SKQoMq(h8op1 zH^N~}eXUaYW<*=s%rPppC8`E`6B&*STXwXDC-4Z zG`k>%e=?9}Z$e`^;|EUh^x`E2MOLx{Hv*-?66K6^F1?iCjO2VdC3K;5Y#MAW{8qR! z6}T?7kRVu-&MPU7A33^WJM__A!6Np$@oSeY{Moa{WU=u2r+CvaiW>3vO{mh2Pl%k7qr2~7`@Q-UF;Cv_Ku|*`nc1A@**UO4p+9KIFtQ7g0&#D{ z=2w#D$%GjbSs^WOWHFQ87PP`GBiQ~(Z!_E^u3FF{O*6-7#2gQ6KH0x5fX+b+g_7Wr z0kx5+DRbbpFSsw>%J$(22m&|YLhlz(tpl6`+$v~WQHG-o*Wf)6!jU8+v#?^(BS6ik z4vb&(cwVoxT_~+M)>&5&j%Eu{*7ovCy3^8pdm5{MXmOr;c=>8bXs&^fjE00K-lIdz zFcc$loZ&Ki;BH5xPpyWTRS9_>t1g7SLx+llzj6;D>U6XbwlU7JlJim!o53}b^HKc@Lqf?@Wf_n&nT-9iAQ4*PIYSP$?Za12HYy7 z{9^%f{6BVqT2`Q^#z^(Q)ul@!she3;wz#Z?q_&Y`stf5%Yv}H2OK@W7oSYjIc)Rvk zlUO?i0eqR#rSR`*=4`<*u;}Gwo!V*YGD$bMG4PEIco;y;_8vAMUze&^b;2bFRiP8;hCb+w6TuEqR;dbVN7q;Q<`d=-Q9ZK(?S$`-IGZe4 zyaxVQ(y{+~qC|Y?BcE}p_(wb@hIFpH@dr&%E3{cm)J0+xA!_AUMKJg<^mG-Wv?#8lvT zQ-A*%nA7IFa``XRVGix@J>X^e+7&aHFv_+Z{cba|8SqXy)hP^m;Wa!_DWwc_%L;hU zOXIgz0OgL7UHTuV)g|i2~a>t3hV~KQ<$u&U}4+NXj*OIOmdHf z@kATEq3y4n|^wntHC(m)ZZC{^7b@cZew;n3~?&h$Ki)Ez&d2rO^e+DtXi?a#USuuvu zSSWhQ5yW!qYW%O9(MPa0)E$g(=c&Ri>=0Ep=>i7Y>Qu~udY{IcqdUISmBeu)Rgz~8Inr>50I%!bI`)zR z)y)LQec)ILJO3KWxJy^>iZ!;@RlojG_f50ViCA@RGrd1JDhKik>-wJvCyY3n@aQ8o z81Mb}-;i@}w{uJZd%b9Qsl*ZQC2lrZ5FdQAdl#{o%AVi5?hyM~F{`4{w4(!P_i&5x z3#ozKvEm1j@I8bppgS^T7YrB~Y=8m*&N&Y6E^bIs;G0`eTv_oa9urFFcgqx)jM9iV z7WMU|a3%@sq4e3gAK^~$iJ@uM`*X)qbJiA4ewd4gXfAx3;s>l~$xnVlY0X0Uq$#0) zz7Y)%y(>;N%p>dH;KiaSWpZLHqgFmwOZtu2+%klXAs47=WeQ+tyEAo9n57Fx7o-Yv zXA%o*F`-Nm3lRo9fPjwy_w8Mu^b@{qZz$fMkUj3tgx9mLf^NT7Iet2Lzi;niQS^GJ^{c~xS&PfP-26f7J{(?nJ6>}u+iQT_G1*CYwp3e) z!D*UF>=Uz)vqno$Ja)>*Br#G2yv9j%+_8P~6^Q#uhbwkNBR9{$;9BK4Y6_niW4YY`F!)c5Zdtgq8Q4tyC{C7*|=y- zu7oEMpwtHI$Z@m@(-Yb@w^7!*5K0j2$Vv#DBgK+P5 zR0Am22j!%4=~9VpnzzEi+OS9QX^;EPr)Jtmo?j;0{PoM18D0w7EazU9N!RLr5;<4T zg>t?NCw^}JALln4;tMF(K#A5#hh&YrHN~1v&D0&C&3Ho-o7a_%8rSWpv!Q)Y3FqMT z_C3fd44TOJU*1`y%NCM_(}-_XX2fw4m-W(5#4!j`NLRaiFU4A`EX*~dA1}jCpbx91 z11rWHCKN)v&#bchx189hc$x1F6a!FIIl8A*B=@JqnN@;m| zlBtepnZKP3?=J=VIOze2?3_q{;vcOb%ZJavTRj6@D=|O#-6rO_?BpOxt+4i&RgwFM zf3gM;mRACJcrAu=3cnK6FEaIWv+fy@{MU@|r@`FB}IpVO~EV__( zMdjoULXHfA$dPdci81hyeDH35*W(zBIb}`_LhZ`LnJi(oi%5C6fjjR#gd8{2@IVQ* zIqgt9GKtH0oyYbep9V9zg-~>M>~qCzWrJ=6wQ@h9i_E3!Noy`d9u#xaOJ=+wJhZk^ z9KlUyUsa~SNFH7+XFD)o$=pzm0|RPtCA`zT&;cQq6uqMJANdhy zP6vIU1(AKbfxhp*__%Fmix{GppNYMBd+!pplmrS6uRGr>o+CTl07NH`12lY;BokBn zMn8Ho3~8AJm-2rbRc__h+OlWxIS(SqmUaH0g!PlxN63kUQ?G4u^(e?RmnHbOWcC6Y6Hb zsSD5YB$@`|NfNZ6nzp@;f*Zwq;IAKwouT=83MQX$0m}7g#C)Tw4Sc=-o|rl+h$8qG zWmgoXq}u0ehb5Dli~u!0R<&kfwc_hkumz*8iO?mjyd88s;(}Z}Fbi$8 z4;=>b0Y89UzqmP0{P?Ne>w`;UWPIvrCeCUEMi!#m`5VK0DW6vEG6?CTWf8NxXOmX5 z%WDlR<$YF~H|dape6Et)aH2;!DAU_JSrvxY(^?dJ@-Ox=o{loA0={{Eo5 zF$z3G=(GSfY@%Rp7925jmd#MeKSfVJjOXgfBItuRYO?g%ywcD2e{9*7|E?|4cHJUA z3o{Qu8R;mGZg#~lCpG$`H6GI@=Pcr`Jm@rjSoZn3??0mHTsH4#AM69HSD>$ zvC$w6Ajr)hbCb!AVm(@`TuhM>vQYtEBO3e{WM~HK@>s5+=T+9*+83p z*#r9f`sC>i`~Jr++(??j63GaI`Sbb{M;ghM60-4_VqEIu6JaD+`!A^=)92^6Ey@8T z7SV^ksjt8d;WzmnY$amf)G#0iFLVLUD6k<1{ijf9FUo(71yNZ6mGV-a|F>yT01yrs z0bGKaf~A4Wf}cXDLj*(AK}`A#&JQIm}jF+s@PH>LNS7<@^KAws2Dfv2qikZ z2^)Nm_)b2`g4Rjn9WF~T)*q9Ms~q2>nQ17eI2Ilre~3#A{x)N`J@{vtHrX85)v?(D z_a+eeX5I(&<`4xq5ZeJX1Fv|IJP%DWfLxQ6<`m{fqfaIL=V*K>OGRQ_ktIq7)jO z5=0$nhn7gYmAp78rRZdYjkE$!wcGzn z141CtOtop7%00Y%j`I`9tYsn!ZVzM=`=w-uN8`Eo*wnreyVm0UQ2)-S+Aw)-Yj* z_{Byctba~Z_GOSuTQ2x%r?3V!KR?b0w4Vcw{<|OhWSC!>-%!KeV`;hcoqetZ$qpCJ ziqj`+cZXC*z|mxQu6t3~yj-|3reQDij2|~(3a`tI7Uw@#iAS9Jb_YTd02uOUD=E zr_<4%Y`;%eaS*Icy_}_?np8@s(gn-G(wrs>(~^=Xb6S+luYW|OMocrn(?r?3Q9sqd zw5^g9>0REI=Vp0ZXAx)RZq9NxC8@FUnbN7MqGRcjeX~Bo^&_l`c1k>XREMsk>sPvk z{z1Iq63|#NtLWs2kBe;vaGC diff --git a/rhodecode/public/fonts/RCIcons/rcicons.woff2 b/rhodecode/public/fonts/RCIcons/rcicons.woff2 index 57e99161f3477a5f5ec4bc8f8ef04091d5e743ec..593ab60a90db9ffd9c426f41b5954e866a06bac0 GIT binary patch literal 9748 zc$@(gChOUEPew8T0RR91045Xw3jhEB087jO042i!0RR9100000000000000000000 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 diff --git a/rhodecode/templates/changeset/changeset.mako b/rhodecode/templates/changeset/changeset.mako --- a/rhodecode/templates/changeset/changeset.mako +++ b/rhodecode/templates/changeset/changeset.mako @@ -1,10 +1,12 @@ ## -*- coding: utf-8 -*- <%inherit file="/base/base.mako"/> +<%namespace name="base" file="/base/base.mako"/> <%namespace name="diff_block" file="/changeset/diff_block.mako"/> +<%namespace name="file_base" file="/files/base.mako"/> <%def name="title()"> - ${_('%s Commit') % c.repo_name} - ${h.show_id(c.commit)} + ${_('{} Commit').format(c.repo_name)} - ${h.show_id(c.commit)} %if c.rhodecode_name: · ${h.branding(c.rhodecode_name)} %endif @@ -19,120 +21,111 @@ <%def name="main()"> - +
-
-
-
-
-

${_('Commit')}

-
- - ${h.show_id(c.commit)} - - - % if hasattr(c.commit, 'phase'): - ${c.commit.phase} - % endif +
+ +
+
+ +
+ ${base.gravatar(c.commit.author_email, 30)} +
+ +
+
+
${h.urlify_commit_message(h.chop_at_smart(c.commit.message, '\n', suffix_if_chopped='...'), c.repo_name)}
+
- ## obsolete commits - % if hasattr(c.commit, 'obsolete'): - % if c.commit.obsolete: - ${_('obsolete')} - % endif - % endif + + +
+
+ + - ## hidden commits - % if hasattr(c.commit, 'hidden'): - % if c.commit.hidden: - ${_('hidden')} - % endif - % endif - + -
- - ${_('parent')} - - | - - ${_('child')} - -
- - + + +
+ ${h.link_to_user(c.commit.author)} + - ${h.age_component(c.commit.date)} + + ## second cell for consistency with files +
+
+
+
+ +
+
+ ${h.show_id(c.commit)} + + ${file_base.refs(c.commit)} + + ## phase + % if hasattr(c.commit, 'phase') and getattr(c.commit, 'phase') != 'public': + + ${c.commit.phase} + + % endif -
+ ## obsolete commits + % if getattr(c.commit, 'obsolete', False): + + ${_('obsolete')} + + % endif + + ## hidden commits + % if getattr(c.commit, 'hidden', False): + + ${_('hidden')} + + % endif +
+ + %if c.statuses: +
+ +
${h.commit_status_lbl(c.statuses[0])}
+
+ %endif + +
+ +
+
+ + - %if c.statuses: -
-
-

${_('Commit status')}:

-
-
-
-
-
[${h.commit_status_lbl(c.statuses[0])}]
-
-
-
- %endif - -
-
-

${_('References')}:

-
-
- %if c.commit.merge: - - ${_('merge')} - - %endif - - %if h.is_hg(c.rhodecode_repo): - %for book in c.commit.bookmarks: - - ${h.shorter(book)} - - %endfor - %endif - - %for tag in c.commit.tags: - - ${tag} - - %endfor - - %if c.commit.branch: - - ${h.shorter(c.commit.branch)} - - %endif -
-
-
-
- -
+ -
<%namespace name="cbdiffs" file="/codeblocks/diffs.mako"/> ${cbdiffs.render_diffset_menu(c.changes[c.commit.raw_id])} @@ -212,6 +161,11 @@ c.changes[c.commit.raw_id], commit=c.commit, use_comments=True,inline_comments=c.inline_comments )}
+
+ + ${_('Comments')} ${len(c.comments)} +
+ ## template for inline comment form <%namespace name="comment" file="/changeset/changeset_file_comment.mako"/> @@ -350,6 +304,7 @@ // inject comments into their proper positions var file_comments = $('.inline-comment-placeholder'); + }) diff --git a/rhodecode/templates/changeset/changeset_range.mako b/rhodecode/templates/changeset/changeset_range.mako --- a/rhodecode/templates/changeset/changeset_range.mako +++ b/rhodecode/templates/changeset/changeset_range.mako @@ -23,6 +23,7 @@ <%def name="main()"> +
@@ -60,8 +61,7 @@
-
- <%namespace name="comment" file="/changeset/changeset_file_comment.mako"/> <%namespace name="diff_block" file="/changeset/diff_block.mako"/> - ${cbdiffs.render_diffset_menu()} + %for commit in c.commit_ranges: + ${cbdiffs.render_diffset_menu(c.changes[commit.raw_id])} ${cbdiffs.render_diffset( diffset=c.changes[commit.raw_id], collapse_when_files_over=5, diff --git a/rhodecode/templates/codeblocks/diffs.mako b/rhodecode/templates/codeblocks/diffs.mako --- a/rhodecode/templates/codeblocks/diffs.mako +++ b/rhodecode/templates/codeblocks/diffs.mako @@ -50,6 +50,12 @@ return '%s_%s_%i' % (h.md5_safe(commit+f inline_comments=None, )"> + +<% + diffset_container_id = h.md5(diffset.target_ref) + collapse_all = len(diffset.files) > collapse_when_files_over +%> + %if use_comments:
${inline_comments_container([], inline_comments)} @@ -79,9 +85,6 @@ return '%s_%s_%i' % (h.md5_safe(commit+f
%endif -<% -collapse_all = len(diffset.files) > collapse_when_files_over -%> %if c.user_session_attrs["diffmode"] == 'sideside':