diff --git a/Makefile b/Makefile
index 5d195bc52..9d08252a4 100644
--- a/Makefile
+++ b/Makefile
@@ -3,11 +3,11 @@ GO_BIN ?= go
install: deps
make tidy
+ packr2
$(GO_BIN) install -tags ${TAGS} -v ./buffalo
make tidy
tidy:
- packr2
ifeq ($(GO111MODULE),on)
$(GO_BIN) mod tidy
else
diff --git a/SHOULDERS.md b/SHOULDERS.md
index e43c83fd3..ba7fc5931 100644
--- a/SHOULDERS.md
+++ b/SHOULDERS.md
@@ -37,6 +37,8 @@ Thank you to the following **GIANTS**:
* [github.com/gobuffalo/gogen](https://godoc.org/github.com/gobuffalo/gogen)
+* [github.com/gobuffalo/helpers](https://godoc.org/github.com/gobuffalo/helpers)
+
* [github.com/gobuffalo/httptest](https://godoc.org/github.com/gobuffalo/httptest)
* [github.com/gobuffalo/logger](https://godoc.org/github.com/gobuffalo/logger)
@@ -57,6 +59,8 @@ Thank you to the following **GIANTS**:
* [github.com/gobuffalo/pop](https://godoc.org/github.com/gobuffalo/pop)
+* [github.com/gobuffalo/syncx](https://godoc.org/github.com/gobuffalo/syncx)
+
* [github.com/gobuffalo/tags](https://godoc.org/github.com/gobuffalo/tags)
* [github.com/gobuffalo/x](https://godoc.org/github.com/gobuffalo/x)
diff --git a/genny/assets/webpack/webpack-packr.go b/genny/assets/webpack/webpack-packr.go
deleted file mode 100644
index 7370ca82b..000000000
--- a/genny/assets/webpack/webpack-packr.go
+++ /dev/null
@@ -1,8 +0,0 @@
-// +build !skippackr
-// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT.
-
-// You can use the "packr clean" command to clean up this,
-// and any other packr generated files.
-package webpack
-
-import _ "github.com/gobuffalo/buffalo/packrd"
diff --git a/genny/build/build-packr.go b/genny/build/build-packr.go
deleted file mode 100644
index 9a999f396..000000000
--- a/genny/build/build-packr.go
+++ /dev/null
@@ -1,8 +0,0 @@
-// +build !skippackr
-// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT.
-
-// You can use the "packr clean" command to clean up this,
-// and any other packr generated files.
-package build
-
-import _ "github.com/gobuffalo/buffalo/packrd"
diff --git a/genny/newapp/web/templates/actions/render.go.tmpl b/genny/newapp/web/templates/actions/render.go.tmpl
index 21cb12db6..78c9d5998 100644
--- a/genny/newapp/web/templates/actions/render.go.tmpl
+++ b/genny/newapp/web/templates/actions/render.go.tmpl
@@ -19,9 +19,10 @@ func init() {
// Add template helpers here:
Helpers: render.Helpers{
- // uncomment for non-Bootstrap form helpers:
- // "form": plush.FormHelper,
- // "form_for": plush.FormForHelper,
+ // for non-bootstrap form helpers uncomment the lines
+ // below and import "github.com/gobuffalo/helpers/forms"
+ // forms.FormKey: forms.Form,
+ // forms.FormForKey: forms.FormFor,
},
})
}
diff --git a/genny/newapp/web/templates/templates/index.html.tmpl b/genny/newapp/web/templates/templates/index.html.tmpl
index 320a5860f..89dc662e7 100644
--- a/genny/newapp/web/templates/templates/index.html.tmpl
+++ b/genny/newapp/web/templates/templates/index.html.tmpl
@@ -43,11 +43,11 @@
<%= r.Method %>
- <%= if (r.Method != "GET" || r.Path ~= "{") { %>
- <%= r.Path %>
- <% } else { %>
- <%= r.Path %>
- <% } %>
+ <%= if (r.Method != "GET" || r.Path ~= "{") {
+ return r.Path
+ } else {
+ return linkTo(r.Path)
+ } %>
|
<%= r.PathName %>
diff --git a/genny/newapp/web/web.go b/genny/newapp/web/web.go
index 25299121e..f492fab70 100644
--- a/genny/newapp/web/web.go
+++ b/genny/newapp/web/web.go
@@ -33,7 +33,7 @@ func New(opts *Options) (*genny.Group, error) {
t := gogen.TemplateTransformer(data, helpers)
g.Transformer(t)
- g.Box(packr.New("buffalo:genny:newapp:web", "../web/templates"))
+ g.Box(packr.New("github.com/gobuffalo/buffalo/genny/newapp/web", "../web/templates"))
gg.Add(g)
diff --git a/genny/resource/_fixtures/default/templates/widgets/edit.html b/genny/resource/_fixtures/default/templates/widgets/edit.html
index 7ef014104..29c4ea77c 100644
--- a/genny/resource/_fixtures/default/templates/widgets/edit.html
+++ b/genny/resource/_fixtures/default/templates/widgets/edit.html
@@ -2,7 +2,7 @@
Edit Widget
-<%= form_for(widget, {action: widgetPath({ widget_id: widget.ID }), method: "PUT"}) { %>
+<%= formFor(widget, {action: widgetPath({ widget_id: widget.ID }), method: "PUT"}) { %>
<%= partial("widgets/form.html") %>
- Cancel
+ <%= linkTo(widgetPath({ widget_id: widget.ID }), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %>
<% } %>
diff --git a/genny/resource/_fixtures/default/templates/widgets/index.html b/genny/resource/_fixtures/default/templates/widgets/index.html
index 413acf4ef..268108b13 100644
--- a/genny/resource/_fixtures/default/templates/widgets/index.html
+++ b/genny/resource/_fixtures/default/templates/widgets/index.html
@@ -2,7 +2,11 @@
Widgets
- - Create New Widget
+ -
+ <%= linkTo(newWidgetsPath(), {class: "btn btn-primary"}) { %>
+ Create New Widget
+ <% } %>
+
@@ -16,9 +20,9 @@ Widgets
<%= widget.Name %> |
- View
- Edit
- Destroy
+ <%= linkTo(widgetPath({ widget_id: widget.ID }), {class: "btn btn-info", body: "View"}) %>
+ <%= linkTo(editWidgetPath({ widget_id: widget.ID }), {class: "btn btn-warning", body: "Edit"}) %>
+ <%= linkTo(widgetPath({ widget_id: widget.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %>
|
diff --git a/genny/resource/_fixtures/default/templates/widgets/new.html b/genny/resource/_fixtures/default/templates/widgets/new.html
index 74f500ca6..a25cd61e1 100644
--- a/genny/resource/_fixtures/default/templates/widgets/new.html
+++ b/genny/resource/_fixtures/default/templates/widgets/new.html
@@ -2,7 +2,7 @@
New Widget
-<%= form_for(widget, {action: widgetsPath(), method: "POST"}) { %>
+<%= formFor(widget, {action: widgetsPath(), method: "POST"}) { %>
<%= partial("widgets/form.html") %>
- Cancel
+ <%= linkTo(widgetsPath(), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %>
<% } %>
diff --git a/genny/resource/_fixtures/default/templates/widgets/show.html b/genny/resource/_fixtures/default/templates/widgets/show.html
index c6a633198..86407f631 100644
--- a/genny/resource/_fixtures/default/templates/widgets/show.html
+++ b/genny/resource/_fixtures/default/templates/widgets/show.html
@@ -3,9 +3,17 @@ Widget#Show
- - Back to all Widgets
- - Edit
- - Destroy
+
-
+ <%= linkTo(widgetsPath(), {class: "btn btn-info"}) { %>
+ Back to all Widgets
+ <% } %>
+
+ -
+ <%= linkTo(editWidgetPath({ widget_id: widget.ID }), {class: "btn btn-warning", body: "Edit"}) %>
+
+ -
+ <%= linkTo(widgetPath({ widget_id: widget.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %>
+
diff --git a/genny/resource/_fixtures/nested/templates/admin/widgets/edit.html b/genny/resource/_fixtures/nested/templates/admin/widgets/edit.html
index 2ff654ade..ea597d350 100644
--- a/genny/resource/_fixtures/nested/templates/admin/widgets/edit.html
+++ b/genny/resource/_fixtures/nested/templates/admin/widgets/edit.html
@@ -2,7 +2,7 @@
Edit Widget
-<%= form_for(widget, {action: adminWidgetPath({ admin_widget_id: widget.ID }), method: "PUT"}) { %>
+<%= formFor(widget, {action: adminWidgetPath({ admin_widget_id: widget.ID }), method: "PUT"}) { %>
<%= partial("admin/widgets/form.html") %>
- Cancel
+ <%= linkTo(adminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %>
<% } %>
diff --git a/genny/resource/_fixtures/nested/templates/admin/widgets/index.html b/genny/resource/_fixtures/nested/templates/admin/widgets/index.html
index 3e83d91b1..85d1c75b4 100644
--- a/genny/resource/_fixtures/nested/templates/admin/widgets/index.html
+++ b/genny/resource/_fixtures/nested/templates/admin/widgets/index.html
@@ -2,7 +2,11 @@
Widgets
- - Create New Widget
+ -
+ <%= linkTo(newAdminWidgetsPath(), {class: "btn btn-primary"}) { %>
+ Create New Widget
+ <% } %>
+
@@ -16,9 +20,9 @@ Widgets
<%= widget.Name %> |
- View
- Edit
- Destroy
+ <%= linkTo(adminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-info", body: "View"}) %>
+ <%= linkTo(editAdminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-warning", body: "Edit"}) %>
+ <%= linkTo(adminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %>
|
diff --git a/genny/resource/_fixtures/nested/templates/admin/widgets/new.html b/genny/resource/_fixtures/nested/templates/admin/widgets/new.html
index 0c6d09a8d..044b0cb3a 100644
--- a/genny/resource/_fixtures/nested/templates/admin/widgets/new.html
+++ b/genny/resource/_fixtures/nested/templates/admin/widgets/new.html
@@ -2,7 +2,7 @@
New Widget
-<%= form_for(widget, {action: adminWidgetsPath(), method: "POST"}) { %>
+<%= formFor(widget, {action: adminWidgetsPath(), method: "POST"}) { %>
<%= partial("admin/widgets/form.html") %>
- Cancel
+ <%= linkTo(adminWidgetsPath(), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %>
<% } %>
diff --git a/genny/resource/_fixtures/nested/templates/admin/widgets/show.html b/genny/resource/_fixtures/nested/templates/admin/widgets/show.html
index e53f53eaa..8eaecc4be 100644
--- a/genny/resource/_fixtures/nested/templates/admin/widgets/show.html
+++ b/genny/resource/_fixtures/nested/templates/admin/widgets/show.html
@@ -3,9 +3,17 @@ Widget#Show
- - Back to all Widgets
- - Edit
- - Destroy
+
-
+ <%= linkTo(adminWidgetsPath(), {class: "btn btn-info"}) { %>
+ Back to all Widgets
+ <% } %>
+
+ -
+ <%= linkTo(editAdminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-warning", body: "Edit"}) %>
+
+ -
+ <%= linkTo(adminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %>
+
diff --git a/genny/resource/resource_test.go b/genny/resource/resource_test.go
index 287c416d8..be69a4709 100644
--- a/genny/resource/resource_test.go
+++ b/genny/resource/resource_test.go
@@ -73,7 +73,7 @@ func Test_New(t *testing.T) {
r.NoError(err)
}
- exp := packr.New(tt.Name, filepath.Join("_fixtures", tt.Name))
+ exp := packr.Folder(filepath.Join("_fixtures", tt.Name))
gentest.CompareFiles(exp.List(), res.Files)
for _, n := range exp.List() {
diff --git a/genny/resource/templates/core/templates/folder-name/edit.html.tmpl b/genny/resource/templates/core/templates/folder-name/edit.html.tmpl
index 1202de415..0db50d2c0 100644
--- a/genny/resource/templates/core/templates/folder-name/edit.html.tmpl
+++ b/genny/resource/templates/core/templates/folder-name/edit.html.tmpl
@@ -2,7 +2,7 @@
Edit {{.opts.Model.Proper}}
-<%= form_for({{.opts.Model.VarCaseSingle}}, {action: {{.opts.Name.VarCaseSingle}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), method: "PUT"}) { %>
+<%= formFor({{.opts.Model.VarCaseSingle}}, {action: {{.opts.Name.VarCaseSingle}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), method: "PUT"}) { %>
<%= partial("{{.folder}}/form.html") %>
- Cancel
+ <%= linkTo({{.opts.Name.VarCaseSingle}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %>
<% } %>
diff --git a/genny/resource/templates/core/templates/folder-name/index.html.tmpl b/genny/resource/templates/core/templates/folder-name/index.html.tmpl
index aa9857ff9..3fe9f93e5 100644
--- a/genny/resource/templates/core/templates/folder-name/index.html.tmpl
+++ b/genny/resource/templates/core/templates/folder-name/index.html.tmpl
@@ -2,7 +2,11 @@
{{.opts.Model.Group}}
- - Create New {{.opts.Model.Proper}}
+ -
+ <%= linkTo(new{{.opts.Name.Resource}}Path(), {class: "btn btn-primary"}) { %>
+ Create New {{.opts.Model.Proper}}
+ <% } %>
+
@@ -24,9 +28,9 @@
{{ end -}}
- View
- Edit
- Destroy
+ <%= linkTo({{.opts.Name.VarCaseSingle}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-info", body: "View"}) %>
+ <%= linkTo(edit{{.opts.Name.Proper}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-warning", body: "Edit"}) %>
+ <%= linkTo({{.opts.Name.VarCaseSingle}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %>
|
diff --git a/genny/resource/templates/core/templates/folder-name/new.html.tmpl b/genny/resource/templates/core/templates/folder-name/new.html.tmpl
index 0281f3d7d..7cbaf549c 100644
--- a/genny/resource/templates/core/templates/folder-name/new.html.tmpl
+++ b/genny/resource/templates/core/templates/folder-name/new.html.tmpl
@@ -2,7 +2,7 @@
New {{.opts.Model.Proper}}
-<%= form_for({{.opts.Model.VarCaseSingle}}, {action: {{.opts.Name.VarCasePlural}}Path(), method: "POST"}) { %>
+<%= formFor({{.opts.Model.VarCaseSingle}}, {action: {{.opts.Name.VarCasePlural}}Path(), method: "POST"}) { %>
<%= partial("{{.folder}}/form.html") %>
- Cancel
+ <%= linkTo({{.opts.Name.VarCasePlural}}Path(), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %>
<% } %>
diff --git a/genny/resource/templates/core/templates/folder-name/show.html.tmpl b/genny/resource/templates/core/templates/folder-name/show.html.tmpl
index 86689cfe3..672b952d2 100644
--- a/genny/resource/templates/core/templates/folder-name/show.html.tmpl
+++ b/genny/resource/templates/core/templates/folder-name/show.html.tmpl
@@ -3,9 +3,17 @@
- - Back to all {{.opts.Model.Group}}
- - Edit
- - Destroy
+
-
+ <%= linkTo({{.opts.Name.VarCasePlural}}Path(), {class: "btn btn-info"}) { %>
+ Back to all {{.opts.Model.Group}}
+ <% } %>
+
+ -
+ <%= linkTo(edit{{.opts.Name.Proper}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-warning", body: "Edit"}) %>
+
+ -
+ <%= linkTo({{.opts.Name.VarCaseSingle}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %>
+
{{ range $p := .opts.Attrs -}}
diff --git a/go.mod b/go.mod
index e1033fe48..19d29fd5a 100644
--- a/go.mod
+++ b/go.mod
@@ -17,6 +17,7 @@ require (
github.com/gobuffalo/genny v0.1.1
github.com/gobuffalo/github_flavored_markdown v1.0.7
github.com/gobuffalo/gogen v0.1.1
+ github.com/gobuffalo/helpers v0.0.0-20190506214229-8e6f634af7c3
github.com/gobuffalo/httptest v1.2.0
github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2
github.com/gobuffalo/meta v0.0.0-20190329152330-e161e8a93e3b
@@ -27,6 +28,7 @@ require (
github.com/gobuffalo/plush v3.8.2+incompatible
github.com/gobuffalo/plushgen v0.1.0
github.com/gobuffalo/pop v4.11.0+incompatible
+ github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754
github.com/gobuffalo/tags v2.1.0+incompatible
github.com/gobuffalo/x v0.0.0-20190224155809-6bb134105960
github.com/gorilla/context v1.1.1
diff --git a/go.sum b/go.sum
index c9095ac41..d2adc886f 100644
--- a/go.sum
+++ b/go.sum
@@ -230,7 +230,6 @@ github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSn
github.com/gobuffalo/genny v0.1.1 h1:iQ0D6SpNXIxu52WESsD+KoQ7af2e3nCfnSBoSF/hKe0=
github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk=
github.com/gobuffalo/gitgen v0.0.0-20190219185555-91c2c5f0aad5/go.mod h1:ZzGIrxBvCJEluaU4i3CN0GFlu1Qmb3yK8ziV02evJ1E=
-github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211 h1:mSVZ4vj4khv+oThUfS+SQU3UuFIZ5Zo6UNcvK8E8Mz8=
github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw=
github.com/gobuffalo/github_flavored_markdown v1.0.4/go.mod h1:uRowCdK+q8d/RF0Kt3/DSalaIXbb0De/dmTqMQdkQ4I=
github.com/gobuffalo/github_flavored_markdown v1.0.5/go.mod h1:U0643QShPF+OF2tJvYNiYDLDGDuQmJZXsf/bHOJPsMY=
@@ -242,7 +241,6 @@ github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxs
github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg=
github.com/gobuffalo/gogen v0.1.1 h1:dLg+zb+uOyd/mKeQUYIbwbNmfRsr9hd/WtYWepmayhI=
github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE=
-github.com/gobuffalo/helpers v0.0.0-20190422082217-384f90c6579f h1:P98kR4yf+APJmZ/xs31tLiCGzXIuVik64l4bcnVFBBo=
github.com/gobuffalo/helpers v0.0.0-20190422082217-384f90c6579f/go.mod h1:g0I3qKQEyJxwnHtEmLugD75eoOiWxEtibcV62tYah9w=
github.com/gobuffalo/helpers v0.0.0-20190506214229-8e6f634af7c3 h1:YJNJhJ0IpTBm9f3WN6pxV4PPXTF3bX0kvtA8/Gjnimw=
github.com/gobuffalo/helpers v0.0.0-20190506214229-8e6f634af7c3/go.mod h1:HlNpmw2+Rjx882VUf6hJfNJs5wpNRzX02KcqCXDlLGc=
@@ -264,7 +262,6 @@ github.com/gobuffalo/licenser v0.0.0-20181128170751-82cc989582b9/go.mod h1:oU9F9
github.com/gobuffalo/licenser v0.0.0-20181203160806-fe900bbede07/go.mod h1:ph6VDNvOzt1CdfaWC+9XwcBnlSTBz2j49PBwum6RFaU=
github.com/gobuffalo/licenser v0.0.0-20181211173111-f8a311c51159/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM=
github.com/gobuffalo/licenser v0.0.0-20190224205124-37799bc2ebf6/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM=
-github.com/gobuffalo/licenser v0.0.0-20190329153211-c35c0a2813b2 h1:9X12actO8h7SZ51+6vJRuLHkp2t69Za5tpsmcPxM6D8=
github.com/gobuffalo/licenser v0.0.0-20190329153211-c35c0a2813b2/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY=
github.com/gobuffalo/logger v0.0.0-20181022175615-46cfb361fc27/go.mod h1:8sQkgyhWipz1mIctHF4jTxmJh1Vxhp7mP8IqbljgJZo=
github.com/gobuffalo/logger v0.0.0-20181027144941-73d08d2bb969/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8=
@@ -419,11 +416,9 @@ github.com/gobuffalo/release v1.1.3/go.mod h1:CuXc5/m+4zuq8idoDt1l4va0AXAn/OSs08
github.com/gobuffalo/release v1.1.6/go.mod h1:18naWa3kBsqO0cItXZNJuefCKOENpbbUIqRL1g+p6z0=
github.com/gobuffalo/release v1.2.2/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E=
github.com/gobuffalo/release v1.2.5/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E=
-github.com/gobuffalo/release v1.4.0 h1:W+p5GU7Gn1Tzry1GnlIofxnJhbQOy6XfmhH6k4aDbIs=
github.com/gobuffalo/release v1.4.0/go.mod h1:f4uUPnD9dxrWxVy9yy0k/mvDf3EzhFtf7/byl0tTdY4=
github.com/gobuffalo/shoulders v1.0.1/go.mod h1:V33CcVmaQ4gRUmHKwq1fiTXuf8Gp/qjQBUL5tHPmvbA=
github.com/gobuffalo/shoulders v1.0.3/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4=
-github.com/gobuffalo/shoulders v1.0.4 h1:Hw7wjvyasJJo+bDsebhpnnizHCxfxQ3C4mmLjEzcdXY=
github.com/gobuffalo/shoulders v1.0.4/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4=
github.com/gobuffalo/syncx v0.0.0-20181120191700-98333ab04150/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
github.com/gobuffalo/syncx v0.0.0-20181120194010-558ac7de985f/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
diff --git a/packrd/packed-packr.go b/packrd/packed-packr.go
index 1b52958bc..f3753b353 100644
--- a/packrd/packed-packr.go
+++ b/packrd/packed-packr.go
@@ -28,7 +28,7 @@ var _ = func() error {
"219f70cdf30f6f12b6c726d0cb3c36b8": "1f8b08000000000000ff948e3f4fc3301047777f8aabaaa06688bdb050f58f84cabfa50b6c11a24e7c892d9c5c659f3b80f8ee286d012124a48cf6e9fdde9bc23dfa3d8628443929af93f3061e59738acf33cbbc8f73a50c1ea47e4b01654d9dea7478ad346354556a1aed49bde8bd1b5ece1b158fac6ae97c94f634bfae82ee6bbbd51d2e3b1d19433e4270daf6c327af0d36ae77eca87f30cbcbab8bbfcbe5a4bca30dd53f86960cd59242ab5ac7365547d177a4fa8a3cd5cb7868f3b16c2e8aa2105b629cc39375111ae7115c049d988a167b0c9ad148d8106c89e1c6383e2262912da1a100339b83ebe1bc07ef90adc4740ae5ee3fad1a682b6f93f790ad7663ab7fe3b95864f031783f030000ffff84384b5017020000",
"249b50674fa80d5d2389e61231cdbc08": "1f8b08000000000000ff2a484cce4e4c4f55484c2ec9cccf2be6e2cacc2dc82f2a51504acf2cc9284dd24bcecfd54fcf4f2a4d4b4bccc9d787d24a5c80000000ffffdd06e7bf37000000",
"2a0f82ff17c2398fa5a8a945b15210f2": "1f8b08000000000000ff7c90cd6a84301485d7739fe210082814dd97d1d5d04de96cfa04994c6264a209d1f407f1dd4b665a99d05257e6dc8fefdcc40b79119dc29e37f097ae7a352ecce0ad21ea079ffe0b625d3f9b78aaa41beace9da2d6c2bada28eb55986a23e70f46ec47f014ad056f199544d28d5312a4997601c5b9443f5eb1839276c202de5ea7e7ea280605de3eab4f346059c668cfb126b424d2719438aaf7a2446aae5e84c742bba0e618c62d5a08dfdfd6adffeacea8fb1d1ef3e8e18ebcadb25b6925fadf7e531c9c4c87371172279a5faf5e65c076edaf000000ffff29243437a5010000",
- "32d6be02cb664211a2cdeac73239cf58": "1f8b08000000000000ffb4913f6bc33010c5777f8a43604820b1c91a64959274c8d062e89fb55cac732490257356528ad0772f2e6d211dba75ffbdbbf7e3496d2fd0399ca6468c78a2b521d4c4421500d26cd49db61152aac218a7ea3e687255cb6124ce59d666a30a596b7b514521cb06fac0c36b1f78711d7841dee1448fd69f1ce5bc82845db4c16f7f0e3fe040bfb116a359a46ba445c6e1b0cf790b7fbea80e7bc8cb150c144dd05b10edf393c84b48507e8a950d8cc8d1a25b8894aa3e383d1bd5b34065e2e0c4f28b44304c7d23e6c8ffb6855289ef258ed1c331faf51bb2b7fe244063c475177c6f7968c42d13bc87334c67a61ba176e83b72b24655c812f2dcfc230000fffff0768675d7010000",
+ "32d6be02cb664211a2cdeac73239cf58": "1f8b08000000000000ffb491316bf3400c4077ff0a213038e03864358e3f3e921632b4189a76577c17fbe8f964e44b4a38eebf17676849876e9db43ca4f750a5cc055a4bd3b4c1913abdec35292d58270055bfae1f94f11042c1a39f8a2756da168df0a825c66ad5afeba45a2973a993a44a377062191e59b27bfe8d644b937e31aeb33ac61c02b5deb02bbff63ed3a07f620df93e0bf7484342c37e176309bf9e28f63b888b1c06ed7b562560f37ac0b88000e9ad2bddc048e20dd90c43284e6cd51cb49afd8bde0f1617dfa435eefdc0d95fbb86db134ac0a37770f46ef941e28ceb300754e469d9b23b1919b004fc2f1aae7c86e92cfa1fe67064752d01b7e45a6de7d0b44eaa14e23c3f030000ffff4803cb13e1010000",
"380ebe4d9806da77bde6826811c711a7": "1f8b08000000000000ff84524d6bdc3010bdeb573c9425b40549ec2d98f410dab23d357b28ed31c8f25816ebb584242f856dfe7b91ec7c7443e9e99937efc333a8a5de477a4826ba901b06088c1344826a67377609ca7a95a2519b7764060f7e3e4b1f72927721c8bd36076d697fb08f8f1cbf61e60cd1812b0ed16fdfd734d33d47fccb5a75c743e722444098dbd119a553a29ceac87a58ca1033accbc3dc4ae38fcafa76ee7b3d7a7581ec7c16703d5eba7eba3c7ca680b5698dfb2b6bd493551d05658e5dc12aec2880a63447aa993426bac81019e204a9a4948b64ea9e14f42bf898b1bffbfef523df146836bbfb82aa7513672c656d292d27cf943263b28038e9981a5c3f7f33e0a4a3d3edb8a881ddfdc3976f3f1af0a2e18c5d615717c08962727e8219bc338481c64091c93991585614eea82d35b87e458dbab603eb6ca19b95fe9f7b2b6ede58b7f286b1e22ebf7b854f839e2c217bf0dbdb061fde74f3329b13210f8485c2ce3f6dc3804bdb525ad9d767aa176db0aef3f2a4cb85d7c7b10cff040000ffff5b69610df5020000",
"3dc49c126d9ae937cfa7f3b28cd6695d": "1f8b08000000000000ff5cd04b6ec3300c84e1fd1c4540c84bf4063980a148535ba92cbaa2a2a0b72f8c3e8076370b02ff074eb66c5d118206a9b67e0d7faf65105232a3e2569a62ec87a259e6b25b7e54ba423cba5f524c1b15e172c4f4d665351c8f5b2d49a33bc779363d59a642d65e5e07bb42d8e6599297eb721dd6892047c94836d9e3cadf21398e08f1d920c99a5be5b2151fd63ffee403e4be3d7f2cf7ed290141fc84ec0cffdcb9f850ac6cec71309fc2ef2fe0330000ffff14ef26f10f010000",
"4458f74dae2e5b725e2ccf002ce9ed98": "1f8b08000000000000ff7492c18edb201086cfcc534c39d99585db957ab19443ab6ebb87dd4d14a7eab1621deca0624018278da2bc7b35d8de5372b060f0c7fcffcce065f357760a7ba98d0a0380eebd0b113360dcb88e0330dee97818df44e3fab2736f63db4ae3ca650dcaee55e0f730658fe7bb3f493c94c787bbc0b2923b0e39c051061cfae8935f5127ed7418f0e3e4443cda4e5b05d08eb6416d75cc72bc00b0b2c4cd688cb61d36ceb6bac336b81ee341a1b247012cd55dad283a8b9f2a66bc7ed96dfe6cd6db1d2f907ffef4f085e7c00e6eb8853dadeb8419d748430cb1e3a0c20df657fdb82596102f87e1e4c2fe96f2d7bafebdde7e9f516054a80ae973011835a24807aba91fafea4417a7b66464a240aaaa403252e0a245b9749b6e7e58a1d5062fc098719df821a334990a2107760560947aeeebab3a65f376eda37676b80022e2d3eee5f9599edd182be4266dc421f68617c0d84ef5dec8a8866fee5f8569de291197de57f39babe20251a14294eff134f7bc987494f1442f7ee6f8722d805d73b8c2ff000000ffff685bab16cb020000",
@@ -40,7 +40,7 @@ var _ = func() error {
"53cc1d15028e0b1431c355d61ba109d4": "1f8b08000000000000ff648ec14ec2401086ef7d8a3ff4a209e9039870a8b2310605d2ad282732b453d8b8ec34bbdb62dfde948428718ef3ff33df97a23c9a808c5d8fc658c699020eecd853e41afb01fbae69c8ca1454d738b267c42363ecf7e40ded2d070cd2c131d748d26b1f5160856a1817e572a2961b8803b5ad351545230e21928f5d8b20e30b7f939dc57f0554e23d57d10e5992a2948bc42fb70b8c85dace36f9ebbb4223fe44717ab1a9c8c152640fcfd11bee476d1360dc3fd2e83ca00bc61d20217be6c8aebf9b2cd476729f256992427dd3a9b5fc90a498e765fe986bb55be75a7fac8af9ecf33a490aadb47e592d775a3d15aabc8ddecaf54eab62a38a3ffb9f000000ffffb53849697f010000",
"5597b95c7800708f526fe349c8315960": "1f8b08000000000000ff5490cf4ec3300c87ef3cc54f968640a2aae04ad20b4fe22d5e172d69a6381b428877476bba35bbe49f3ffbb3639cbf601758d5524edf343c01eddb2e852ebaeefd638e006663b14f192fc7374451e551f4157ec23eb01ef08b4de51a32ea381337bc851e651c2417cc6b774d3f623310720ab2c468cdab82a8635b0c30db73296942f93989a57aa1fb3021a9101c17ee9cd7e8ef520267cf5de0ad044b5f33d796058c9e78aad4c13b2793a592cf42c373f151f4d3f457e0a195beea9b597be72febffe0efd6fb7a5e9065fb0f0000ffff829b6c549e010000",
"58087a293b8355d4c89fcbff6f66a041": "1f8b08000000000000ffec594d531b3913befb5774e6f0d6cc5b5e995039b1c5c104c85295cd52e0b0c79498e9b15568a489a4c1665dfeef5b2d69b04dec31543e361f9cb0ad56f7d35f8f5aa2e6f90d1f23f0dc09ad6caf27aa5a1b0769af0790a031dad8843e8e859b34d72cd7d560acaf9bb2e4520fe2dfed02b5aefde27cce74ed2c1bd635fb531728edf9cd78b1487a59af3718c068222c944222080b635468b8c302aeefe028286270e64097251a0b1caeb9153958679adc3506a1d486b4f0a2106adc072c84136a0c5c1550a0c4f0056a3e46066725dce9c6404528c85ca50dd2ee5c57b5c419684302a0100bbf066ec215b80946b382c42a548e53c496b24e9316b20dae758779ef4eb5947a4a2014afe88fd463526497bab000a15a670f68938fd2015c0a356e243790b621f40becdce81acd629191ecf1118cf8b5c40338978de1f2a1b05f14ff6014bf40ab1b936f107fc72b64ed72943ee76eb2941cac89bebf781ba5ae044e6184552db943f2b840b3b2cbc515bbbeff946214843cbc4128872d70da4f1439ca8769bf97daf81f368728a4bae7ee6adca939d4d4bc07102bf85ea8b7f0d0de0aeb608cce0297f281c1374637f562c1623937caf794af315ed7be443ccc9abb09e97a7332820df1ecd14e486f7781cd3c9834bf87fa5a2b873397816f5b202fc80a3a6ff5f80872ad140650a5d195ff390f9b7a006ed6077d03078790b32b2e1b4c13374b3296febfd635298f7bb31e8028e185bef126000cbac6a860d5b277384d13a5c119ae2c8fd674a38a84362e8857d6c376c5cd6b6e3194c1624100fee75366d9c6f8cebd0e5f9963a1a8dc0cda463acbe09c1b5e5948a8d513dfff498de643f84a9e1a2d8907689bd08a053dc758f2463ab825a72d708341c3e1cb073a0ef7f712daf39130ba196b019c1a5d05d369cee2872c8b282fd01981b7b8bd6096c9383e0ab14563c8c447369432ed8c56f6bb177e71084ac84ff2d1067c30806151c4e2f398a963f46a0180d5201ce45cc135426303239140dbbbe479ce2ed1a5c93284491f3eb671d0260bd9251714c2260a6297ce1005ae177dfbeb6f8b45403b11caf9b61e364e834155a0410fd92237f9046adfdcf7d840eadce359626c973ed4064b314bfacb5368d96bbe26e773405544e3317839bbf046d3fdbdbd3e184638d2bcdf5dba591659e272a2a7812528800577dc3ba3d5368eeae20c52d8d2c636ce18cce7c93c592cd6567c259e1d2f9e422984fc47a414aa70e98b00812bc0aa76775b62bd8d80e8a895d84540ad867b061a6928852aba0e9f9039c32b746860737e28ddd4716cadfbdd8c9d0a556ceeff166c1f22e3a4c966dd49d64111393ba108a7aff65ef5496885a17fb51e6e031a7a38f8bf9c5987f66fbcf6da07037887d3e84ee8ef529bca3b9a1be471d85438ddd6eacb81b77342d8daea0aa78fef676a9dce76fea933bdab8d7db25714526a5e5312912e1374d5d8d6d53a12e0ae618f34fa6c9eff75f999d35e00b6939cff031a3c220eec5616033671950cfd82e1e263d7282f67473b19efd113cff7794a5d71290a4acf72326811dd07a707708bc6d8feca51d0ee1baa22164277949671dd1129510663ec0f6e87ea2ecda224dd41f94dc0193c047ecb85246a00a1ac287089ba6d5fbf33b6747c3ce807f57e348c0331b52af0318f03a6c2295bd34257ee90bbc6a2a199b4dd9b6b63300f6b42d58d63ebc759a48157fbfb4f21fcb5436f13e97bdb67259935e82f084ab741b1e880836df21cad850aade563f4c4762ab99da4191b16459a4481a40f2336a20a91be9957786e233ae6cf142c58bb3f7bc081011b5d530c16220447af0d244bae01a10a9cf987908ddcf9f24b9e92278570f7c7240f0f23f727e53662fd944e49d5130ec7ee397840281ecfb8e4c2f330fca853e0796cfd0ec6d60793ccfbda1f34f984ab31760c339186bb8799b55be8f9fbaf7b0b0dc89f5bef076abdcd63e0c381f99bcd7f5df353acae9f667ea243ed7980da3640353edbdf66807aea33837f7cb6cee8bbf08faa2e965e7924decad39ea457a6a4e393b727a393af4ad511ff3357fff26f866b28dab2f80254fe39ac5212837c794e2982773b59e5e25b33cabf010000ffffc114e703cf1f0000",
- "593cbb702bb3c5a0fcbfa227df3a58f1": "1f8b08000000000000ff7450cb8edc2010bcf3152d4ee368624b395adac38e94550e9be4b2f788c16d1b056802cd66a368fe3d023f6632d2fa62baa82aba2a28fd534d084ab3219f84302e506438080039199ef3b9d5e4ba89ce791c95a5ae2862f7fa49becbd8fe11fd80518a4688571521c28705693ffbc978aca04a09399de80d1ea03ab7dff0f741aa10fae54a1e41b66d17f2d91a2d1b21c6ec35186ff8d0c05f0110e10156df225d8fdf43cd5308e5eb3af8f2f2f519acfa43998109ce0839e100234550d62ed7117f654c9cfa5556c0e72ae9eb5cf6b246abe2ddceecac3c8aeb0b258526cfca78e3a7ea4a23f08cc0e882558cbbf1cb069ce8adbf0fbeb3d7ecd7b939aefac7adb6bad75ee2ed368fc3b0bf0b33da8031c18c11f7700bd66fedadf34d65d96b720e3dd7963cf98f27224e1c552888db6cfbab44165c2e6d059bd3dc3e51748bf5f18ef663a428fb1bda13c5ff999772b834e222fe050000ffffccde3607a8020000",
+ "593cbb702bb3c5a0fcbfa227df3a58f1": "1f8b08000000000000ff7452cb6edc300cbceb2b089dd6856b033d1ac821011a1468da5ef203b24ddb42255195e83c50ecbf1792656f1a6cf6b2e26866c8a1e5d5f05bcd086a604d2e0aa1ada7c070120072d6bcac7d33906d67ead7695286daa408edd317f92163ff0fe8460c5254423ca900013e6d48f3d5cdda6106558cc8f18e5ee006b273f3139f4f5279df6d57b206d934ad5f7ba307590931ad6e00ed349f2af82b0002dc40f14dd272fce5739e4448bfb6856f8f3f1ec0a8575a1998a04758238e30510065cc761df0cf8a91635764097cc8922ed7692ea30795bc9b85ad91b5b87448290672acb4d36eceae34012f088cd61bc578183feec01dbd74ef831fec92fd525775d1dfee6bcb731d4b7c3bcded381e7d6141e331445830e0116ec3ba7d7ba5de57964dd2761cb9cf3d11470eca27c41e76ab1bc85a749c531aed30be55f768e819941ba1bcaaebefa5b8b5c93aca77ed6d6cee29d8eff8ba7d820b545f67de53d8c8ff413bf99c0ee74a9cc5bf000000ffff6f674a71fa020000",
"5a8408312923fc8c5fdddc2e213566cc": "1f8b08000000000000ff010000ffff0000000000000000",
"6046dc01b561b25c62c4c0d22e8131a1": "1f8b08000000000000ffecbd6d8f1cc7912efa79f82beace7e590399c98cc8c837c3f48145c9f6023cf72cb05e5ddc4f06b74489bcdb228921454bfaf517f14454750f3994a8e1c86c9f630356176bbaba3223232322e3e589dffd8fefbf3d2c6f9e5cbd7af6e2f9834b4af97279f27c7df1d5b3e7df3cb8fceef5d7715cfe8fdfdffbddff15e3f2a727cf9f5c3d7efde2eab7cb1fbe7af15f4f967f3b1cbe7bf51ab716a694530ecb7f7cf9a7e58bef5fbeb87abdfcfbe1bb6fe2bf3d5f126e7e69eff8edd252cecb67df3d3b7cb5e4df2c4b8cfaf39fffaf877ff97ffffd8be5d59b6f967fffcfcf1efddbc3e532debfffff9487f7ef7ffe97cff10b94e8fefd2ffeefcbe5f2e9ebd72f7f7bfffedffef6b7f4b7925e5c7d73ff4f578f5f3e7db6bebaff1f5ffee9be7ef1f3bf7c7effd59b6f88d257afbfbafcfdbddfe92f9fcc932e97675f3db8fcecbbafbf7e7c78f1d7efeb1ffffaa7172f9f3eb9ba5cbefff6f0fcd5831b5ec23967fd51ffca6fbf3f3c7bfedf377d91e69cf7f1d7cbe5fb0797f9e5f797f72e961fec6a79f3ecc9df3e7ba1f797bccc8cff2bd51fffd7e149fcafc7eb7f7f73f5e2bbe75f3db87cfee46fcbb5ef7cffede1b7af5e3e5e9f3cb87c79f5e4d593ab374f746adffcfedec5ef5e3e7efd74f9fad9e1f0e0f2f98be74f2e9757afaf5efcf7930797ffc24493ea7623feedd957af9f3eb8a4b6df393c7bfe647dfcf2c125de7bedf6fff7e2d9f3b7ef7ffbecf593abc3b36f9fbd7e7049f972f9eac1e5bd8b8bff496d240934c6da66ec1ca8d53423514f25702fa9d8f5c3562971e839f53098024b4e822b9199c643bd6a75a612ec8b836710217c7bdebbb878c88553c1edc6a9e2bb6c97f88143cc89435e634e142951d04fd65bb1245e23a51eb9a7164b92586be25813c5c169e8233d12a516f5ff5cf020c522a9dfbbb8d03f732ca9c59c5aec8963d639e5d4d7ac132da904e23422e9a4f4e525d535871c721c3d75ff7895f52b55bfc291ea23e2ae447b3a93e8d06be49c585fa7cfd95b7aec69c6a62f0a19ffae4ae9d4624b823770121db37e869a26ee29f138b550f4bf071d3b4dffba4d44ffdcf5d3df1674c2ba2c2591fec9be1ab827b18fb6e2517c4fdfa66bcaab5243a92c51dfae33c0bcf19d8155183eda9186be8a31291dacbe4a473182a4b1e654424915eb37a20e9d729a4a76fb59c12b9b7ff2460c257adf2f9ee654fe0c56fcf1f2beee0be5e2c7577fba7afcd5b327cf5f63d3ffc7977ffab7cfff4a7fbd5cbef1dbfff9fcd9eb570f2ebf7bf5e4ea3f747ffdafe7fff9eac9e5f23d3db89429a9895c2e3fd083cb2a39b5dacae5f23d9ffe891f5cf69c6aa172f9fb7b1717bf7bf5fac5cb6579f1f5d7af9ebc7e709975ebfc7078f2e052efc7f5c5e1c5d56fffe573ea0f6bc320df7920491ef3e6a7f2c8f5b31b9fa21b1ff88cbf685ffcc16871ff3a31de121bdf5d1dfef55f36dafc06fb1a9bba041a1d9b9ad208d45a246a49b0a9c5ae8f9bbaee9bba1c37f59a95dd4bd48d2b2391f272e804ce3b44aa9466e8caff4df98138954734f426979cf8d13e085fd2972f0e3f7cf3e2b90ffb5ffef0c74ea55c2e2f5f3c7baeabd89ba8f490b934a92a1b724fb2d4ae7c53674fbcd43e12872a6369ac5ba99691ead2cad8af479e7e3db66ba154977b171723d7d443ad2df5a5cf9128d43ef57a8cd0724bbc74fd77689c535d7ae734432b92da72f141c36fa0928c5416154fa1144e75a9a2bb8570b7250a85ca5287ee84ac2f6fa2f7b24eaeebf04aae49963e702969e8c0bb4e8f5b4bb4d825eb4cbb8a4fa6aa93d63dc779a4b90c7d92b3a4b2cc1138531a0b652c49563a509e69069a4a5993607db125a3d1535d3863fff696445fcdd49575babe8565e8d77a496de1aa0ba1d7b4701bf8ced0eb5ef15365e101969839c9c243e9c1194f4e888bacb4e1a1220a9cb6f0245dac4636679e3d51682a6c17ee84eba9636e59af2be6c2e012a5e6a22a8a4313251265d1a5c3b313927576ac689aa1d6ae64645dfd5297a6e4aa042eaaa9059923b1bebf15d54bbd276535957375a6fa1e46e89f95cf59aef3f1084df0ab52f43aeb00949347a853c7c853c06a92faf5794063b6417abfe277664fdb1a756e200ef754436f9cfac24d257a1f25d5a55053119cf58152671a61704eb494a1ea58794254d486c13dcd45ca4ca4fa78912a50e57391a15c3fb8a5b12859200b74e349d1fb5413e900aa3263185997bc4edd897d369d2d29b9fbc0cc791b9872b9da05bd299bb7a65baf5749b4b4a933ec8595fd5507874e75e945d43e98398da5575299a02cb653ff28f9f63da8224fb7ce0cad97340fb1aa2ea4340e9cf186540fac6bdd0ea21f94cad3515239508dc574684b3dce5443e976a11a8f420e8d5458ea1cf7ab436f6a38ccc46f22cd43644923724be51065268e2dcd4727a3f9f1dd717ff6707ed11edab86b515ee342fa3ca9de95549e4612fd37d7d4637baab64c3bc4a202ad3d8d95f45f0c8191caaaef1e816a1a5174ab488b552da75e4c7147ddb80c5b43d7416a64e5a636cdae2a814ce3b34afb1194054a4f7c502b2a70a203bea41357f9cf9cc6a1c008a8a91d5ab7ab7aa8d574793d88287d929a7d072e6a9c49ea87d6d47ca1540f45ad0e4c905a2a5138f53791f8906145c83ad56aa846893860a2084cbca1d69e32995a7945a7d1a2c0b6503ad59ee6bbb46e7ff8bc7f518dd63c27e803aad14c2336d588983fc94c2d0c5d40bd948374d842f254482d3cb595cada7b12908af20ca3e0fb41bfaf8ba7dc3f92403b327e78ea42917d3fc953651f02c3347d693f28152434dc1cca067aafe8dcb2b2310fd8a5a93d526dc24166769e509bf0d1c9746e60b23fb6cff90f6c1317557041ca487d153556cd4a93585355ce51d394d68a498afe45774fd3bfa89d27abf285ee24e51ffd2495079c9ab21726a37f0b2a774999465f53549eeaafdb5c2516650f49758d2a9a945b6960044de75974282bb6206c509512532d793d87502a7a8428b34316ebe82567e85b7dddc9ec6ea203fee7741013ec92ca2a30be39546cd9118a32ad1e0b708ca87124561358cf033acab92a3b068e2aa71acce68989e9c8a4e43483f4aae3534b04d72d9cbcefe74646b01f549cafaa03d4245312e650c10d6dc5512cb1ae41d4f7e0c453d25c752f32560c6b596d852af6dfaae7a58089e8c6f6e38eb27fb53d8a93911e27aa4e7eac19363e36a8b1bc9ebc6ce84f0e87672f5f3d595e5f3d7efeeaeb1757df3eb8fcf6f1ebab67dfff6b4ec463519e9d3496fd436f4a4d35cb5846a9494aa1df5cbe3dfbf57b35c97b1a97cbfac383cb32492faf70f772b9fa019f3a00359d6f3586d839e5cc63e95992cc516e1e446992da368892f86e07d1d31cc5ecd95e3bbf6708256f74603ddbda105477db2070f50e1f756eb38e4dc489eed9ae7c14ab2d9f8a90ae4bdf54deb06e2e3000c5b9f1f84c12672c387f632bda2e54e1deedefd088d891ca416ab7eaaf06ce2627c63aa1246660bdad3bbf98ecb093abddcafb9951796be23e43a628b7d36aa2555f82932743ca90f3b1deebd10e93aad22ab481ee423bbceae932aac4aafa3b105838ef12045ec16070e0c4b91ffb60469c63ed67e034504182c3ea0ccdd527e11cdca31d73f5a45ed748f6749250ec341eaa523c43e2956813ab7a96d6a71ef26c81bb8a2c9e1557339c2cd5cfd8085c7194a1b1aa71112452379f05e368a7477c8874d61556f2135c225827b50fd49e523b081aa60635d887096fc29fa632432052598367d7ea16012437848b1a48b20e9fac1e9294bd42818722bbab420eee6c394415e9c36d9aa29c34d4a0e82a3eff8cf9fc7879efe2e2ed697f900f4ceed805564829d39aa89057abb729e734651de535d8905cb0a1365b6906eea60729f0486d9d60385ddad8942caad628a7baaa0a87e280882d38039aeebbc158b9b6e86aa106ae53175d42562d39c388259b229dbe27d80cb70e3d1e8a1de0121f8619a9f5d1fe433f7e900483cc8a26b4b6ffda3d1d38892c3da74679de2cc260cf7e9408738b9839d10adb0976287c62902aba99d706cf12991684b5c0f068a950e81015caef4aa8000b621abf43bb11dc52fa408f33a8d0834501c3bf2bf128520d3460a0817b0b2e093f0f438f60aa1fa03d39f5472763feb9556da14ad3d5c38c942174797bb65d4581724eb482f758d7146ec91a601f16350470b2527e13d8fdca753d1b29860b6963453267224cd4a47bb7d89e6e7086ce6096649295cdb690a087d6088710a920192b8c9f66f4afba8b0503512634f9a1d28fa71d305a6c50084a1c50c74e280433174ec30328cc6adbc23eee4a5736ff044ce50981aa4f408ce93d1c76533db841d60f3066ccce7e245542cb662aeb146c7554d1c841d9a2c6a9bf36201cf56755b4f32196a1a3c4407403412f1e224c42d8e513ebaa7bc797eb67247483d30167e615225a79ce5c9b6113d2b2ba8c0e9b8cd645d6adccab8be868225aa289e8eafa07323a988c8ebb8c8e2ea4e326a4a30969d5a32ea7e326a7e3514ec35bdd533b0c18bea4a7bad8931c7485479a8792f425ca4a8f4ea6f5cefc3f89a8aee07913d52ea9c32ea9c351529ba00e9ba08e47411d5d524793d4f128a9a38beab88beaf881a2ba9a376e4c089f8915c3efaaf15dd8fc066d85675db5ad0711b08b225570bb4ee1d1c90fddc070324be3133b4f25800a499ba19a20f8193d43c1972a7c88ddce34b0fb5453d83952cd311c17da8a63605122aa39d6cca0ab387041fae26cc415b6d108a586ac473bd58419fc22cadf7a402a6a01821795e445c9c6784b24ddc5c6b370fa9b2c87042f70f9c2098017ea8e257821f4740e55574aace27c1bca5a084195aa3fa007b081788aca41e5e982bd6fa456918425ac01dbbd92f977e4a09235bb5da9328ab15daa0a4018434a41610bc860157b80bc28aa52d6683e80a20489b6793ca0644e146c3d4214041ef34d2ee377328e5c6ab38a79323c5682af91ee4b446eb0954311634bc6299986bb9ab0626a466f3195d861663668a67d66165d9a6e89a9ecf4331e8c6509d95c007d972766a1739c300895732265b89758d92bd666ee88199b0a7bc92038c7fd8530f4a34c7d56854e85656e14af38c4ea8aeb54a3e4487a8a8820acaeddaa36baeaae6a4a78eaa8d46e81187cc8bde3c00f653470b88673fd6423dcb065da1795b62d23f05af1187031cde81ab75b540bcebf5457e85378323a2219b0f27425e000d063b7ae8d4af7083f2c4d0f33aa98d0430ee68fc3471de6a90169a7528e7028283950d1159c0fc56e22d028d8173a3e0a2763bdd1e95c3fab9fd53f1e9dce0ca7692d736151215095ce0b4b4d23d49a93de1f887e0cbb6a053efd0eaf7bd7ef16c1f5d0ef16d6e770ffdec505179563b50e7d047ed45a259585558e855a8b3ec22db9aa7c8f9ffced213786cb5ff4698fe7484e7d69b0736bd181347bb3706a4b1335722ac205ad4c7d5b2da92c4d256da8d59dd34d8fd01ee7d16bc65c6569100436277d5d0bb5cdc44bc34ef3fba4df10b8b22b8205157fd7c9e7f74c6bd303dbb44a472862e8fb4b535e6eb32e4594bbbbf9e6b9208e56970269d94957a540d57635e2179e3abd4e88afcc167aaebe1216379833c9c2b3223ea05f41b464e89a94dc4243c0a650c3a9a6a6b614d0baf5acf74bc635be236d8f3758c8a08d9aca4dbef66bfaeed7d3c2eeb07eaf223ea876a5035c877aced4c36f6c7a41309be8d1c9e06e0e3cbecd8816ced015e345d75c0982d0a3e84e6c5389560b488c604cc5d1afe796ca52595747f9484f00baaa8c27e1385139817889f266e8d497da085715f1c0866b4a6d5156ec58665c8786409432a54542e803f7d4754e5065a253290b2290a14d4eb49462315f7d6f4110482750970297b532ddbcc698f72e2edecf9b826113227bba55dbd4a9f16cd803a7619b9f09feb2ee8fd6556a2965058c5b1765c7e3753686d74d3f95d394f93f2c28d77044ac3c122dadb16a7a8f0a9e5c5b3c728e6580512b22c10381297db25c0b2f7770815e37133be47f7a5fc0f88f7ffcbcfde1445034c1ea668b556378ca70cbc826701021ab704411ddb8277fda02ff7883fb7f76e4e7d43adfc476cc6e611c1f29321c60e4091df0347a3e096d4e3fd86cf085f91d813080f3ef90f73c98cddd4cf815f23c180fb4d8335bb24b868980ffc23a235868fe9a68593d96e2939116334256dbc5fcda3eece1c39cab3dc3e631779f24d9c9d662201ccca46b9e6103171fc14a820711ffcd9eba93032c3cfdef2758ab8ab029b77faed5d9af55eb0db6889cae5580211d1807355f1578ef33bca6dbdacd6861d219b6542a318736d609546b27f96204cab66da994cad1a83e7e72a9a279b16bb4b5b5b38daf55f15f29c7d502ab0dbc89fd40e30f4cf8f3695baa785cab6abe10a48f350f09280f29cf114ea367b05475ea61a9cefccfa5fa5597cafd457cd7d9ad057ec6d1cded4596d596f73c50cbd02c27199ac53334cb498666fd800ccd7d793c42522c59d333347799f493199a6c39ac01a19d3d43933d4393dfcad064cfd0947733349b6768f60fccd0849b169fbca7ab22c23cf78b1bb26f1e7efe793e5a0abb9de08a475c82b7931dc1ae78ea89e219ae11c6cd8ac736c991ba6cdae744f7b0eb1e3e61c37715cfb4d8dca9da09bbda014ddf553c3a4cdb77bbee99a7ba67533c2e0dccabfe96e269c1b26e6fd8227fee8d6ff0595ca36b955da7ff93ae1f4cd72a3f43d7d6dbae7f7da36f6f3b358ac8a5fa29ad874bf5f193527d27ac8bf5b98b75b2f57a3f51fd89ea9fd7e439ed5ae15d79be53f51d91be9135be6528057a4b9e77c8f37e23515bbf294c7d4ad43acbae29ff49d40f226a9d3725069d12f557d760f72e2ede2e33f85535981bec3729b15f5783ddbbb878b453f3180bbf7afcd5b3c7871b2a0df8af16d1eea5a7d6a758505b724b34695c2e570f2ea5a632271f2b12fe725340bdf445974a262ffb076e4e4a75f4b2f0e0346b97dffc5c69c30757293c943ef83d550a37d71bd45a48de53d630f2e49b5f33c71f8b47bcef5f27e4fbab1478ab52e8390761c42b113cc602b23bfcf4c09a13af14b95a244704b97489a394242bd74001f71849802509feba6dd640cdc2b908c155fd99325379b4bff56732f27aae81e1f7cfa608c16d26baea6a5a49903da89f5d15db2a76c60d081d58fa0c83812d5083642a4826fd3f79811276644f25224d8103c9da548906825354efc01189b7b225a758ee21458498914b808371b4644cb6b8931296d8cf012c183147c4cdb2056cece4c0b10acc8a16518590b7dfd3f5a878ba2153802c6b4c3795253a53ec88a2af6c31654b8fd1c32d59bd485df5cbd411958c24dbe7bd8b8b877a0a9e817922fdc1897dbc7ab45ffdcc429561abdd53f5fc2e4b6043224ebec52c3d2e7827135d955f91f05b908d37b7cf37f926be3233fe4e58eb26beea1ec6d5a9985c6c10f4f2d314ae73aa002e9ccaca16e42d816a4431093e9eda6caca0ccbd344ad295dc2434361497e2165dc6c1912ccd35759daf92014c8e502d84fa083ac1cda2e86a35789450b78365a935b304c2c08b78c541d5680865d17c4d2de550229b8e0b08865ab2a34eca2c0e2c6a923536a8164b7554d3d57209df3dd85e23556b3a74290539855e7ba84b6b99ce88816e37a6b9d24ce0916527ca6e0e6d264bd9861ecdf556118b55535a4cc1daa4dd46c6817ff5c37db0f424da3e57b2fc1095254e187c1e72c8fb31c053ddb7a82e0e1196ace9fe3dd5ebdd6d1b4bdd44828bdf85dc31ab0703eb6f5982f3661a9ee636d48c7c9d5a61901c39c84e3492d808857c66ec938e9d3c525d2baca116105a27d702b09a8ae7aac769bb17c95c2e45b99941382dbadd635191b1a50f9415894158ad1ec93734ebf3d59faa6aee288b23a5aa0c4bcd2c5e37e0312d952f88de531ca9458461f2ba25ed547d0c59a47ad19046bb5ab688e5204e0804b68cfd15a5046aa5423fe8d8a0058ba5caaf88ed8f005eee961b4601d314cbcff7f423361980307641da2c923455b82131dfd20656378e0526a8399b24f1216fb906c5f4924a12fbcd692f1e2b922af41f1c3ce36b062be3d0c9588e020cf8026121a17b165c433225e40caa35500a4c4865a8f8249f2a92232d7f05f5299e7bc16b337bd3f2dd2c97a058e29eca126327b20c57af8229ab551b50e06a89139ecae2f93096ee5b603f4306e6807163f96deaa2bc8269aa41fbb0669450a01252af4b60140a9eb0f887c5c7c60835e76b512abfea057791758638591f308550b2b65dd3f11a8592fa7dbdf6e248ff27b37fad0751822e7d203c465612296f5f733d86d04a3e5ed7a6d7a8ad915a126dd782fb153c2162f17aff67c64fa1e44d32a3f40b994a39275eba28d79789b85ba9ca68134335ebceaeb3d2b50cd4ec75e4110e14a5f576bc6ed063282dbb7771d15ac5e3082e361b0642fe56cba92cb3a83cd7998ee3f53b81c39be37d22c2c2c72594822c71e24590f55949872d1637a49a44af916bc7b83b425519b08825632018a94fcefd3bf04ceb46d1c96cff2ca9ec5fe30f1e9a9a34faacfeecc0754de43582953a0687b40ccea9e19a4265c6f79be5a6a3a6b0fbf77d48482fa1869fd2ad55493e30922d48c7aa9cf1828a97e9af28252aa832432d4613bd325a5a2570c1df319422692c621922c533449c3a459cb81d8f545cb3fe14ae74ae0df3c6b7d9be514181899f2c3b352a663df17bdb0215fcca4625bc1606890ae145d802c9a47362e4b2948291aa98d291caf6b8ce7efbd9d2f09d8661dab5cdb86121505785598a64a403a18a57ffd16d5e765b5f88af0b8829f8c98919946bebf9a14b555046cba08b71a15c634f2928e2a689253c5dd89b38e7946d9c8bd899f33dc17e4f1e3fe51d5b1cc1ab09cb872179201f5765db514692be0d93e7c6313c4063702eea8f311c23797686a3fd27b187b81e69a816c136e4f5d9d57a78f2f60644ed9312c47c0bb530dc0a25b13d75f5647dbde03b7cb9e00bedf238eb4ebd5d2e1e391997cbd327cfbe798af8c70df6fcf64acb84aba10a3ff5e2d7edbca4f64cdefdb1279fabf9596036ab6de8ee2e31e310f6623ff96c7eaaddad4471df103db437abe9e163d83e7f7c7bc2dd26ac437e6b063ee1729cb0bce7e19a6ff3b0935ada473c5ce563863d3ee2e1f631c36eb7a2b63fdc6f456d1f76ff18828d8f1af6ada8ed0f8f5b51db873d3f8660f363863d6f456d7bb8e58fd8922d7f04c11a7dccb0e9238441a38fd8928d3f8660e56386cd1f210c5af905d47e27ce8f737c538b84695865a79518593400de8158de5b5682c8c7d4c362af3880c259e4304e285b573df5530f0fb8155b5e2dbec3eed380c3e2ad675fbc7cbc3e7bfdc3834bbd6d5e9c593c1d71ac5b6c125568a1a04ed5ab483d9062c1154e03e594e6abb0ac72c111dfa6dddcf9a1bf30f509af0998f876572bc4ca3767e856c180a7a29533557c130e2bc645858f9791ae8f842a87ce7202b3875bca0a002df8e39a8786dc19623f5ef012d40f468be09a726f1eb34185b847769ba172052073ad79cba10768842060531eb6a9c441aa31723567681d6eeb2349dff5e77e506e48b9ebdc1064ccb1f09b2a16fa42a15fb47a3f54c779a4adc46265129ce84ba16325b8bef1934ce17b7a70d947aa866f258d0cdaca6fb11a11f53c464983b76116553b3acced1e230bf63c32855a1d762e49f52745c39691e1314fb8513dc3329c246478c4b76ff782d56452dc9231aa0790e1b83d642b03ddd2362da4bce5436c09195b4019b167b7dc11e68e0873fb53e22e59099e92114cea59e6a45bef1e9e6e70cd8e4d3a995430d39f3ccb1359161eb0453c225a8cb7444fc8409a88951fe2bfc7b19987b25e2b89bd41d676f8451a006f548076a72b3cf851875bf79c00cf5b85973f6f7e69681389b4c5a5375c398bf6185819aa14b628790b0e74b2ff8afdaa67b180d8f0df013963eea4adbe2015de6e0ec763914532688f3e1e535dd98f466535f28be3030c1fb3de2feeeaa7688a6300d7c333139cb696db83300106886a2dfcf727a95b274a6026997bb782e308e118b270cceadab1c68d04804cd86641ae3465539e2733ac4eb96adc6d3439090121e0b87a30c1ffbde50c1182fa793f3a921f344b38fef6ceb247c6a42d07c3a321b491c9c2255bd064bac6c271d455a967403bf52d7b64383a84f87df1dc941a8f01b9874a43e48002896ebbb6ff3a6d7ffc6999d1e0caa933f1c143167cc2e4cd55fa3861737656e9276cde9c65aea76c1b3b1567731477faefd49db1f73d79fc3790968cd53d9089cf768dd9c7c6f46fc991beb1fd293318bb070bf3bccdeed5b7e3588f49a99bbc18b1bccdec5ecfec392c668594edf38810794d61a8b619e2baa6b2abc4a1e77868447e8f1c2abb99eb59137bcc53f581ac967e860043377c13440d2682052d8d5003a11c5680b2b55afe0c0255d103b3b1986c773016f2a273849450728f0014024878580d322b156e660a1603392d0815954812694b3cead898e201b67a2d96fbb3b3449d5a6035d4578b095bccb4a2e095535bb71f1e006a21035269ab6ffb025955ac8ed2726cd6e28ce7a62de23e865304e9a34304338fe031cf6196af8130b0c5e5d82c5d64434741d8ba02a7a8acbb755b215e4bd4a1752f79c53e89cdb813da915644042165d9c36908ceab3488823fe09c62c5ad5d976035394c41409369203886f5d40632badb447555d12701de7042caf748839b97a00bea9d2bc25cc5923b62b71097efb415822a14577628904d7db5f02b329e8201bb2add0cba4ed7ca8f25c52cf3dd1810a46c6fd85c92eabac5cf05a803d3b49ca34491e1c61a400e2020c009168084f02a961e263558a89a8ae7a317147ba30018cfad11201091bba52e4412032bb18497b6010b89e14d30b8863675c226b43a629c5be091c4bd910c6d1dc480ff44f726f605c996ff0641bf5657cb645f2cc04a81295310bb230b2b237fcd227f641b93900562c1dbb187e5c54bc1c5f58fe530d1c35eb13056ee270824d61e4e96fa97b1086a57591af497a7f1fada12407595c563d73dd800eb34232298dd76d1f032766c2b2be8b7d147ab399f911dd4c450a32c47171926c5405518675272e8b18a743dc490c11a6db5a0710f16096d61c62d59062ad2d45ce847cad9e112722b9871d6a001d9f54875f56d8fd4552c75c3e04e106b4501602a0f3b23942abaf77b81252ba267ff23d17e11b19be5c4b08b0120b08d606926dd4fff96f260d9082530a0a8c8ad6ed9c4a8a53a98e93282e1534f24c014307931680f334caaa76fc14c729f03721e0305377775f9105d66a4792a19a609b011871f0c802c52b6640731c9ad6b13c84a400c2c5a0f1b961e0be1ee542760e018d529d2bae5ec54186a0dcab979ce890954cbe6a951764b004695b29319b130ca2defc67d0d03b3cfe6d311cfb0edf8ae0abf6a9901c80e30540b53786be4702c5cb38236da2aef8d73233240516a2fa64e2d47d8b2e8807112b29925ae3625f8c47f097f948ab27fdd142e6500e3a2ec482a3ecb8ae81372216670109fba56cf10a66630dd8190a3412e465aa8b6e5b09f238aced5d23bcd6cedd8d11ca6eed16699bd6c0e18834082355fede069ba2c3b6acf495a9b95fe109945d16c15574ffba890600c241aa59c1ca96bfc69291b3a77c79768c09a01e761b31bba844a158c07c972dda5256f1920dc2c838242a98e610588126c2b1ed841c584790654a31f7d375f1cf084f09768893102a9667076d34090a6ed11867466202de9e4d6b6953aa4061044b687b77c2d8928a28a767631a445f0a831638bae11d873562be0408094d2772bc4322da160b7446dd722782147cb4dd13366736c7b689f0adc0d03026a2b2ae3abe14f217f2bb29da1c666736fc7cfed735cc754fb7959570780273cff49e2564ee6ca4005d31ac9b724769c4145c2be9f5e19e65526e6ec3079c72eef0cb30f7688e7f58923520a3c232e01d90d1f896650f21a69ab1e81cc401dca06eb2791bcb8c49c2f1b4cd2d8ab5eec3ef291762ba9b8be81de59f5a02a38ab00ed723d06299ba31512f491493a1841f8bb183a260cc1860c15604cb4069b8a517e7f24ea2d3d9d77eddbe2897492464853252f06da2ca07a5b70a7bb1fa65ad3b50386c5cf999674b969c3726b9fe69d8d554f993c879f325bb353a6dd618b829e05316bb735379f876915007fb86135cf8598a0218859a711d3eeb0c5a3cf83980d293e9d37d16bc52b65af8b399b3d54e187685312add610449019ce663bab603b13877b25835439f135d613f712fe7f262385cba74d2bbf6dee5fb781f2f90cb354023e4a36a768738886091f49b1a8e4b98cb463a4303c77605f83888c94771efde4b2a94836d9d4a60bfa22ec81abd9ce0312b16471dc1e2b8850731b18cf4089ed916fa990ee1cba11f85236ceed3c86d306a1b4a62363fe3cf853c6087554c39fb5e24ea0c2b2b97f917bde572a8e8a4f1dec6b4eab787bb0cc3bdf6632520db51ba6bc01881a9a2a908b01ab7a1e23ad79a2594c5b6345798c75e43297f730a4ef6ad8e3704bc13d4ee6e53d1313a1d4e253c0f8dddb85536e77cf4bb7a2019a96e731d05de97ca4b2107cc203b1392f2bea51cd07547bb8b3c3dc606225b87005ae7db3d33b8ed42db0956e9dc9cac8a87009b6b5794f39da40eeb173adc078c3592927500ad5a0a4c384eb03809400d11de731b182b208a6e926fe0080e606c5d7ad1d0bced806421aa695fca0a0d4dabe9cc7442413da5a11f06103e5c0c38a5e457054e1550ca574070297c06878733e9ba704d601aed5db0d585719ec28fd3893610e00abf66a81816e38b6c1ea027b7097b449d8e6413684a3cf64f802dd55ab753ce8ee3eaea1e0bf67c30d65e4405d5071392ccce4d9141641ad5ee68a6a0f2febc5bfce63f86a3208a257b26e5c6c6e750ee6a0bca5ed7bf703059e7cb54a634378630418f87c4443ed56512830c3c8e30edd50c2e1473e13e150e17037416ce7dcadc4b78433b2b4ea003d293b35eb09e6dff889b4e0bff3301925995ccd9b8976598816aad5dac399685e1e680ea707058f2c0f3bee2095e75c283911f5accd738ab6e4cae2b18733d93e6ced39ad97c006c8615d72d97bf09cc9488ba573f03c71b41707fa3b12f4d37b5f98cdfbc23cdcfbc2deb657ef9cc718c9bdd75cbcbd70a1ee632c3f55dd50ad599c4cef368dd424f893cfc5086833719026c9fb699982453282f7b53a132ba0a1fbabd49e8a9db2c7067f01ac002be53c17b5a0eb2e0186ec6a9156a40a20b14310517e176af113a959b1324d649a0dc311410b040beb9f892cab1dbd13304c4b891deef81e1e7b3e177aa297010b599e2f1c0b563f546e8444f94483b4766266026ea905b215f69ecf49b01658fed2d056c9b29aab53b3eb71e53c8659d81a78795fd1ee0950d54edcba93ce659cc69c96e56760421b969fc4b361cf82c41fb5a98be7916fdd1c2d13fa6cd853182825c2a9ae561f52bd118632e799a408189441114ad3f35cd8f25c8261c5b5f330b1ac20556dade24138299e20a077ce8294dc9be70201a1d98a42d146a8c0f03f139b8e07524fc5f2388b953219b696f5fd3e1779c403febc821295bd90a4fad9f44ca2c3dc37dbbf796123f7cdf66f7226631cf9ed310e3ab731f6b18d716e63ccdb18cfc57a33a7531335dbadc66903b43b1f4959fb7442f6eca954fb627b5edaa71fe3d8177b6c639cdb629f8957ac6571c8a9b26e5949e4e988c0873b97610e87706a3ecc7a8aa21ece269f42e969c05da79041732b0f3c9f14aa86b499daac4ef1b8f0c5eb20cfc431d6b86cf9a76c7ba8713db394c956ac5d5f8571c97bab77b811c2993026a3ab327a0a9e380fac6d7c897c1eabcd65cf36aeae1e256fab7d2ef69a20c1a85507677564f6b2378738939dc365beb57358e8cc764e6146cf3b83199fc1fadc3a887da019e84c768f77926c76e8a9ae20556272a0f358efb2ed9db6ed9db2ad773b97bd23841e8743c93880a0c0e4f03b3cc299d81a95045d430b6a3107d61a30c7bade259e89bb0dc899d62e72dd6036d80120249ec9fe06ae282a860c34deaa3336bcf2e3c6b90619f9ab363afb3918cabf67c3b51d1ff4d86dad58b9b8d552d20d60f59f6050d10635a30fea97ca923b19145a2ed3d87aaaf0eeaa27ef91c8b06b643f15b06774006cdbbd3e8c8c0442f700de30628095e2adcc67f01613860bef85acb1591dde49dd6f75e81aab09ae0efd72f47a5b9f976a45ecd1c7147d4c8655660d7a82a769a254fa972abb3ba1ac4335ef50a6a8cc169423ce4fd186504abf369e20c1fb127caaf138c2f4de973092437e58eaf32759b57e6d44c147144f47f48b2c923b715e5372f7753dbaaf737297472bf336a6f19d0c6c1e075653df863693bc3db44fae31a54f43ad460ebad9c23d0db472e0a9e735ebfa015c9d1e0093c364187e825afa950db8c3212bc0a7c31056cec498e60ecca05150a26e260b0d203d601e2d967558ae801570c0c35303104ac49070806a12d10f4225bba5af8b7d59bc7adece102648a878d57311c77204d636b573f1c7f0a870c4e91c7b6a685c81d311da5e9466384c30a7546d6d39fa8131db33890d9509379d65faa462c84ad626a37afb8dd5baf264acef006044303c847a3e7b1098e682be3bd635039c350dad021050a897aa08794d6bbd32ad668a93ac15e042649e496b948b6d7c26f363a9413a5b7f1e548758b5116afc0d95aa58ce79031a1059b4b4443a9f446361ef2a50572207712b193d5328941cf996c7b4bb465eb56dcdb9be01c448368812ee91d190c83e0fb122869ee810d9a17fca9f89fb2132e4b7a08601686368c883cd72bc7a95038a1decc320222cd659f52933621956d48664198afb7c3d1b1f254e06f763fe74b1f632f0610af2a23aba1f422ad78af4780a83cd2c3ea2788a7749aeb7757cdef90a14ccaacb9b421b90a9b5130a15a07b86f903542dfbf8b2ccdba75cfe5a88b234fa3b88b2a59c0997df01bef0cb17871f3e19adb7761af72e2e2823a121d3e257bd2d13a86683d35c28034f043d312ece8349fe41c091e139b061663f1d6cf7d41ae7db6374dce938598d170fdbd21e8498fb9693db874afecf049b268bdc8e4407116b06d7dec4d1121f8a1a466fe254e910bb956e4e0376dbaf0e6c8d3ee50020c7a72ca91c28a3472819ae2e7963c4fde24d19c0a73a10f059dfb4d40faab8ca9bc8edc0b17e29949ff6240742ca523f14b54fdfcc432ca1bf613a48e86f0aebdb91d498d3fc73ab1f27acee8cb027c2aa3564d6e79e68697d0621ef0916a4eefd783e3907209fa48c96da215b3dbe41fd4eaf139c9645864e75584fc322d48f37b7f219fc1ae1954eb4ed360fa7d91d955df54cf65ae71284da1b16afb468def00f107b1bc470f14e9a05487ce54b9972768cdda58532c7a29fd6baaf0b8aa48be0baebb55aa1274af86cc6de5109555b92a5f71ea4b17d8ef21126c3dd32f3064425c3b3a7fa064475ca0d9f768cb5fb18ab971bd99db31aa3f04647cff0ea1b688ecc33c9946b3d6fd6a19f20ecce598d71ba7015d9b27c269dd918770520a3bcad00ce658cad79b6944c5febdecb36c63351520d27ed5a86376f46adcdb0061dfe797687c25a4b12a05dcad2d07db535514b8b3b7aff64bfea797ea442fa3546cf1dd8fc32132d5c9167d36baa4bc93d35243adcda56bc73674db5d6493555745acea102551ba8c1db95da3772883c1162fd38e3e5d7a077c925f4aa868a08fa3ce3ba010bfe3c39a4cc9a4ae8d4535f8a489aa17349732979831aa7331c75958291ce3416c1a1a197bc94397527524b63399dd799786b303c13d218a3a76acd9c5c99f473f1d880a43ed2e266a2de9377c7791b8eb833d0bd53d35ba572683274bf09a51e5a563ea81d59d9b35de3e34f366203d6edc90d8ac692dcec21ae69435dace3b661bdbb96ca3d238851c41b44b177e411ef745357832591501df4a5eb09dec1cc9bf592d960d0258d55104740bf189cfe11e2f07654dd609aa67e5faceb3d9c027543d91ec0f4afabe5f3a089087e3902046c1e0129cc71c480db44fb243298ff12591cb71cdda0f30a40460332b756022d7680cb3bc8395afd00b45c9f6e28bf24c3e923f45e61c03b02cccf7a41a866a5bddfd00020bbe5c05147d03a926c9f40d8ee1d803468e57824f7e9f5a393eb33e92bd83a107e3aa5be16efd281eefcb6d8e8eab01aa27e31c453fcb1a3210d79d3062b7a23e0ee187e4c067b34f00c72022cc8e4ada32c892b4c5be5553656dc1a7390752699ab35a19c480b10f4f969684755d1838b3278879056707b64a2bb266919c86a6bddb028fadeb21adbe0fd9cfa8bd9d428facb3875ed16486ca1603bceedf34dfe2582c15a767cac6c583b7a250dec7aab67403b935f9c35f96bad240acda9e67fa8cde13843c83ff12c1a245b9ec7e1b1cea9c42a9ccaea08a925508d53478a8fa7d9dbba1d7bf301bfdc6bfd4bd85abd58f266719a12686af8e6bc35b3f1cccc60189f0350a0cd1b29f6d4228341aba3117bf00132050143246a9550f65663fa34798f9824d1760b3ac578c3926aa89c962d4ad6aa4ed6d8ac4991a741aa0868d74a837fe9aa502ad2da5deb828cc98a35f16a601e03bc6e4e53f2c223eb8d4181adc1dfde2b51f6f67f74eccd6929b5d646c65b57146fe4c9d6bac256ca9a3756f76d23e5c6bfde1d776458b7ad95bdb79f60cd66b014b44f90598abcf820c57b89595e1a3081adf1337c23eb7e635a267144e69bf79313743f1c7b53c86cbd2fb79691d5da9978d7c7e648b786796179f8e3d81e7906efbdb27dae8695096bcbb9179f871cb2372b645fbae26d2eebb684de9595d7ad83a2153f5a3729ef9cd23d811b80165e9cdf1d216a2f39be3d604c4e77b95a607151a5243cf62aa0d32a54ef6be9ad3e9b3711457f9fbd5da8352429616f0abaf5a6f5566779af6f3d5663b6635bd0719d36f1f875714d61ddd268df41c506e66dba3f4191436faa516a9d6f623b9614985960bdad8ead84b70c7ad9eeed9d3fb18bfd8e37850b68261c9bf7f6dcf2ec0d1069eb232c9bb8d93a78e2ab16790cd3be76d2c1d6fbe93a4672f14e9d0329df0cbdb20d7bf830e72ed31c376c2b493e6645f1d66dc7811bdbd60382b11f0dca736f5b0a6583ffde5abce7d42bddf919b04e6fec3a5677d67a462ded22bb6e26cb890928de29feedbe425bd7540a5b6110a2be9f804191bbd4b8fd9341ffc11914ad4bb8fdefc6a0adab21589b9c32e88ec9c14756f446cefd846167dcdaaff3de7119b6259813ac72e44f7613a26dfce9a6c58617ff7efef4b6bdd5fb1cf6ad597a89c716c8e5c8a2d85f636b078d63eed6ebdaa01737fe8c4706b54e679eb7e03ddd6d69c917f8ccf9b3751cb100abe24470068d1b83fa6291534ce2c6a1de3b8ebca1e406595eb63671e4d623baaa7f0a1eadb35897f07ff2e83f328fd659bdf1fbdf8747b7d8c1372f9e7ff2ac9d6ca5ca7569a3ee57f0a84c5ada440fde99d35c3ac393d34b9233cc3e6ac3e6d196366768232f9d2642be92c6b9e41fb5e9d8146dcb3f6a1e0ed1cb31d299e4dfb74c69475590b437edcb5b9a6de77a2e9d45a820cb6ff48349b969e0ab5b535674b96d9602086156ed70b9ddb31ebbde71babaa0226f138a46f887ec8dfc77118b9a6986efb2b85bac1cadc8fd349f03a32131ea471c107643dc44f771f34d58958a8b1b6b4047915cba0fb7d7c6e6ed64c827eb90c230cdc44fdfc55b715b7b6eca26bd2558f7e6638f611f9e798e697321d306a2fbe47078f6f2d593e5f5d5e3e7afbe7e71f5ed83cb6f1fbfbe7af6fdbfe6443c16d50493c6b27fe066974475d6a5674a3c6bfd8d410e9446a91be44099ac3c75f5fd834b92542e97ab1ffceaf6af959a2a2fa3d424329abf5366d717d93be9a7de09d6b5ba62eb4443d60f1840b891d8030a540d0e7bf526c94004888c8ef0de58b9c15f54a2d729c69e642dae359b1f80a6a10fd9329a73a87ae35a6baf34d0329ddc274bde4ca0a4f950d0e6cbc03c45e092950ce8e67ddc3fee92e3d694cc328c96a5d06f2e6fded319ff7b47f8a4c6e56eb12a6e5c4499b684323f6eb6b173ca99c7d2b32499a37ceae99626a96dd32d896f9ceeff495bf3a7dfd9e74d2fd5bb35e5c1bcc05f33fbd8e64a757b2f8f7daed0bcfada9ee8e3f8a9a7398a20dda2d7ceefe3a65f39bd02332df98699f24e6196139484f7abeebf07dfef9dc1ac4b425e058e1b2fe06f56eb59d340dc1a870d3b5520720d1dee3045354c6f6143a8c244477d159fe86e6051c01a869dcf2c9e652075441657153d154d38fa4b446b018423071427e99f6af036fbfaa33322a58d537b58e60852f5f7246788e61ef609fd7866842e8805551c71a057a2d16ea8c5038468af8df012758bb80a7aeaa16f480466664455e37e0eb2941294539fd97c49d5a934b68c826dc6c571ba39f49f9f7247f8b8e013483b30d7aada06e69ca473db4dffbb58329fbc992d370a629d7e8ac18e08e804c01156d275a40db4881e9f48c69066ed63676c331554e8abac18865252079a94c45e6e7b76baf3c6c205ee27e6d5c00e58c76b678b1a0b4e256b6c26062321ae0a680b30151a0c024c240dab6214e59640d39b683b52c40cac278c198a87ac951b7a18697a1b4bf17695e741131e2d545d48ec86500a02c1123a08647a28275a5ba0623804141865e0c3b018dacaa67c4690b6617ef46cfa66acd3fba0b3f7069916073993c9d7a9c7605d0d5df8a9fb16f950debd19701e629461eb71db213523418ff2ea6db006ba20a814180005a9ab959cce882c34601000234459a27a16092047a0989b45e0d7e1476d36b8b1a2f4457fd673e9cc4d288468a2ec3290e884aec5608e16c1f88cc852b56433ec37efce4cca326d9d6ec43070473cb3cc90224784a9a2bb11df2f40ae1db7ed7773f75b053de7eb5ca12eb29a4c338c58b275269fdefadd1acee83dd54885ad77ed2db11aef1e274300a932d240ca2d6f96e6b0a143b4b7d540627a30c4100b26b67399c3696d51f449c46d12f13889e8b388368b787d163f75f4c16127fa296bffb0bb85529b8d97ce89a5743f73a90cad1f7fe63abe783b6c9dbc7690c8d2736a94e7273c74d5526e98ea0d87ae4fbe63a543c490dab2bd6f51f83cc32861587ae93c97b1963130d6023bc3071b6db0f1dc062b452d611e23c93a1d698d2d760600bb6a59afd9daecaaf89b2ad7550f009a6d35a82d32a02dea11757534d1546a4011d728d38136abea45fd23027162901100138825072a517ff2a1d8cd81ee6930eb747c144ec67a1ec4f39664aadb570377c271a1a075910e5e4f6c75acc088f28e466a910163c7e836cec5a4862c5093daa0d260536f1dcd6b804d5d5637a9813905933a1c4d6ab7a8ed242501a041d37253cca48e629cb519d4d12dea0840b6ae921f09edb74c1fbc738274ddc666516f0675dc0cea78625047b3a8e36e51c7a3451d37933aee26753c9ad4d16d6a808ca1f4852bcea172efe296059e774d85960568aa03ab0fbb3ab85d1d8e76b59bd56137abc36656bb551dddaa8e9b551dddac0e6656c753b33aba5d1d37bb3aee767574c33a6e86753c33c3ba629dcdb076bb3aec767538dad5665687cdac8e47b33aba5d1dcdae8e47bb3aba611d77c33a9e99615d07a9599d18c09740679bc110fe0009ba6e6675c4c993e0bf81cba5de7601efda11c51315164de5a0ad0cf09675f8aa0d1b7ca67c885dd7a4af641d943994cdd01634036b2a4445edd5e635202a2981604706510de78a15c4946a59f17af4aa2624ac5f33d2cacb3aad72429455e0e865bc25523b44ecb7beda4117720a421a65d9ca2bc22b0dab461886488b534e29b14a6a883d07642b17b87ff45fd6d56120d6ac32aba77630f8c1b6a279a92a0965bdaa4a8d62c5554f7230ec42320f1e63afa2a52ccecf4a3e396220a7160bdc29a467f0ae0683d94a4569826aa86e30b896fae390df38e44cab11840c2dde68d1009ec51c5e9e5884d0b6d51aea0a7483dcedaa86b19d1859fb34941d07a01cd502196bb4a2268edd9a096f7e5352a525488c19c0aee408da6e1521c0c935842b31d83c8c5e2c433c4eb811947322e5357283579363c5e91bf487233383e0c8c65a235be05e6d28207d82dcd1c95d55bb9a3185f6c2142547c2be026175ed504061852fdd0c38e070714df521771da54883f4a9aa902b62edc75df021d180f7644ca431a8dff1fea4a66295465fdb8c1d1aa8b548d4b03d8aae8e5e3f6c9550be9f6a186c7d4e0bae44661a0ff5aaa9a40af6c5c1135edcae57f72e2e1e72613c300312e2fdbb68fda73f701ec2aae6a17c5d01551a8e1553239ac16e1d6f507a404813e99055aa802b36510bd82e64358c96865256490d6125ec1caa5bbd2e37d7cfd90cf719bb4a811237795094d5bdf0a5ab5103390fcba8fa53aada99f5191d4c419f0e4ae56089bef045a9d4817d1587c1cfb1d7f5ba1550f53146e950c1f449f79801fac275a546054ca9aa2ac7ecb21c81cb4c3a3666734995359b5304855bddac320adb340575619b3dc38e871c40a1680df43bf25d2a720e210a2c49d18b29a3e52f4ae203321aa1fd1a248ad80f4e7bf13067a2a0b08fd8e0bf3a5427421e1cd9e48e037516544a75f7ea36f8e05057a72303bd903c09d1e44577ae90a18d5402b24b52b68a6db6cebfcd4c0db8eecc110390b711dd64357432fc5eb776732a46200c5d375514fa4928f8b3174eead1ce4a62b0fc367beb2baed354bbe661cde8918cddadd72570635cef2cfe1182280f99777d726e40d7550e6bae82dc7d0c4f166dddbdcf66c065aa08d301fb787777f7b5f17e7a23b20346bdf7adb80c7e02353b86d51e9fc730b9d13fc2302bcabf7b56a31c6609b0f619e272335755229e891ba214b5546cb8711f6fdcc71baf8df777f7bff9fdbd7308602349a10669c3dcc3e7312680a14a173b5bfdeefeab37dffcfedeff1f0000ffff5fe69651a1010100",
"63b59db05ede78b10cb5f7da70d5553a": "1f8b08000000000000ffacce410a02310c40d17d4f11ba3707f00e82201ea034510aa529498a8c43efeec6c185ab8139c0ffbc13143a435c5794ee861721ae782bed396ad2f266bc3762b52cca7362564ece84367266b318005c53b39abc48fbfb5c553aeb9cf04a06dfe6316a5d601bc5b00f303a1d03d8467b01c4e62acb1184df2a864f000000ffff4c95c89e87010000",
@@ -63,7 +63,7 @@ var _ = func() error {
"920fdc8a8285bc442cfb791bcafe45b6": "1f8b08000000000000ff8c51cb4ec33010bcef572c3ed955e5481c41bd8004b78204e2ee868d6bd5b12d67034151fe1dd9e5a11e785c6766673ce364da83b184f38c3a989ef4fd07b02c00ae4f31334a4014d6f17edce936f68d8dbbb1eb8c8f8da510dec48f74f2e3b0b7147e5198f6909b97f33f3c0428806e0c2d6ee955c6c403aeee12bb18068572559fa16f2950361cf31a29e79815ce8068f162834741b9550088ae2b8a42142bfd64bc7b364c525d56fc6c83c1f97a8d9889c71cd05653405c4e0dacbe8a93ac35aabf2843eee2b4357dd950ac5168dd7cad7be37c811ba63e79c33408f5bf50c496a71258f72851d731304d2cd591d30fc452943e625d6b15dceac76cc2d0c5dc53969fdf7102b63ca922fd8e0ccec302f01e0000ffff7aa1c8be1a020000",
"a61b972dce26544398f591b4e2f715f3": "1f8b08000000000000ff548fc16ae3301086cfd653081d16693172f6bab0a7253d95b484400fa514c51d2ba296e48c4634c1f8dd8b1453da8b0edf7c9aff9fc9f4efc6029f67ae83f1a01f57b02c8c393f45242e59230812b96005638db08e4ef9a8fbe83b1b8f7918cc183b0b215ccb5b4cf1d34a8440fd09bbba65b87608e7ec1004538c0d39f4fc00895e77f02189ff5ea3f441f19935c8fffee3abafaba1186b6ccb01eba8a05f0f13b918d2bc28d6a0dec52d62440988c5c51c8ab8562b3bf6390440a9ea4c3f393a495bcdafaf85ef7390aa6248b5446190f24849deec7b081221e9ffd17b13de52cb37ea3bbf7323a496ff29f670bb6385cf9b97226ecfd98c52c0c5f869044d17122d1ff4ce7828d10bfb0c0000fffffb4a36cd9f010000",
"a95877cfc2957859690620af727512eb": "1f8b08000000000000fff248cdc9c957482bcacf55a8ae56d0cb4bcc4dd50bc92cc949cdac4a55a8ade502040000ffff8a41cdb420000000",
- "aa381894be941a89d61176150f6fd4a0": "1f8b08000000000000ff8490316bc330104677ff8a43604820b1c91a649592b9a921a56bb958674b204be62c2714a1ff5e5c9a42a7eedfbbf738a9ed0d3a87f3dc880907da1b424d2c540120cd419de90e2955618a73f51234b9aae53011e72c6b735085acb5bda9a29065037de0f1a30fbcf90bbc239f70a68bf583a39c7790b08b36f8e3efe1338ef498b56e617439b718cd66bb8391a209fa08a27dbdbc89bc8504e5775cd9c0841c2dba8d48a9ea83d36b56bd5654268e4e6c7f960886a96fc48afcaf845289c747aed1c335fafd1dd95b3f08d01871df05df5b1e1bf1cc049f618179617a12ea84be23276b54852c21aff6af000000ffffe6f427f75f010000",
+ "aa381894be941a89d61176150f6fd4a0": "1f8b08000000000000ff8cd0c16af3300cc0f17b9e42080229a429bd86341f1f85ddd6055a765763b53673eca0382dc5f8dd470adbd86d275dfe483fd4287383ded234ed70a42baf359362c1360368f4b63df01d62acfc18a6ead52bb655277e6449a9d9e86d9b351b656e6d9635f90e2e5e86172fc5effe9d644f131f8dbb5a4ea984487d30ded5df7b0f34f057d6d959c8a6d451d0c5aa848183f6aa06ecde8e274c2b88903f6df90e469260c816186375f1562daacd82a874182cae7e4a6bdcc7c9177f39189fcfa801cfc1c139b8f59dc41977c5125051a075efddc5c88035e07f6178f819a659f81f9670f6ea5103eec9f56c176cde664d0e69999f010000ffff061f56f169010000",
"b1d50cc99a0abc25e4ad2cccf01cb5eb": "1f8b08000000000000ff7455df6fe3360c7eb6ff0ac24f49e0daef017a4071d71f03b2b43867dd806168158b8e8593454d92e30b8afcef03e5b897146b5e224be4c78fe427ca8afa87d821883a28323e4d5567c90598a549b653a1edb7454d5db9a36ddf34425379facf3e3b47b33f6469d290abd17b0dff6fd50d57934596265638d169daedd07d6e7f66f421786f1c698db2f458f70eb3749ea66509b7eb67501e7a8f1202418bda821f54a85bf01882323b0f5bc1a7646068d1218416d95358ab552db8228cb0456576e07a53c0376c44af03ef6612f7a8c976684256a47be162c46be00a14f71866d9fde3cbedfa39cb2f6de7d156580b8b537ac58db591f28db50c3d92115a83a33ea0076124744a4a8d8370080d3938b9b2976fa9d712b608121b655016b0699567a4d02218747b841a4d4007d4c0817af721cb222d4bdefa4e3dd7253f0b96c3ce516f7d0e18eaa228800948acb5702861f3f804575fe0dbe39f6bc618e376288c071523819012c439f940f02aac7d85856802bac5098c4b2c182286cb21b4228c6b1894d6b07edc402bf6381e181cce30395f042fbad83d4edbf5c8a93af4d4bb7a221c73f5203c0ca8f594f46f0184f674a21de1a7b23b84bac5fa074a502616939c44c7abc3452162f2af1557fa4e69f4afcc42c0d79bcdd787ab9bd56a44ccc113a830354ce8411c585eec6cb5a85182163e4cb1a2cf05f59cb9ab3056c43adca399c832c67b5b6265d9301018dca36371d4822f499136bda95969b3f98500e12d4d541375797d0d4669de48e2e724b6628dc36c5a3fda48898d925bb35fc2f4bb5d3fe7e9b8acd07b45662d3a5c42f6f2f656900d9ea315bc5770ad8ec7173f9a65799a24c7799a2609df853e50278262da07702895c33a665455ab9159f187c7599c2355b59acd27cf15edc0e1bf3dfa00716a6040e761d6281d172cfcc3bc38c3389b2dc5d3e4b18adf1194edee6f37b3accc7278a00e1f84919a0f93639a260e43ef0ce3a6c7788f274e63a3a6e38b5bc0323b9d9e32130694a9a98bc366a41fe5dc7023950743011e369ba7aa80ac0dc12ecb127f8ace6ae42998c1f59771df7f3838bb98bfe24b420f8b85a1b058001ab1d5c8752de26ce10971311e604320299266b001c1614d5d874642efe3d505ebe8e761091383f7d95d287e144a49b52fa3cda940d0914350a621d7c52867be9fcef67254efaf9ebf4bf3f7f7dceed8e2edbd2bd33b7366311bc1ce255c55abefa7462c2715f33dc8ac23d9c7c731cab3aa564f9cc4030a89ce2fa113f66f1f787cfd33febd657f5ddd911b849328af9e1c05ca96a7ce64c73c65851fd3ff020000ffff0e7737e578070000",
"b928bc0be77a213dae14bb2edc434195": "1f8b08000000000000ff010000ffff0000000000000000",
"bd3de4bd2aa1420e2461a4e53ca27995": "1f8b08000000000000ff9c55df8be336107ef75f311504649a536e374f752f0bb75bb614ba47b8bbb60fdb7028b6ec88589291e4bdc092ffbd8c243bcefe82de4b2ccd8cbe6fe69366d2f172cf1b018a4b9d655275c67aa01900a99527f86d4d13bec6a5cf421c4419d65e2a41325c35d2effa2d2b8d5a286ef75bee855b3456d63efe9227418dd9f675cd5bb318beb6d7110ee01b900fb31598ce3bb68ef9adf70dccae16fca9fb63e9a5d12ebad1891e59030dde7fa4dfad4d97c323ccae5ecd0025b08b87cbd773ec4c179c23ed9da9447bc60ac748f18cff772cdf8d294c938faee7287996d5bd2e416ae9690e8f999f83b0168a15a0446ccdad13342c3fdfde2c97cb5fe61175dbcbb6fa2a9540c03c03cc040ffeb4022d5b78cc00006ae5d9da4aed5b4d85b51876cc0092feec8bf0d708430743d8fda16b83c7ff16d649a38b095f3221e53c1060020578dc1cf3ec988ac107168a01e0b671588c71eca36d5c06f0c02d182b1ba9798b26b8df386fa56e3280da5890733c84672cd78d8808b11c5907d76a05e4dd3b928c708eb602de75425774807d4480fbf79b63c075f7f2e78b62c318cbd3699e4ea1af909b64dd5ac1f7617d4ca2c91a5aa129c6e598c2c52929b44f93c8f116de9ff28bb5c3ea2cd311fc54c05dd02d98acf0bdd589ba4435428217989ffb2e7db9833210bcd90425770288928de55e902220a75de039bde518f910ef374576f872d29587f018e4b9db9339101f7eb8dbbb147fa6d007588e02b4a661b7dcf396126d3c086dfa668705f54a68efa0e3ce890abc81809d4fa409a587b1c23e89ef37467b71f081e2fe72933fa7bd82cb91b61c640fe1cb6233c14d3d16913ff77a809c4339a23e6ba76925a99d225e256adeb77e94e1dbd8c4383fd99fc6ecd7dcef28495386e4bfbe84fe32e78bac431d4925558d64374629aeab13577af7d3575faa8a7df195d4103a332ca70ed3fbd1637a3f756182834b583b15132350ca1f10f038ce8ef34717ce8d53aca6a781fa892bc1be4adf0a9ac3ec0a1e86d1e4fed5640e67138de66136bdd12a716c0d9d1158b7e630de62673a7c7e7721401a7d6d0e34fc95a09512de75851a7c0edb822d26fb7c0e2afc89b0dfae5f9bd4a32e3525b75cb6b11d7a8d2c70c22a6086f893591eef636b0eecaf8efe3f74dbeb37a08fd9301dfe0b0000ffff719ea82338080000",
@@ -77,16 +77,16 @@ var _ = func() error {
"ce502e4fca05fc0a18b16191ce2d7ca2": "1f8b08000000000000ff4ccbb10ac2400c80e1d97b8a583af41cee01040717c14504dd255ca31cdca562d2c5907717ede2f6f3c16f062fe407418f59cbc4b0dd415a52dcc37de60c030a6cf63fbbcc4529c295446f667d626c94ce28196b7993fb1797fb5f8708165628e980a50edd695238b667a546ac34aebb183c98118feee1130000ffff2bf5ff9191000000",
"d37116f1e151db4cb9a9186baa84af28": "1f8b08000000000000ff24ccb1aec2300c05d0bd5f71d5b73c8612b1a18c4830b232a2d2baa9456223c711e2ef11b01f9d3f9cd450d4082c8b5a199d55a08256591278b71754a288d5fd516308897d6db7eda425084ff72aaf992c241d3eb41bc073c493f2a485aec9889c257580db28357ff788fef20370c5a12dcb9815ffc7f3a6efde010000fffff7ca089490000000",
"e2475e65981b98fa738efc3c4b639c69": "1f8b08000000000000ffac8ec14a03311086ef798a210f906dab450888aed89ba0d8f5bca4cda80be94ec8cc5621e4dd2542ab45bd79fbf9997fbecfe31e03c51d8e6215801f5cc0ad5888c4f292906be7c46d1ca3859c0d4561f390f079782fa5ffb6560013633a5946c7fc46c99f94afc46261beb830333333f37a46142c2c9512e44f8b29850ad339eb5270dcdf27d0dd6addf5b76dd7deb4eb55fff478a7411fbedaa639c643b83e12ecf2fc6cd1fc70afb02be6b0238f977e60b709a84b512a26f2d356061aff72f94f8d2fda6f321f010000ffffb44a8cd79f010000",
- "e2b566d83e49c8c902967a5ddf7f8f42": "1f8b08000000000000ffbc544d6b1b3110bdfb570c222ec961bde49a6a55426c4aa00da60db9cbd6d82bd04a8b341bd75df4df8bf623f1a64e6eedc5d688b74f6f1e6f862bfd0c5b234328582df7989528157a266600bcbc166dbb703585c577a7d02cbe7ad7d431f2bcbc16339e2bfd2c66bc312381d181b2c6063a1a54d055da1a6db1a7335a7009a5c75dc1f8bc008b8791fe4156b8f881c1357e8b31ae2595975730176ca4de90850dd9acf6ba92fec8c49d4749080f7880a9c6b57735fa24520a9e1b9d843646cc669ce4c6e048d817dd6f16c8eb1a55af929203e9d4b6e0a5dd235cd4705340ffc62d910f90c53803e8207a0736411677aeaa9c7d3cd6088cf017b11714a752b46dc2746dae65d84aa37f232491548a910aad1abe99143dc127bb09f5e7119ffe07999c364e1d7b92e4eace79b89c5af224fd9d0cf853dbbdc118af405b388b589bc64b1323b430ef1913bf1f8faf8e54ef5a32b5a5fac8979e5d89a4ba6d2f3e50bc68db4435b52f46980b9e9312a70f9ffa76e6a27ff1a500980c40634ce6f5be24760a0198c47692d93742bbe0b653c85a7a59dd2f63bc396ffa4b93f74b886743afedce31f1a4f19042fdbe32549aa64f0fb3f06f641da4b7daee9958294d1f2bfb0f9e294932ab904aa70ab65c7d5b3dae86cbadb33bedab82dd7a84a36b20341ebffcd58e4ad1f64c2c319077c7370d0ddbeeb57c8d11cfc711e17388fde4f07c184b9e773b26ed9f93a4a541c8b668695cb5f3026ab9d75692f397c3493b9b5a1b17ed9f000000ffffb04897cbab050000",
+ "e2b566d83e49c8c902967a5ddf7f8f42": "1f8b08000000000000ffbc544d6fdb300cbde757104633a4401da3d74cf15034c150602b82ade85d899858982c1912dd2c13f4df07f92389b734b7ed628916f5f8f8449209f9061bc59d9b2715df615a201768937c04c08afbdcfba9a9c84dbf1a816afad99aba0a8165c57d3e6299906ff988d5aa0750d2515a6b470785021a4b6a2535b6704ac605808de7a0a4fef162261af77d84675ee2f41b3a53db0d86b0e2544c6eefc037d83348d6a4614d3aadac2cb93d24e1163c8c5b4480478b9c109e710f43ca2b6b2ab421749121b4775816d9b0ac56f968c488af15f659b446f34d1d5959a168f953d426eebc07cbf50ee1a682d91cda700f44d641da45f21ee4167474993e9ab234fae5502124843f29397a312a72efa34f93fd8abb0d57f21742d4988abc87422dba3b03a305f8a0d7aefad8fbc7b5a3c9686dc4e1a4f9d658980cd579e5f6913bfc2ef54e6108b720355cf458a9da7215c2b9e68c6cbf3d2952be2bc95096f29a2e2dbac8236bef6fae309e7a1fa186f285f8c82c23919f073ed7edc28f36e2d10018b446ad546ae5aea0e4dc6550cb8342fe836653cd1e062e2b6e79f9b408617659f2638a4f0b08973a41eaad49ee203ef20c925789fbd814e37709a2903464d0f5c63f61b7e7564bbd3b115c0a49d709fe770545ac599bdc412238f1b4442a8c4866902c965f962fcbe3c1c6e8adb4653c79b008075383ab2d7e3a25b74047d61cfecaaf1b9227f354632cebfbe77c2c753dcbb26600c5e1745686b14bd20d6aea27f4780e15df49cdc9d849b793463724bad0bf030000ffff7c6741bce2050000",
"ec8652e62d2eb70a8198fe338e649eb2": "1f8b08000000000000ff94544d8fa3300c3dc3afb0345a69f740c54799a9d2cbfe95405288066294ba2ab3abf9efab244009add4ae7273ece717bf17ef6ad4c4959606fec651af747255825a06459e0ee331fe8ee35672e1af2b5e7f36062f5a2435766818bcbde7bc94f21847031742e98641960e23f8e2a8c23139ab3f2e5ea111d224157ad45d870d82ea1b0b3cf53ccc2d77a4a8936768337b7b424d164632283cae8b5ca56a5ab2b1f4184713a16babc8d2e9b969944e2a24c29e4156b8ba294a383028b7bdf2a55788bc6a9f1d1c8c50e7a1e35f0c94ee949649d561fdb9c0334803606e7137f4488e940859a3e1a45033b868218d050b4a9513c593369e93a37d5faf7153ba13585f7aa9c925ac703a792206f9617efef952b992072c57ef59e95b0ca38b3c7043ce8b725fdc8f7ff1d2ad5b5b6ca4cdf37b69f74e8070acc42b4f76adcb7ec277973b9f42158a2f2003249c79bdff9cf6e9d6b09edc09916caa9b2eef54a319b8b1dffcf55697f63cf4e002b156fced50d9f382e6b5d4248d145b063eee727ef752280ebceb806b013f7b3ecefff5e3231dc65fb636fc3cc188bd79968166a59512ca49d0ef272ddef72fb4289eb488c2ff16a8e8e9ad72ee4d1cbad84bf7947859bc403c0d89af19bb5565f317cfa4ab8b6987cd4b2c4bd31ffff588a0f16a3745b73d332f18fbd07f010000ffffa680b9a8b2050000",
"ecb1546dcc0221b6c0b61a1b5a50e58f": "1f8b08000000000000ff5c514d6edc3a0cdeeb14df5b3901fcdc7d16b9442f60ce88b2d89144839262f8f6853c13b4e8ca04cdef5751fe834c19bf7a6d886c8ca6e052fb982235acb71e0225c5ad4bf22b225510d6e54796cda88996ba42025a64d0be27b95fcbeb6ed77d71ae97a0d67aa1c6e99cffa835cebb1ad939a32aa822f77b1c5fc1a13d7924fdbaec64e68653fb0c2a1ecd0638f30c8131a574becedf64fa624426f3d8543d5a94b2d5f77118e94975636c2a655bf0f1e69c84413b19a3324bd9901952c6cefece328f700555335f94886a26b711e67bc2613a7ed0be73610fdf6d1cfe53de0cb5c10ea3026938a4c5abb8f57fbf22241abede9d33dec87ce25a67d478851ba8bb6606dd4d6b1d4e139d43836edadb8cc09c108cf92ac973e2c6c8bc40da54a18fe512d43235c46e6dc1c129cd6399658b0dcf2ed02bbf1c85a7a3d19ebf608fa2c7e29c4c2921f1287400be335446a0acbd62276bc3d8a1e6eb87739f9ff8a9485ab6d703462a8f8aa0064ae9520b52a3fb1d0000ffffd31e584a8b020000",
"ecdf6a3b8924ecbd21b3179af40db25a": "1f8b08000000000000ff72c8cc2dc82f2a5150aa4bcacf2f292e294a2cd02f4e2e2ed68773f5405c256b2e844a87b4fca292c4f2d4e2fcdc54fdb4fc3c185b37ad2835551fa4393127472f37334f0fa213a135a9342d2d31275f890b100000ffff3e8ea61f77000000",
"ed86eff8c23b4590459b51a97a1087be": "1f8b08000000000000ff7c8ec14ac4301086ef7d8a217441c18d7a2d6d61d9931711ec0b24d9e95a4c9398996835e4dd655d1441e96d0efff77d933344e58e087580a603e90393dc3147826d2955ce308d802f5007b9f7f3ecddf01e1004e3c2e26bd16e3a18e5800bef22aa411d2f44ce7590f76a46f9a0c8283b7d6029e20a72f46fd4c0ed4db9844d7f72a3255ced68efedefcefe09cdb3f6cb7a273973dae1a1815159c2bfbdb3edce85c42baa1fcc1dbebffce7ac5a9d98bd0363155127343bd0ecb6948c412201d15bec04253d4f2cfa47f58aedf519e9abcf000000ffffdcd8bf6980010000",
- "f16f61516506d3e11502bc1ff92cc0be": "1f8b08000000000000ffa494c16ee3380c86ef790aae8000e9c1d1263d75211b28906073d8768ba2f7816cd1b630b615484cdaa29d79f681ec389513a753604e964cf2e747919228512ab4c9044028bd87ac92cec52c330d49dda065de32b459f37cf87b1a5345b58a16e017ae8e96ede2c5454ba84c618e3100424269318f9998c6608da10749e5ec0aa6094b84ae0b70361b314ae7901cd7b52cd071af3977fb8281ac28662c115c1eb1b8d2fb4f186f7ac69b9e71f13790a60a5d88592e120f4133f68c55666afc565844d24dc13c8fe0e522f45e7e6c821a4ba2adfb87f34253b94be799a97961d25d9ecbcaf0c3d797dd23e612721975de0ca4d5322ab552d8c48cec0e7d9d3a81afa80607e28f24e413e5b2cfa74cb6abb12149da34ec62093e579f60ae0d3f474e8df97e197815a6b9481634eeb83c2c2682f7b33a191bc7b1515c8e8cafdba56da72fccf070eebbb3ba4e5698eb06153c9a1da113bcbcfe8c78a84932ad30b2e8b6a6717a1f246e2d0337e89c1d59bd451542902f7ed01db240f84291ac74d1c4acc29c06ed6b838e85614368bde4ddfa69f3ff4a702acf9c9387dba7cdb8e5fef66e3d6ed9dcdeaffe5b3f9e1a05271bf6f8845f506ad46b320923a631e4c6c2cc5e816ec0b6470d6f303dcd69873ffc2f755ee7894fa76fe77748a551a7a22da11ad11d97d139cc8e527fc5c0fe5d3f31787f073bf7af15fc8c81bdb1ab73f890a4f51cb18b29fc00ac1c5e0c1f3c9fbd0e4b06dbc1151b48ff59e95d827b59e3d7854466141ef036b25115da8380e09de92c70383e1fe4e144751374dcfa9b33fe74f49fe052e6c6104b40b8ad6c127830cf7e68207dfddda3176efd110bde291c52fc0a0000ffff59a2ec364f070000",
+ "f16f61516506d3e11502bc1ff92cc0be": "1f8b08000000000000ffa454416fe23a10bef32be659428243f0839efae444aa047a1c5efbaa8afbcae0496235b1913dd056edee6f5f9910d681d0adb4a7d89ef9bef9c6f3c5a244a9d0650300a1f41e3695f43e651b6b486a838e854837e6eccbf1f41c5325b54aa61016be4e6687c5ab4f6650d9c29e30004242e9304f9918a6e0aca54749e5680cc38c6542d70578b7e9094aef913cd7b52cd0f3c039f1fb8281ac28652c135c9e6471a5f79f68bc6d35deb61aa77f0369aad0c732cb691644d088bd60b5b1357e2b1c226953b0a047f0721a67cf7e6da21e4ba2adff87f34253b95b4f36b6e6855deff25c56961fbfa1ed56622e21974993cd403a2d93522b852665e47618fad4197c8535ba907025b13e51ceda7aca6e76351a92a4ad61575b08b5da02136df9a5e4b5b5cfd705cfe332579545833b2d8f8b81e0ad57077d76ecb3e2acc7be7eb73e4cfa8a87bbbe6feeea269b63ae0d2a78b23b422f7879f399e22e27c975858943bfb5c6eb7d54f810e9a44193ecc9e92daa580485e63bd3210784af94c84a17266515e6d419df01746a0c0da10b94f78bd5f2ffb9e0545e24678f77ab657fe4e1ee7ed11f59de3dccff5b3c9d07052717cff84cbfa0b5556fd920460c53c8ad83911b8336e00e570def303cafe9ba07e1485df67996d3f0bbc93d5269d539e941a1eae1eda7d1398c4e547fa5c0fe5dac187c7c809b84d70a7ea4c0ded918de2fd0000e69e7cc31f322fe1db0f2f819b0d2e67965470d7edc43f067ad35bc0fb2c6af13898d559835e8a534aa42772410bc095d00bbf608a51be5b1631a879cb6e1cfe87f1ada4ff4d3e5d612cb40f8ad34193cda97600a58bffdee518bb7e19512bc613896f8190000ffff6887bab02f070000",
"f565bf21889ed8876e21065a9a977d2b": "1f8b08000000000000ff34cdc16ec2301004d0fb7ec5c8a7a4aa927ba59eda5ecb851fd898b531246bcbb14108e5df5120ec6547a3274d627b662f605b42d499284c29e6828600e34339d6a1b371ea7d1caa733cc6fefdb3e841b2a196e8c219191fafa6fb531f54885c558ba0a1342dee04647c6323ff726db6b84bcfe115acf72b8eeb587ea216d1b2bf25f982e194c6607985fd698e6a3e09585a5ae8110000ffff7d25ad33bf000000",
"f66368e9dc94454a5dce0ebc39c1ac7a": "1f8b08000000000000ff7c52cd8a1b3d10bcfb29fa1318fc416686dc72900cf9bb267b302c3985b6a667d56b8d24a4f62c8ef1bb87b16cafc3929c24d155d5adaad6ff7df9fe79f3e3e12b3819fd7aa1eb01a01d613f5f00f44882107024a326a69714b328b031080531ea857b71a6a7892d35e7c73be0c0c2e89b62d19379afee85acc35c488cdacbd07cb89684c5d3fad37e18d04768e07884362629edc794da6f3852bb9911fc8be074d25d852f008ec706788010e50effc8e21e699bd0eee074aa0d96068a1c3c1547241b7c5aa96d6dd6da52d4ffb0bcaa51e8ff41c2943c5b148ee19ef8a74bb6e4a1499871bcf309f7e228085b96c34f893b0a0ababf702fe51b771ee42d1f96eb5709cf610799bc516c6350e0320d176229240f286ea578c4272add80d30c6ad9c6f307ce21e8ee1ab9dec6feb05e54dd9e27b01e4b316a1e073950be84560d4a98e7ac576af0585c3b2fd0ab2b157260f2fdcda8aee7e9aabe34f08c13169b39bd35f8f9e6afeeea4cbaab0bfa3b0000ffff85cad3beb8020000",
"fb34aa975abbcb40d48be167668d4187": "1f8b08000000000000ff4a492d4bcdc92fc84dcd2bb1e2525048c94ccc494d2eb152502a2eccc92c4935560209269624262516a75a295457ebe5179414eb05e5e797d4d6c6c3b80145a9699915b5b5f148a6e9410ce0e22a492da686d12063e0661614e5a794269764e6e751c164846130f301010000ffffd5f1ef6a15010000",
- "fcdb09ddf620bd512f46a230d266540b": "1f8b08000000000000ffac92416bdb3014c7effa140f2d81f5609b5e83acd12d6114b611e8d8fd357ab1c5644948724b26f4dd8793f8e0b50c367ab49ffd7fbfdf5f124a3fc1c1608c2df7d851d5132a0a5c3200d1dfca9c6be753acbf3a45a6de07e72994f2eea177cfa2e96f25138dd24f9231319a39c7e898aad1c67432a4e0fca4add1962ea9462f3ebc8c2a9d68e05220f4818e2d17eb16e6dddf70a0fa07864f18696fc680a6943da6fefd0dac259fc31e9385c7642b6d8f8ecb8f78f809c9011a034b87cfc18dbe14d1a0148dd1ff86444aa705d6dcc899272f91f71870b8df96b2f903e1eaf2a06d67a894fa7e0be5e61595670c56db8ecb9dd2e9ff805feb70defb36cc0a135603a5dea9966f775f76df77d79707678f3a0c2dbf0b042737421c037d7861a9d076d38ddb524cc19d264f269ad148c67286304d61e561d3c285e72ea510a12a85097f2e63facd76326758f9d9221ed0e85f04d3415fe71bb814b2fa9b56ce2f324a81f544e4e5c443569d77b3df010000ffffe9ae21133a030000",
+ "fcdb09ddf620bd512f46a230d266540b": "1f8b08000000000000ffb492516bdb3010c7dffd290ead8516629bbe1ac5a35bc2286c23d0b2f74b74b54565c948724b26eebb0fdbf146ba32d8608fe6effbdfef77482afd0c078321ac458f0de52da1222fea0c40b637754a85eb6328be3845a6d879d793677e77dfba1759b63775264ba59feb2c9383597a8c0e311f6c8847430aa62f6d8db634b71a7df6e31ce53a5237e500f2720d46dba70777b5acff8a1d15dfd07fc4403b337834cc3b8cedd5f50ad2d45681d8470bfb68736d1f9de06b48703917027cc0c3134407680c9c2b7df26ee8994f8b81e719591afdd7b0a4743c035ece35912638cfd06377b761ae5e019d2cefb56d0c3117771be0b72c5fd05b6d1bb182bd53c70ac456e9386affbbc05bd75e38fe8b8342db90172b100a23e61dc5d6295181d86c3f6f1fb63f8383b38fda776372eb098e6e8030787aff4b7e43217a777ce52fcbc1d4599612f871135cf450ad6126bd8dd107c89933d94f1363816dea94e0a25ffcc2018dfe4ec02ccb535e4d174be9e24fc229fdd6c1d3d392655f8f3c64d5b43bfb110000ffff8729a39981030000",
"fd8cf2902df93c6d983a9dd3cf7c039e": "1f8b08000000000000ff4ccec14ac6301004e0b3798aa1a71624fdf111f4d2b33ec1fee9260d26d9b2dd8820bebb0839fca78161f89893c227250605cbd22ee7723d450d53ca76f4bb0f52d724f71e231559474ecead2b36a9bc51db0b2bf205c2ce917a311ca334c1c5fac5e8e7ff9e7048659c94d8bbd85b7814e68081fb3769c6dfb6805545f1e39e94ad6b43f0efdc76d6f9e5767b86fa0fd3dcd23c6d5c8a20aa54bc8e83cbe27edd5f000000ffff9034dbfedc000000",
})
if err != nil {
@@ -133,19 +133,6 @@ var _ = func() error {
b.SetResolver("main.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "c3b4ce9ea2df826ee245b5a733148c6f"})
}()
- func() {
- b := packr.New("buffalo:genny:newapp:web", "../web/templates")
- b.SetResolver("actions/app.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1d008b8139b4fb2ec09d8c313f8e8f95"})
- b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "0b4e548d0d999245c21d128e3591ddec"})
- b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "20f0fffdc5b71982ce85ee87b75fb3db"})
- b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "593cbb702bb3c5a0fcbfa227df3a58f1"})
- b.SetResolver("locales/all.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "d37116f1e151db4cb9a9186baa84af28"})
- b.SetResolver("public/robots.txt.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "c7014dd1ea22c08568ecfba7316fca2e"})
- b.SetResolver("templates/_flash.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "5597b95c7800708f526fe349c8315960"})
- b.SetResolver("templates/application.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "f66368e9dc94454a5dce0ebc39c1ac7a"})
- b.SetResolver("templates/index.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "f16f61516506d3e11502bc1ff92cc0be"})
- }()
-
func() {
b := packr.New("buffalo:genny:refresh", "../refresh/templates")
b.SetResolver("-dot-buffalo.dev.yml.plush", packr.Pointer{ForwardBox: gk, ForwardPath: "8ce13eeed27bfd94470fb7430910bf43"})
@@ -191,6 +178,19 @@ var _ = func() error {
b.SetResolver("templates/mail/layout.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "7e4ac7be867ba59c2d5b2fd5252a4c06"})
}()
+ func() {
+ b := packr.New("github.com/gobuffalo/buffalo/genny/newapp/web", "../web/templates")
+ b.SetResolver("actions/app.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1d008b8139b4fb2ec09d8c313f8e8f95"})
+ b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "0b4e548d0d999245c21d128e3591ddec"})
+ b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "20f0fffdc5b71982ce85ee87b75fb3db"})
+ b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "593cbb702bb3c5a0fcbfa227df3a58f1"})
+ b.SetResolver("locales/all.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "d37116f1e151db4cb9a9186baa84af28"})
+ b.SetResolver("public/robots.txt.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "c7014dd1ea22c08568ecfba7316fca2e"})
+ b.SetResolver("templates/_flash.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "5597b95c7800708f526fe349c8315960"})
+ b.SetResolver("templates/application.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "f66368e9dc94454a5dce0ebc39c1ac7a"})
+ b.SetResolver("templates/index.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "f16f61516506d3e11502bc1ff92cc0be"})
+ }()
+
func() {
b := packr.New("github.com/gobuffalo/buffalo/genny/resource/templates/core", "../resource/templates/core")
b.SetResolver("locales/folder-name.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "63b59db05ede78b10cb5f7da70d5553a"})
diff --git a/render/helpers.go b/render/helpers.go
index aa0cd0eb8..f6eb18d6f 100644
--- a/render/helpers.go
+++ b/render/helpers.go
@@ -4,6 +4,8 @@ import (
"html/template"
"net/http"
+ "github.com/gobuffalo/helpers/forms"
+ "github.com/gobuffalo/helpers/forms/bootstrap"
"github.com/gobuffalo/plush"
"github.com/gobuffalo/tags"
)
@@ -21,4 +23,6 @@ func init() {
}
return t.HTML(), nil
})
+ plush.Helpers.Add(forms.RemoteFormKey, bootstrap.RemoteForm)
+ plush.Helpers.Add(forms.RemoteFormForKey, bootstrap.RemoteFormFor)
}
diff --git a/render/options.go b/render/options.go
index 2120e04e0..f22a50bad 100644
--- a/render/options.go
+++ b/render/options.go
@@ -1,9 +1,12 @@
package render
-import "github.com/gobuffalo/packd"
+import (
+ "github.com/gobuffalo/helpers/hctx"
+ "github.com/gobuffalo/packd"
+)
// Helpers to be included in all templates
-type Helpers map[string]interface{}
+type Helpers hctx.Map
// Options for render.Engine
type Options struct {
diff --git a/render/render.go b/render/render.go
index 2706dbfec..2cc8581d3 100644
--- a/render/render.go
+++ b/render/render.go
@@ -1,6 +1,9 @@
package render
import (
+ "github.com/gobuffalo/helpers"
+ "github.com/gobuffalo/helpers/forms"
+ "github.com/gobuffalo/helpers/forms/bootstrap"
"github.com/gobuffalo/plush"
)
@@ -16,7 +19,11 @@ type Engine struct {
// and some defaults we think you might like.
func New(opts Options) *Engine {
if opts.Helpers == nil {
- opts.Helpers = map[string]interface{}{}
+ opts.Helpers = Helpers{}
+ }
+
+ if len(opts.Helpers) == 0 {
+ opts.Helpers = defaultHelpers()
}
if opts.TemplateEngines == nil {
@@ -50,3 +57,11 @@ func New(opts Options) *Engine {
}
return e
}
+
+func defaultHelpers() Helpers {
+ h := Helpers(helpers.ALL())
+ h[forms.FormKey] = bootstrap.Form
+ h[forms.FormForKey] = bootstrap.FormFor
+ h["form_for"] = bootstrap.FormFor
+ return h
+}
diff --git a/render/template.go b/render/template.go
index ef01ae3af..7ac3442c3 100644
--- a/render/template.go
+++ b/render/template.go
@@ -106,13 +106,13 @@ func (s templateRenderer) exec(name string, data Data) (template.HTML, error) {
helpers := map[string]interface{}{}
- helpers = s.addAssetsHelpers(helpers)
-
for k, v := range s.Helpers {
helpers[k] = v
}
helpers["partialFeeder"] = s.partialFeeder
+ helpers = s.addAssetsHelpers(helpers)
+
body := string(source)
for _, ext := range s.exts(name) {
te, ok := s.TemplateEngines[ext]
@@ -148,7 +148,7 @@ func (s templateRenderer) exts(name string) []string {
func (s templateRenderer) assetPath(file string) (string, error) {
- if len(assetMap) == 0 || os.Getenv("GO_ENV") != "production" {
+ if len(assetMap.Keys()) == 0 || os.Getenv("GO_ENV") != "production" {
manifest, err := s.AssetsBox.FindString("manifest.json")
if err != nil {
diff --git a/render/template_helpers.go b/render/template_helpers.go
index 79143b57b..d89c21272 100644
--- a/render/template_helpers.go
+++ b/render/template_helpers.go
@@ -4,32 +4,12 @@ import (
"encoding/json"
"html/template"
"path/filepath"
- "sync"
+ ht "github.com/gobuffalo/helpers/tags"
+ "github.com/gobuffalo/syncx"
"github.com/gobuffalo/tags"
)
-var assetsMutex = &sync.RWMutex{}
-var assetMap map[string]string
-
-func loadManifest(manifest string) error {
- assetsMutex.Lock()
- defer assetsMutex.Unlock()
-
- err := json.Unmarshal([]byte(manifest), &assetMap)
- return err
-}
-
-func assetPathFor(file string) string {
- assetsMutex.RLock()
- filePath := assetMap[file]
- assetsMutex.RUnlock()
- if filePath == "" {
- filePath = file
- }
- return filepath.ToSlash(filepath.Join("/assets", filePath))
-}
-
type helperTag struct {
name string
fn func(string, tags.Options) template.HTML
@@ -39,9 +19,9 @@ func (s templateRenderer) addAssetsHelpers(helpers Helpers) Helpers {
helpers["assetPath"] = s.assetPath
ah := []helperTag{
- {"javascriptTag", jsTag},
- {"stylesheetTag", cssTag},
- {"imgTag", imgTag},
+ {"javascriptTag", ht.JS},
+ {"stylesheetTag", ht.CSS},
+ {"imgTag", ht.Img},
}
for _, h := range ah {
@@ -62,35 +42,25 @@ func (s templateRenderer) addAssetsHelpers(helpers Helpers) Helpers {
return helpers
}
-func jsTag(src string, options tags.Options) template.HTML {
- if options["type"] == nil {
- options["type"] = "text/javascript"
- }
-
- options["src"] = src
- jsTag := tags.New("script", options)
+var assetMap = syncx.StringMap{}
- return jsTag.HTML()
-}
-
-func cssTag(href string, options tags.Options) template.HTML {
- if options["rel"] == nil {
- options["rel"] = "stylesheet"
- }
-
- if options["media"] == nil {
- options["media"] = "screen"
+func assetPathFor(file string) string {
+ filePath, ok := assetMap.Load(file)
+ if filePath == "" || !ok {
+ filePath = file
}
-
- options["href"] = href
- cssTag := tags.New("link", options)
-
- return cssTag.HTML()
+ return filepath.ToSlash(filepath.Join("/assets", filePath))
}
-func imgTag(src string, options tags.Options) template.HTML {
- options["src"] = src
- imgTag := tags.New("img", options)
+func loadManifest(manifest string) error {
+ m := map[string]string{}
- return imgTag.HTML()
+ err := json.Unmarshal([]byte(manifest), &m)
+ if err != nil {
+ return err
+ }
+ for k, v := range m {
+ assetMap.Store(k, v)
+ }
+ return nil
}
|