@cloudflare/vite-plugin 1.7.2 → 1.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4576,8 +4576,12 @@ var Analytics = class {
4576
4576
  this.data.coloTier ?? -1,
4577
4577
  // double4
4578
4578
  this.data.userWorkerAhead === void 0 ? -1 : Number(this.data.userWorkerAhead),
4579
- this.data.staticRoutingDecision ?? 0 /* NOT_PROVIDED */
4579
+ this.data.staticRoutingDecision ?? 0 /* NOT_PROVIDED */,
4580
4580
  // double6
4581
+ this.data.abuseMitigationBlocked ? 1 : 0,
4582
+ // double7
4583
+ this.data.userWorkerFreeTierLimiting ? 1 : 0
4584
+ // double8
4581
4585
  ],
4582
4586
  blobs: [
4583
4587
  this.data.hostname?.substring(0, 256),
@@ -4588,15 +4592,17 @@ var Analytics = class {
4588
4592
  // blob3 - trim to 256 bytes
4589
4593
  this.data.version,
4590
4594
  // blob4
4591
- this.data.coloRegion
4595
+ this.data.coloRegion,
4592
4596
  // blob5
4597
+ this.data.abuseMitigationURLHost
4598
+ // blob6
4593
4599
  ]
4594
4600
  });
4595
4601
  }
4596
4602
  };
4597
4603
 
4598
4604
  // ../workers-shared/router-worker/src/configuration.ts
4599
- var applyConfigurationDefaults = (configuration) => {
4605
+ var applyRouterConfigDefaults = (configuration) => {
4600
4606
  return {
4601
4607
  invoke_user_worker_ahead_of_assets: configuration?.invoke_user_worker_ahead_of_assets ?? false,
4602
4608
  has_user_worker: configuration?.has_user_worker ?? false,
@@ -4608,6 +4614,1492 @@ var applyConfigurationDefaults = (configuration) => {
4608
4614
  }
4609
4615
  };
4610
4616
  };
4617
+ var applyEyeballConfigDefaults = (eyeballConfiguration) => {
4618
+ return {
4619
+ limitedAssetsOnly: eyeballConfiguration?.limitedAssetsOnly ?? false
4620
+ };
4621
+ };
4622
+
4623
+ // ../workers-shared/router-worker/src/limited-response.ts
4624
+ function formatDate(date) {
4625
+ const formatter = new Intl.DateTimeFormat("en-CA", {
4626
+ // en-CA for YYYY-MM-DD
4627
+ year: "numeric",
4628
+ month: "2-digit",
4629
+ day: "2-digit",
4630
+ hour: "2-digit",
4631
+ minute: "2-digit",
4632
+ second: "2-digit",
4633
+ hourCycle: "h23",
4634
+ // Ensures 24-hour format
4635
+ timeZone: "UTC"
4636
+ });
4637
+ const parts = formatter.formatToParts(date);
4638
+ let year, month, day, hour, minute, second;
4639
+ for (const part of parts) {
4640
+ switch (part.type) {
4641
+ case "year":
4642
+ year = part.value;
4643
+ break;
4644
+ case "month":
4645
+ month = part.value;
4646
+ break;
4647
+ case "day":
4648
+ day = part.value;
4649
+ break;
4650
+ case "hour":
4651
+ hour = part.value;
4652
+ break;
4653
+ case "minute":
4654
+ minute = part.value;
4655
+ break;
4656
+ case "second":
4657
+ second = part.value;
4658
+ break;
4659
+ }
4660
+ }
4661
+ return `${year}-${month}-${day} ${hour}:${minute}:${second} UTC`;
4662
+ }
4663
+ function renderLimitedResponse(req) {
4664
+ const hostname = new URL(req.url).hostname;
4665
+ const ip = req.headers.get("cf-connecting-ip") ?? "";
4666
+ const ray = req.headers.get("cf-ray") ?? "";
4667
+ const date = formatDate(/* @__PURE__ */ new Date());
4668
+ return `
4669
+ <!doctype html>
4670
+ <!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
4671
+ <!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
4672
+ <!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
4673
+ <!--[if gt IE 8]><!-->
4674
+ <html class="no-js" lang="en-US">
4675
+ <!--<![endif]-->
4676
+ <head>
4677
+ <title>
4678
+ This website has been temporarily rate limited |
4679
+ ${hostname} | Cloudflare
4680
+ </title>
4681
+ <meta charset="UTF-8" />
4682
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
4683
+ <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
4684
+ <meta name="robots" content="noindex, nofollow" />
4685
+ <meta name="viewport" content="width=device-width,initial-scale=1" />
4686
+ <!--[if lt IE 9
4687
+ ]><link
4688
+ rel="stylesheet"
4689
+ id="cf_styles-ie-css"
4690
+ href="/cdn-cgi/styles/cf.errors.ie.css"
4691
+ /><![endif]-->
4692
+ <style>
4693
+ #cf-wrapper a,
4694
+ #cf-wrapper abbr,
4695
+ #cf-wrapper article,
4696
+ #cf-wrapper aside,
4697
+ #cf-wrapper b,
4698
+ #cf-wrapper big,
4699
+ #cf-wrapper blockquote,
4700
+ #cf-wrapper body,
4701
+ #cf-wrapper canvas,
4702
+ #cf-wrapper caption,
4703
+ #cf-wrapper center,
4704
+ #cf-wrapper cite,
4705
+ #cf-wrapper code,
4706
+ #cf-wrapper dd,
4707
+ #cf-wrapper del,
4708
+ #cf-wrapper details,
4709
+ #cf-wrapper dfn,
4710
+ #cf-wrapper div,
4711
+ #cf-wrapper dl,
4712
+ #cf-wrapper dt,
4713
+ #cf-wrapper em,
4714
+ #cf-wrapper embed,
4715
+ #cf-wrapper fieldset,
4716
+ #cf-wrapper figcaption,
4717
+ #cf-wrapper figure,
4718
+ #cf-wrapper footer,
4719
+ #cf-wrapper form,
4720
+ #cf-wrapper h1,
4721
+ #cf-wrapper h2,
4722
+ #cf-wrapper h3,
4723
+ #cf-wrapper h4,
4724
+ #cf-wrapper h5,
4725
+ #cf-wrapper h6,
4726
+ #cf-wrapper header,
4727
+ #cf-wrapper hgroup,
4728
+ #cf-wrapper html,
4729
+ #cf-wrapper i,
4730
+ #cf-wrapper iframe,
4731
+ #cf-wrapper img,
4732
+ #cf-wrapper label,
4733
+ #cf-wrapper legend,
4734
+ #cf-wrapper li,
4735
+ #cf-wrapper mark,
4736
+ #cf-wrapper menu,
4737
+ #cf-wrapper nav,
4738
+ #cf-wrapper object,
4739
+ #cf-wrapper ol,
4740
+ #cf-wrapper output,
4741
+ #cf-wrapper p,
4742
+ #cf-wrapper pre,
4743
+ #cf-wrapper s,
4744
+ #cf-wrapper samp,
4745
+ #cf-wrapper section,
4746
+ #cf-wrapper small,
4747
+ #cf-wrapper span,
4748
+ #cf-wrapper strike,
4749
+ #cf-wrapper strong,
4750
+ #cf-wrapper sub,
4751
+ #cf-wrapper summary,
4752
+ #cf-wrapper sup,
4753
+ #cf-wrapper table,
4754
+ #cf-wrapper tbody,
4755
+ #cf-wrapper td,
4756
+ #cf-wrapper tfoot,
4757
+ #cf-wrapper th,
4758
+ #cf-wrapper thead,
4759
+ #cf-wrapper tr,
4760
+ #cf-wrapper tt,
4761
+ #cf-wrapper u,
4762
+ #cf-wrapper ul {
4763
+ margin: 0;
4764
+ padding: 0;
4765
+ border: 0;
4766
+ font: inherit;
4767
+ font-size: 100%;
4768
+ text-decoration: none;
4769
+ vertical-align: baseline;
4770
+ }
4771
+ #cf-wrapper a img {
4772
+ border: none;
4773
+ }
4774
+ #cf-wrapper article,
4775
+ #cf-wrapper aside,
4776
+ #cf-wrapper details,
4777
+ #cf-wrapper figcaption,
4778
+ #cf-wrapper figure,
4779
+ #cf-wrapper footer,
4780
+ #cf-wrapper header,
4781
+ #cf-wrapper hgroup,
4782
+ #cf-wrapper menu,
4783
+ #cf-wrapper nav,
4784
+ #cf-wrapper section,
4785
+ #cf-wrapper summary {
4786
+ display: block;
4787
+ }
4788
+ #cf-wrapper .cf-columns:after,
4789
+ #cf-wrapper .cf-columns:before,
4790
+ #cf-wrapper .cf-section:after,
4791
+ #cf-wrapper .cf-section:before,
4792
+ #cf-wrapper .cf-wrapper:after,
4793
+ #cf-wrapper .cf-wrapper:before,
4794
+ #cf-wrapper .clearfix:after,
4795
+ #cf-wrapper .clearfix:before,
4796
+ #cf-wrapper section:after,
4797
+ #cf-wrapper section:before {
4798
+ content: " ";
4799
+ display: table;
4800
+ }
4801
+ #cf-wrapper .cf-columns:after,
4802
+ #cf-wrapper .cf-section:after,
4803
+ #cf-wrapper .cf-wrapper:after,
4804
+ #cf-wrapper .clearfix:after,
4805
+ #cf-wrapper section:after {
4806
+ clear: both;
4807
+ }
4808
+ #cf-wrapper {
4809
+ display: block;
4810
+ margin: 0;
4811
+ padding: 0;
4812
+ position: relative;
4813
+ text-align: left;
4814
+ width: 100%;
4815
+ z-index: 999999999;
4816
+ color: #404040 !important;
4817
+ font-family:
4818
+ -apple-system,
4819
+ BlinkMacSystemFont,
4820
+ Segoe UI,
4821
+ Roboto,
4822
+ Oxygen,
4823
+ Ubuntu,
4824
+ Helvetica Neue,
4825
+ Arial,
4826
+ sans-serif !important;
4827
+ font-size: 15px !important;
4828
+ line-height: 1.5 !important;
4829
+ text-decoration: none !important;
4830
+ letter-spacing: normal;
4831
+ -webkit-tap-highlight-color: rgba(246, 139, 31, 0.3);
4832
+ -webkit-font-smoothing: antialiased;
4833
+ }
4834
+ #cf-wrapper .cf-section,
4835
+ #cf-wrapper section {
4836
+ background: 0 0;
4837
+ display: block;
4838
+ margin-bottom: 2em;
4839
+ margin-top: 2em;
4840
+ }
4841
+ #cf-wrapper .cf-wrapper {
4842
+ margin-left: auto;
4843
+ margin-right: auto;
4844
+ width: 90%;
4845
+ }
4846
+ #cf-wrapper .cf-columns {
4847
+ display: block;
4848
+ list-style: none;
4849
+ padding: 0;
4850
+ width: 100%;
4851
+ }
4852
+ #cf-wrapper .cf-columns img,
4853
+ #cf-wrapper .cf-columns input,
4854
+ #cf-wrapper .cf-columns object,
4855
+ #cf-wrapper .cf-columns select,
4856
+ #cf-wrapper .cf-columns textarea {
4857
+ max-width: 100%;
4858
+ }
4859
+ #cf-wrapper .cf-columns > .cf-column {
4860
+ float: left;
4861
+ padding-bottom: 45px;
4862
+ width: 100%;
4863
+ box-sizing: border-box;
4864
+ }
4865
+ @media screen and (min-width: 49.2em) {
4866
+ #cf-wrapper .cf-columns.cols-2 > .cf-column:nth-child(n + 3),
4867
+ #cf-wrapper .cf-columns.cols-3 > .cf-column:nth-child(n + 4),
4868
+ #cf-wrapper .cf-columns.cols-4 > .cf-column:nth-child(n + 3),
4869
+ #cf-wrapper .cf-columns.four > .cf-column:nth-child(n + 3),
4870
+ #cf-wrapper .cf-columns.three > .cf-column:nth-child(n + 4),
4871
+ #cf-wrapper .cf-columns.two > .cf-column:nth-child(n + 3) {
4872
+ padding-top: 67.5px;
4873
+ }
4874
+ #cf-wrapper .cf-columns > .cf-column {
4875
+ padding-bottom: 0;
4876
+ }
4877
+ #cf-wrapper .cf-columns.cols-2 > .cf-column,
4878
+ #cf-wrapper .cf-columns.cols-4 > .cf-column,
4879
+ #cf-wrapper .cf-columns.four > .cf-column,
4880
+ #cf-wrapper .cf-columns.two > .cf-column {
4881
+ padding-left: 0;
4882
+ padding-right: 22.5px;
4883
+ width: 50%;
4884
+ }
4885
+ #cf-wrapper .cf-columns.cols-2 > .cf-column:nth-child(2n),
4886
+ #cf-wrapper .cf-columns.cols-4 > .cf-column:nth-child(2n),
4887
+ #cf-wrapper .cf-columns.four > .cf-column:nth-child(2n),
4888
+ #cf-wrapper .cf-columns.two > .cf-column:nth-child(2n) {
4889
+ padding-left: 22.5px;
4890
+ padding-right: 0;
4891
+ }
4892
+ #cf-wrapper .cf-columns.cols-2 > .cf-column:nth-child(odd),
4893
+ #cf-wrapper .cf-columns.cols-4 > .cf-column:nth-child(odd),
4894
+ #cf-wrapper .cf-columns.four > .cf-column:nth-child(odd),
4895
+ #cf-wrapper .cf-columns.two > .cf-column:nth-child(odd) {
4896
+ clear: left;
4897
+ }
4898
+ #cf-wrapper .cf-columns.cols-3 > .cf-column,
4899
+ #cf-wrapper .cf-columns.three > .cf-column {
4900
+ padding-left: 30px;
4901
+ width: 33.3333333333333%;
4902
+ }
4903
+ #cf-wrapper .cf-columns.cols-3 > .cf-column:first-child,
4904
+ #cf-wrapper .cf-columns.cols-3 > .cf-column:nth-child(3n + 1),
4905
+ #cf-wrapper .cf-columns.three > .cf-column:first-child,
4906
+ #cf-wrapper .cf-columns.three > .cf-column:nth-child(3n + 1) {
4907
+ clear: left;
4908
+ padding-left: 0;
4909
+ padding-right: 30px;
4910
+ }
4911
+ #cf-wrapper .cf-columns.cols-3 > .cf-column:nth-child(3n + 2),
4912
+ #cf-wrapper .cf-columns.three > .cf-column:nth-child(3n + 2) {
4913
+ padding-left: 15px;
4914
+ padding-right: 15px;
4915
+ }
4916
+ #cf-wrapper .cf-columns.cols-3 > .cf-column:nth-child(-n + 3),
4917
+ #cf-wrapper .cf-columns.three > .cf-column:nth-child(-n + 3) {
4918
+ padding-top: 0;
4919
+ }
4920
+ }
4921
+ @media screen and (min-width: 66em) {
4922
+ #cf-wrapper .cf-columns > .cf-column {
4923
+ padding-bottom: 0;
4924
+ }
4925
+ #cf-wrapper .cf-columns.cols-4 > .cf-column,
4926
+ #cf-wrapper .cf-columns.four > .cf-column {
4927
+ padding-left: 33.75px;
4928
+ width: 25%;
4929
+ }
4930
+ #cf-wrapper .cf-columns.cols-4 > .cf-column:nth-child(odd),
4931
+ #cf-wrapper .cf-columns.four > .cf-column:nth-child(odd) {
4932
+ clear: none;
4933
+ }
4934
+ #cf-wrapper .cf-columns.cols-4 > .cf-column:first-child,
4935
+ #cf-wrapper .cf-columns.cols-4 > .cf-column:nth-child(4n + 1),
4936
+ #cf-wrapper .cf-columns.four > .cf-column:first-child,
4937
+ #cf-wrapper .cf-columns.four > .cf-column:nth-child(4n + 1) {
4938
+ clear: left;
4939
+ padding-left: 0;
4940
+ padding-right: 33.75px;
4941
+ }
4942
+ #cf-wrapper .cf-columns.cols-4 > .cf-column:nth-child(4n + 2),
4943
+ #cf-wrapper .cf-columns.four > .cf-column:nth-child(4n + 2) {
4944
+ padding-left: 11.25px;
4945
+ padding-right: 22.5px;
4946
+ }
4947
+ #cf-wrapper .cf-columns.cols-4 > .cf-column:nth-child(4n + 3),
4948
+ #cf-wrapper .cf-columns.four > .cf-column:nth-child(4n + 3) {
4949
+ padding-left: 22.5px;
4950
+ padding-right: 11.25px;
4951
+ }
4952
+ #cf-wrapper .cf-columns.cols-4 > .cf-column:nth-child(n + 5),
4953
+ #cf-wrapper .cf-columns.four > .cf-column:nth-child(n + 5) {
4954
+ padding-top: 67.5px;
4955
+ }
4956
+ #cf-wrapper .cf-columns.cols-4 > .cf-column:nth-child(-n + 4),
4957
+ #cf-wrapper .cf-columns.four > .cf-column:nth-child(-n + 4) {
4958
+ padding-top: 0;
4959
+ }
4960
+ }
4961
+ #cf-wrapper a {
4962
+ background: 0 0;
4963
+ border: 0;
4964
+ color: #0051c3;
4965
+ outline: 0;
4966
+ text-decoration: none;
4967
+ -webkit-transition: all 0.15s ease;
4968
+ transition: all 0.15s ease;
4969
+ }
4970
+ #cf-wrapper a:hover {
4971
+ background: 0 0;
4972
+ border: 0;
4973
+ color: #f68b1f;
4974
+ }
4975
+ #cf-wrapper a:focus {
4976
+ background: 0 0;
4977
+ border: 0;
4978
+ color: #62a1d8;
4979
+ outline: 0;
4980
+ }
4981
+ #cf-wrapper a:active {
4982
+ background: 0 0;
4983
+ border: 0;
4984
+ color: #c16508;
4985
+ outline: 0;
4986
+ }
4987
+ #cf-wrapper h1,
4988
+ #cf-wrapper h2,
4989
+ #cf-wrapper h3,
4990
+ #cf-wrapper h4,
4991
+ #cf-wrapper h5,
4992
+ #cf-wrapper h6,
4993
+ #cf-wrapper p {
4994
+ color: #404040;
4995
+ margin: 0;
4996
+ padding: 0;
4997
+ }
4998
+ #cf-wrapper h1,
4999
+ #cf-wrapper h2,
5000
+ #cf-wrapper h3 {
5001
+ font-weight: 400;
5002
+ }
5003
+ #cf-wrapper h4,
5004
+ #cf-wrapper h5,
5005
+ #cf-wrapper h6,
5006
+ #cf-wrapper strong {
5007
+ font-weight: 600;
5008
+ }
5009
+ #cf-wrapper h1 {
5010
+ font-size: 36px;
5011
+ line-height: 1.2;
5012
+ }
5013
+ #cf-wrapper h2 {
5014
+ font-size: 30px;
5015
+ line-height: 1.3;
5016
+ }
5017
+ #cf-wrapper h3 {
5018
+ font-size: 25px;
5019
+ line-height: 1.3;
5020
+ }
5021
+ #cf-wrapper h4 {
5022
+ font-size: 20px;
5023
+ line-height: 1.3;
5024
+ }
5025
+ #cf-wrapper h5 {
5026
+ font-size: 15px;
5027
+ }
5028
+ #cf-wrapper h6 {
5029
+ font-size: 13px;
5030
+ }
5031
+ #cf-wrapper ol,
5032
+ #cf-wrapper ul {
5033
+ list-style: none;
5034
+ margin-left: 3em;
5035
+ }
5036
+ #cf-wrapper ul {
5037
+ list-style-type: disc;
5038
+ }
5039
+ #cf-wrapper ol {
5040
+ list-style-type: decimal;
5041
+ }
5042
+ #cf-wrapper em {
5043
+ font-style: italic;
5044
+ }
5045
+ #cf-wrapper .cf-subheadline {
5046
+ color: #595959;
5047
+ font-weight: 300;
5048
+ }
5049
+ #cf-wrapper .cf-text-error {
5050
+ color: #bd2426;
5051
+ }
5052
+ #cf-wrapper .cf-text-success {
5053
+ color: #9bca3e;
5054
+ }
5055
+ #cf-wrapper ol + h2,
5056
+ #cf-wrapper ol + h3,
5057
+ #cf-wrapper ol + h4,
5058
+ #cf-wrapper ol + h5,
5059
+ #cf-wrapper ol + h6,
5060
+ #cf-wrapper ol + p,
5061
+ #cf-wrapper p + dl,
5062
+ #cf-wrapper p + ol,
5063
+ #cf-wrapper p + p,
5064
+ #cf-wrapper p + table,
5065
+ #cf-wrapper p + ul,
5066
+ #cf-wrapper ul + h2,
5067
+ #cf-wrapper ul + h3,
5068
+ #cf-wrapper ul + h4,
5069
+ #cf-wrapper ul + h5,
5070
+ #cf-wrapper ul + h6,
5071
+ #cf-wrapper ul + p {
5072
+ margin-top: 1.5em;
5073
+ }
5074
+ #cf-wrapper h1 + p,
5075
+ #cf-wrapper p + h1,
5076
+ #cf-wrapper p + h2,
5077
+ #cf-wrapper p + h3,
5078
+ #cf-wrapper p + h4,
5079
+ #cf-wrapper p + h5,
5080
+ #cf-wrapper p + h6 {
5081
+ margin-top: 1.25em;
5082
+ }
5083
+ #cf-wrapper h1 + h2,
5084
+ #cf-wrapper h1 + h3,
5085
+ #cf-wrapper h2 + h3,
5086
+ #cf-wrapper h3 + h4,
5087
+ #cf-wrapper h4 + h5 {
5088
+ margin-top: 0.25em;
5089
+ }
5090
+ #cf-wrapper h2 + p {
5091
+ margin-top: 1em;
5092
+ }
5093
+ #cf-wrapper h1 + h4,
5094
+ #cf-wrapper h1 + h5,
5095
+ #cf-wrapper h1 + h6,
5096
+ #cf-wrapper h2 + h4,
5097
+ #cf-wrapper h2 + h5,
5098
+ #cf-wrapper h2 + h6,
5099
+ #cf-wrapper h3 + h5,
5100
+ #cf-wrapper h3 + h6,
5101
+ #cf-wrapper h3 + p,
5102
+ #cf-wrapper h4 + p,
5103
+ #cf-wrapper h5 + ol,
5104
+ #cf-wrapper h5 + p,
5105
+ #cf-wrapper h5 + ul {
5106
+ margin-top: 0.5em;
5107
+ }
5108
+ #cf-wrapper .cf-btn {
5109
+ background-color: transparent;
5110
+ border: 1px solid #999;
5111
+ color: #404040;
5112
+ font-size: 14px;
5113
+ font-weight: 400;
5114
+ line-height: 1.2;
5115
+ margin: 0;
5116
+ padding: 0.6em 1.33333em 0.53333em;
5117
+ -webkit-user-select: none;
5118
+ -moz-user-select: none;
5119
+ -ms-user-select: none;
5120
+ user-select: none;
5121
+ display: -moz-inline-stack;
5122
+ display: inline-block;
5123
+ vertical-align: middle;
5124
+ zoom: 1;
5125
+ border-radius: 2px;
5126
+ box-sizing: border-box;
5127
+ -webkit-transition: all 0.2s ease;
5128
+ transition: all 0.2s ease;
5129
+ }
5130
+ #cf-wrapper .cf-btn:hover {
5131
+ background-color: #bfbfbf;
5132
+ border: 1px solid #737373;
5133
+ color: #fff;
5134
+ }
5135
+ #cf-wrapper .cf-btn:focus {
5136
+ color: inherit;
5137
+ outline: 0;
5138
+ box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.3);
5139
+ }
5140
+ #cf-wrapper .cf-btn.active,
5141
+ #cf-wrapper .cf-btn:active {
5142
+ background-color: #bfbfbf;
5143
+ border: 1px solid #404040;
5144
+ color: #272727;
5145
+ }
5146
+ #cf-wrapper .cf-btn::-moz-focus-inner {
5147
+ padding: 0;
5148
+ border: 0;
5149
+ }
5150
+ #cf-wrapper .cf-btn .cf-caret {
5151
+ border-top-color: currentColor;
5152
+ margin-left: 0.25em;
5153
+ margin-top: 0.18333em;
5154
+ }
5155
+ #cf-wrapper .cf-btn-primary {
5156
+ background-color: #2f7bbf;
5157
+ border: 1px solid transparent;
5158
+ color: #fff;
5159
+ }
5160
+ #cf-wrapper .cf-btn-primary:hover {
5161
+ background-color: #62a1d8;
5162
+ border: 1px solid #2f7bbf;
5163
+ color: #fff;
5164
+ }
5165
+ #cf-wrapper .cf-btn-primary.active,
5166
+ #cf-wrapper .cf-btn-primary:active,
5167
+ #cf-wrapper .cf-btn-primary:focus {
5168
+ background-color: #62a1d8;
5169
+ border: 1px solid #163959;
5170
+ color: #fff;
5171
+ }
5172
+ #cf-wrapper .cf-btn-danger,
5173
+ #cf-wrapper .cf-btn-error,
5174
+ #cf-wrapper .cf-btn-important {
5175
+ background-color: #bd2426;
5176
+ border-color: transparent;
5177
+ color: #fff;
5178
+ }
5179
+ #cf-wrapper .cf-btn-danger:hover,
5180
+ #cf-wrapper .cf-btn-error:hover,
5181
+ #cf-wrapper .cf-btn-important:hover {
5182
+ background-color: #de5052;
5183
+ border-color: #bd2426;
5184
+ color: #fff;
5185
+ }
5186
+ #cf-wrapper .cf-btn-danger.active,
5187
+ #cf-wrapper .cf-btn-danger:active,
5188
+ #cf-wrapper .cf-btn-danger:focus,
5189
+ #cf-wrapper .cf-btn-error.active,
5190
+ #cf-wrapper .cf-btn-error:active,
5191
+ #cf-wrapper .cf-btn-error:focus,
5192
+ #cf-wrapper .cf-btn-important.active,
5193
+ #cf-wrapper .cf-btn-important:active,
5194
+ #cf-wrapper .cf-btn-important:focus {
5195
+ background-color: #de5052;
5196
+ border-color: #521010;
5197
+ color: #fff;
5198
+ }
5199
+ #cf-wrapper .cf-btn-accept,
5200
+ #cf-wrapper .cf-btn-success {
5201
+ background-color: #9bca3e;
5202
+ border: 1px solid transparent;
5203
+ color: #fff;
5204
+ }
5205
+ #cf-wrapper .cf-btn-accept:hover,
5206
+ #cf-wrapper .cf-btn-success:hover {
5207
+ background-color: #bada7a;
5208
+ border: 1px solid #9bca3e;
5209
+ color: #fff;
5210
+ }
5211
+ #cf-wrapper .active.cf-btn-accept,
5212
+ #cf-wrapper .cf-btn-accept:active,
5213
+ #cf-wrapper .cf-btn-accept:focus,
5214
+ #cf-wrapper .cf-btn-success.active,
5215
+ #cf-wrapper .cf-btn-success:active,
5216
+ #cf-wrapper .cf-btn-success:focus {
5217
+ background-color: #bada7a;
5218
+ border: 1px solid #516b1d;
5219
+ color: #fff;
5220
+ }
5221
+ #cf-wrapper .cf-btn-accept {
5222
+ color: transparent;
5223
+ font-size: 0;
5224
+ height: 36.38px;
5225
+ overflow: hidden;
5226
+ position: relative;
5227
+ text-indent: 0;
5228
+ width: 36.38px;
5229
+ white-space: nowrap;
5230
+ }
5231
+ #cf-wrapper input,
5232
+ #cf-wrapper select,
5233
+ #cf-wrapper textarea {
5234
+ background: #fff !important;
5235
+ border: 1px solid #999 !important;
5236
+ color: #404040 !important;
5237
+ font-size: 0.86667em !important;
5238
+ line-height: 1.24 !important;
5239
+ margin: 0 0 1em !important;
5240
+ max-width: 100% !important;
5241
+ outline: 0 !important;
5242
+ padding: 0.45em 0.75em !important;
5243
+ vertical-align: middle !important;
5244
+ display: -moz-inline-stack;
5245
+ display: inline-block;
5246
+ zoom: 1;
5247
+ box-sizing: border-box;
5248
+ -webkit-transition: all 0.2s ease;
5249
+ transition: all 0.2s ease;
5250
+ border-radius: 2px;
5251
+ }
5252
+ #cf-wrapper input:hover,
5253
+ #cf-wrapper select:hover,
5254
+ #cf-wrapper textarea:hover {
5255
+ border-color: gray;
5256
+ }
5257
+ #cf-wrapper input:focus,
5258
+ #cf-wrapper select:focus,
5259
+ #cf-wrapper textarea:focus {
5260
+ border-color: #2f7bbf;
5261
+ outline: 0;
5262
+ box-shadow: 0 0 8px rgba(47, 123, 191, 0.5);
5263
+ }
5264
+ #cf-wrapper fieldset {
5265
+ width: 100%;
5266
+ }
5267
+ #cf-wrapper label {
5268
+ display: block;
5269
+ font-size: 13px;
5270
+ margin-bottom: 0.38333em;
5271
+ }
5272
+ #cf-wrapper .cf-form-stacked .select2-container,
5273
+ #cf-wrapper .cf-form-stacked input,
5274
+ #cf-wrapper .cf-form-stacked select,
5275
+ #cf-wrapper .cf-form-stacked textarea {
5276
+ display: block;
5277
+ width: 100%;
5278
+ }
5279
+ #cf-wrapper .cf-form-stacked input[type="button"],
5280
+ #cf-wrapper .cf-form-stacked input[type="checkbox"],
5281
+ #cf-wrapper .cf-form-stacked input[type="submit"] {
5282
+ display: -moz-inline-stack;
5283
+ display: inline-block;
5284
+ vertical-align: middle;
5285
+ zoom: 1;
5286
+ width: auto;
5287
+ }
5288
+ #cf-wrapper .cf-form-actions {
5289
+ text-align: right;
5290
+ }
5291
+ #cf-wrapper .cf-alert {
5292
+ background-color: #f9b169;
5293
+ border: 1px solid #904b06;
5294
+ color: #404040;
5295
+ font-size: 13px;
5296
+ padding: 7.5px 15px;
5297
+ position: relative;
5298
+ vertical-align: middle;
5299
+ border-radius: 2px;
5300
+ }
5301
+ #cf-wrapper .cf-alert:empty {
5302
+ display: none;
5303
+ }
5304
+ #cf-wrapper .cf-alert .cf-close {
5305
+ border: 1px solid transparent;
5306
+ color: inherit;
5307
+ font-size: 18.75px;
5308
+ line-height: 1;
5309
+ padding: 0;
5310
+ position: relative;
5311
+ right: -18.75px;
5312
+ top: 0;
5313
+ }
5314
+ #cf-wrapper .cf-alert .cf-close:hover {
5315
+ background-color: transparent;
5316
+ border-color: currentColor;
5317
+ color: inherit;
5318
+ }
5319
+ #cf-wrapper .cf-alert-danger,
5320
+ #cf-wrapper .cf-alert-error {
5321
+ background-color: #de5052;
5322
+ border-color: #521010;
5323
+ color: #fff;
5324
+ }
5325
+ #cf-wrapper .cf-alert-success {
5326
+ background-color: #bada7a;
5327
+ border-color: #516b1d;
5328
+ color: #516b1d;
5329
+ }
5330
+ #cf-wrapper .cf-alert-warning {
5331
+ background-color: #f9b169;
5332
+ border-color: #904b06;
5333
+ color: #404040;
5334
+ }
5335
+ #cf-wrapper .cf-alert-info {
5336
+ background-color: #62a1d8;
5337
+ border-color: #163959;
5338
+ color: #163959;
5339
+ }
5340
+ #cf-wrapper .cf-alert-nonessential {
5341
+ background-color: #ebebeb;
5342
+ border-color: #999;
5343
+ color: #404040;
5344
+ }
5345
+ #cf-wrapper .cf-icon-exclamation-sign {
5346
+ background: url(/cdn-cgi/images/icon-exclamation.png?1376755637)
5347
+ 50% no-repeat;
5348
+ height: 54px;
5349
+ width: 54px;
5350
+ display: -moz-inline-stack;
5351
+ display: inline-block;
5352
+ vertical-align: middle;
5353
+ zoom: 1;
5354
+ }
5355
+ #cf-wrapper h1 .cf-icon-exclamation-sign {
5356
+ margin-top: -10px;
5357
+ }
5358
+ #cf-wrapper #cf-error-banner {
5359
+ background-color: #fff;
5360
+ border-bottom: 3px solid #f68b1f;
5361
+ padding: 15px 15px 20px;
5362
+ position: relative;
5363
+ z-index: 999999999;
5364
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
5365
+ }
5366
+ #cf-wrapper #cf-error-banner h4,
5367
+ #cf-wrapper #cf-error-banner p {
5368
+ display: -moz-inline-stack;
5369
+ display: inline-block;
5370
+ vertical-align: bottom;
5371
+ zoom: 1;
5372
+ }
5373
+ #cf-wrapper #cf-error-banner h4 {
5374
+ color: #2f7bbf;
5375
+ font-weight: 400;
5376
+ font-size: 20px;
5377
+ line-height: 1;
5378
+ vertical-align: baseline;
5379
+ }
5380
+ #cf-wrapper #cf-error-banner .cf-error-actions {
5381
+ margin-bottom: 10px;
5382
+ text-align: center;
5383
+ width: 100%;
5384
+ }
5385
+ #cf-wrapper #cf-error-banner .cf-error-actions a {
5386
+ display: -moz-inline-stack;
5387
+ display: inline-block;
5388
+ vertical-align: middle;
5389
+ zoom: 1;
5390
+ }
5391
+ #cf-wrapper #cf-error-banner .cf-error-actions a + a {
5392
+ margin-left: 10px;
5393
+ }
5394
+ #cf-wrapper #cf-error-banner .cf-error-actions .cf-btn-accept,
5395
+ #cf-wrapper #cf-error-banner .cf-error-actions .cf-btn-success {
5396
+ color: #fff;
5397
+ }
5398
+ #cf-wrapper #cf-error-banner .error-header-desc {
5399
+ text-align: left;
5400
+ }
5401
+ #cf-wrapper #cf-error-banner .cf-close {
5402
+ color: #999;
5403
+ cursor: pointer;
5404
+ display: inline-block;
5405
+ font-size: 34.5px;
5406
+ float: none;
5407
+ font-weight: 700;
5408
+ height: 22.5px;
5409
+ line-height: 0.6;
5410
+ overflow: hidden;
5411
+ position: absolute;
5412
+ right: 20px;
5413
+ top: 25px;
5414
+ text-indent: 200%;
5415
+ width: 22.5px;
5416
+ }
5417
+ #cf-wrapper #cf-error-banner .cf-close:hover {
5418
+ color: gray;
5419
+ }
5420
+ #cf-wrapper #cf-error-banner .cf-close:before {
5421
+ content: "\\00D7";
5422
+ left: 0;
5423
+ height: 100%;
5424
+ position: absolute;
5425
+ text-align: center;
5426
+ text-indent: 0;
5427
+ top: 0;
5428
+ width: 100%;
5429
+ }
5430
+ #cf-inline-error-wrapper {
5431
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
5432
+ }
5433
+ #cf-wrapper #cf-error-details {
5434
+ background: #fff;
5435
+ }
5436
+ #cf-wrapper #cf-error-details .cf-error-overview {
5437
+ padding: 25px 0 0;
5438
+ }
5439
+ #cf-wrapper #cf-error-details .cf-error-overview h1,
5440
+ #cf-wrapper #cf-error-details .cf-error-overview h2 {
5441
+ font-weight: 300;
5442
+ }
5443
+ #cf-wrapper #cf-error-details .cf-error-overview h2 {
5444
+ margin-top: 0;
5445
+ }
5446
+ #cf-wrapper #cf-error-details .cf-highlight {
5447
+ background: #ebebeb;
5448
+ overflow-x: hidden;
5449
+ padding: 30px 0;
5450
+ background-image: -webkit-gradient(
5451
+ linear,
5452
+ left top,
5453
+ left bottom,
5454
+ from(#dedede),
5455
+ color-stop(3%, #ebebeb),
5456
+ color-stop(97%, #ebebeb),
5457
+ to(#dedede)
5458
+ );
5459
+ background-image: linear-gradient(
5460
+ top,
5461
+ #dedede,
5462
+ #ebebeb 3%,
5463
+ #ebebeb 97%,
5464
+ #dedede
5465
+ );
5466
+ }
5467
+ #cf-wrapper #cf-error-details .cf-highlight h3 {
5468
+ color: #999;
5469
+ font-weight: 300;
5470
+ }
5471
+ #cf-wrapper #cf-error-details .cf-highlight .cf-column:last-child {
5472
+ padding-bottom: 0;
5473
+ }
5474
+ #cf-wrapper #cf-error-details .cf-highlight .cf-highlight-inverse {
5475
+ background-color: #fff;
5476
+ padding: 15px;
5477
+ border-radius: 2px;
5478
+ }
5479
+ #cf-wrapper #cf-error-details .cf-status-display h3 {
5480
+ margin-top: 0.5em;
5481
+ }
5482
+ #cf-wrapper #cf-error-details .cf-status-label {
5483
+ color: #9bca3e;
5484
+ font-size: 1.46667em;
5485
+ }
5486
+ #cf-wrapper #cf-error-details .cf-status-label,
5487
+ #cf-wrapper #cf-error-details .cf-status-name {
5488
+ display: inline;
5489
+ }
5490
+ #cf-wrapper #cf-error-details .cf-status-item {
5491
+ display: block;
5492
+ position: relative;
5493
+ text-align: left;
5494
+ }
5495
+ #cf-wrapper #cf-error-details .cf-status-item,
5496
+ #cf-wrapper #cf-error-details .cf-status-item.cf-column {
5497
+ padding-bottom: 1.5em;
5498
+ }
5499
+ #cf-wrapper #cf-error-details .cf-status-item.cf-error-source {
5500
+ display: block;
5501
+ text-align: center;
5502
+ }
5503
+ #cf-wrapper
5504
+ #cf-error-details
5505
+ .cf-status-item.cf-error-source:after {
5506
+ bottom: -60px;
5507
+ content: "";
5508
+ display: none;
5509
+ border-bottom: 18px solid #fff;
5510
+ border-left: 20px solid transparent;
5511
+ border-right: 20px solid transparent;
5512
+ height: 0;
5513
+ left: 50%;
5514
+ margin-left: -9px;
5515
+ position: absolute;
5516
+ right: 50%;
5517
+ width: 0;
5518
+ }
5519
+ #cf-wrapper #cf-error-details .cf-status-item + .cf-status-item {
5520
+ border-top: 1px solid #dedede;
5521
+ padding-top: 1.5em;
5522
+ }
5523
+ #cf-wrapper
5524
+ #cf-error-details
5525
+ .cf-status-item
5526
+ + .cf-status-item:before {
5527
+ background: url(/cdn-cgi/images/cf-icon-horizontal-arrow.png)
5528
+ no-repeat;
5529
+ content: "";
5530
+ display: block;
5531
+ left: 0;
5532
+ position: absolute;
5533
+ top: 25.67px;
5534
+ }
5535
+ #cf-wrapper
5536
+ #cf-error-details
5537
+ .cf-error-source
5538
+ .cf-icon-error-container {
5539
+ height: 85px;
5540
+ margin-bottom: 2.5em;
5541
+ }
5542
+ #cf-wrapper #cf-error-details .cf-error-source .cf-status-label {
5543
+ color: #bd2426;
5544
+ }
5545
+ #cf-wrapper #cf-error-details .cf-error-source .cf-icon {
5546
+ display: block;
5547
+ }
5548
+ #cf-wrapper #cf-error-details .cf-error-source .cf-icon-status {
5549
+ bottom: -10px;
5550
+ left: 50%;
5551
+ top: auto;
5552
+ right: auto;
5553
+ }
5554
+ #cf-wrapper #cf-error-details .cf-error-source .cf-status-label,
5555
+ #cf-wrapper #cf-error-details .cf-error-source .cf-status-name {
5556
+ display: block;
5557
+ }
5558
+ #cf-wrapper #cf-error-details .cf-icon-error-container {
5559
+ height: auto;
5560
+ position: relative;
5561
+ }
5562
+ #cf-wrapper #cf-error-details .cf-icon-status {
5563
+ display: block;
5564
+ margin-left: -24px;
5565
+ position: absolute;
5566
+ top: 0;
5567
+ right: 0;
5568
+ }
5569
+ #cf-wrapper #cf-error-details .cf-icon {
5570
+ display: none;
5571
+ margin: 0 auto;
5572
+ }
5573
+ #cf-wrapper #cf-error-details .cf-status-desc {
5574
+ display: block;
5575
+ height: 22.5px;
5576
+ overflow: hidden;
5577
+ text-overflow: ellipsis;
5578
+ width: 100%;
5579
+ white-space: nowrap;
5580
+ }
5581
+ #cf-wrapper #cf-error-details .cf-status-desc:empty {
5582
+ display: none;
5583
+ }
5584
+ #cf-wrapper #cf-error-details .cf-error-footer {
5585
+ padding: 1.33333em 0;
5586
+ border-top: 1px solid #ebebeb;
5587
+ text-align: center;
5588
+ }
5589
+ #cf-wrapper #cf-error-details .cf-error-footer p {
5590
+ font-size: 13px;
5591
+ }
5592
+ #cf-wrapper #cf-error-details .cf-error-footer select {
5593
+ margin: 0 !important;
5594
+ }
5595
+ #cf-wrapper #cf-error-details .cf-footer-item {
5596
+ display: block;
5597
+ margin-bottom: 5px;
5598
+ text-align: left;
5599
+ }
5600
+ #cf-wrapper #cf-error-details .cf-footer-separator {
5601
+ display: none;
5602
+ }
5603
+ #cf-wrapper #cf-error-details .cf-captcha-info {
5604
+ margin-bottom: 10px;
5605
+ position: relative;
5606
+ text-align: center;
5607
+ }
5608
+ #cf-wrapper #cf-error-details .cf-captcha-image {
5609
+ height: 57px;
5610
+ width: 300px;
5611
+ }
5612
+ #cf-wrapper #cf-error-details .cf-captcha-actions {
5613
+ margin-top: 15px;
5614
+ }
5615
+ #cf-wrapper #cf-error-details .cf-captcha-actions a {
5616
+ font-size: 0;
5617
+ height: 36.38px;
5618
+ overflow: hidden;
5619
+ padding-left: 1.2em;
5620
+ padding-right: 1.2em;
5621
+ position: relative;
5622
+ text-indent: -9999px;
5623
+ width: 36.38px;
5624
+ white-space: nowrap;
5625
+ }
5626
+ #cf-wrapper
5627
+ #cf-error-details
5628
+ .cf-captcha-actions
5629
+ a.cf-icon-refresh
5630
+ span {
5631
+ background-position: 0 -787px;
5632
+ }
5633
+ #cf-wrapper
5634
+ #cf-error-details
5635
+ .cf-captcha-actions
5636
+ a.cf-icon-announce
5637
+ span {
5638
+ background-position: 0 -767px;
5639
+ }
5640
+ #cf-wrapper
5641
+ #cf-error-details
5642
+ .cf-captcha-actions
5643
+ a.cf-icon-question
5644
+ span {
5645
+ background-position: 0 -827px;
5646
+ }
5647
+ #cf-wrapper #cf-error-details .cf-screenshot-container {
5648
+ background: url(/cdn-cgi/images/browser-bar.png?1376755637)
5649
+ no-repeat #fff;
5650
+ max-height: 400px;
5651
+ max-width: 100%;
5652
+ overflow: hidden;
5653
+ padding-top: 53px;
5654
+ width: 960px;
5655
+ border-radius: 5px 5px 0 0;
5656
+ }
5657
+ #cf-wrapper
5658
+ #cf-error-details
5659
+ .cf-screenshot-container
5660
+ .cf-no-screenshot {
5661
+ background: url(/cdn-cgi/images/cf-no-screenshot-warn.png)
5662
+ no-repeat;
5663
+ display: block;
5664
+ height: 158px;
5665
+ left: 25%;
5666
+ margin-top: -79px;
5667
+ overflow: hidden;
5668
+ position: relative;
5669
+ top: 50%;
5670
+ width: 178px;
5671
+ }
5672
+ #cf-wrapper
5673
+ #cf-error-details
5674
+ .cf-captcha-container
5675
+ .cf-screenshot-container,
5676
+ #cf-wrapper
5677
+ #cf-error-details
5678
+ .cf-captcha-container
5679
+ .cf-screenshot-container
5680
+ img,
5681
+ #recaptcha-widget .cf-alert,
5682
+ #recaptcha-widget .recaptcha_only_if_audio,
5683
+ .cf-cookie-error {
5684
+ display: none;
5685
+ }
5686
+ #cf-wrapper
5687
+ #cf-error-details
5688
+ .cf-screenshot-container
5689
+ .cf-no-screenshot.error {
5690
+ background: url(/cdn-cgi/images/cf-no-screenshot-error.png)
5691
+ no-repeat;
5692
+ height: 175px;
5693
+ }
5694
+ #cf-wrapper
5695
+ #cf-error-details
5696
+ .cf-screenshot-container.cf-screenshot-full
5697
+ .cf-no-screenshot {
5698
+ left: 50%;
5699
+ margin-left: -89px;
5700
+ }
5701
+ .cf-captcha-info iframe {
5702
+ max-width: 100%;
5703
+ }
5704
+ #cf-wrapper .cf-icon-ok {
5705
+ background: url(/cdn-cgi/images/cf-icon-ok.png) no-repeat;
5706
+ height: 48px;
5707
+ width: 48px;
5708
+ }
5709
+ #cf-wrapper .cf-icon-error {
5710
+ background: url(/cdn-cgi/images/cf-icon-error.png) no-repeat;
5711
+ height: 48px;
5712
+ width: 48px;
5713
+ }
5714
+ #cf-wrapper .cf-icon-browser {
5715
+ background: url(/cdn-cgi/images/cf-icon-browser.png) no-repeat;
5716
+ height: 80px;
5717
+ width: 100px;
5718
+ }
5719
+ #cf-wrapper .cf-icon-cloud {
5720
+ background: url(/cdn-cgi/images/cf-icon-cloud.png) no-repeat;
5721
+ height: 77px;
5722
+ width: 151px;
5723
+ }
5724
+ #cf-wrapper .cf-icon-server {
5725
+ background: url(/cdn-cgi/images/cf-icon-server.png) no-repeat;
5726
+ height: 75px;
5727
+ width: 95px;
5728
+ }
5729
+ #cf-wrapper .cf-caret {
5730
+ border: 0.33333em solid transparent;
5731
+ border-top-color: inherit;
5732
+ content: "";
5733
+ height: 0;
5734
+ width: 0;
5735
+ display: -moz-inline-stack;
5736
+ display: inline-block;
5737
+ vertical-align: middle;
5738
+ zoom: 1;
5739
+ }
5740
+ @media screen and (min-width: 49.2em) {
5741
+ #cf-wrapper #cf-error-details .cf-status-desc:empty,
5742
+ #cf-wrapper
5743
+ #cf-error-details
5744
+ .cf-status-item.cf-error-source:after,
5745
+ #cf-wrapper #cf-error-details .cf-status-item .cf-icon,
5746
+ #cf-wrapper #cf-error-details .cf-status-label,
5747
+ #cf-wrapper #cf-error-details .cf-status-name {
5748
+ display: block;
5749
+ }
5750
+ #cf-wrapper .cf-wrapper {
5751
+ width: 708px;
5752
+ }
5753
+ #cf-wrapper #cf-error-banner {
5754
+ padding: 20px 20px 25px;
5755
+ }
5756
+ #cf-wrapper #cf-error-banner .cf-error-actions {
5757
+ margin-bottom: 15px;
5758
+ }
5759
+ #cf-wrapper #cf-error-banner .cf-error-header-desc h4 {
5760
+ margin-right: 0.5em;
5761
+ }
5762
+ #cf-wrapper #cf-error-details h1 {
5763
+ font-size: 4em;
5764
+ }
5765
+ #cf-wrapper #cf-error-details .cf-error-overview {
5766
+ padding-top: 2.33333em;
5767
+ }
5768
+ #cf-wrapper #cf-error-details .cf-highlight {
5769
+ padding: 4em 0;
5770
+ }
5771
+ #cf-wrapper #cf-error-details .cf-status-item {
5772
+ text-align: center;
5773
+ }
5774
+ #cf-wrapper #cf-error-details .cf-status-item,
5775
+ #cf-wrapper #cf-error-details .cf-status-item.cf-column {
5776
+ padding-bottom: 0;
5777
+ }
5778
+ #cf-wrapper
5779
+ #cf-error-details
5780
+ .cf-status-item
5781
+ + .cf-status-item {
5782
+ border: 0;
5783
+ padding-top: 0;
5784
+ }
5785
+ #cf-wrapper
5786
+ #cf-error-details
5787
+ .cf-status-item
5788
+ + .cf-status-item:before {
5789
+ background-position: 0 -544px;
5790
+ height: 24.75px;
5791
+ margin-left: -37.5px;
5792
+ width: 75px;
5793
+ background-size: 131.25px auto;
5794
+ }
5795
+ #cf-wrapper #cf-error-details .cf-icon-error-container {
5796
+ height: 85px;
5797
+ margin-bottom: 2.5em;
5798
+ }
5799
+ #cf-wrapper #cf-error-details .cf-icon-status {
5800
+ bottom: -10px;
5801
+ left: 50%;
5802
+ top: auto;
5803
+ right: auto;
5804
+ }
5805
+ #cf-wrapper #cf-error-details .cf-error-footer {
5806
+ padding: 2.66667em 0;
5807
+ }
5808
+ #cf-wrapper #cf-error-details .cf-footer-item,
5809
+ #cf-wrapper #cf-error-details .cf-footer-separator {
5810
+ display: -moz-inline-stack;
5811
+ display: inline-block;
5812
+ vertical-align: baseline;
5813
+ zoom: 1;
5814
+ }
5815
+ #cf-wrapper #cf-error-details .cf-footer-separator {
5816
+ padding: 0 0.25em;
5817
+ }
5818
+ #cf-wrapper
5819
+ #cf-error-details
5820
+ .cf-status-item.cloudflare-status:before {
5821
+ margin-left: -50px;
5822
+ }
5823
+ #cf-wrapper
5824
+ #cf-error-details
5825
+ .cf-status-item.cloudflare-status
5826
+ + .status-item:before {
5827
+ margin-left: -25px;
5828
+ }
5829
+ #cf-wrapper #cf-error-details .cf-screenshot-container {
5830
+ height: 400px;
5831
+ margin-bottom: -4em;
5832
+ max-width: none;
5833
+ }
5834
+ #cf-wrapper
5835
+ #cf-error-details
5836
+ .cf-captcha-container
5837
+ .cf-screenshot-container,
5838
+ #cf-wrapper
5839
+ #cf-error-details
5840
+ .cf-captcha-container
5841
+ .cf-screenshot-container
5842
+ img {
5843
+ display: block;
5844
+ }
5845
+ }
5846
+ @media screen and (min-width: 66em) {
5847
+ #cf-wrapper .cf-wrapper {
5848
+ width: 960px;
5849
+ }
5850
+ #cf-wrapper #cf-error-banner .cf-close {
5851
+ position: relative;
5852
+ right: auto;
5853
+ top: auto;
5854
+ }
5855
+ #cf-wrapper #cf-error-banner .cf-details {
5856
+ white-space: nowrap;
5857
+ }
5858
+ #cf-wrapper #cf-error-banner .cf-details-link {
5859
+ padding-right: 0.5em;
5860
+ }
5861
+ #cf-wrapper #cf-error-banner .cf-error-actions {
5862
+ float: right;
5863
+ margin-bottom: 0;
5864
+ text-align: left;
5865
+ width: auto;
5866
+ }
5867
+ #cf-wrapper
5868
+ #cf-error-details
5869
+ .cf-status-item
5870
+ + .cf-status-item:before {
5871
+ background-position: 0 -734px;
5872
+ height: 33px;
5873
+ margin-left: -50px;
5874
+ width: 100px;
5875
+ background-size: auto;
5876
+ }
5877
+ #cf-wrapper
5878
+ #cf-error-details
5879
+ .cf-status-item.cf-cloudflare-status:before {
5880
+ margin-left: -66.67px;
5881
+ }
5882
+ #cf-wrapper
5883
+ #cf-error-details
5884
+ .cf-status-item.cf-cloudflare-status
5885
+ + .cf-status-item:before {
5886
+ margin-left: -37.5px;
5887
+ }
5888
+ #cf-wrapper #cf-error-details .cf-captcha-image {
5889
+ float: left;
5890
+ }
5891
+ #cf-wrapper #cf-error-details .cf-captcha-actions {
5892
+ position: absolute;
5893
+ top: 0;
5894
+ right: 0;
5895
+ }
5896
+ }
5897
+ .no-js #cf-wrapper .js-only {
5898
+ display: none;
5899
+ }
5900
+ #cf-wrapper #cf-error-details .heading-ray-id {
5901
+ font-family: monaco, courier, monospace;
5902
+ font-size: 15px;
5903
+ white-space: nowrap;
5904
+ }
5905
+ #cf-wrapper #cf-error-details .cf-footer-item.hidden,
5906
+ .cf-error-footer .hidden {
5907
+ display: none;
5908
+ }
5909
+ .cf-error-footer .cf-footer-ip-reveal-btn {
5910
+ -webkit-appearance: button;
5911
+ -moz-appearance: button;
5912
+ appearance: button;
5913
+ text-decoration: none;
5914
+ background: none;
5915
+ color: inherit;
5916
+ border: none;
5917
+ padding: 0;
5918
+ font: inherit;
5919
+ cursor: pointer;
5920
+ color: #0051c3;
5921
+ -webkit-transition: color 0.15s ease;
5922
+ transition: color 0.15s ease;
5923
+ }
5924
+ .cf-error-footer .cf-footer-ip-reveal-btn:hover {
5925
+ color: #ee730a;
5926
+ }
5927
+ </style>
5928
+ <style>
5929
+ body {
5930
+ margin: 0;
5931
+ padding: 0;
5932
+ }
5933
+ </style>
5934
+
5935
+ <!--[if gte IE 10]><!-->
5936
+ <script>
5937
+ if (!navigator.cookieEnabled) {
5938
+ window.addEventListener("DOMContentLoaded", function () {
5939
+ var cookieEl = document.getElementById("cookie-alert");
5940
+ cookieEl.style.display = "block";
5941
+ });
5942
+ }
5943
+ </script>
5944
+ <!--<![endif]-->
5945
+
5946
+ <style type="text/css">
5947
+ body {
5948
+ margin: 0;
5949
+ padding: 0;
5950
+ }
5951
+
5952
+ #cf-wrapper {
5953
+ font-family:
5954
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
5955
+ Helvetica, Arial, sans-serif, "Apple Color Emoji",
5956
+ "Segoe UI Emoji", "Segoe UI Symbol" !important;
5957
+ }
5958
+ .cf-error-description {
5959
+ max-width: 600px;
5960
+ }
5961
+ </style>
5962
+ </head>
5963
+ <body>
5964
+ <div id="cf-wrapper">
5965
+ <div
5966
+ id="cookie-alert"
5967
+ class="cf-alert cf-alert-error cf-cookie-error"
5968
+ data-translate="enable_cookies"
5969
+ >
5970
+ Please enable cookies.
5971
+ </div>
5972
+ <div id="cf-error-details" class="cf-error-details-wrapper">
5973
+ <div class="cf-wrapper cf-header cf-error-overview">
5974
+ <h1>
5975
+ <span
5976
+ class="cf-error-type"
5977
+ data-translate="please check back later"
5978
+ >Please check back later</span
5979
+ >
5980
+ </h1>
5981
+ <h2 class="cf-subheadline">Error 1027</h2>
5982
+ </div>
5983
+
5984
+ <div class="cf-section cf-wrapper">
5985
+ <p>
5986
+ <span
5987
+ style="
5988
+ width: 16px;
5989
+ display: inline-block;
5990
+ vertical-align: text-top;
5991
+ "
5992
+ >
5993
+ <svg
5994
+ fill="#b03340"
5995
+ xmlns="http://www.w3.org/2000/svg"
5996
+ viewBox="0 0 16 16"
5997
+ >
5998
+ <path
5999
+ d="M15.672,14.2,8.3,1.443a.352.352,0,0,0-.609,0L.328,14.2a.352.352,0,0,0,.3.527H15.368A.352.352,0,0,0,15.672,14.2ZM8.743,12.9a.221.221,0,0,1-.221.221H7.478a.221.221,0,0,1-.221-.221V11.86a.221.221,0,0,1,.221-.221H8.522a.221.221,0,0,1,.221.221Zm-.025-2.422H7.282L7.257,6.005H8.743Z"
6000
+ />
6001
+ </svg>
6002
+ </span>
6003
+ <strong>
6004
+ This website has been temporarily rate limited
6005
+ </strong>
6006
+ </p>
6007
+ <p class="cf-error-description">
6008
+ You cannot access this site because the owner has
6009
+ reached their plan limits. Check back later once traffic
6010
+ has gone down.
6011
+ </p>
6012
+
6013
+ <p class="cf-error-description">
6014
+ If you are owner of this website, prevent this from
6015
+ happening again by upgrading your plan on the
6016
+ <a
6017
+ href="https://dash.cloudflare.com/?account=workers/plans"
6018
+ target="_blank"
6019
+ >Cloudflare Workers dashboard</a
6020
+ >.
6021
+ </p>
6022
+
6023
+ <p>
6024
+ <a
6025
+ href="https://developers.cloudflare.com/workers/about/limits/#number-of-requests-limit"
6026
+ target="_blank"
6027
+ rel="noopener noreferrer"
6028
+ >
6029
+ Learn more about this issue \u2192
6030
+ </a>
6031
+ </p>
6032
+ </div>
6033
+
6034
+ <div class="cf-error-footer cf-wrapper">
6035
+ <p>
6036
+ <span class="cf-footer-item"
6037
+ >Cloudflare Ray ID: ${ray}</span
6038
+ >
6039
+ <span class="cf-footer-separator">&bull;</span>
6040
+ <span class="cf-footer-item"
6041
+ >${date}</span
6042
+ >
6043
+ <span
6044
+ id="cf-footer-item-ip"
6045
+ class="cf-footer-item hidden"
6046
+ >
6047
+ <span class="cf-footer-separator">&bull;</span>
6048
+ Your IP:
6049
+ <button
6050
+ type="button"
6051
+ id="cf-footer-ip-reveal"
6052
+ class="cf-footer-ip-reveal-btn"
6053
+ >
6054
+ Click to reveal
6055
+ </button>
6056
+ <span class="hidden" id="cf-footer-ip"
6057
+ >${ip}</span
6058
+ >
6059
+ </span>
6060
+ <span class="cf-footer-separator">&bull;</span>
6061
+ <span class="cf-footer-item"
6062
+ ><span>Runs on </span
6063
+ ><a
6064
+ rel="noopener noreferrer"
6065
+ href="https://workers.cloudflare.com?utm_source=error_footer"
6066
+ id="brand_link"
6067
+ target="_blank"
6068
+ >Cloudflare Workers</a
6069
+ ></span
6070
+ >
6071
+ </p>
6072
+ <script>
6073
+ (function () {
6074
+ function d() {
6075
+ var b = a.getElementById("cf-footer-item-ip"),
6076
+ c = a.getElementById("cf-footer-ip-reveal");
6077
+ b &&
6078
+ "classList" in b &&
6079
+ (b.classList.remove("hidden"),
6080
+ c.addEventListener("click", function () {
6081
+ c.classList.add("hidden");
6082
+ a.getElementById(
6083
+ "cf-footer-ip",
6084
+ ).classList.remove("hidden");
6085
+ }));
6086
+ }
6087
+ var a = document;
6088
+ document.addEventListener &&
6089
+ a.addEventListener("DOMContentLoaded", d);
6090
+ })();
6091
+ </script>
6092
+ </div>
6093
+ <!-- /.error-footer -->
6094
+ </div>
6095
+ </div>
6096
+
6097
+ <script>
6098
+ window._cf_translation = {};
6099
+ </script>
6100
+ </body>
6101
+ </html>`;
6102
+ }
4611
6103
 
4612
6104
  // ../workers-shared/router-worker/src/worker.ts
4613
6105
  var worker_default = {
@@ -4633,7 +6125,8 @@ var worker_default = {
4633
6125
  env.CONFIG?.script_id
4634
6126
  );
4635
6127
  const hasStaticRouting = env.CONFIG.static_routing !== void 0;
4636
- const config = applyConfigurationDefaults(env.CONFIG);
6128
+ const config = applyRouterConfigDefaults(env.CONFIG);
6129
+ const eyeballConfig = applyEyeballConfigDefaults(env.EYEBALL_CONFIG);
4637
6130
  const url = new URL(request.url);
4638
6131
  if (env.COLO_METADATA && env.VERSION_METADATA && env.CONFIG) {
4639
6132
  analytics.setData({
@@ -4649,6 +6142,65 @@ var worker_default = {
4649
6142
  });
4650
6143
  }
4651
6144
  const maybeSecondRequest = request.clone();
6145
+ const routeToUserWorker = async ({
6146
+ asset
6147
+ }) => {
6148
+ if (!config.has_user_worker) {
6149
+ throw new Error(
6150
+ "Fetch for user worker without having a user worker binding"
6151
+ );
6152
+ }
6153
+ if (eyeballConfig.limitedAssetsOnly) {
6154
+ analytics.setData({ userWorkerFreeTierLimiting: true });
6155
+ return new Response(renderLimitedResponse(maybeSecondRequest), {
6156
+ status: 429,
6157
+ headers: {
6158
+ "Content-Type": "text/html"
6159
+ }
6160
+ });
6161
+ }
6162
+ analytics.setData({ dispatchtype: "worker" /* WORKER */ });
6163
+ userWorkerInvocation = true;
6164
+ return env.JAEGER.enterSpan("dispatch_worker", async (span) => {
6165
+ span.setTags({
6166
+ hasUserWorker: true,
6167
+ asset,
6168
+ dispatchType: "worker" /* WORKER */
6169
+ });
6170
+ let shouldBlockNonImageResponse = false;
6171
+ if (url.pathname === "/_next/image") {
6172
+ const queryURLParam = url.searchParams.get("url");
6173
+ if (queryURLParam && !queryURLParam.startsWith("/")) {
6174
+ if (maybeSecondRequest.method !== "GET" || maybeSecondRequest.headers.get("sec-fetch-dest") !== "image") {
6175
+ shouldBlockNonImageResponse = true;
6176
+ analytics.setData({ abuseMitigationURLHost: queryURLParam });
6177
+ }
6178
+ }
6179
+ }
6180
+ if (shouldBlockNonImageResponse) {
6181
+ const resp = await env.USER_WORKER.fetch(maybeSecondRequest);
6182
+ if (!resp.headers.get("content-type")?.startsWith("image/") && resp.status !== 304) {
6183
+ analytics.setData({ abuseMitigationBlocked: true });
6184
+ return new Response("Blocked", { status: 403 });
6185
+ }
6186
+ return resp;
6187
+ }
6188
+ return env.USER_WORKER.fetch(maybeSecondRequest);
6189
+ });
6190
+ };
6191
+ const routeToAssets = async ({
6192
+ asset
6193
+ }) => {
6194
+ analytics.setData({ dispatchtype: "asset" /* ASSETS */ });
6195
+ return await env.JAEGER.enterSpan("dispatch_assets", async (span) => {
6196
+ span.setTags({
6197
+ hasUserWorker: config.has_user_worker,
6198
+ asset,
6199
+ dispatchType: "asset" /* ASSETS */
6200
+ });
6201
+ return env.ASSET_WORKER.fetch(maybeSecondRequest);
6202
+ });
6203
+ };
4652
6204
  if (config.static_routing) {
4653
6205
  const excludeRulesMatcher = generateStaticRoutingRuleMatcher(
4654
6206
  config.static_routing.asset_worker ?? []
@@ -4657,17 +6209,9 @@ var worker_default = {
4657
6209
  request
4658
6210
  })) {
4659
6211
  analytics.setData({
4660
- dispatchtype: "asset" /* ASSETS */,
4661
6212
  staticRoutingDecision: 2 /* ROUTED */
4662
6213
  });
4663
- return await env.JAEGER.enterSpan("dispatch_assets", async (span) => {
4664
- span.setTags({
4665
- hasUserWorker: config.has_user_worker,
4666
- asset: "static_routing",
4667
- dispatchType: "asset" /* ASSETS */
4668
- });
4669
- return env.ASSET_WORKER.fetch(maybeSecondRequest);
4670
- });
6214
+ return await routeToAssets({ asset: "static_routing" });
4671
6215
  }
4672
6216
  const includeRulesMatcher = generateStaticRoutingRuleMatcher(
4673
6217
  config.static_routing.user_worker
@@ -4681,62 +6225,22 @@ var worker_default = {
4681
6225
  );
4682
6226
  }
4683
6227
  analytics.setData({
4684
- dispatchtype: "worker" /* WORKER */,
4685
6228
  staticRoutingDecision: 2 /* ROUTED */
4686
6229
  });
4687
- return await env.JAEGER.enterSpan("dispatch_worker", async (span) => {
4688
- span.setTags({
4689
- hasUserWorker: true,
4690
- asset: "static_routing",
4691
- dispatchType: "worker" /* WORKER */
4692
- });
4693
- userWorkerInvocation = true;
4694
- return env.USER_WORKER.fetch(maybeSecondRequest);
4695
- });
6230
+ return await routeToUserWorker({ asset: "static_routing" });
4696
6231
  }
4697
6232
  analytics.setData({
4698
6233
  staticRoutingDecision: hasStaticRouting ? 1 /* NOT_ROUTED */ : 0 /* NOT_PROVIDED */
4699
6234
  });
4700
6235
  }
4701
6236
  if (config.invoke_user_worker_ahead_of_assets) {
4702
- if (!config.has_user_worker) {
4703
- throw new Error(
4704
- "Fetch for user worker without having a user worker binding"
4705
- );
4706
- }
4707
- analytics.setData({ dispatchtype: "worker" /* WORKER */ });
4708
- return await env.JAEGER.enterSpan("dispatch_worker", async (span) => {
4709
- span.setTags({
4710
- hasUserWorker: true,
4711
- asset: "ignored",
4712
- dispatchType: "worker" /* WORKER */
4713
- });
4714
- userWorkerInvocation = true;
4715
- return env.USER_WORKER.fetch(maybeSecondRequest);
4716
- });
6237
+ return await routeToUserWorker({ asset: "static_routing" });
4717
6238
  }
4718
6239
  const assetsExist = await env.ASSET_WORKER.unstable_canFetch(request);
4719
6240
  if (config.has_user_worker && !assetsExist) {
4720
- analytics.setData({ dispatchtype: "worker" /* WORKER */ });
4721
- return await env.JAEGER.enterSpan("dispatch_worker", async (span) => {
4722
- span.setTags({
4723
- hasUserWorker: config.has_user_worker,
4724
- asset: assetsExist,
4725
- dispatchType: "worker" /* WORKER */
4726
- });
4727
- userWorkerInvocation = true;
4728
- return env.USER_WORKER.fetch(maybeSecondRequest);
4729
- });
6241
+ return await routeToUserWorker({ asset: "none" });
4730
6242
  }
4731
- analytics.setData({ dispatchtype: "asset" /* ASSETS */ });
4732
- return await env.JAEGER.enterSpan("dispatch_assets", async (span) => {
4733
- span.setTags({
4734
- hasUserWorker: config.has_user_worker,
4735
- asset: assetsExist,
4736
- dispatchType: "asset" /* ASSETS */
4737
- });
4738
- return env.ASSET_WORKER.fetch(maybeSecondRequest);
4739
- });
6243
+ return await routeToAssets({ asset: assetsExist ? "found" : "none" });
4740
6244
  } catch (err) {
4741
6245
  if (userWorkerInvocation) {
4742
6246
  throw err;