nytprof run results of /variantgraph/<ID> and /relation/<ID>/relationships
[scpubgit/stemmatology.git] / stemmaweb / nytprof-runs / relation-uuid-relationships / Catalyst-pm-381-sub.html
diff --git a/stemmaweb/nytprof-runs/relation-uuid-relationships/Catalyst-pm-381-sub.html b/stemmaweb/nytprof-runs/relation-uuid-relationships/Catalyst-pm-381-sub.html
new file mode 100644 (file)
index 0000000..085f2bf
--- /dev/null
@@ -0,0 +1,4020 @@
+    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+    <html xmlns="http://www.w3.org/1999/xhtml">
+<!--
+This file was generated by Devel::NYTProf version 4.06
+-->
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta http-equiv="Content-Language" content="en-us" />
+    <title>Profile of Catalyst.pm</title>
+<link rel="stylesheet" type="text/css" href="style.css" />
+    <script type="text/javascript" src="js/jquery-min.js"></script> 
+
+    <script type="text/javascript" src="js/jquery-tablesorter-min.js"></script> 
+    <link rel="stylesheet" type="text/css" href="js/style-tablesorter.css" />
+    <script type="text/javascript">
+    // when a column is first clicked on to sort it, use descending order
+    // XXX doesn't seem to work (and not just because the tablesorter formatSortingOrder() is broken)
+    $.tablesorter.defaults.sortInitialOrder = "desc";
+    // add parser through the tablesorter addParser method 
+    $.tablesorter.addParser({
+        id: 'fmt_time',   // name of this parser
+        is: function(s) { 
+            return false; // return false so this parser is not auto detected 
+        }, 
+        format: function(orig) { // format data for normalization 
+            // console.log(orig);
+            val = orig.replace(/ns/,'');
+            if (val != orig) { return val / (1000*1000*1000); } 
+            val = orig.replace(/µs/,''); /* XXX use &micro; ? */
+            if (val != orig) { return val / (1000*1000); } 
+            var val = orig.replace(/ms/,'');
+            if (val != orig) { return val / (1000); }
+            var val = orig.replace(/s/,'');
+            if (val != orig) { return val; }
+            if (orig == '0') { return orig; } 
+            console.log('no match for fmt_time of '.concat(orig));
+            return orig;
+        },
+        type: 'numeric' // set type, either numeric or text 
+    }); 
+    </script> 
+</head>
+
+<body > 
+<div class="header" style="position: relative; overflow-x: hidden; overflow-y: hidden; z-index: 0; ">
+<div class="header_back">
+            <a href="index.html">&larr; Index</a>
+        </div>
+<div class="headerForeground" style="float: left">
+    <span class="siteTitle">NYTProf Performance Profile</span>
+    <span class="siteSubtitle">&emsp;&emsp;<span>&laquo;&emsp;<span class="mode_btn"><a href="Catalyst-pm-381-block.html">block view</a></span>&emsp;&bull;&emsp;<span class="mode_btn"><a href="Catalyst-pm-381-line.html">line view</a></span>&emsp;&bull;&emsp;<span class="mode_btn mode_btn_selected">sub view</span>&emsp;&raquo;</span><br />
+            For script/nytprof.pl
+        </span>
+</div>
+<div class="headerForeground" style="float: right; text-align: right">
+    <span class="siteTitle">&nbsp;</span>
+    <span class="siteSubtitle">Run on Thu May 31 16:49:15 2012<br />Reported on Thu May 31 16:50:45 2012</span>
+</div>
+<div style="position: absolute; left: 0px; top: 0%; width: 100%; height: 101%; z-index: -1; background-color: rgb(17, 136, 255); "></div>
+<div style="position: absolute; left: 0px; top: 2%; width: 100%; height: 99%; z-index: -1; background-color: rgb(16, 134, 253); "></div>
+<div style="position: absolute; left: 0px; top: 4%; width: 100%; height: 97%; z-index: -1; background-color: rgb(16, 133, 252); "></div>
+<div style="position: absolute; left: 0px; top: 6%; width: 100%; height: 95%; z-index: -1; background-color: rgb(15, 131, 250); "></div>
+<div style="position: absolute; left: 0px; top: 8%; width: 100%; height: 93%; z-index: -1; background-color: rgb(15, 130, 249); "></div>
+<div style="position: absolute; left: 0px; top: 10%; width: 100%; height: 91%; z-index: -1; background-color: rgb(15, 129, 248); "></div>
+<div style="position: absolute; left: 0px; top: 12%; width: 100%; height: 89%; z-index: -1; background-color: rgb(14, 127, 246); "></div>
+<div style="position: absolute; left: 0px; top: 14%; width: 100%; height: 87%; z-index: -1; background-color: rgb(14, 126, 245); "></div>
+<div style="position: absolute; left: 0px; top: 16%; width: 100%; height: 85%; z-index: -1; background-color: rgb(14, 125, 244); "></div>
+<div style="position: absolute; left: 0px; top: 18%; width: 100%; height: 83%; z-index: -1; background-color: rgb(13, 123, 242); "></div>
+<div style="position: absolute; left: 0px; top: 20%; width: 100%; height: 81%; z-index: -1; background-color: rgb(13, 122, 241); "></div>
+<div style="position: absolute; left: 0px; top: 22%; width: 100%; height: 79%; z-index: -1; background-color: rgb(13, 121, 240); "></div>
+<div style="position: absolute; left: 0px; top: 24%; width: 100%; height: 77%; z-index: -1; background-color: rgb(12, 119, 238); "></div>
+<div style="position: absolute; left: 0px; top: 26%; width: 100%; height: 75%; z-index: -1; background-color: rgb(12, 118, 237); "></div>
+<div style="position: absolute; left: 0px; top: 28%; width: 100%; height: 73%; z-index: -1; background-color: rgb(12, 116, 235); "></div>
+<div style="position: absolute; left: 0px; top: 30%; width: 100%; height: 71%; z-index: -1; background-color: rgb(11, 115, 234); "></div>
+<div style="position: absolute; left: 0px; top: 32%; width: 100%; height: 69%; z-index: -1; background-color: rgb(11, 114, 233); "></div>
+<div style="position: absolute; left: 0px; top: 34%; width: 100%; height: 67%; z-index: -1; background-color: rgb(11, 112, 231); "></div>
+<div style="position: absolute; left: 0px; top: 36%; width: 100%; height: 65%; z-index: -1; background-color: rgb(10, 111, 230); "></div>
+<div style="position: absolute; left: 0px; top: 38%; width: 100%; height: 63%; z-index: -1; background-color: rgb(10, 110, 229); "></div>
+<div style="position: absolute; left: 0px; top: 40%; width: 100%; height: 61%; z-index: -1; background-color: rgb(10, 108, 227); "></div>
+<div style="position: absolute; left: 0px; top: 42%; width: 100%; height: 59%; z-index: -1; background-color: rgb(9, 107, 226); "></div>
+<div style="position: absolute; left: 0px; top: 44%; width: 100%; height: 57%; z-index: -1; background-color: rgb(9, 106, 225); "></div>
+<div style="position: absolute; left: 0px; top: 46%; width: 100%; height: 55%; z-index: -1; background-color: rgb(9, 104, 223); "></div>
+<div style="position: absolute; left: 0px; top: 48%; width: 100%; height: 53%; z-index: -1; background-color: rgb(8, 103, 222); "></div>
+<div style="position: absolute; left: 0px; top: 50%; width: 100%; height: 51%; z-index: -1; background-color: rgb(8, 102, 221); "></div>
+<div style="position: absolute; left: 0px; top: 52%; width: 100%; height: 49%; z-index: -1; background-color: rgb(8, 100, 219); "></div>
+<div style="position: absolute; left: 0px; top: 54%; width: 100%; height: 47%; z-index: -1; background-color: rgb(7, 99, 218); "></div>
+<div style="position: absolute; left: 0px; top: 56%; width: 100%; height: 45%; z-index: -1; background-color: rgb(7, 97, 216); "></div>
+<div style="position: absolute; left: 0px; top: 58%; width: 100%; height: 43%; z-index: -1; background-color: rgb(7, 96, 215); "></div>
+<div style="position: absolute; left: 0px; top: 60%; width: 100%; height: 41%; z-index: -1; background-color: rgb(6, 95, 214); "></div>
+<div style="position: absolute; left: 0px; top: 62%; width: 100%; height: 39%; z-index: -1; background-color: rgb(6, 93, 212); "></div>
+<div style="position: absolute; left: 0px; top: 64%; width: 100%; height: 37%; z-index: -1; background-color: rgb(6, 92, 211); "></div>
+<div style="position: absolute; left: 0px; top: 66%; width: 100%; height: 35%; z-index: -1; background-color: rgb(5, 91, 210); "></div>
+<div style="position: absolute; left: 0px; top: 68%; width: 100%; height: 33%; z-index: -1; background-color: rgb(5, 89, 208); "></div>
+<div style="position: absolute; left: 0px; top: 70%; width: 100%; height: 31%; z-index: -1; background-color: rgb(5, 88, 207); "></div>
+<div style="position: absolute; left: 0px; top: 72%; width: 100%; height: 29%; z-index: -1; background-color: rgb(4, 87, 206); "></div>
+<div style="position: absolute; left: 0px; top: 74%; width: 100%; height: 27%; z-index: -1; background-color: rgb(4, 85, 204); "></div>
+<div style="position: absolute; left: 0px; top: 76%; width: 100%; height: 25%; z-index: -1; background-color: rgb(4, 84, 203); "></div>
+<div style="position: absolute; left: 0px; top: 78%; width: 100%; height: 23%; z-index: -1; background-color: rgb(3, 82, 201); "></div>
+<div style="position: absolute; left: 0px; top: 80%; width: 100%; height: 21%; z-index: -1; background-color: rgb(3, 81, 200); "></div>
+<div style="position: absolute; left: 0px; top: 82%; width: 100%; height: 19%; z-index: -1; background-color: rgb(3, 80, 199); "></div>
+<div style="position: absolute; left: 0px; top: 84%; width: 100%; height: 17%; z-index: -1; background-color: rgb(2, 78, 197); "></div>
+<div style="position: absolute; left: 0px; top: 86%; width: 100%; height: 15%; z-index: -1; background-color: rgb(2, 77, 196); "></div>
+<div style="position: absolute; left: 0px; top: 88%; width: 100%; height: 13%; z-index: -1; background-color: rgb(2, 76, 195); "></div>
+<div style="position: absolute; left: 0px; top: 90%; width: 100%; height: 11%; z-index: -1; background-color: rgb(1, 74, 193); "></div>
+<div style="position: absolute; left: 0px; top: 92%; width: 100%; height: 9%; z-index: -1; background-color: rgb(1, 73, 192); "></div>
+<div style="position: absolute; left: 0px; top: 94%; width: 100%; height: 7%; z-index: -1; background-color: rgb(1, 72, 191); "></div>
+<div style="position: absolute; left: 0px; top: 96%; width: 100%; height: 5%; z-index: -1; background-color: rgb(0, 70, 189); "></div>
+<div style="position: absolute; left: 0px; top: 98%; width: 100%; height: 3%; z-index: -1; background-color: rgb(0, 69, 188); "></div>
+<div style="position: absolute; left: 0px; top: 100%; width: 100%; height: 1%; z-index: -1; background-color: rgb(0, 68, 187); "></div>
+</div>
+
+<div class="body_content"><br />
+<table class="file_summary"><tr><td class="h">Filename</td><td align="left"><a href="file:///Users/edenc/perl5/lib/perl5/Catalyst.pm">/Users/edenc/perl5/lib/perl5/Catalyst.pm</a></td></tr>
+<tr><td class="h">Statements</td><td align="left">Executed 1345 statements in 23.1ms</td></tr></table>
+        
+        <table id="subs_table" border="1" cellpadding="0" class="tablesorter">
+        <caption>Subroutines</caption>
+        <thead>
+        <tr>
+        <th>Calls</th>
+        <th><span title="Number of Places sub is called from">P</span></th>
+        <th><span title="Number of Files sub is called from">F</span></th>
+        <th>Exclusive<br />Time</th>
+        <th>Inclusive<br />Time</th>
+        <th>Subroutine</th>
+        </tr>
+        </thead>
+    <tbody>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">4.62ms</span></td><td class="c0"><span title="0.6%">278ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@16</span>Catalyst::<a href="Catalyst-pm-381-sub.html#16">BEGIN@16</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">4.01ms</span></td><td class="c0"><span title="0.0%">4.28ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@26</span>Catalyst::<a href="Catalyst-pm-381-sub.html#26">BEGIN@26</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">3.45ms</span></td><td class="c0"><span title="0.4%">181ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@12</span>Catalyst::<a href="Catalyst-pm-381-sub.html#12">BEGIN@12</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">2.99ms</span></td><td class="c0"><span title="0.0%">11.1ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@19</span>Catalyst::<a href="Catalyst-pm-381-sub.html#19">BEGIN@19</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">2.56ms</span></td><td class="c0"><span title="0.0%">2.62ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@20</span>Catalyst::<a href="Catalyst-pm-381-sub.html#20">BEGIN@20</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">2.04ms</span></td><td class="c0"><span title="0.0%">5.20ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@15</span>Catalyst::<a href="Catalyst-pm-381-sub.html#15">BEGIN@15</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">1.79ms</span></td><td class="c0"><span title="0.1%">53.3ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@11</span>Catalyst::<a href="Catalyst-pm-381-sub.html#11">BEGIN@11</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">1.14ms</span></td><td class="c0"><span title="0.1%">63.0ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@14</span>Catalyst::<a href="Catalyst-pm-381-sub.html#14">BEGIN@14</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">1.08ms</span></td><td class="c0"><span title="0.0%">2.81ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@27</span>Catalyst::<a href="Catalyst-pm-381-sub.html#27">BEGIN@27</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">1.02ms</span></td><td class="c0"><span title="0.1%">31.1ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@32</span>Catalyst::<a href="Catalyst-pm-381-sub.html#32">BEGIN@32</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">972&micro;s</span></td><td class="c0"><span title="0.1%">45.2ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@13</span>Catalyst::<a href="Catalyst-pm-381-sub.html#13">BEGIN@13</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">724&micro;s</span></td><td class="c0"><span title="0.6%">271ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@8</span>Catalyst::<a href="Catalyst-pm-381-sub.html#8">BEGIN@8</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">638&micro;s</span></td><td class="c1"><span title="0.0%">771&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@37</span>Catalyst::<a href="Catalyst-pm-381-sub.html#37">BEGIN@37</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">398&micro;s</span></td><td class="c0"><span title="0.1%">29.8ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@9</span>Catalyst::<a href="Catalyst-pm-381-sub.html#9">BEGIN@9</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">389&micro;s</span></td><td class="c0"><span title="0.0%">1.89ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@36</span>Catalyst::<a href="Catalyst-pm-381-sub.html#36">BEGIN@36</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">383&micro;s</span></td><td class="c0"><span title="0.1%">27.9ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@10</span>Catalyst::<a href="Catalyst-pm-381-sub.html#10">BEGIN@10</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">381&micro;s</span></td><td class="c2"><span title="0.0%">515&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@39</span>Catalyst::<a href="Catalyst-pm-381-sub.html#39">BEGIN@39</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">335&micro;s</span></td><td class="c3"><span title="0.0%">402&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@38</span>Catalyst::<a href="Catalyst-pm-381-sub.html#38">BEGIN@38</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">334&micro;s</span></td><td class="c0"><span title="3.3%">1.60s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::setup</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1060">setup</a></span></td></tr>
+<tr><td class="c0">9</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">326&micro;s</span></td><td class="c0"><span title="0.0%">17.0ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::execute</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1646">execute</a>&nbsp;(recurses: max depth 3, inclusive time 32.2ms)</span></td></tr>
+<tr><td class="c0">9</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">245&micro;s</span></td><td class="c0"><span title="1.6%">772ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::setup_component</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2568">setup_component</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">239&micro;s</span></td><td class="c0"><span title="2.3%">1.13s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::setup_components</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2486">setup_components</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">197&micro;s</span></td><td class="c0"><span title="0.2%">103ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::setup_plugins</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2945">setup_plugins</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c1">2</td><td class="c1">2</td><td class="c0"><span title="0.0%">174&micro;s</span></td><td class="c0"><span title="0.0%">9.38ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1992">prepare</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">129&micro;s</span></td><td class="c0"><span title="0.0%">4.95ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:2032]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2009">__ANON__[:2032]</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">114&micro;s</span></td><td class="c0"><span title="0.0%">7.40ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::_register_plugin</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2925">_register_plugin</a></span></td></tr>
+<tr><td class="c0">33</td><td class="c0">14</td><td class="c0">12</td><td class="c0"><span title="0.0%">114&micro;s</span></td><td class="c3"><span title="0.0%">167&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::req</span>Catalyst::<a href="Catalyst-pm-381-sub.html#72">req</a></span></td></tr>
+<tr><td class="c0">10</td><td class="c1">2</td><td class="c1">2</td><td class="c0"><span title="0.0%">90&micro;s</span></td><td class="c3"><span title="0.0%">305&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::component</span>Catalyst::<a href="Catalyst-pm-381-sub.html#832">component</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">89&micro;s</span></td><td class="c0"><span title="0.0%">22.6ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:1966]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1955">__ANON__[:1966]</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c1">2</td><td class="c1">2</td><td class="c0"><span title="0.0%">87&micro;s</span></td><td class="c0"><span title="0.0%">17.3ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::import</span>Catalyst::<a href="Catalyst-pm-381-sub.html#105">import</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c1">2</td><td class="c3">1</td><td class="c0"><span title="0.0%">81&micro;s</span></td><td class="c0"><span title="0.0%">9.29ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::setup_home</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2819">setup_home</a></span></td></tr>
+<tr><td class="c0">13</td><td class="c0">3</td><td class="c3">1</td><td class="c0"><span title="0.0%">79&micro;s</span></td><td class="c0"><span title="0.0%">1.23ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::_filter_component</span>Catalyst::<a href="Catalyst-pm-381-sub.html#610">_filter_component</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">71&micro;s</span></td><td class="c0"><span title="0.1%">29.9ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::setup_engine</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2653">setup_engine</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">68&micro;s</span></td><td class="c3"><span title="0.0%">379&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::finalize_headers</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1843">finalize_headers</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c0"><span title="0.0%">66&micro;s</span></td><td class="c0"><span title="0.0%">901&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::finalize</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1770">finalize</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c1"><span title="0.0%">58&micro;s</span></td><td class="c3"><span title="0.0%">126&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::CORE:ftdir</span>Catalyst::<a href="Catalyst-pm-381-sub.html#Catalyst__CORE_ftdir">CORE:ftdir</a>&nbsp;(opcode)</span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c1"><span title="0.0%">53&micro;s</span></td><td class="c0"><span title="0.0%">6.19ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::locate_components</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2532">locate_components</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c1">2</td><td class="c1">2</td><td class="c1"><span title="0.0%">52&micro;s</span></td><td class="c1"><span title="0.0%">742&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::path_to</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1015">path_to</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c1"><span title="0.0%">50&micro;s</span></td><td class="c3"><span title="0.0%">368&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:56]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#51">__ANON__[:56]</a></span></td></tr>
+<tr><td class="c0">6</td><td class="c0">4</td><td class="c0">3</td><td class="c1"><span title="0.0%">48&micro;s</span></td><td class="c0"><span title="0.0%">17.2ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::forward</span>Catalyst::<a href="Catalyst-pm-381-sub.html#358">forward</a>&nbsp;(recurses: max depth 2, inclusive time 18.0ms)</span></td></tr>
+<tr><td class="c0">7</td><td class="c1">2</td><td class="c1">2</td><td class="c1"><span title="0.0%">48&micro;s</span></td><td class="c3"><span title="0.0%">224&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::get_action</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1933">get_action</a></span></td></tr>
+<tr><td class="c0">3</td><td class="c0">3</td><td class="c1">2</td><td class="c1"><span title="0.0%">47&micro;s</span></td><td class="c0"><span title="0.0%">1.24ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::model</span>Catalyst::<a href="Catalyst-pm-381-sub.html#678">model</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c1"><span title="0.0%">47&micro;s</span></td><td class="c1"><span title="0.0%">629&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_body</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2069">prepare_body</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c1"><span title="0.0%">46&micro;s</span></td><td class="c0"><span title="0.2%">118ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::setup_dispatcher</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2610">setup_dispatcher</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c2"><span title="0.0%">41&micro;s</span></td><td class="c1"><span title="0.0%">793&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::setup_log</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2851">setup_log</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c2"><span title="0.0%">41&micro;s</span></td><td class="c0"><span title="0.0%">23.1ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::handle_request</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1950">handle_request</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c2"><span title="0.0%">34&micro;s</span></td><td class="c3"><span title="0.0%">279&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:64]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#61">__ANON__[:64]</a></span></td></tr>
+<tr><td class="c0">9</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">33&micro;s</span></td><td class="c3"><span title="0.0%">47&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::depth</span>Catalyst::<a href="Catalyst-pm-381-sub.html#69">depth</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">32&micro;s</span></td><td class="c0"><span title="0.0%">17.3ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::setup_stats</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2887">setup_stats</a></span></td></tr>
+<tr><td class="c0">21</td><td class="c0">16</td><td class="c0">7</td><td class="c3"><span title="0.0%">30&micro;s</span></td><td class="c3"><span title="0.0%">30&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::debug</span>Catalyst::<a href="Catalyst-pm-381-sub.html#989">debug</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">26&micro;s</span></td><td class="c3"><span title="0.0%">266&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_parameters</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2141">prepare_parameters</a></span></td></tr>
+<tr><td class="c0">3</td><td class="c0">3</td><td class="c3">1</td><td class="c3"><span title="0.0%">25&micro;s</span></td><td class="c3"><span title="0.0%">252&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::get_actions</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1942">get_actions</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">24&micro;s</span></td><td class="c3"><span title="0.0%">53&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@1154</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1154">BEGIN@1154</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">23&micro;s</span></td><td class="c3"><span title="0.0%">51&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@1665</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1665">BEGIN@1665</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">23&micro;s</span></td><td class="c3"><span title="0.0%">50&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@358</span>Catalyst::<a href="Catalyst-pm-381-sub.html#358">BEGIN@358</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">22&micro;s</span></td><td class="c3"><span title="0.0%">31&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@28</span>Catalyst::<a href="Catalyst-pm-381-sub.html#28">BEGIN@28</a></span></td></tr>
+<tr><td class="c0">21</td><td class="c0">4</td><td class="c3">1</td><td class="c3"><span title="0.0%">22&micro;s</span></td><td class="c3"><span title="0.0%">22&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::use_stats</span>Catalyst::<a href="Catalyst-pm-381-sub.html#3009">use_stats</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">21&micro;s</span></td><td class="c3"><span title="0.0%">21&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@41</span>Catalyst::<a href="Catalyst-pm-381-sub.html#41">BEGIN@41</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">21&micro;s</span></td><td class="c3"><span title="0.0%">64&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::setup_finalize</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1216">setup_finalize</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">21&micro;s</span></td><td class="c0"><span title="0.0%">5.37ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@3</span>Catalyst::<a href="Catalyst-pm-381-sub.html#3">BEGIN@3</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">20&micro;s</span></td><td class="c3"><span title="0.0%">352&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_headers</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2133">prepare_headers</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">20&micro;s</span></td><td class="c3"><span title="0.0%">272&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@31</span>Catalyst::<a href="Catalyst-pm-381-sub.html#31">BEGIN@31</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">20&micro;s</span></td><td class="c3"><span title="0.0%">20&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@24</span>Catalyst::<a href="Catalyst-pm-381-sub.html#24">BEGIN@24</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">19&micro;s</span></td><td class="c3"><span title="0.0%">27&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@33</span>Catalyst::<a href="Catalyst-pm-381-sub.html#33">BEGIN@33</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">19&micro;s</span></td><td class="c3"><span title="0.0%">52&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@30</span>Catalyst::<a href="Catalyst-pm-381-sub.html#30">BEGIN@30</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">18&micro;s</span></td><td class="c3"><span title="0.0%">68&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_uploads</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2379">prepare_uploads</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">18&micro;s</span></td><td class="c0"><span title="0.0%">1.03ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_action</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2061">prepare_action</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">17&micro;s</span></td><td class="c3"><span title="0.0%">193&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_connection</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2110">prepare_connection</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">17&micro;s</span></td><td class="c1"><span title="0.0%">807&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_request</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2371">prepare_request</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">17&micro;s</span></td><td class="c3"><span title="0.0%">121&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_query_parameters</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2161">prepare_query_parameters</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">17&micro;s</span></td><td class="c1"><span title="0.0%">633&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_path</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2153">prepare_path</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">17&micro;s</span></td><td class="c3"><span title="0.0%">160&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_read</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2363">prepare_read</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">17&micro;s</span></td><td class="c3"><span title="0.0%">132&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@3427</span>Catalyst::<a href="Catalyst-pm-381-sub.html#3427">BEGIN@3427</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">16&micro;s</span></td><td class="c3"><span title="0.0%">99&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@34</span>Catalyst::<a href="Catalyst-pm-381-sub.html#34">BEGIN@34</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">16&micro;s</span></td><td class="c0"><span title="0.3%">131ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::setup_actions</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2469">setup_actions</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">16&micro;s</span></td><td class="c3"><span title="0.0%">73&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@29</span>Catalyst::<a href="Catalyst-pm-381-sub.html#29">BEGIN@29</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">16&micro;s</span></td><td class="c3"><span title="0.0%">24&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@17</span>Catalyst::<a href="Catalyst-pm-381-sub.html#17">BEGIN@17</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">16&micro;s</span></td><td class="c3"><span title="0.0%">170&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_cookies</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2124">prepare_cookies</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">16&micro;s</span></td><td class="c3"><span title="0.0%">67&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@35</span>Catalyst::<a href="Catalyst-pm-381-sub.html#35">BEGIN@35</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">14&micro;s</span></td><td class="c3"><span title="0.0%">72&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_body_parameters</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2099">prepare_body_parameters</a></span></td></tr>
+<tr><td class="c0">16</td><td class="c0">3</td><td class="c3">1</td><td class="c3"><span title="0.0%">14&micro;s</span></td><td class="c3"><span title="0.0%">14&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::CORE:match</span>Catalyst::<a href="Catalyst-pm-381-sub.html#Catalyst__CORE_match">CORE:match</a>&nbsp;(opcode)</span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">14&micro;s</span></td><td class="c3"><span title="0.0%">28&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@1683</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1683">BEGIN@1683</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">14&micro;s</span></td><td class="c3"><span title="0.0%">14&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@25</span>Catalyst::<a href="Catalyst-pm-381-sub.html#25">BEGIN@25</a></span></td></tr>
+<tr><td class="c0">3</td><td class="c0">3</td><td class="c1">2</td><td class="c3"><span title="0.0%">13&micro;s</span></td><td class="c3"><span title="0.0%">21&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::res</span>Catalyst::<a href="Catalyst-pm-381-sub.html#75">res</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">12&micro;s</span></td><td class="c3"><span title="0.0%">41&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::psgi_app</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2808">psgi_app</a></span></td></tr>
+<tr><td class="c0">8</td><td class="c0">3</td><td class="c3">1</td><td class="c3"><span title="0.0%">12&micro;s</span></td><td class="c3"><span title="0.0%">12&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::CORE:subst</span>Catalyst::<a href="Catalyst-pm-381-sub.html#Catalyst__CORE_subst">CORE:subst</a>&nbsp;(opcode)</span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">11&micro;s</span></td><td class="c2"><span title="0.0%">493&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@7</span>Catalyst::<a href="Catalyst-pm-381-sub.html#7">BEGIN@7</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">10&micro;s</span></td><td class="c3"><span title="0.0%">10&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@21</span>Catalyst::<a href="Catalyst-pm-381-sub.html#21">BEGIN@21</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">10&micro;s</span></td><td class="c3"><span title="0.0%">11&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::log_request</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2185">log_request</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">10&micro;s</span></td><td class="c0"><span title="0.0%">17.2ms</span></td><td class="sub_name"><span style="display: none;">Catalyst::::dispatch</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1614">dispatch</a></span></td></tr>
+<tr><td class="c0">4</td><td class="c0">4</td><td class="c1">2</td><td class="c3"><span title="0.0%">9&micro;s</span></td><td class="c3"><span title="0.0%">9&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::error</span>Catalyst::<a href="Catalyst-pm-381-sub.html#494">error</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">9&micro;s</span></td><td class="c3"><span title="0.0%">35&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::finalize_uploads</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1925">finalize_uploads</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">9&micro;s</span></td><td class="c3"><span title="0.0%">39&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::finalize_cookies</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1827">finalize_cookies</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">9&micro;s</span></td><td class="c3"><span title="0.0%">219&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@6</span>Catalyst::<a href="Catalyst-pm-381-sub.html#6">BEGIN@6</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">9&micro;s</span></td><td class="c3"><span title="0.0%">266&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::finalize_body</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1819">finalize_body</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c1">2</td><td class="c3">1</td><td class="c3"><span title="0.0%">8&micro;s</span></td><td class="c3"><span title="0.0%">8&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::CORE:sort</span>Catalyst::<a href="Catalyst-pm-381-sub.html#Catalyst__CORE_sort">CORE:sort</a>&nbsp;(opcode)</span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">7&micro;s</span></td><td class="c3"><span title="0.0%">7&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@18</span>Catalyst::<a href="Catalyst-pm-381-sub.html#18">BEGIN@18</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">7&micro;s</span></td><td class="c3"><span title="0.0%">7&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@4</span>Catalyst::<a href="Catalyst-pm-381-sub.html#4">BEGIN@4</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">7&micro;s</span></td><td class="c3"><span title="0.0%">7&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@22</span>Catalyst::<a href="Catalyst-pm-381-sub.html#22">BEGIN@22</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">6&micro;s</span></td><td class="c3"><span title="0.0%">6&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::BEGIN@23</span>Catalyst::<a href="Catalyst-pm-381-sub.html#23">BEGIN@23</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">6&micro;s</span></td><td class="c3"><span title="0.0%">6&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:43]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#43">__ANON__[:43]</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">6&micro;s</span></td><td class="c3"><span title="0.0%">6&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:44]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#44">__ANON__[:44]</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">5&micro;s</span></td><td class="c3"><span title="0.0%">6&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::log_response</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2217">log_response</a></span></td></tr>
+<tr><td class="c1">2</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">5&micro;s</span></td><td class="c3"><span title="0.0%">5&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:48]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#48">__ANON__[:48]</a></span></td></tr>
+<tr><td class="c3">1</td><td class="c3">1</td><td class="c3">1</td><td class="c3"><span title="0.0%">2&micro;s</span></td><td class="c3"><span title="0.0%">2&micro;s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:1155]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1155">__ANON__[:1155]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:128]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#128">__ANON__[:128]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:1970]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1967">__ANON__[:1970]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:2048]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2034">__ANON__[:2048]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:2351]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2348">__ANON__[:2351]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:2689]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2685">__ANON__[:2689]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:2767]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2767">__ANON__[:2767]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:2773]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2768">__ANON__[:2773]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:2780]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2780">__ANON__[:2780]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:2786]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2781">__ANON__[:2786]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:2870]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2870">__ANON__[:2870]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:2894]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2894">__ANON__[:2894]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:473]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#460">__ANON__[:473]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::__ANON__[:945]</span>Catalyst::<a href="Catalyst-pm-381-sub.html#937">__ANON__[:945]</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::_application</span>Catalyst::<a href="Catalyst-pm-381-sub.html#136">_application</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::_comp_names</span>Catalyst::<a href="Catalyst-pm-381-sub.html#597">_comp_names</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::_comp_names_search_prefixes</span>Catalyst::<a href="Catalyst-pm-381-sub.html#534">_comp_names_search_prefixes</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::_comp_search_prefixes</span>Catalyst::<a href="Catalyst-pm-381-sub.html#528">_comp_search_prefixes</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::_finalized_psgi_app</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2699">_finalized_psgi_app</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::_make_immutable_if_needed</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2432">_make_immutable_if_needed</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::_setup_psgi_app</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2710">_setup_psgi_app</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::_stats_finish_execute</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1759">_stats_finish_execute</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::_stats_start_execute</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1696">_stats_start_execute</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::apply_default_middlewares</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2762">apply_default_middlewares</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::clear_errors</span>Catalyst::<a href="Catalyst-pm-381-sub.html#523">clear_errors</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::comp</span>Catalyst::<a href="Catalyst-pm-381-sub.html#70">comp</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::controller</span>Catalyst::<a href="Catalyst-pm-381-sub.html#639">controller</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::controllers</span>Catalyst::<a href="Catalyst-pm-381-sub.html#784">controllers</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::detach</span>Catalyst::<a href="Catalyst-pm-381-sub.html#373">detach</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::dump_these</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1627">dump_these</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::engine_class</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2637">engine_class</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::expand_component_module</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2559">expand_component_module</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::finalize_error</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1835">finalize_error</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::finalize_output</span>Catalyst::<a href="Catalyst-pm-381-sub.html#80">finalize_output</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::finalize_read</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1917">finalize_read</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::go</span>Catalyst::<a href="Catalyst-pm-381-sub.html#433">go</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::log_headers</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2338">log_headers</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::log_request_headers</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2330">log_request_headers</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::log_request_parameters</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2273">log_request_parameters</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::log_request_uploads</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2301">log_request_uploads</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::log_response_headers</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2265">log_response_headers</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::log_response_status_line</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2245">log_response_status_line</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::models</span>Catalyst::<a href="Catalyst-pm-381-sub.html#795">models</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::plugin</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1022">plugin</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_body_chunk</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2088">prepare_body_chunk</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::prepare_write</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2391">prepare_write</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::read</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2416">read</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::registered_plugins</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2917">registered_plugins</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::run</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2424">run</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::set_action</span>Catalyst::<a href="Catalyst-pm-381-sub.html#2461">set_action</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::uri_for</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1266">uri_for</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::uri_for_action</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1418">uri_for_action</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::version</span>Catalyst::<a href="Catalyst-pm-381-sub.html#3036">version</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::view</span>Catalyst::<a href="Catalyst-pm-381-sub.html#736">view</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::views</span>Catalyst::<a href="Catalyst-pm-381-sub.html#807">views</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::visit</span>Catalyst::<a href="Catalyst-pm-381-sub.html#407">visit</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::welcome_message</span>Catalyst::<a href="Catalyst-pm-381-sub.html#1435">welcome_message</a></span></td></tr>
+<tr><td class="c3">0</td><td class="c3">0</td><td class="c3">0</td><td class="c3"><span title="0.0%">0s</span></td><td class="c3"><span title="0.0%">0s</span></td><td class="sub_name"><span style="display: none;">Catalyst::::write</span>Catalyst::<a href="Catalyst-pm-381-sub.html#3020">write</a></span></td></tr>
+</tbody></table>
+                Call graph for these subroutines as a
+                <a href="http://en.wikipedia.org/wiki/Graphviz">Graphviz</a>
+                <a href="Users-edenc-perl5-lib-perl5-Catalyst-pm.dot">dot language file</a>.
+            
+      <table border="1" cellpadding="0">
+      <thead>
+      <tr><th>Line</th>
+      <th><span title="Number of statements executed">State<br />ments</span></th>
+      <th><span title="Time spend executing statements on the line,
+        excluding time spent executing statements in any called subroutines">Time<br />on line</span></th>
+      <th><span title="Number of subroutines calls">Calls</span></th>
+      <th><span title="Time spent in subroutines called (inclusive)">Time<br />in subs</span></th>
+      <th class="left_indent_header">Code</th>
+      </tr>
+
+      </thead>
+      <tbody>
+    <tr><td class="h"><a name="1"></a>1</td><td></td><td></td><td></td><td></td><td class="s">package Catalyst;</td></tr>
+<tr><td class="h"><a name="2"></a>2</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3"></a>3</td><td class="c3">2</td><td class="c2"><span title="Avg 33&micro;s">66&micro;s</span></td><td class="c3">2</td><td class="c0">10.7ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 5.37ms (21&micro;s+5.35) within Catalyst::BEGIN@3 which was called:
+#    once (21&micro;s+5.35ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#3">line 3</a></div></div>use Moose;<div class="calls"><div class="calls_out"># spent  5.37ms making 1 call to <a href="Catalyst-pm-381-sub.html#3">Catalyst::BEGIN@3</a>
+# spent  5.35ms making 1 call to <a href="Moose-Exporter-pm-82-sub.html#402">Moose::Exporter::__ANON__[Moose/Exporter.pm:492]</a></div></div></td></tr>
+<tr><td class="h"><a name="4"></a>4</td><td class="c3">2</td><td class="c3"><span title="Avg 20&micro;s">41&micro;s</span></td><td class="c3">1</td><td class="c3">7&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 7&micro;s within Catalyst::BEGIN@4 which was called:
+#    once (7&micro;s+0s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#4">line 4</a></div></div>use Moose::Meta::Class ();<div class="calls"><div class="calls_out"># spent     7&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#4">Catalyst::BEGIN@4</a></div></div></td></tr>
+<tr><td class="h"><a name="5"></a>5</td><td class="c3">1</td><td class="c3"><span title="Avg 3&micro;s">3&micro;s</span></td><td class="c3">1</td><td class="c0">1.06ms</td><td class="s">extends 'Catalyst::Component';<div class="calls"><div class="calls_out"># spent  1.06ms making 1 call to <a href="Moose-pm-62-sub.html#55">Moose::extends</a></div></div></td></tr>
+<tr><td class="h"><a name="6"></a>6</td><td class="c3">2</td><td class="c3"><span title="Avg 22&micro;s">44&micro;s</span></td><td class="c3">2</td><td class="c0">429&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 219&micro;s (9+210) within Catalyst::BEGIN@6 which was called:
+#    once (9&micro;s+210&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#6">line 6</a></div></div>use Moose::Util qw/find_meta/;<div class="calls"><div class="calls_out"># spent   219&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#6">Catalyst::BEGIN@6</a>
+# spent   210&micro;s making 1 call to <a href="Sub-Exporter-pm-112-sub.html#711">Sub::Exporter::__ANON__[Sub/Exporter.pm:756]</a></div></div></td></tr>
+<tr><td class="h"><a name="7"></a>7</td><td class="c3">2</td><td class="c2"><span title="Avg 29&micro;s">58&micro;s</span></td><td class="c3">2</td><td class="c0">976&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 493&micro;s (11+482) within Catalyst::BEGIN@7 which was called:
+#    once (11&micro;s+482&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#7">line 7</a></div></div>use namespace::clean -except =&gt; 'meta';<div class="calls"><div class="calls_out"># spent   493&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#7">Catalyst::BEGIN@7</a>
+# spent   482&micro;s making 1 call to <a href="namespace-clean-pm-379-sub.html#288">namespace::clean::import</a></div></div></td></tr>
+<tr><td class="h"><a name="8"></a>8</td><td class="c3">2</td><td class="c0"><span title="Avg 138&micro;s">276&micro;s</span></td><td class="c3">1</td><td class="c0">271ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 271ms (724&micro;s+270) within Catalyst::BEGIN@8 which was called:
+#    once (724&micro;s+270ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#8">line 8</a></div></div>use Catalyst::Exception;<div class="calls"><div class="calls_out"># spent   271ms making 1 call to <a href="Catalyst-pm-381-sub.html#8">Catalyst::BEGIN@8</a></div></div></td></tr>
+<tr><td class="h"><a name="9"></a>9</td><td class="c3">2</td><td class="c0"><span title="Avg 97&micro;s">194&micro;s</span></td><td class="c3">1</td><td class="c0">29.8ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 29.8ms (398&micro;s+29.4) within Catalyst::BEGIN@9 which was called:
+#    once (398&micro;s+29.4ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#9">line 9</a></div></div>use Catalyst::Exception::Detach;<div class="calls"><div class="calls_out"># spent  29.8ms making 1 call to <a href="Catalyst-pm-381-sub.html#9">Catalyst::BEGIN@9</a></div></div></td></tr>
+<tr><td class="h"><a name="10"></a>10</td><td class="c3">2</td><td class="c0"><span title="Avg 108&micro;s">217&micro;s</span></td><td class="c3">1</td><td class="c0">27.9ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 27.9ms (383&micro;s+27.5) within Catalyst::BEGIN@10 which was called:
+#    once (383&micro;s+27.5ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#10">line 10</a></div></div>use Catalyst::Exception::Go;<div class="calls"><div class="calls_out"># spent  27.9ms making 1 call to <a href="Catalyst-pm-381-sub.html#10">Catalyst::BEGIN@10</a></div></div></td></tr>
+<tr><td class="h"><a name="11"></a>11</td><td class="c3">2</td><td class="c0"><span title="Avg 111&micro;s">222&micro;s</span></td><td class="c3">1</td><td class="c0">53.3ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 53.3ms (1.79+51.5) within Catalyst::BEGIN@11 which was called:
+#    once (1.79ms+51.5ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#11">line 11</a></div></div>use Catalyst::Log;<div class="calls"><div class="calls_out"># spent  53.3ms making 1 call to <a href="Catalyst-pm-381-sub.html#11">Catalyst::BEGIN@11</a></div></div></td></tr>
+<tr><td class="h"><a name="12"></a>12</td><td class="c3">2</td><td class="c0"><span title="Avg 118&micro;s">236&micro;s</span></td><td class="c3">1</td><td class="c0">181ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 181ms (3.45+178) within Catalyst::BEGIN@12 which was called:
+#    once (3.45ms+178ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#12">line 12</a></div></div>use Catalyst::Request;<div class="calls"><div class="calls_out"># spent   181ms making 1 call to <a href="Catalyst-pm-381-sub.html#12">Catalyst::BEGIN@12</a></div></div></td></tr>
+<tr><td class="h"><a name="13"></a>13</td><td class="c3">2</td><td class="c0"><span title="Avg 100&micro;s">199&micro;s</span></td><td class="c3">1</td><td class="c0">45.2ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 45.2ms (972&micro;s+44.2) within Catalyst::BEGIN@13 which was called:
+#    once (972&micro;s+44.2ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#13">line 13</a></div></div>use Catalyst::Request::Upload;<div class="calls"><div class="calls_out"># spent  45.2ms making 1 call to <a href="Catalyst-pm-381-sub.html#13">Catalyst::BEGIN@13</a></div></div></td></tr>
+<tr><td class="h"><a name="14"></a>14</td><td class="c3">2</td><td class="c0"><span title="Avg 101&micro;s">203&micro;s</span></td><td class="c3">1</td><td class="c0">63.0ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 63.0ms (1.14+61.8) within Catalyst::BEGIN@14 which was called:
+#    once (1.14ms+61.8ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#14">line 14</a></div></div>use Catalyst::Response;<div class="calls"><div class="calls_out"># spent  63.0ms making 1 call to <a href="Catalyst-pm-381-sub.html#14">Catalyst::BEGIN@14</a></div></div></td></tr>
+<tr><td class="h"><a name="15"></a>15</td><td class="c3">2</td><td class="c0"><span title="Avg 95&micro;s">189&micro;s</span></td><td class="c3">1</td><td class="c0">5.20ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 5.20ms (2.04+3.16) within Catalyst::BEGIN@15 which was called:
+#    once (2.04ms+3.16ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#15">line 15</a></div></div>use Catalyst::Utils;<div class="calls"><div class="calls_out"># spent  5.20ms making 1 call to <a href="Catalyst-pm-381-sub.html#15">Catalyst::BEGIN@15</a></div></div></td></tr>
+<tr><td class="h"><a name="16"></a>16</td><td class="c3">2</td><td class="c0"><span title="Avg 110&micro;s">219&micro;s</span></td><td class="c3">1</td><td class="c0">278ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 278ms (4.62+273) within Catalyst::BEGIN@16 which was called:
+#    once (4.62ms+273ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#16">line 16</a></div></div>use Catalyst::Controller;<div class="calls"><div class="calls_out"># spent   278ms making 1 call to <a href="Catalyst-pm-381-sub.html#16">Catalyst::BEGIN@16</a></div></div></td></tr>
+<tr><td class="h"><a name="17"></a>17</td><td class="c3">2</td><td class="c3"><span title="Avg 21&micro;s">42&micro;s</span></td><td class="c3">2</td><td class="c3">32&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 24&micro;s (16+8) within Catalyst::BEGIN@17 which was called:
+#    once (16&micro;s+8&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#17">line 17</a></div></div>use Data::OptList;<div class="calls"><div class="calls_out"># spent    24&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#17">Catalyst::BEGIN@17</a>
+# spent     8&micro;s making 1 call to <a href="Sub-Install-pm-73-sub.html#277">Sub::Install::__ANON__[Sub/Install.pm:284]</a></div></div></td></tr>
+<tr><td class="h"><a name="18"></a>18</td><td class="c3">2</td><td class="c3"><span title="Avg 18&micro;s">36&micro;s</span></td><td class="c3">1</td><td class="c3">7&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 7&micro;s within Catalyst::BEGIN@18 which was called:
+#    once (7&micro;s+0s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#18">line 18</a></div></div>use Devel::InnerPackage ();<div class="calls"><div class="calls_out"># spent     7&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#18">Catalyst::BEGIN@18</a></div></div></td></tr>
+<tr><td class="h"><a name="19"></a>19</td><td class="c3">2</td><td class="c0"><span title="Avg 116&micro;s">232&micro;s</span></td><td class="c3">1</td><td class="c0">11.1ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 11.1ms (2.99+8.12) within Catalyst::BEGIN@19 which was called:
+#    once (2.99ms+8.12ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#19">line 19</a></div></div>use Module::Pluggable::Object ();<div class="calls"><div class="calls_out"># spent  11.1ms making 1 call to <a href="Catalyst-pm-381-sub.html#19">Catalyst::BEGIN@19</a></div></div></td></tr>
+<tr><td class="h"><a name="20"></a>20</td><td class="c3">2</td><td class="c0"><span title="Avg 123&micro;s">246&micro;s</span></td><td class="c3">1</td><td class="c0">2.62ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 2.62ms (2.56+64&micro;s) within Catalyst::BEGIN@20 which was called:
+#    once (2.56ms+64&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#20">line 20</a></div></div>use Text::SimpleTable ();<div class="calls"><div class="calls_out"># spent  2.62ms making 1 call to <a href="Catalyst-pm-381-sub.html#20">Catalyst::BEGIN@20</a></div></div></td></tr>
+<tr><td class="h"><a name="21"></a>21</td><td class="c3">2</td><td class="c3"><span title="Avg 18&micro;s">35&micro;s</span></td><td class="c3">1</td><td class="c3">10&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 10&micro;s within Catalyst::BEGIN@21 which was called:
+#    once (10&micro;s+0s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#21">line 21</a></div></div>use Path::Class::Dir ();<div class="calls"><div class="calls_out"># spent    10&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#21">Catalyst::BEGIN@21</a></div></div></td></tr>
+<tr><td class="h"><a name="22"></a>22</td><td class="c3">2</td><td class="c3"><span title="Avg 16&micro;s">33&micro;s</span></td><td class="c3">1</td><td class="c3">7&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 7&micro;s within Catalyst::BEGIN@22 which was called:
+#    once (7&micro;s+0s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#22">line 22</a></div></div>use Path::Class::File ();<div class="calls"><div class="calls_out"># spent     7&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#22">Catalyst::BEGIN@22</a></div></div></td></tr>
+<tr><td class="h"><a name="23"></a>23</td><td class="c3">2</td><td class="c3"><span title="Avg 17&micro;s">34&micro;s</span></td><td class="c3">1</td><td class="c3">6&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 6&micro;s within Catalyst::BEGIN@23 which was called:
+#    once (6&micro;s+0s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#23">line 23</a></div></div>use URI ();<div class="calls"><div class="calls_out"># spent     6&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#23">Catalyst::BEGIN@23</a></div></div></td></tr>
+<tr><td class="h"><a name="24"></a>24</td><td class="c3">2</td><td class="c3"><span title="Avg 24&micro;s">49&micro;s</span></td><td class="c3">1</td><td class="c3">20&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 20&micro;s within Catalyst::BEGIN@24 which was called:
+#    once (20&micro;s+0s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#24">line 24</a></div></div>use URI::http;<div class="calls"><div class="calls_out"># spent    20&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#24">Catalyst::BEGIN@24</a></div></div></td></tr>
+<tr><td class="h"><a name="25"></a>25</td><td class="c3">2</td><td class="c3"><span title="Avg 23&micro;s">46&micro;s</span></td><td class="c3">1</td><td class="c3">14&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 14&micro;s within Catalyst::BEGIN@25 which was called:
+#    once (14&micro;s+0s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#25">line 25</a></div></div>use URI::https;<div class="calls"><div class="calls_out"># spent    14&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#25">Catalyst::BEGIN@25</a></div></div></td></tr>
+<tr><td class="h"><a name="26"></a>26</td><td class="c3">2</td><td class="c0"><span title="Avg 108&micro;s">216&micro;s</span></td><td class="c3">2</td><td class="c0">4.29ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 4.28ms (4.01+271&micro;s) within Catalyst::BEGIN@26 which was called:
+#    once (4.01ms+271&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#26">line 26</a></div></div>use Tree::Simple qw/use_weak_refs/;<div class="calls"><div class="calls_out"># spent  4.28ms making 1 call to <a href="Catalyst-pm-381-sub.html#26">Catalyst::BEGIN@26</a>
+# spent    16&micro;s making 1 call to <a href="Tree-Simple-pm-639-sub.html#19">Tree::Simple::import</a></div></div></td></tr>
+<tr><td class="h"><a name="27"></a>27</td><td class="c3">2</td><td class="c0"><span title="Avg 111&micro;s">221&micro;s</span></td><td class="c3">1</td><td class="c0">2.81ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 2.81ms (1.08+1.72) within Catalyst::BEGIN@27 which was called:
+#    once (1.08ms+1.72ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#27">line 27</a></div></div>use Tree::Simple::Visitor::FindByUID;<div class="calls"><div class="calls_out"># spent  2.81ms making 1 call to <a href="Catalyst-pm-381-sub.html#27">Catalyst::BEGIN@27</a></div></div></td></tr>
+<tr><td class="h"><a name="28"></a>28</td><td class="c3">2</td><td class="c3"><span title="Avg 24&micro;s">47&micro;s</span></td><td class="c3">2</td><td class="c3">41&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 31&micro;s (22+9) within Catalyst::BEGIN@28 which was called:
+#    once (22&micro;s+9&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#28">line 28</a></div></div>use Class::C3::Adopt::NEXT;<div class="calls"><div class="calls_out"># spent    31&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#28">Catalyst::BEGIN@28</a>
+# spent     9&micro;s making 1 call to <a href="Class-C3-Adopt-NEXT-pm-582-sub.html#70">Class::C3::Adopt::NEXT::import</a></div></div></td></tr>
+<tr><td class="h"><a name="29"></a>29</td><td class="c3">2</td><td class="c3"><span title="Avg 20&micro;s">39&micro;s</span></td><td class="c3">2</td><td class="c3">130&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 73&micro;s (16+57) within Catalyst::BEGIN@29 which was called:
+#    once (16&micro;s+57&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#29">line 29</a></div></div>use List::MoreUtils qw/uniq/;<div class="calls"><div class="calls_out"># spent    73&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#29">Catalyst::BEGIN@29</a>
+# spent    57&micro;s making 1 call to <a href="Exporter-pm-8-sub.html#28">Exporter::import</a></div></div></td></tr>
+<tr><td class="h"><a name="30"></a>30</td><td class="c3">2</td><td class="c3"><span title="Avg 23&micro;s">46&micro;s</span></td><td class="c3">2</td><td class="c3">65&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 52&micro;s (19+34) within Catalyst::BEGIN@30 which was called:
+#    once (19&micro;s+34&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#30">line 30</a></div></div>use attributes;<div class="calls"><div class="calls_out"># spent    52&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#30">Catalyst::BEGIN@30</a>
+# spent    13&micro;s making 1 call to <a href="attributes-pm-622-sub.html#41">attributes::import</a></div></div></td></tr>
+<tr><td class="h"><a name="31"></a>31</td><td class="c3">2</td><td class="c3"><span title="Avg 25&micro;s">51&micro;s</span></td><td class="c3">2</td><td class="c0">524&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 272&micro;s (20+252) within Catalyst::BEGIN@31 which was called:
+#    once (20&micro;s+252&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#31">line 31</a></div></div>use String::RewritePrefix;<div class="calls"><div class="calls_out"># spent   272&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#31">Catalyst::BEGIN@31</a>
+# spent   252&micro;s making 1 call to <a href="Sub-Exporter-pm-112-sub.html#711">Sub::Exporter::__ANON__[Sub/Exporter.pm:756]</a></div></div></td></tr>
+<tr><td class="h"><a name="32"></a>32</td><td class="c3">2</td><td class="c0"><span title="Avg 118&micro;s">237&micro;s</span></td><td class="c3">1</td><td class="c0">31.1ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 31.1ms (1.02+30.1) within Catalyst::BEGIN@32 which was called:
+#    once (1.02ms+30.1ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#32">line 32</a></div></div>use Catalyst::EngineLoader;<div class="calls"><div class="calls_out"># spent  31.1ms making 1 call to <a href="Catalyst-pm-381-sub.html#32">Catalyst::BEGIN@32</a></div></div></td></tr>
+<tr><td class="h"><a name="33"></a>33</td><td class="c3">2</td><td class="c3"><span title="Avg 27&micro;s">54&micro;s</span></td><td class="c3">2</td><td class="c3">34&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 27&micro;s (19+7) within Catalyst::BEGIN@33 which was called:
+#    once (19&micro;s+7&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#33">line 33</a></div></div>use utf8;<div class="calls"><div class="calls_out"># spent    27&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#33">Catalyst::BEGIN@33</a>
+# spent     7&micro;s making 1 call to <a href="utf8-pm-489-sub.html#7">utf8::import</a></div></div></td></tr>
+<tr><td class="h"><a name="34"></a>34</td><td class="c3">2</td><td class="c3"><span title="Avg 24&micro;s">48&micro;s</span></td><td class="c3">2</td><td class="c2">182&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 99&micro;s (16+83) within Catalyst::BEGIN@34 which was called:
+#    once (16&micro;s+83&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#34">line 34</a></div></div>use Carp qw/croak carp shortmess/;<div class="calls"><div class="calls_out"># spent    99&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#34">Catalyst::BEGIN@34</a>
+# spent    83&micro;s making 1 call to <a href="Exporter-pm-8-sub.html#28">Exporter::import</a></div></div></td></tr>
+<tr><td class="h"><a name="35"></a>35</td><td class="c3">2</td><td class="c3"><span title="Avg 24&micro;s">49&micro;s</span></td><td class="c3">2</td><td class="c3">119&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 67&micro;s (16+52) within Catalyst::BEGIN@35 which was called:
+#    once (16&micro;s+52&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#35">line 35</a></div></div>use Try::Tiny;<div class="calls"><div class="calls_out"># spent    67&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#35">Catalyst::BEGIN@35</a>
+# spent    52&micro;s making 1 call to <a href="Exporter-pm-8-sub.html#28">Exporter::import</a></div></div></td></tr>
+<tr><td class="h"><a name="36"></a>36</td><td class="c3">2</td><td class="c0"><span title="Avg 117&micro;s">234&micro;s</span></td><td class="c3">2</td><td class="c0">1.89ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 1.89ms (389&micro;s+1.50) within Catalyst::BEGIN@36 which was called:
+#    once (389&micro;s+1.50ms) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#36">line 36</a></div></div>use Plack::Middleware::Conditional;<div class="calls"><div class="calls_out"># spent  1.89ms making 1 call to <a href="Catalyst-pm-381-sub.html#36">Catalyst::BEGIN@36</a>
+# spent     3&micro;s making 1 call to <a href="Plack-Middleware-pm-654-sub.html#9">Plack::Middleware::import</a></div></div></td></tr>
+<tr><td class="h"><a name="37"></a>37</td><td class="c3">2</td><td class="c0"><span title="Avg 80&micro;s">159&micro;s</span></td><td class="c3">2</td><td class="c0">775&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 771&micro;s (638+134) within Catalyst::BEGIN@37 which was called:
+#    once (638&micro;s+134&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#37">line 37</a></div></div>use Plack::Middleware::ReverseProxy;<div class="calls"><div class="calls_out"># spent   771&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#37">Catalyst::BEGIN@37</a>
+# spent     4&micro;s making 1 call to <a href="Plack-Middleware-pm-654-sub.html#9">Plack::Middleware::import</a></div></div></td></tr>
+<tr><td class="h"><a name="38"></a>38</td><td class="c3">2</td><td class="c0"><span title="Avg 70&micro;s">140&micro;s</span></td><td class="c3">2</td><td class="c0">406&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 402&micro;s (335+66) within Catalyst::BEGIN@38 which was called:
+#    once (335&micro;s+66&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#38">line 38</a></div></div>use Plack::Middleware::IIS6ScriptNameFix;<div class="calls"><div class="calls_out"># spent   402&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#38">Catalyst::BEGIN@38</a>
+# spent     4&micro;s making 1 call to <a href="Plack-Middleware-pm-654-sub.html#9">Plack::Middleware::import</a></div></div></td></tr>
+<tr><td class="h"><a name="39"></a>39</td><td class="c3">2</td><td class="c0"><span title="Avg 75&micro;s">151&micro;s</span></td><td class="c3">2</td><td class="c0">518&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 515&micro;s (381+133) within Catalyst::BEGIN@39 which was called:
+#    once (381&micro;s+133&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#39">line 39</a></div></div>use Plack::Middleware::LighttpdScriptNameFix;<div class="calls"><div class="calls_out"># spent   515&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#39">Catalyst::BEGIN@39</a>
+# spent     3&micro;s making 1 call to <a href="Plack-Middleware-pm-654-sub.html#9">Plack::Middleware::import</a></div></div></td></tr>
+<tr><td class="h"><a name="40"></a>40</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="41"></a>41</td><td class="c3">1</td><td class="c0"><span title="Avg 1.11ms">1.11ms</span></td><td class="c3">1</td><td class="c3">21&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 21&micro;s within Catalyst::BEGIN@41 which was called:
+#    once (21&micro;s+0s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#41">line 41</a></div></div>BEGIN { require 5.008003; }<div class="calls"><div class="calls_out"># spent    21&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#41">Catalyst::BEGIN@41</a></div></div></td></tr>
+<tr><td class="h"><a name="42"></a>42</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="43"></a>43</td><td class="c1">3</td><td class="c3"><span title="Avg 5&micro;s">15&micro;s</span></td><td class="c3">1</td><td class="c0">2.56ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 6&micro;s within Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:43] which was called 2 times, avg 3&micro;s/call:
+# 2 times (6&micro;s+0s) by Class::MOP::Mixin::AttributeCore::default at <a href="Class-MOP-Mixin-AttributeCore-pm-86-sub.html#45">line 45 of Class/MOP/Mixin/AttributeCore.pm</a>, avg 3&micro;s/call</div></div>has stack =&gt; (is =&gt; 'ro', default =&gt; sub { [] });<div class="calls"><div class="calls_out"># spent  2.56ms making 1 call to <a href="Moose-pm-62-sub.html#70">Moose::has</a></div></div></td></tr>
+<tr><td class="h"><a name="44"></a>44</td><td class="c1">3</td><td class="c3"><span title="Avg 4&micro;s">13&micro;s</span></td><td class="c3">1</td><td class="c0">2.19ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 6&micro;s within Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:44] which was called 2 times, avg 3&micro;s/call:
+# 2 times (6&micro;s+0s) by Class::MOP::Mixin::AttributeCore::default at <a href="Class-MOP-Mixin-AttributeCore-pm-86-sub.html#45">line 45 of Class/MOP/Mixin/AttributeCore.pm</a>, avg 3&micro;s/call</div></div>has stash =&gt; (is =&gt; 'rw', default =&gt; sub { {} });<div class="calls"><div class="calls_out"># spent  2.19ms making 1 call to <a href="Moose-pm-62-sub.html#70">Moose::has</a></div></div></td></tr>
+<tr><td class="h"><a name="45"></a>45</td><td class="c3">1</td><td class="c3"><span title="Avg 3&micro;s">3&micro;s</span></td><td class="c3">1</td><td class="c0">2.43ms</td><td class="s">has state =&gt; (is =&gt; 'rw', default =&gt; 0);<div class="calls"><div class="calls_out"># spent  2.43ms making 1 call to <a href="Moose-pm-62-sub.html#70">Moose::has</a></div></div></td></tr>
+<tr><td class="h"><a name="46"></a>46</td><td class="c3">1</td><td class="c3"><span title="Avg 3&micro;s">3&micro;s</span></td><td class="c3">1</td><td class="c0">2.96ms</td><td class="s">has stats =&gt; (is =&gt; 'rw');<div class="calls"><div class="calls_out"># spent  2.96ms making 1 call to <a href="Moose-pm-62-sub.html#70">Moose::has</a></div></div></td></tr>
+<tr><td class="h"><a name="47"></a>47</td><td class="c3">1</td><td class="c3"><span title="Avg 3&micro;s">3&micro;s</span></td><td class="c3">1</td><td class="c0">2.96ms</td><td class="s">has action =&gt; (is =&gt; 'rw');<div class="calls"><div class="calls_out"># spent  2.96ms making 1 call to <a href="Moose-pm-62-sub.html#70">Moose::has</a></div></div></td></tr>
+<tr><td class="h"><a name="48"></a>48</td><td class="c1">3</td><td class="c3"><span title="Avg 4&micro;s">13&micro;s</span></td><td class="c3">1</td><td class="c0">2.12ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 5&micro;s within Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:48] which was called 2 times, avg 3&micro;s/call:
+# 2 times (5&micro;s+0s) by Class::MOP::Mixin::AttributeCore::default at <a href="Class-MOP-Mixin-AttributeCore-pm-86-sub.html#45">line 45 of Class/MOP/Mixin/AttributeCore.pm</a>, avg 3&micro;s/call</div></div>has counter =&gt; (is =&gt; 'rw', default =&gt; sub { {} });<div class="calls"><div class="calls_out"># spent  2.12ms making 1 call to <a href="Moose-pm-62-sub.html#70">Moose::has</a></div></div></td></tr>
+<tr><td class="h"><a name="49"></a>49</td><td></td><td></td><td></td><td></td><td class="s">has request =&gt; (</td></tr>
+<tr><td class="h"><a name="50"></a>50</td><td></td><td></td><td></td><td></td><td class="s">    is =&gt; 'rw',</td></tr>
+<tr><td class="h"><a name="51"></a>51</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 368&micro;s (50+318) within Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:56] which was called 2 times, avg 184&micro;s/call:
+# 2 times (50&micro;s+318&micro;s) by Catalyst::request at <a href="(eval 83)[Eval-Closure-pm-125]-192-line.html#10">line 10 of (eval 83)[Eval/Closure.pm:125]</a>, avg 184&micro;s/call</div></div>    default =&gt; sub {</td></tr>
+<tr><td class="h"><a name="52"></a>52</td><td class="c0">8</td><td class="c3"><span title="Avg 5&micro;s">40&micro;s</span></td><td></td><td></td><td class="s">        my $self = shift;</td></tr>
+<tr><td class="h"><a name="53"></a>53</td><td></td><td></td><td class="c3">2</td><td class="c3">34&micro;s</td><td class="s">        my %p = ( _log =&gt; $self-&gt;log );<div class="calls"><div class="calls_out">        # spent    34&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_log_accessor</a>, avg 17&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="54"></a>54</td><td></td><td></td><td class="c3">2</td><td class="c3">6&micro;s</td><td class="s">        $p{_uploadtmp} = $self-&gt;_uploadtmp if $self-&gt;_has_uploadtmp;<div class="calls"><div class="calls_out">        # spent     6&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_has_uploadtmp</a>, avg 3&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="55"></a>55</td><td></td><td></td><td class="c0">4</td><td class="c1">278&micro;s</td><td class="s">        $self-&gt;request_class-&gt;new(\%p);<div class="calls"><div class="calls_out">        # spent   202&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Request::new</a>, avg 101&micro;s/call
+        # spent    76&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_request_class_accessor</a>, avg 38&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="56"></a>56</td><td></td><td></td><td></td><td></td><td class="s">    },</td></tr>
+<tr><td class="h"><a name="57"></a>57</td><td class="c3">1</td><td class="c3"><span title="Avg 7&micro;s">7&micro;s</span></td><td class="c3">1</td><td class="c0">2.89ms</td><td class="s">    lazy =&gt; 1,<div class="calls"><div class="calls_out">    # spent  2.89ms making 1 call to <a href="Moose-pm-62-sub.html#70">Moose::has</a></div></div></td></tr>
+<tr><td class="h"><a name="58"></a>58</td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
+<tr><td class="h"><a name="59"></a>59</td><td></td><td></td><td></td><td></td><td class="s">has response =&gt; (</td></tr>
+<tr><td class="h"><a name="60"></a>60</td><td></td><td></td><td></td><td></td><td class="s">    is =&gt; 'rw',</td></tr>
+<tr><td class="h"><a name="61"></a>61</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 279&micro;s (34+245) within Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:64] which was called 2 times, avg 140&micro;s/call:
+# 2 times (34&micro;s+245&micro;s) by Catalyst::response at <a href="(eval 83)[Eval-Closure-pm-125]-192-line.html#10">line 10 of (eval 83)[Eval/Closure.pm:125]</a>, avg 140&micro;s/call</div></div>    default =&gt; sub {</td></tr>
+<tr><td class="h"><a name="62"></a>62</td><td class="c0">4</td><td class="c3"><span title="Avg 8&micro;s">30&micro;s</span></td><td></td><td></td><td class="s">        my $self = shift;</td></tr>
+<tr><td class="h"><a name="63"></a>63</td><td></td><td></td><td class="c0">6</td><td class="c1">245&micro;s</td><td class="s">        $self-&gt;response_class-&gt;new({ _log =&gt; $self-&gt;log });<div class="calls"><div class="calls_out">        # spent   149&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Response::new</a>, avg 75&micro;s/call
+        # spent    72&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_response_class_accessor</a>, avg 36&micro;s/call
+        # spent    24&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_log_accessor</a>, avg 12&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="64"></a>64</td><td></td><td></td><td></td><td></td><td class="s">    },</td></tr>
+<tr><td class="h"><a name="65"></a>65</td><td class="c3">1</td><td class="c3"><span title="Avg 8&micro;s">8&micro;s</span></td><td class="c3">1</td><td class="c0">3.30ms</td><td class="s">    lazy =&gt; 1,<div class="calls"><div class="calls_out">    # spent  3.30ms making 1 call to <a href="Moose-pm-62-sub.html#70">Moose::has</a></div></div></td></tr>
+<tr><td class="h"><a name="66"></a>66</td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
+<tr><td class="h"><a name="67"></a>67</td><td class="c3">1</td><td class="c3"><span title="Avg 3&micro;s">3&micro;s</span></td><td class="c3">1</td><td class="c0">2.14ms</td><td class="s">has namespace =&gt; (is =&gt; 'rw');<div class="calls"><div class="calls_out"># spent  2.14ms making 1 call to <a href="Moose-pm-62-sub.html#70">Moose::has</a></div></div></td></tr>
+<tr><td class="h"><a name="68"></a>68</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="69"></a>69</td><td class="c0">9</td><td class="c3"><span title="Avg 3&micro;s">27&micro;s</span></td><td class="c0">9</td><td class="c3">14&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 47&micro;s (33+14) within Catalyst::depth which was called 9 times, avg 5&micro;s/call:
+# 9 times (33&micro;s+14&micro;s) by Catalyst::execute at <a href="Catalyst-pm-381-sub.html#1651">line 1651</a>, avg 5&micro;s/call</div></div>sub depth { scalar @{ shift-&gt;stack || [] }; }<div class="calls"><div class="calls_out"># spent    14&micro;s making 9 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::stack</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="70"></a>70</td><td></td><td></td><td></td><td></td><td class="s">sub comp { shift-&gt;component(@_) }</td></tr>
+<tr><td class="h"><a name="71"></a>71</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="72"></a>72</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 167&micro;s (114+53) within Catalyst::req which was called 33 times, avg 5&micro;s/call:
+# 9 times (30&micro;s+15&micro;s) by Catalyst::execute at <a href="Catalyst-pm-381-sub.html#1668">line 1668</a>, avg 5&micro;s/call
+# 4 times (12&micro;s+6&micro;s) by Catalyst::DispatchType::Chained::recurse_match at <a href="Catalyst-DispatchType-Chained-pm-2498-sub.html#242">line 242 of Catalyst/DispatchType/Chained.pm</a>, avg 4&micro;s/call
+# 4 times (12&micro;s+6&micro;s) by Catalyst::Plugin::Unicode::Encoding::prepare_action at <a href="Catalyst-Plugin-Unicode-Encoding-pm-1853-sub.html#115">line 115 of Catalyst/Plugin/Unicode/Encoding.pm</a>, avg 4&micro;s/call
+# 3 times (17&micro;s+5&micro;s) by Catalyst::Action::match at <a href="Catalyst-Action-pm-1880-sub.html#76">line 76 of Catalyst/Action.pm</a>, avg 7&micro;s/call
+# 2 times (10&micro;s+3&micro;s) by Class::MOP::Class:::before at <a href="Catalyst-Plugin-Static-Simple-pm-1856-sub.html#19">line 19 of Catalyst/Plugin/Static/Simple.pm</a>, avg 7&micro;s/call
+# 2 times (6&micro;s+3&micro;s) by Catalyst::Dispatcher::prepare_action at <a href="Catalyst-Dispatcher-pm-1877-sub.html#361">line 361 of Catalyst/Dispatcher.pm</a>, avg 5&micro;s/call
+# 2 times (6&micro;s+3&micro;s) by Catalyst::DispatchType::Index::match at <a href="Catalyst-DispatchType-Index-pm-1909-sub.html#46">line 46 of Catalyst/DispatchType/Index.pm</a>, avg 5&micro;s/call
+#    once (3&micro;s+2&micro;s) by Catalyst::View::JSON::process at <a href="Catalyst-View-JSON-pm-2046-sub.html#110">line 110 of Catalyst/View/JSON.pm</a>
+#    once (3&micro;s+2&micro;s) by Catalyst::Action::RenderView::execute at <a href="Catalyst-Action-RenderView-pm-2496-sub.html#51">line 51 of Catalyst/Action/RenderView.pm</a>
+#    once (3&micro;s+2&micro;s) by Catalyst::View::JSON::process at <a href="Catalyst-View-JSON-pm-2046-sub.html#102">line 102 of Catalyst/View/JSON.pm</a>
+#    once (3&micro;s+2&micro;s) by Catalyst::Controller::_ACTION at <a href="Catalyst-Controller-pm-576-sub.html#125">line 125 of Catalyst/Controller.pm</a>
+#    once (3&micro;s+1&micro;s) by Catalyst::DispatchType::Path::match at <a href="Catalyst-DispatchType-Path-pm-2481-sub.html#88">line 88 of Catalyst/DispatchType/Path.pm</a>
+#    once (3&micro;s+1&micro;s) by Catalyst::DispatchType::Path::match at <a href="Catalyst-DispatchType-Path-pm-2481-sub.html#89">line 89 of Catalyst/DispatchType/Path.pm</a>
+#    once (3&micro;s+1&micro;s) by Catalyst::ActionChain::dispatch at <a href="Catalyst-ActionChain-pm-2501-sub.html#27">line 27 of Catalyst/ActionChain.pm</a></div></div>sub req {</td></tr>
+<tr><td class="h"><a name="73"></a>73</td><td class="c0">66</td><td class="c0"><span title="Avg 2&micro;s">113&micro;s</span></td><td class="c0">33</td><td class="c3">53&micro;s</td><td class="s">    my $self = shift; return $self-&gt;request(@_);<div class="calls"><div class="calls_out">    # spent    53&micro;s making 33 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::request</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="74"></a>74</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="75"></a>75</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 21&micro;s (13+7) within Catalyst::res which was called 3 times, avg 7&micro;s/call:
+#    once (5&micro;s+3&micro;s) by Catalyst::View::JSON::process at <a href="Catalyst-View-JSON-pm-2046-sub.html#100">line 100 of Catalyst/View/JSON.pm</a>
+#    once (5&micro;s+2&micro;s) by Class::MOP::Class:::around at <a href="Catalyst-Plugin-Static-Simple-pm-1856-sub.html#68">line 68 of Catalyst/Plugin/Static/Simple.pm</a>
+#    once (3&micro;s+2&micro;s) by Catalyst::View::JSON::process at <a href="Catalyst-View-JSON-pm-2046-sub.html#120">line 120 of Catalyst/View/JSON.pm</a></div></div>sub res {</td></tr>
+<tr><td class="h"><a name="76"></a>76</td><td class="c0">6</td><td class="c3"><span title="Avg 2&micro;s">14&micro;s</span></td><td class="c1">3</td><td class="c3">7&micro;s</td><td class="s">    my $self = shift; return $self-&gt;response(@_);<div class="calls"><div class="calls_out">    # spent     7&micro;s making 3 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::response</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="77"></a>77</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="78"></a>78</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="79"></a>79</td><td></td><td></td><td></td><td></td><td class="s"># For backwards compatibility</td></tr>
+<tr><td class="h"><a name="80"></a>80</td><td></td><td></td><td></td><td></td><td class="s">sub finalize_output { shift-&gt;finalize_body(@_) };</td></tr>
+<tr><td class="h"><a name="81"></a>81</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="82"></a>82</td><td></td><td></td><td></td><td></td><td class="s"># For statistics</td></tr>
+<tr><td class="h"><a name="83"></a>83</td><td class="c3">1</td><td class="c3"><span title="Avg 500ns">500ns</span></td><td></td><td></td><td class="s">our $COUNT     = 1;</td></tr>
+<tr><td class="h"><a name="84"></a>84</td><td class="c3">1</td><td class="c3"><span title="Avg 8&micro;s">8&micro;s</span></td><td></td><td></td><td class="s">our $START     = time;</td></tr>
+<tr><td class="h"><a name="85"></a>85</td><td class="c3">1</td><td class="c3"><span title="Avg 400ns">400ns</span></td><td></td><td></td><td class="s">our $RECURSION = 1000;</td></tr>
+<tr><td class="h"><a name="86"></a>86</td><td class="c3">1</td><td class="c3"><span title="Avg 6&micro;s">6&micro;s</span></td><td class="c3">1</td><td class="c3">93&micro;s</td><td class="s">our $DETACH    = Catalyst::Exception::Detach-&gt;new;<div class="calls"><div class="calls_out"># spent    93&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Exception::Detach::new</a></div></div></td></tr>
+<tr><td class="h"><a name="87"></a>87</td><td class="c3">1</td><td class="c3"><span title="Avg 4&micro;s">4&micro;s</span></td><td class="c3">1</td><td class="c3">68&micro;s</td><td class="s">our $GO        = Catalyst::Exception::Go-&gt;new;<div class="calls"><div class="calls_out"># spent    68&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Exception::Go::new</a></div></div></td></tr>
+<tr><td class="h"><a name="88"></a>88</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="89"></a>89</td><td></td><td></td><td></td><td></td><td class="s">#I imagine that very few of these really need to be class variables. if any.</td></tr>
+<tr><td class="h"><a name="90"></a>90</td><td></td><td></td><td></td><td></td><td class="s">#maybe we should just make them attributes with a default?</td></tr>
+<tr><td class="h"><a name="91"></a>91</td><td></td><td></td><td></td><td></td><td class="s">__PACKAGE__-&gt;mk_classdata($_)</td></tr>
+<tr><td class="h"><a name="92"></a>92</td><td class="c3">1</td><td class="c3"><span title="Avg 33&micro;s">33&micro;s</span></td><td class="c0">15</td><td class="c0">2.15ms</td><td class="s">  for qw/components arguments dispatcher engine log dispatcher_class<div class="calls"><div class="calls_out">  # spent  2.15ms making 15 calls to <a href="Catalyst-ClassData-pm-586-sub.html#8">Catalyst::ClassData::mk_classdata</a>, avg 143&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="93"></a>93</td><td></td><td></td><td></td><td></td><td class="s">  engine_loader context_class request_class response_class stats_class</td></tr>
+<tr><td class="h"><a name="94"></a>94</td><td></td><td></td><td></td><td></td><td class="s">  setup_finished _psgi_app loading_psgi_file run_options/;</td></tr>
+<tr><td class="h"><a name="95"></a>95</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="96"></a>96</td><td class="c3">1</td><td class="c3"><span title="Avg 3&micro;s">3&micro;s</span></td><td class="c3">1</td><td class="c3">52&micro;s</td><td class="s">__PACKAGE__-&gt;dispatcher_class('Catalyst::Dispatcher');<div class="calls"><div class="calls_out"># spent    52&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_dispatcher_class_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="97"></a>97</td><td class="c3">1</td><td class="c3"><span title="Avg 2&micro;s">2&micro;s</span></td><td class="c3">1</td><td class="c3">22&micro;s</td><td class="s">__PACKAGE__-&gt;request_class('Catalyst::Request');<div class="calls"><div class="calls_out"># spent    22&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_request_class_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="98"></a>98</td><td class="c3">1</td><td class="c3"><span title="Avg 2&micro;s">2&micro;s</span></td><td class="c3">1</td><td class="c3">27&micro;s</td><td class="s">__PACKAGE__-&gt;response_class('Catalyst::Response');<div class="calls"><div class="calls_out"># spent    27&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_response_class_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="99"></a>99</td><td class="c3">1</td><td class="c3"><span title="Avg 2&micro;s">2&micro;s</span></td><td class="c3">1</td><td class="c3">21&micro;s</td><td class="s">__PACKAGE__-&gt;stats_class('Catalyst::Stats');<div class="calls"><div class="calls_out"># spent    21&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_stats_class_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="100"></a>100</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="101"></a>101</td><td></td><td></td><td></td><td></td><td class="s"># Remember to update this in Catalyst::Runtime as well!</td></tr>
+<tr><td class="h"><a name="102"></a>102</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="103"></a>103</td><td class="c3">1</td><td class="c3"><span title="Avg 700ns">700ns</span></td><td></td><td></td><td class="s">our $VERSION = '5.90012';</td></tr>
+<tr><td class="h"><a name="104"></a>104</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="105"></a>105</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 17.3ms (87&micro;s+17.2) within Catalyst::import which was called 2 times, avg 8.63ms/call:
+#    once (83&micro;s+17.2ms) by stemmaweb::BEGIN@19 at <a href="lib-stemmaweb-pm-61-sub.html#23">line 23 of lib/stemmaweb.pm</a>
+#    once (4&micro;s+0s) by main::BEGIN@9 at <a href="script-nytprof-pl-1-sub.html#9">line 9 of script/nytprof.pl</a></div></div>sub import {</td></tr>
+<tr><td class="h"><a name="106"></a>106</td><td class="c0">14</td><td class="c1"><span title="Avg 6&micro;s">79&micro;s</span></td><td></td><td></td><td class="s">    my ( $class, @arguments ) = @_;</td></tr>
+<tr><td class="h"><a name="107"></a>107</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="108"></a>108</td><td></td><td></td><td></td><td></td><td class="s">    # We have to limit $class to Catalyst to avoid pushing Catalyst upon every</td></tr>
+<tr><td class="h"><a name="109"></a>109</td><td></td><td></td><td></td><td></td><td class="s">    # callers @ISA.</td></tr>
+<tr><td class="h"><a name="110"></a>110</td><td></td><td></td><td></td><td></td><td class="s">    return unless $class eq 'Catalyst';</td></tr>
+<tr><td class="h"><a name="111"></a>111</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="112"></a>112</td><td></td><td></td><td></td><td></td><td class="s">    my $caller = caller();</td></tr>
+<tr><td class="h"><a name="113"></a>113</td><td></td><td></td><td></td><td></td><td class="s">    return if $caller eq 'main';</td></tr>
+<tr><td class="h"><a name="114"></a>114</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="115"></a>115</td><td></td><td></td><td class="c3">1</td><td class="c3">24&micro;s</td><td class="s">    my $meta = Moose::Meta::Class-&gt;initialize($caller);<div class="calls"><div class="calls_out">    # spent    24&micro;s making 1 call to <a href="Moose-Meta-Class-pm-136-sub.html#73">Moose::Meta::Class::initialize</a></div></div></td></tr>
+<tr><td class="h"><a name="116"></a>116</td><td></td><td></td><td class="c3">1</td><td class="c3">4&micro;s</td><td class="s">    unless ( $caller-&gt;isa('Catalyst') ) {<div class="calls"><div class="calls_out">    # spent     4&micro;s making 1 call to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__isa">UNIVERSAL::isa</a></div></div></td></tr>
+<tr><td class="h"><a name="117"></a>117</td><td></td><td></td><td class="c3">1</td><td class="c3">83&micro;s</td><td class="s">        my @superclasses = ($meta-&gt;superclasses, $class, 'Catalyst::Controller');<div class="calls"><div class="calls_out">        # spent    83&micro;s making 1 call to <a href="Moose-Meta-Class-pm-136-sub.html#549">Moose::Meta::Class::superclasses</a></div></div></td></tr>
+<tr><td class="h"><a name="118"></a>118</td><td></td><td></td><td class="c3">1</td><td class="c0">8.84ms</td><td class="s">        $meta-&gt;superclasses(@superclasses);<div class="calls"><div class="calls_out">        # spent  8.84ms making 1 call to <a href="Moose-Meta-Class-pm-136-sub.html#549">Moose::Meta::Class::superclasses</a></div></div></td></tr>
+<tr><td class="h"><a name="119"></a>119</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="120"></a>120</td><td></td><td></td><td></td><td></td><td class="s">    # Avoid possible C3 issues if 'Moose::Object' is already on RHS of MyApp</td></tr>
+<tr><td class="h"><a name="121"></a>121</td><td></td><td></td><td class="c3">2</td><td class="c0">2.15ms</td><td class="s">    $meta-&gt;superclasses(grep { $_ ne 'Moose::Object' } $meta-&gt;superclasses);<div class="calls"><div class="calls_out">    # spent  2.15ms making 2 calls to <a href="Moose-Meta-Class-pm-136-sub.html#549">Moose::Meta::Class::superclasses</a>, avg 1.07ms/call</div></div></td></tr>
+<tr><td class="h"><a name="122"></a>122</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="123"></a>123</td><td></td><td></td><td class="c3">1</td><td class="c3">35&micro;s</td><td class="s">    unless( $meta-&gt;has_method('meta') ){<div class="calls"><div class="calls_out">    # spent    35&micro;s making 1 call to <a href="Class-MOP-Mixin-HasMethods-pm-91-sub.html#101">Class::MOP::Mixin::HasMethods::has_method</a></div></div></td></tr>
+<tr><td class="h"><a name="124"></a>124</td><td></td><td></td><td></td><td></td><td class="s">        if ($Moose::VERSION &gt;= 1.15) {</td></tr>
+<tr><td class="h"><a name="125"></a>125</td><td></td><td></td><td></td><td></td><td class="s">            $meta-&gt;_add_meta_method('meta');</td></tr>
+<tr><td class="h"><a name="126"></a>126</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="127"></a>127</td><td></td><td></td><td></td><td></td><td class="s">        else {</td></tr>
+<tr><td class="h"><a name="128"></a>128</td><td></td><td></td><td></td><td></td><td class="s">            $meta-&gt;add_method(meta =&gt; sub { Moose::Meta::Class-&gt;initialize(&quot;${caller}&quot;) } );</td></tr>
+<tr><td class="h"><a name="129"></a>129</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="130"></a>130</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="131"></a>131</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="132"></a>132</td><td></td><td></td><td class="c3">1</td><td class="c3">33&micro;s</td><td class="s">    $caller-&gt;arguments( [@arguments] );<div class="calls"><div class="calls_out">    # spent    33&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_arguments_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="133"></a>133</td><td></td><td></td><td class="c3">1</td><td class="c0">6.00ms</td><td class="s">    $caller-&gt;setup_home;<div class="calls"><div class="calls_out">    # spent  6.00ms making 1 call to <a href="Catalyst-pm-381-sub.html#2819">Catalyst::setup_home</a></div></div></td></tr>
+<tr><td class="h"><a name="134"></a>134</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="135"></a>135</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="136"></a>136</td><td></td><td></td><td></td><td></td><td class="s">sub _application { $_[0] }</td></tr>
+<tr><td class="h"><a name="137"></a>137</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="138"></a>138</td><td></td><td></td><td></td><td></td><td class="s">=head1 NAME</td></tr>
+<tr><td class="h"><a name="139"></a>139</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="140"></a>140</td><td></td><td></td><td></td><td></td><td class="s">Catalyst - The Elegant MVC Web Application Framework</td></tr>
+<tr><td class="h"><a name="141"></a>141</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="142"></a>142</td><td></td><td></td><td></td><td></td><td class="s">=head1 SYNOPSIS</td></tr>
+<tr><td class="h"><a name="143"></a>143</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="144"></a>144</td><td></td><td></td><td></td><td></td><td class="s">See the L&lt;Catalyst::Manual&gt; distribution for comprehensive</td></tr>
+<tr><td class="h"><a name="145"></a>145</td><td></td><td></td><td></td><td></td><td class="s">documentation and tutorials.</td></tr>
+<tr><td class="h"><a name="146"></a>146</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="147"></a>147</td><td></td><td></td><td></td><td></td><td class="s">    # Install Catalyst::Devel for helpers and other development tools</td></tr>
+<tr><td class="h"><a name="148"></a>148</td><td></td><td></td><td></td><td></td><td class="s">    # use the helper to create a new application</td></tr>
+<tr><td class="h"><a name="149"></a>149</td><td></td><td></td><td></td><td></td><td class="s">    catalyst.pl MyApp</td></tr>
+<tr><td class="h"><a name="150"></a>150</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="151"></a>151</td><td></td><td></td><td></td><td></td><td class="s">    # add models, views, controllers</td></tr>
+<tr><td class="h"><a name="152"></a>152</td><td></td><td></td><td></td><td></td><td class="s">    script/myapp_create.pl model MyDatabase DBIC::Schema create=static dbi:SQLite:/path/to/db</td></tr>
+<tr><td class="h"><a name="153"></a>153</td><td></td><td></td><td></td><td></td><td class="s">    script/myapp_create.pl view MyTemplate TT</td></tr>
+<tr><td class="h"><a name="154"></a>154</td><td></td><td></td><td></td><td></td><td class="s">    script/myapp_create.pl controller Search</td></tr>
+<tr><td class="h"><a name="155"></a>155</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="156"></a>156</td><td></td><td></td><td></td><td></td><td class="s">    # built in testserver -- use -r to restart automatically on changes</td></tr>
+<tr><td class="h"><a name="157"></a>157</td><td></td><td></td><td></td><td></td><td class="s">    # --help to see all available options</td></tr>
+<tr><td class="h"><a name="158"></a>158</td><td></td><td></td><td></td><td></td><td class="s">    script/myapp_server.pl</td></tr>
+<tr><td class="h"><a name="159"></a>159</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="160"></a>160</td><td></td><td></td><td></td><td></td><td class="s">    # command line testing interface</td></tr>
+<tr><td class="h"><a name="161"></a>161</td><td></td><td></td><td></td><td></td><td class="s">    script/myapp_test.pl /yada</td></tr>
+<tr><td class="h"><a name="162"></a>162</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="163"></a>163</td><td></td><td></td><td></td><td></td><td class="s">    ### in lib/MyApp.pm</td></tr>
+<tr><td class="h"><a name="164"></a>164</td><td></td><td></td><td></td><td></td><td class="s">    use Catalyst qw/-Debug/; # include plugins here as well</td></tr>
+<tr><td class="h"><a name="165"></a>165</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="166"></a>166</td><td></td><td></td><td></td><td></td><td class="s">    ### In lib/MyApp/Controller/Root.pm (autocreated)</td></tr>
+<tr><td class="h"><a name="167"></a>167</td><td></td><td></td><td></td><td></td><td class="s">    sub foo : Chained('/') Args() { # called for /foo, /foo/1, /foo/1/2, etc.</td></tr>
+<tr><td class="h"><a name="168"></a>168</td><td></td><td></td><td></td><td></td><td class="s">        my ( $self, $c, @args ) = @_; # args are qw/1 2/ for /foo/1/2</td></tr>
+<tr><td class="h"><a name="169"></a>169</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;stash-&gt;{template} = 'foo.tt'; # set the template</td></tr>
+<tr><td class="h"><a name="170"></a>170</td><td></td><td></td><td></td><td></td><td class="s">        # lookup something from db -- stash vars are passed to TT</td></tr>
+<tr><td class="h"><a name="171"></a>171</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;stash-&gt;{data} =</td></tr>
+<tr><td class="h"><a name="172"></a>172</td><td></td><td></td><td></td><td></td><td class="s">          $c-&gt;model('Database::Foo')-&gt;search( { country =&gt; $args[0] } );</td></tr>
+<tr><td class="h"><a name="173"></a>173</td><td></td><td></td><td></td><td></td><td class="s">        if ( $c-&gt;req-&gt;params-&gt;{bar} ) { # access GET or POST parameters</td></tr>
+<tr><td class="h"><a name="174"></a>174</td><td></td><td></td><td></td><td></td><td class="s">            $c-&gt;forward( 'bar' ); # process another action</td></tr>
+<tr><td class="h"><a name="175"></a>175</td><td></td><td></td><td></td><td></td><td class="s">            # do something else after forward returns</td></tr>
+<tr><td class="h"><a name="176"></a>176</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="177"></a>177</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="178"></a>178</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="179"></a>179</td><td></td><td></td><td></td><td></td><td class="s">    # The foo.tt TT template can use the stash data from the database</td></tr>
+<tr><td class="h"><a name="180"></a>180</td><td></td><td></td><td></td><td></td><td class="s">    [% WHILE (item = data.next) %]</td></tr>
+<tr><td class="h"><a name="181"></a>181</td><td></td><td></td><td></td><td></td><td class="s">        [% item.foo %]</td></tr>
+<tr><td class="h"><a name="182"></a>182</td><td></td><td></td><td></td><td></td><td class="s">    [% END %]</td></tr>
+<tr><td class="h"><a name="183"></a>183</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="184"></a>184</td><td></td><td></td><td></td><td></td><td class="s">    # called for /bar/of/soap, /bar/of/soap/10, etc.</td></tr>
+<tr><td class="h"><a name="185"></a>185</td><td></td><td></td><td></td><td></td><td class="s">    sub bar : Chained('/') PathPart('/bar/of/soap') Args() { ... }</td></tr>
+<tr><td class="h"><a name="186"></a>186</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="187"></a>187</td><td></td><td></td><td></td><td></td><td class="s">    # called after all actions are finished</td></tr>
+<tr><td class="h"><a name="188"></a>188</td><td></td><td></td><td></td><td></td><td class="s">    sub end : Action {</td></tr>
+<tr><td class="h"><a name="189"></a>189</td><td></td><td></td><td></td><td></td><td class="s">        my ( $self, $c ) = @_;</td></tr>
+<tr><td class="h"><a name="190"></a>190</td><td></td><td></td><td></td><td></td><td class="s">        if ( scalar @{ $c-&gt;error } ) { ... } # handle errors</td></tr>
+<tr><td class="h"><a name="191"></a>191</td><td></td><td></td><td></td><td></td><td class="s">        return if $c-&gt;res-&gt;body; # already have a response</td></tr>
+<tr><td class="h"><a name="192"></a>192</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;forward( 'MyApp::View::TT' ); # render template</td></tr>
+<tr><td class="h"><a name="193"></a>193</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="194"></a>194</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="195"></a>195</td><td></td><td></td><td></td><td></td><td class="s">See L&lt;Catalyst::Manual::Intro&gt; for additional information.</td></tr>
+<tr><td class="h"><a name="196"></a>196</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="197"></a>197</td><td></td><td></td><td></td><td></td><td class="s">=head1 DESCRIPTION</td></tr>
+<tr><td class="h"><a name="198"></a>198</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="199"></a>199</td><td></td><td></td><td></td><td></td><td class="s">Catalyst is a modern framework for making web applications without the</td></tr>
+<tr><td class="h"><a name="200"></a>200</td><td></td><td></td><td></td><td></td><td class="s">pain usually associated with this process. This document is a reference</td></tr>
+<tr><td class="h"><a name="201"></a>201</td><td></td><td></td><td></td><td></td><td class="s">to the main Catalyst application. If you are a new user, we suggest you</td></tr>
+<tr><td class="h"><a name="202"></a>202</td><td></td><td></td><td></td><td></td><td class="s">start with L&lt;Catalyst::Manual::Tutorial&gt; or L&lt;Catalyst::Manual::Intro&gt;.</td></tr>
+<tr><td class="h"><a name="203"></a>203</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="204"></a>204</td><td></td><td></td><td></td><td></td><td class="s">See L&lt;Catalyst::Manual&gt; for more documentation.</td></tr>
+<tr><td class="h"><a name="205"></a>205</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="206"></a>206</td><td></td><td></td><td></td><td></td><td class="s">Catalyst plugins can be loaded by naming them as arguments to the &quot;use</td></tr>
+<tr><td class="h"><a name="207"></a>207</td><td></td><td></td><td></td><td></td><td class="s">Catalyst&quot; statement. Omit the C&lt;Catalyst::Plugin::&gt; prefix from the</td></tr>
+<tr><td class="h"><a name="208"></a>208</td><td></td><td></td><td></td><td></td><td class="s">plugin name, i.e., C&lt;Catalyst::Plugin::My::Module&gt; becomes</td></tr>
+<tr><td class="h"><a name="209"></a>209</td><td></td><td></td><td></td><td></td><td class="s">C&lt;My::Module&gt;.</td></tr>
+<tr><td class="h"><a name="210"></a>210</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="211"></a>211</td><td></td><td></td><td></td><td></td><td class="s">    use Catalyst qw/My::Module/;</td></tr>
+<tr><td class="h"><a name="212"></a>212</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="213"></a>213</td><td></td><td></td><td></td><td></td><td class="s">If your plugin starts with a name other than C&lt;Catalyst::Plugin::&gt;, you can</td></tr>
+<tr><td class="h"><a name="214"></a>214</td><td></td><td></td><td></td><td></td><td class="s">fully qualify the name by using a unary plus:</td></tr>
+<tr><td class="h"><a name="215"></a>215</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="216"></a>216</td><td></td><td></td><td></td><td></td><td class="s">    use Catalyst qw/</td></tr>
+<tr><td class="h"><a name="217"></a>217</td><td></td><td></td><td></td><td></td><td class="s">        My::Module</td></tr>
+<tr><td class="h"><a name="218"></a>218</td><td></td><td></td><td></td><td></td><td class="s">        +Fully::Qualified::Plugin::Name</td></tr>
+<tr><td class="h"><a name="219"></a>219</td><td></td><td></td><td></td><td></td><td class="s">    /;</td></tr>
+<tr><td class="h"><a name="220"></a>220</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="221"></a>221</td><td></td><td></td><td></td><td></td><td class="s">Special flags like C&lt;-Debug&gt; can also be specified as</td></tr>
+<tr><td class="h"><a name="222"></a>222</td><td></td><td></td><td></td><td></td><td class="s">arguments when Catalyst is loaded:</td></tr>
+<tr><td class="h"><a name="223"></a>223</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="224"></a>224</td><td></td><td></td><td></td><td></td><td class="s">    use Catalyst qw/-Debug My::Module/;</td></tr>
+<tr><td class="h"><a name="225"></a>225</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="226"></a>226</td><td></td><td></td><td></td><td></td><td class="s">The position of plugins and flags in the chain is important, because</td></tr>
+<tr><td class="h"><a name="227"></a>227</td><td></td><td></td><td></td><td></td><td class="s">they are loaded in the order in which they appear.</td></tr>
+<tr><td class="h"><a name="228"></a>228</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="229"></a>229</td><td></td><td></td><td></td><td></td><td class="s">The following flags are supported:</td></tr>
+<tr><td class="h"><a name="230"></a>230</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="231"></a>231</td><td></td><td></td><td></td><td></td><td class="s">=head2 -Debug</td></tr>
+<tr><td class="h"><a name="232"></a>232</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="233"></a>233</td><td></td><td></td><td></td><td></td><td class="s">Enables debug output. You can also force this setting from the system</td></tr>
+<tr><td class="h"><a name="234"></a>234</td><td></td><td></td><td></td><td></td><td class="s">environment with CATALYST_DEBUG or &lt;MYAPP&gt;_DEBUG. The environment</td></tr>
+<tr><td class="h"><a name="235"></a>235</td><td></td><td></td><td></td><td></td><td class="s">settings override the application, with &lt;MYAPP&gt;_DEBUG having the highest</td></tr>
+<tr><td class="h"><a name="236"></a>236</td><td></td><td></td><td></td><td></td><td class="s">priority.</td></tr>
+<tr><td class="h"><a name="237"></a>237</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="238"></a>238</td><td></td><td></td><td></td><td></td><td class="s">This sets the log level to 'debug' and enables full debug output on the</td></tr>
+<tr><td class="h"><a name="239"></a>239</td><td></td><td></td><td></td><td></td><td class="s">error screen. If you only want the latter, see L&lt;&lt; $c-&gt;debug &gt;&gt;.</td></tr>
+<tr><td class="h"><a name="240"></a>240</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="241"></a>241</td><td></td><td></td><td></td><td></td><td class="s">=head2 -Home</td></tr>
+<tr><td class="h"><a name="242"></a>242</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="243"></a>243</td><td></td><td></td><td></td><td></td><td class="s">Forces Catalyst to use a specific home directory, e.g.:</td></tr>
+<tr><td class="h"><a name="244"></a>244</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="245"></a>245</td><td></td><td></td><td></td><td></td><td class="s">    use Catalyst qw[-Home=/usr/mst];</td></tr>
+<tr><td class="h"><a name="246"></a>246</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="247"></a>247</td><td></td><td></td><td></td><td></td><td class="s">This can also be done in the shell environment by setting either the</td></tr>
+<tr><td class="h"><a name="248"></a>248</td><td></td><td></td><td></td><td></td><td class="s">C&lt;CATALYST_HOME&gt; environment variable or C&lt;MYAPP_HOME&gt;; where C&lt;MYAPP&gt;</td></tr>
+<tr><td class="h"><a name="249"></a>249</td><td></td><td></td><td></td><td></td><td class="s">is replaced with the uppercased name of your application, any &quot;::&quot; in</td></tr>
+<tr><td class="h"><a name="250"></a>250</td><td></td><td></td><td></td><td></td><td class="s">the name will be replaced with underscores, e.g. MyApp::Web should use</td></tr>
+<tr><td class="h"><a name="251"></a>251</td><td></td><td></td><td></td><td></td><td class="s">MYAPP_WEB_HOME. If both variables are set, the MYAPP_HOME one will be used.</td></tr>
+<tr><td class="h"><a name="252"></a>252</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="253"></a>253</td><td></td><td></td><td></td><td></td><td class="s">If none of these are set, Catalyst will attempt to automatically detect the</td></tr>
+<tr><td class="h"><a name="254"></a>254</td><td></td><td></td><td></td><td></td><td class="s">home directory. If you are working in a development environment, Catalyst</td></tr>
+<tr><td class="h"><a name="255"></a>255</td><td></td><td></td><td></td><td></td><td class="s">will try and find the directory containing either Makefile.PL, Build.PL or</td></tr>
+<tr><td class="h"><a name="256"></a>256</td><td></td><td></td><td></td><td></td><td class="s">dist.ini. If the application has been installed into the system (i.e.</td></tr>
+<tr><td class="h"><a name="257"></a>257</td><td></td><td></td><td></td><td></td><td class="s">you have done C&lt;make install&gt;), then Catalyst will use the path to your</td></tr>
+<tr><td class="h"><a name="258"></a>258</td><td></td><td></td><td></td><td></td><td class="s">application module, without the .pm extension (e.g., /foo/MyApp if your</td></tr>
+<tr><td class="h"><a name="259"></a>259</td><td></td><td></td><td></td><td></td><td class="s">application was installed at /foo/MyApp.pm)</td></tr>
+<tr><td class="h"><a name="260"></a>260</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="261"></a>261</td><td></td><td></td><td></td><td></td><td class="s">=head2 -Log</td></tr>
+<tr><td class="h"><a name="262"></a>262</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="263"></a>263</td><td></td><td></td><td></td><td></td><td class="s">    use Catalyst '-Log=warn,fatal,error';</td></tr>
+<tr><td class="h"><a name="264"></a>264</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="265"></a>265</td><td></td><td></td><td></td><td></td><td class="s">Specifies a comma-delimited list of log levels.</td></tr>
+<tr><td class="h"><a name="266"></a>266</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="267"></a>267</td><td></td><td></td><td></td><td></td><td class="s">=head2 -Stats</td></tr>
+<tr><td class="h"><a name="268"></a>268</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="269"></a>269</td><td></td><td></td><td></td><td></td><td class="s">Enables statistics collection and reporting.</td></tr>
+<tr><td class="h"><a name="270"></a>270</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="271"></a>271</td><td></td><td></td><td></td><td></td><td class="s">   use Catalyst qw/-Stats=1/;</td></tr>
+<tr><td class="h"><a name="272"></a>272</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="273"></a>273</td><td></td><td></td><td></td><td></td><td class="s">You can also force this setting from the system environment with CATALYST_STATS</td></tr>
+<tr><td class="h"><a name="274"></a>274</td><td></td><td></td><td></td><td></td><td class="s">or &lt;MYAPP&gt;_STATS. The environment settings override the application, with</td></tr>
+<tr><td class="h"><a name="275"></a>275</td><td></td><td></td><td></td><td></td><td class="s">&lt;MYAPP&gt;_STATS having the highest priority.</td></tr>
+<tr><td class="h"><a name="276"></a>276</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="277"></a>277</td><td></td><td></td><td></td><td></td><td class="s">Stats are also enabled if L&lt;&lt; debugging |/&quot;-Debug&quot; &gt;&gt; is enabled.</td></tr>
+<tr><td class="h"><a name="278"></a>278</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="279"></a>279</td><td></td><td></td><td></td><td></td><td class="s">=head1 METHODS</td></tr>
+<tr><td class="h"><a name="280"></a>280</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="281"></a>281</td><td></td><td></td><td></td><td></td><td class="s">=head2 INFORMATION ABOUT THE CURRENT REQUEST</td></tr>
+<tr><td class="h"><a name="282"></a>282</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="283"></a>283</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;action</td></tr>
+<tr><td class="h"><a name="284"></a>284</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="285"></a>285</td><td></td><td></td><td></td><td></td><td class="s">Returns a L&lt;Catalyst::Action&gt; object for the current action, which</td></tr>
+<tr><td class="h"><a name="286"></a>286</td><td></td><td></td><td></td><td></td><td class="s">stringifies to the action name. See L&lt;Catalyst::Action&gt;.</td></tr>
+<tr><td class="h"><a name="287"></a>287</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="288"></a>288</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;namespace</td></tr>
+<tr><td class="h"><a name="289"></a>289</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="290"></a>290</td><td></td><td></td><td></td><td></td><td class="s">Returns the namespace of the current action, i.e., the URI prefix</td></tr>
+<tr><td class="h"><a name="291"></a>291</td><td></td><td></td><td></td><td></td><td class="s">corresponding to the controller of the current action. For example:</td></tr>
+<tr><td class="h"><a name="292"></a>292</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="293"></a>293</td><td></td><td></td><td></td><td></td><td class="s">    # in Controller::Foo::Bar</td></tr>
+<tr><td class="h"><a name="294"></a>294</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;namespace; # returns 'foo/bar';</td></tr>
+<tr><td class="h"><a name="295"></a>295</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="296"></a>296</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;request</td></tr>
+<tr><td class="h"><a name="297"></a>297</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="298"></a>298</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;req</td></tr>
+<tr><td class="h"><a name="299"></a>299</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="300"></a>300</td><td></td><td></td><td></td><td></td><td class="s">Returns the current L&lt;Catalyst::Request&gt; object, giving access to</td></tr>
+<tr><td class="h"><a name="301"></a>301</td><td></td><td></td><td></td><td></td><td class="s">information about the current client request (including parameters,</td></tr>
+<tr><td class="h"><a name="302"></a>302</td><td></td><td></td><td></td><td></td><td class="s">cookies, HTTP headers, etc.). See L&lt;Catalyst::Request&gt;.</td></tr>
+<tr><td class="h"><a name="303"></a>303</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="304"></a>304</td><td></td><td></td><td></td><td></td><td class="s">=head2 REQUEST FLOW HANDLING</td></tr>
+<tr><td class="h"><a name="305"></a>305</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="306"></a>306</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;forward( $action [, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="307"></a>307</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="308"></a>308</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;forward( $class, $method, [, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="309"></a>309</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="310"></a>310</td><td></td><td></td><td></td><td></td><td class="s">Forwards processing to another action, by its private name. If you give a</td></tr>
+<tr><td class="h"><a name="311"></a>311</td><td></td><td></td><td></td><td></td><td class="s">class name but no method, C&lt;process()&gt; is called. You may also optionally</td></tr>
+<tr><td class="h"><a name="312"></a>312</td><td></td><td></td><td></td><td></td><td class="s">pass arguments in an arrayref. The action will receive the arguments in</td></tr>
+<tr><td class="h"><a name="313"></a>313</td><td></td><td></td><td></td><td></td><td class="s">C&lt;@_&gt; and C&lt;&lt; $c-&gt;req-&gt;args &gt;&gt;. Upon returning from the function,</td></tr>
+<tr><td class="h"><a name="314"></a>314</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $c-&gt;req-&gt;args &gt;&gt; will be restored to the previous values.</td></tr>
+<tr><td class="h"><a name="315"></a>315</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="316"></a>316</td><td></td><td></td><td></td><td></td><td class="s">Any data C&lt;return&gt;ed from the action forwarded to, will be returned by the</td></tr>
+<tr><td class="h"><a name="317"></a>317</td><td></td><td></td><td></td><td></td><td class="s">call to forward.</td></tr>
+<tr><td class="h"><a name="318"></a>318</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="319"></a>319</td><td></td><td></td><td></td><td></td><td class="s">    my $foodata = $c-&gt;forward('/foo');</td></tr>
+<tr><td class="h"><a name="320"></a>320</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;forward('index');</td></tr>
+<tr><td class="h"><a name="321"></a>321</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;forward(qw/Model::DBIC::Foo do_stuff/);</td></tr>
+<tr><td class="h"><a name="322"></a>322</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;forward('View::TT');</td></tr>
+<tr><td class="h"><a name="323"></a>323</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="324"></a>324</td><td></td><td></td><td></td><td></td><td class="s">Note that L&lt;&lt; forward|/&quot;$c-&gt;forward( $action [, \@arguments ] )&quot; &gt;&gt; implies</td></tr>
+<tr><td class="h"><a name="325"></a>325</td><td></td><td></td><td></td><td></td><td class="s">an C&lt;&lt; eval { } &gt;&gt; around the call (actually</td></tr>
+<tr><td class="h"><a name="326"></a>326</td><td></td><td></td><td></td><td></td><td class="s">L&lt;&lt; execute|/&quot;$c-&gt;execute( $class, $coderef )&quot; &gt;&gt; does), thus rendering all</td></tr>
+<tr><td class="h"><a name="327"></a>327</td><td></td><td></td><td></td><td></td><td class="s">exceptions thrown by the called action non-fatal and pushing them onto</td></tr>
+<tr><td class="h"><a name="328"></a>328</td><td></td><td></td><td></td><td></td><td class="s">$c-&gt;error instead. If you want C&lt;die&gt; to propagate you need to do something</td></tr>
+<tr><td class="h"><a name="329"></a>329</td><td></td><td></td><td></td><td></td><td class="s">like:</td></tr>
+<tr><td class="h"><a name="330"></a>330</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="331"></a>331</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;forward('foo');</td></tr>
+<tr><td class="h"><a name="332"></a>332</td><td></td><td></td><td></td><td></td><td class="s">    die join &quot;\n&quot;, @{ $c-&gt;error } if @{ $c-&gt;error };</td></tr>
+<tr><td class="h"><a name="333"></a>333</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="334"></a>334</td><td></td><td></td><td></td><td></td><td class="s">Or make sure to always return true values from your actions and write</td></tr>
+<tr><td class="h"><a name="335"></a>335</td><td></td><td></td><td></td><td></td><td class="s">your code like this:</td></tr>
+<tr><td class="h"><a name="336"></a>336</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="337"></a>337</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;forward('foo') || return;</td></tr>
+<tr><td class="h"><a name="338"></a>338</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="339"></a>339</td><td></td><td></td><td></td><td></td><td class="s">Another note is that C&lt;&lt; $c-&gt;forward &gt;&gt; always returns a scalar because it</td></tr>
+<tr><td class="h"><a name="340"></a>340</td><td></td><td></td><td></td><td></td><td class="s">actually returns $c-&gt;state which operates in a scalar context.</td></tr>
+<tr><td class="h"><a name="341"></a>341</td><td></td><td></td><td></td><td></td><td class="s">Thus, something like:</td></tr>
+<tr><td class="h"><a name="342"></a>342</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="343"></a>343</td><td></td><td></td><td></td><td></td><td class="s">    return @array;</td></tr>
+<tr><td class="h"><a name="344"></a>344</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="345"></a>345</td><td></td><td></td><td></td><td></td><td class="s">in an action that is forwarded to is going to return a scalar,</td></tr>
+<tr><td class="h"><a name="346"></a>346</td><td></td><td></td><td></td><td></td><td class="s">i.e. how many items are in that array, which is probably not what you want.</td></tr>
+<tr><td class="h"><a name="347"></a>347</td><td></td><td></td><td></td><td></td><td class="s">If you need to return an array then return a reference to it,</td></tr>
+<tr><td class="h"><a name="348"></a>348</td><td></td><td></td><td></td><td></td><td class="s">or stash it like so:</td></tr>
+<tr><td class="h"><a name="349"></a>349</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="350"></a>350</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;stash-&gt;{array} = \@array;</td></tr>
+<tr><td class="h"><a name="351"></a>351</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="352"></a>352</td><td></td><td></td><td></td><td></td><td class="s">and access it from the stash.</td></tr>
+<tr><td class="h"><a name="353"></a>353</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="354"></a>354</td><td></td><td></td><td></td><td></td><td class="s">Keep in mind that the C&lt;end&gt; method used is that of the caller action. So a C&lt;$c-E&lt;gt&gt;detach&gt; inside a forwarded action would run the C&lt;end&gt; method from the original action requested.</td></tr>
+<tr><td class="h"><a name="355"></a>355</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="356"></a>356</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="357"></a>357</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="358"></a>358</td><td class="c0">14</td><td class="c0"><span title="Avg 330&micro;s">4.62ms</span></td><td class="c0">14</td><td class="c0">17.3ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 50&micro;s (23+27) within Catalyst::BEGIN@358 which was called:
+#    once (23&micro;s+27&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#358">line 358</a>
+# spent 17.2ms (48&micro;s+17.1) within Catalyst::forward which was called 6 times, avg 2.86ms/call:
+# 3 times (24&micro;s+-24&micro;s) by Catalyst::Controller::_DISPATCH at <a href="Catalyst-Controller-pm-576-sub.html#99">line 99 of Catalyst/Controller.pm</a>, avg 0s/call
+#    once (7&micro;s+17.1ms) by Catalyst::Dispatcher::dispatch at <a href="Catalyst-Dispatcher-pm-1877-sub.html#105">line 105 of Catalyst/Dispatcher.pm</a>
+#    once (12&micro;s+-12&micro;s) by stemmaweb::Controller::Relation::relationships at <a href="lib-stemmaweb-Controller-Relation-pm-2093-sub.html#200">line 200 of lib/stemmaweb/Controller/Relation.pm</a>
+#    once (6&micro;s+-6&micro;s) by Catalyst::Controller::_DISPATCH at <a href="Catalyst-Controller-pm-576-sub.html#102">line 102 of Catalyst/Controller.pm</a></div></div>sub forward { my $c = shift; no warnings 'recursion'; $c-&gt;dispatcher-&gt;forward( $c, @_ ) }<div class="calls"><div class="calls_out"># spent  35.0ms making 6 calls to <a href="Catalyst-Dispatcher-pm-1877-sub.html#234">Catalyst::Dispatcher::forward</a>, avg 5.83ms/call, recursion: max depth 2, sum of overlapping time 17.9ms
+# spent    90&micro;s making 6 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_dispatcher_accessor</a>, avg 15&micro;s/call
+# spent    50&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#358">Catalyst::BEGIN@358</a>
+# spent    27&micro;s making 1 call to <a href="warnings-pm-2-sub.html#401">warnings::unimport</a></div></div></td></tr>
+<tr><td class="h"><a name="359"></a>359</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="360"></a>360</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;detach( $action [, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="361"></a>361</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="362"></a>362</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;detach( $class, $method, [, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="363"></a>363</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="364"></a>364</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;detach()</td></tr>
+<tr><td class="h"><a name="365"></a>365</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="366"></a>366</td><td></td><td></td><td></td><td></td><td class="s">The same as L&lt;&lt; forward|/&quot;$c-&gt;forward( $action [, \@arguments ] )&quot; &gt;&gt;, but</td></tr>
+<tr><td class="h"><a name="367"></a>367</td><td></td><td></td><td></td><td></td><td class="s">doesn't return to the previous action when processing is finished.</td></tr>
+<tr><td class="h"><a name="368"></a>368</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="369"></a>369</td><td></td><td></td><td></td><td></td><td class="s">When called with no arguments it escapes the processing chain entirely.</td></tr>
+<tr><td class="h"><a name="370"></a>370</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="371"></a>371</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="372"></a>372</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="373"></a>373</td><td></td><td></td><td></td><td></td><td class="s">sub detach { my $c = shift; $c-&gt;dispatcher-&gt;detach( $c, @_ ) }</td></tr>
+<tr><td class="h"><a name="374"></a>374</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="375"></a>375</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;visit( $action [, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="376"></a>376</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="377"></a>377</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;visit( $action [, \@captures, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="378"></a>378</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="379"></a>379</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;visit( $class, $method, [, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="380"></a>380</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="381"></a>381</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;visit( $class, $method, [, \@captures, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="382"></a>382</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="383"></a>383</td><td></td><td></td><td></td><td></td><td class="s">Almost the same as L&lt;&lt; forward|/&quot;$c-&gt;forward( $action [, \@arguments ] )&quot; &gt;&gt;,</td></tr>
+<tr><td class="h"><a name="384"></a>384</td><td></td><td></td><td></td><td></td><td class="s">but does a full dispatch, instead of just calling the new C&lt;$action&gt; /</td></tr>
+<tr><td class="h"><a name="385"></a>385</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $class-&gt;$method &gt;&gt;. This means that C&lt;begin&gt;, C&lt;auto&gt; and the method</td></tr>
+<tr><td class="h"><a name="386"></a>386</td><td></td><td></td><td></td><td></td><td class="s">you go to are called, just like a new request.</td></tr>
+<tr><td class="h"><a name="387"></a>387</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="388"></a>388</td><td></td><td></td><td></td><td></td><td class="s">In addition both C&lt;&lt; $c-&gt;action &gt;&gt; and C&lt;&lt; $c-&gt;namespace &gt;&gt; are localized.</td></tr>
+<tr><td class="h"><a name="389"></a>389</td><td></td><td></td><td></td><td></td><td class="s">This means, for example, that C&lt;&lt; $c-&gt;action &gt;&gt; methods such as</td></tr>
+<tr><td class="h"><a name="390"></a>390</td><td></td><td></td><td></td><td></td><td class="s">L&lt;name|Catalyst::Action/name&gt;, L&lt;class|Catalyst::Action/class&gt; and</td></tr>
+<tr><td class="h"><a name="391"></a>391</td><td></td><td></td><td></td><td></td><td class="s">L&lt;reverse|Catalyst::Action/reverse&gt; return information for the visited action</td></tr>
+<tr><td class="h"><a name="392"></a>392</td><td></td><td></td><td></td><td></td><td class="s">when they are invoked within the visited action.  This is different from the</td></tr>
+<tr><td class="h"><a name="393"></a>393</td><td></td><td></td><td></td><td></td><td class="s">behavior of L&lt;&lt; forward|/&quot;$c-&gt;forward( $action [, \@arguments ] )&quot; &gt;&gt;, which</td></tr>
+<tr><td class="h"><a name="394"></a>394</td><td></td><td></td><td></td><td></td><td class="s">continues to use the $c-&gt;action object from the caller action even when</td></tr>
+<tr><td class="h"><a name="395"></a>395</td><td></td><td></td><td></td><td></td><td class="s">invoked from the called action.</td></tr>
+<tr><td class="h"><a name="396"></a>396</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="397"></a>397</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $c-&gt;stash &gt;&gt; is kept unchanged.</td></tr>
+<tr><td class="h"><a name="398"></a>398</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="399"></a>399</td><td></td><td></td><td></td><td></td><td class="s">In effect, L&lt;&lt; visit|/&quot;$c-&gt;visit( $action [, \@captures, \@arguments ] )&quot; &gt;&gt;</td></tr>
+<tr><td class="h"><a name="400"></a>400</td><td></td><td></td><td></td><td></td><td class="s">allows you to &quot;wrap&quot; another action, just as it would have been called by</td></tr>
+<tr><td class="h"><a name="401"></a>401</td><td></td><td></td><td></td><td></td><td class="s">dispatching from a URL, while the analogous</td></tr>
+<tr><td class="h"><a name="402"></a>402</td><td></td><td></td><td></td><td></td><td class="s">L&lt;&lt; go|/&quot;$c-&gt;go( $action [, \@captures, \@arguments ] )&quot; &gt;&gt; allows you to</td></tr>
+<tr><td class="h"><a name="403"></a>403</td><td></td><td></td><td></td><td></td><td class="s">transfer control to another action as if it had been reached directly from a URL.</td></tr>
+<tr><td class="h"><a name="404"></a>404</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="405"></a>405</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="406"></a>406</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="407"></a>407</td><td></td><td></td><td></td><td></td><td class="s">sub visit { my $c = shift; $c-&gt;dispatcher-&gt;visit( $c, @_ ) }</td></tr>
+<tr><td class="h"><a name="408"></a>408</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="409"></a>409</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;go( $action [, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="410"></a>410</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="411"></a>411</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;go( $action [, \@captures, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="412"></a>412</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="413"></a>413</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;go( $class, $method, [, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="414"></a>414</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="415"></a>415</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;go( $class, $method, [, \@captures, \@arguments ] )</td></tr>
+<tr><td class="h"><a name="416"></a>416</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="417"></a>417</td><td></td><td></td><td></td><td></td><td class="s">The relationship between C&lt;go&gt; and</td></tr>
+<tr><td class="h"><a name="418"></a>418</td><td></td><td></td><td></td><td></td><td class="s">L&lt;&lt; visit|/&quot;$c-&gt;visit( $action [, \@captures, \@arguments ] )&quot; &gt;&gt; is the same as</td></tr>
+<tr><td class="h"><a name="419"></a>419</td><td></td><td></td><td></td><td></td><td class="s">the relationship between</td></tr>
+<tr><td class="h"><a name="420"></a>420</td><td></td><td></td><td></td><td></td><td class="s">L&lt;&lt; forward|/&quot;$c-&gt;forward( $class, $method, [, \@arguments ] )&quot; &gt;&gt; and</td></tr>
+<tr><td class="h"><a name="421"></a>421</td><td></td><td></td><td></td><td></td><td class="s">L&lt;&lt; detach|/&quot;$c-&gt;detach( $action [, \@arguments ] )&quot; &gt;&gt;. Like C&lt;&lt; $c-&gt;visit &gt;&gt;,</td></tr>
+<tr><td class="h"><a name="422"></a>422</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $c-&gt;go &gt;&gt; will perform a full dispatch on the specified action or method,</td></tr>
+<tr><td class="h"><a name="423"></a>423</td><td></td><td></td><td></td><td></td><td class="s">with localized C&lt;&lt; $c-&gt;action &gt;&gt; and C&lt;&lt; $c-&gt;namespace &gt;&gt;. Like C&lt;detach&gt;,</td></tr>
+<tr><td class="h"><a name="424"></a>424</td><td></td><td></td><td></td><td></td><td class="s">C&lt;go&gt; escapes the processing of the current request chain on completion, and</td></tr>
+<tr><td class="h"><a name="425"></a>425</td><td></td><td></td><td></td><td></td><td class="s">does not return to its caller.</td></tr>
+<tr><td class="h"><a name="426"></a>426</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="427"></a>427</td><td></td><td></td><td></td><td></td><td class="s">@arguments are arguments to the final destination of $action. @captures are</td></tr>
+<tr><td class="h"><a name="428"></a>428</td><td></td><td></td><td></td><td></td><td class="s">arguments to the intermediate steps, if any, on the way to the final sub of</td></tr>
+<tr><td class="h"><a name="429"></a>429</td><td></td><td></td><td></td><td></td><td class="s">$action.</td></tr>
+<tr><td class="h"><a name="430"></a>430</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="431"></a>431</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="432"></a>432</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="433"></a>433</td><td></td><td></td><td></td><td></td><td class="s">sub go { my $c = shift; $c-&gt;dispatcher-&gt;go( $c, @_ ) }</td></tr>
+<tr><td class="h"><a name="434"></a>434</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="435"></a>435</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;response</td></tr>
+<tr><td class="h"><a name="436"></a>436</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="437"></a>437</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;res</td></tr>
+<tr><td class="h"><a name="438"></a>438</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="439"></a>439</td><td></td><td></td><td></td><td></td><td class="s">Returns the current L&lt;Catalyst::Response&gt; object, see there for details.</td></tr>
+<tr><td class="h"><a name="440"></a>440</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="441"></a>441</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;stash</td></tr>
+<tr><td class="h"><a name="442"></a>442</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="443"></a>443</td><td></td><td></td><td></td><td></td><td class="s">Returns a hashref to the stash, which may be used to store data and pass</td></tr>
+<tr><td class="h"><a name="444"></a>444</td><td></td><td></td><td></td><td></td><td class="s">it between components during a request. You can also set hash keys by</td></tr>
+<tr><td class="h"><a name="445"></a>445</td><td></td><td></td><td></td><td></td><td class="s">passing arguments. The stash is automatically sent to the view. The</td></tr>
+<tr><td class="h"><a name="446"></a>446</td><td></td><td></td><td></td><td></td><td class="s">stash is cleared at the end of a request; it cannot be used for</td></tr>
+<tr><td class="h"><a name="447"></a>447</td><td></td><td></td><td></td><td></td><td class="s">persistent storage (for this you must use a session; see</td></tr>
+<tr><td class="h"><a name="448"></a>448</td><td></td><td></td><td></td><td></td><td class="s">L&lt;Catalyst::Plugin::Session&gt; for a complete system integrated with</td></tr>
+<tr><td class="h"><a name="449"></a>449</td><td></td><td></td><td></td><td></td><td class="s">Catalyst).</td></tr>
+<tr><td class="h"><a name="450"></a>450</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="451"></a>451</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;stash-&gt;{foo} = $bar;</td></tr>
+<tr><td class="h"><a name="452"></a>452</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;stash( { moose =&gt; 'majestic', qux =&gt; 0 } );</td></tr>
+<tr><td class="h"><a name="453"></a>453</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;stash( bar =&gt; 1, gorch =&gt; 2 ); # equivalent to passing a hashref</td></tr>
+<tr><td class="h"><a name="454"></a>454</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="455"></a>455</td><td></td><td></td><td></td><td></td><td class="s">    # stash is automatically passed to the view for use in a template</td></tr>
+<tr><td class="h"><a name="456"></a>456</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;forward( 'MyApp::View::TT' );</td></tr>
+<tr><td class="h"><a name="457"></a>457</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="458"></a>458</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="459"></a>459</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="460"></a>460</td><td></td><td></td><td></td><td></td><td class="s">around stash =&gt; sub {</td></tr>
+<tr><td class="h"><a name="461"></a>461</td><td class="c0">65</td><td class="c3"><span title="Avg 746ns">49&micro;s</span></td><td></td><td></td><td class="s">    my $orig = shift;</td></tr>
+<tr><td class="h"><a name="462"></a>462</td><td></td><td></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="463"></a>463</td><td></td><td></td><td class="c0">13</td><td class="c3">21&micro;s</td><td class="s">    my $stash = $orig-&gt;($c);<div class="calls"><div class="calls_out">    # spent    21&micro;s making 13 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::stash</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="464"></a>464</td><td></td><td></td><td></td><td></td><td class="s">    if (@_) {</td></tr>
+<tr><td class="h"><a name="465"></a>465</td><td></td><td></td><td></td><td></td><td class="s">        my $new_stash = @_ &gt; 1 ? {@_} : $_[0];</td></tr>
+<tr><td class="h"><a name="466"></a>466</td><td></td><td></td><td></td><td></td><td class="s">        croak('stash takes a hash or hashref') unless ref $new_stash;</td></tr>
+<tr><td class="h"><a name="467"></a>467</td><td></td><td></td><td></td><td></td><td class="s">        foreach my $key ( keys %$new_stash ) {</td></tr>
+<tr><td class="h"><a name="468"></a>468</td><td></td><td></td><td></td><td></td><td class="s">          $stash-&gt;{$key} = $new_stash-&gt;{$key};</td></tr>
+<tr><td class="h"><a name="469"></a>469</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="470"></a>470</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="471"></a>471</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="472"></a>472</td><td></td><td></td><td></td><td></td><td class="s">    return $stash;</td></tr>
+<tr><td class="h"><a name="473"></a>473</td><td class="c3">1</td><td class="c3"><span title="Avg 10&micro;s">10&micro;s</span></td><td class="c3">1</td><td class="c1">356&micro;s</td><td class="s">};<div class="calls"><div class="calls_out"># spent   356&micro;s making 1 call to <a href="Moose-pm-62-sub.html#90">Moose::around</a></div></div></td></tr>
+<tr><td class="h"><a name="474"></a>474</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="475"></a>475</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="476"></a>476</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;error</td></tr>
+<tr><td class="h"><a name="477"></a>477</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="478"></a>478</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;error($error, ...)</td></tr>
+<tr><td class="h"><a name="479"></a>479</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="480"></a>480</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;error($arrayref)</td></tr>
+<tr><td class="h"><a name="481"></a>481</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="482"></a>482</td><td></td><td></td><td></td><td></td><td class="s">Returns an arrayref containing error messages.  If Catalyst encounters an</td></tr>
+<tr><td class="h"><a name="483"></a>483</td><td></td><td></td><td></td><td></td><td class="s">error while processing a request, it stores the error in $c-&gt;error.  This</td></tr>
+<tr><td class="h"><a name="484"></a>484</td><td></td><td></td><td></td><td></td><td class="s">method should only be used to store fatal error messages.</td></tr>
+<tr><td class="h"><a name="485"></a>485</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="486"></a>486</td><td></td><td></td><td></td><td></td><td class="s">    my @error = @{ $c-&gt;error };</td></tr>
+<tr><td class="h"><a name="487"></a>487</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="488"></a>488</td><td></td><td></td><td></td><td></td><td class="s">Add a new error.</td></tr>
+<tr><td class="h"><a name="489"></a>489</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="490"></a>490</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;error('Something bad happened');</td></tr>
+<tr><td class="h"><a name="491"></a>491</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="492"></a>492</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="493"></a>493</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="494"></a>494</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 9&micro;s within Catalyst::error which was called 4 times, avg 2&micro;s/call:
+#    once (4&micro;s+0s) by Catalyst::Controller::_ACTION at <a href="Catalyst-Controller-pm-576-sub.html#131">line 131 of Catalyst/Controller.pm</a>
+#    once (2&micro;s+0s) by Catalyst::Controller::_END at <a href="Catalyst-Controller-pm-576-sub.html#139">line 139 of Catalyst/Controller.pm</a>
+#    once (2&micro;s+0s) by Catalyst::finalize at <a href="Catalyst-pm-381-sub.html#1787">line 1787</a>
+#    once (2&micro;s+0s) by Catalyst::finalize at <a href="Catalyst-pm-381-sub.html#1773">line 1773</a></div></div>sub error {</td></tr>
+<tr><td class="h"><a name="495"></a>495</td><td class="c0">12</td><td class="c3"><span title="Avg 1&micro;s">16&micro;s</span></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="496"></a>496</td><td></td><td></td><td></td><td></td><td class="s">    if ( $_[0] ) {</td></tr>
+<tr><td class="h"><a name="497"></a>497</td><td></td><td></td><td></td><td></td><td class="s">        my $error = ref $_[0] eq 'ARRAY' ? $_[0] : [@_];</td></tr>
+<tr><td class="h"><a name="498"></a>498</td><td></td><td></td><td></td><td></td><td class="s">        croak @$error unless ref $c;</td></tr>
+<tr><td class="h"><a name="499"></a>499</td><td></td><td></td><td></td><td></td><td class="s">        push @{ $c-&gt;{error} }, @$error;</td></tr>
+<tr><td class="h"><a name="500"></a>500</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="501"></a>501</td><td></td><td></td><td></td><td></td><td class="s">    elsif ( defined $_[0] ) { $c-&gt;{error} = undef }</td></tr>
+<tr><td class="h"><a name="502"></a>502</td><td></td><td></td><td></td><td></td><td class="s">    return $c-&gt;{error} || [];</td></tr>
+<tr><td class="h"><a name="503"></a>503</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="504"></a>504</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="505"></a>505</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="506"></a>506</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;state</td></tr>
+<tr><td class="h"><a name="507"></a>507</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="508"></a>508</td><td></td><td></td><td></td><td></td><td class="s">Contains the return value of the last executed action.</td></tr>
+<tr><td class="h"><a name="509"></a>509</td><td></td><td></td><td></td><td></td><td class="s">Note that &lt;&lt; $c-&gt;state &gt;&gt; operates in a scalar context which means that all</td></tr>
+<tr><td class="h"><a name="510"></a>510</td><td></td><td></td><td></td><td></td><td class="s">values it returns are scalar.</td></tr>
+<tr><td class="h"><a name="511"></a>511</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="512"></a>512</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;clear_errors</td></tr>
+<tr><td class="h"><a name="513"></a>513</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="514"></a>514</td><td></td><td></td><td></td><td></td><td class="s">Clear errors.  You probably don't want to clear the errors unless you are</td></tr>
+<tr><td class="h"><a name="515"></a>515</td><td></td><td></td><td></td><td></td><td class="s">implementing a custom error screen.</td></tr>
+<tr><td class="h"><a name="516"></a>516</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="517"></a>517</td><td></td><td></td><td></td><td></td><td class="s">This is equivalent to running</td></tr>
+<tr><td class="h"><a name="518"></a>518</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="519"></a>519</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;error(0);</td></tr>
+<tr><td class="h"><a name="520"></a>520</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="521"></a>521</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="522"></a>522</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="523"></a>523</td><td></td><td></td><td></td><td></td><td class="s">sub clear_errors {</td></tr>
+<tr><td class="h"><a name="524"></a>524</td><td></td><td></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="525"></a>525</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;error(0);</td></tr>
+<tr><td class="h"><a name="526"></a>526</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="527"></a>527</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="528"></a>528</td><td></td><td></td><td></td><td></td><td class="s">sub _comp_search_prefixes {</td></tr>
+<tr><td class="h"><a name="529"></a>529</td><td></td><td></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="530"></a>530</td><td></td><td></td><td></td><td></td><td class="s">    return map $c-&gt;components-&gt;{ $_ }, $c-&gt;_comp_names_search_prefixes(@_);</td></tr>
+<tr><td class="h"><a name="531"></a>531</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="532"></a>532</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="533"></a>533</td><td></td><td></td><td></td><td></td><td class="s"># search components given a name and some prefixes</td></tr>
+<tr><td class="h"><a name="534"></a>534</td><td></td><td></td><td></td><td></td><td class="s">sub _comp_names_search_prefixes {</td></tr>
+<tr><td class="h"><a name="535"></a>535</td><td></td><td></td><td></td><td></td><td class="s">    my ( $c, $name, @prefixes ) = @_;</td></tr>
+<tr><td class="h"><a name="536"></a>536</td><td></td><td></td><td></td><td></td><td class="s">    my $appclass = ref $c || $c;</td></tr>
+<tr><td class="h"><a name="537"></a>537</td><td></td><td></td><td></td><td></td><td class="s">    my $filter   = &quot;^${appclass}::(&quot; . join( '|', @prefixes ) . ')::';</td></tr>
+<tr><td class="h"><a name="538"></a>538</td><td></td><td></td><td></td><td></td><td class="s">    $filter = qr/$filter/; # Compile regex now rather than once per loop</td></tr>
+<tr><td class="h"><a name="539"></a>539</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="540"></a>540</td><td></td><td></td><td></td><td></td><td class="s">    # map the original component name to the sub part that we will search against</td></tr>
+<tr><td class="h"><a name="541"></a>541</td><td></td><td></td><td></td><td></td><td class="s">    my %eligible = map { my $n = $_; $n =~ s{^$appclass\::[^:]+::}{}; $_ =&gt; $n; }</td></tr>
+<tr><td class="h"><a name="542"></a>542</td><td></td><td></td><td></td><td></td><td class="s">        grep { /$filter/ } keys %{ $c-&gt;components };</td></tr>
+<tr><td class="h"><a name="543"></a>543</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="544"></a>544</td><td></td><td></td><td></td><td></td><td class="s">    # undef for a name will return all</td></tr>
+<tr><td class="h"><a name="545"></a>545</td><td></td><td></td><td></td><td></td><td class="s">    return keys %eligible if !defined $name;</td></tr>
+<tr><td class="h"><a name="546"></a>546</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="547"></a>547</td><td></td><td></td><td></td><td></td><td class="s">    my $query  = ref $name ? $name : qr/^$name$/i;</td></tr>
+<tr><td class="h"><a name="548"></a>548</td><td></td><td></td><td></td><td></td><td class="s">    my @result = grep { $eligible{$_} =~ m{$query} } keys %eligible;</td></tr>
+<tr><td class="h"><a name="549"></a>549</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="550"></a>550</td><td></td><td></td><td></td><td></td><td class="s">    return @result if @result;</td></tr>
+<tr><td class="h"><a name="551"></a>551</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="552"></a>552</td><td></td><td></td><td></td><td></td><td class="s">    # if we were given a regexp to search against, we're done.</td></tr>
+<tr><td class="h"><a name="553"></a>553</td><td></td><td></td><td></td><td></td><td class="s">    return if ref $name;</td></tr>
+<tr><td class="h"><a name="554"></a>554</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="555"></a>555</td><td></td><td></td><td></td><td></td><td class="s">    # skip regexp fallback if configured</td></tr>
+<tr><td class="h"><a name="556"></a>556</td><td></td><td></td><td></td><td></td><td class="s">    return</td></tr>
+<tr><td class="h"><a name="557"></a>557</td><td></td><td></td><td></td><td></td><td class="s">        if $appclass-&gt;config-&gt;{disable_component_resolution_regex_fallback};</td></tr>
+<tr><td class="h"><a name="558"></a>558</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="559"></a>559</td><td></td><td></td><td></td><td></td><td class="s">    # regexp fallback</td></tr>
+<tr><td class="h"><a name="560"></a>560</td><td></td><td></td><td></td><td></td><td class="s">    $query  = qr/$name/i;</td></tr>
+<tr><td class="h"><a name="561"></a>561</td><td></td><td></td><td></td><td></td><td class="s">    @result = grep { $eligible{ $_ } =~ m{$query} } keys %eligible;</td></tr>
+<tr><td class="h"><a name="562"></a>562</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="563"></a>563</td><td></td><td></td><td></td><td></td><td class="s">    # no results? try against full names</td></tr>
+<tr><td class="h"><a name="564"></a>564</td><td></td><td></td><td></td><td></td><td class="s">    if( !@result ) {</td></tr>
+<tr><td class="h"><a name="565"></a>565</td><td></td><td></td><td></td><td></td><td class="s">        @result = grep { m{$query} } keys %eligible;</td></tr>
+<tr><td class="h"><a name="566"></a>566</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="567"></a>567</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="568"></a>568</td><td></td><td></td><td></td><td></td><td class="s">    # don't warn if we didn't find any results, it just might not exist</td></tr>
+<tr><td class="h"><a name="569"></a>569</td><td></td><td></td><td></td><td></td><td class="s">    if( @result ) {</td></tr>
+<tr><td class="h"><a name="570"></a>570</td><td></td><td></td><td></td><td></td><td class="s">        # Disgusting hack to work out correct method name</td></tr>
+<tr><td class="h"><a name="571"></a>571</td><td></td><td></td><td></td><td></td><td class="s">        my $warn_for = lc $prefixes[0];</td></tr>
+<tr><td class="h"><a name="572"></a>572</td><td></td><td></td><td></td><td></td><td class="s">        my $msg = &quot;Used regexp fallback for \$c-&gt;${warn_for}('${name}'), which found '&quot; .</td></tr>
+<tr><td class="h"><a name="573"></a>573</td><td></td><td></td><td></td><td></td><td class="s">           (join '&quot;, &quot;', @result) . &quot;'. Relying on regexp fallback behavior for &quot; .</td></tr>
+<tr><td class="h"><a name="574"></a>574</td><td></td><td></td><td></td><td></td><td class="s">           &quot;component resolution is unreliable and unsafe.&quot;;</td></tr>
+<tr><td class="h"><a name="575"></a>575</td><td></td><td></td><td></td><td></td><td class="s">        my $short = $result[0];</td></tr>
+<tr><td class="h"><a name="576"></a>576</td><td></td><td></td><td></td><td></td><td class="s">        # remove the component namespace prefix</td></tr>
+<tr><td class="h"><a name="577"></a>577</td><td></td><td></td><td></td><td></td><td class="s">        $short =~ s/.*?(Model|Controller|View):://;</td></tr>
+<tr><td class="h"><a name="578"></a>578</td><td></td><td></td><td></td><td></td><td class="s">        my $shortmess = Carp::shortmess('');</td></tr>
+<tr><td class="h"><a name="579"></a>579</td><td></td><td></td><td></td><td></td><td class="s">        if ($shortmess =~ m#Catalyst/Plugin#) {</td></tr>
+<tr><td class="h"><a name="580"></a>580</td><td></td><td></td><td></td><td></td><td class="s">           $msg .= &quot; You probably need to set '$short' instead of '${name}' in this &quot; .</td></tr>
+<tr><td class="h"><a name="581"></a>581</td><td></td><td></td><td></td><td></td><td class="s">              &quot;plugin's config&quot;;</td></tr>
+<tr><td class="h"><a name="582"></a>582</td><td></td><td></td><td></td><td></td><td class="s">        } elsif ($shortmess =~ m#Catalyst/lib/(View|Controller)#) {</td></tr>
+<tr><td class="h"><a name="583"></a>583</td><td></td><td></td><td></td><td></td><td class="s">           $msg .= &quot; You probably need to set '$short' instead of '${name}' in this &quot; .</td></tr>
+<tr><td class="h"><a name="584"></a>584</td><td></td><td></td><td></td><td></td><td class="s">              &quot;component's config&quot;;</td></tr>
+<tr><td class="h"><a name="585"></a>585</td><td></td><td></td><td></td><td></td><td class="s">        } else {</td></tr>
+<tr><td class="h"><a name="586"></a>586</td><td></td><td></td><td></td><td></td><td class="s">           $msg .= &quot; You probably meant \$c-&gt;${warn_for}('$short') instead of \$c-&gt;${warn_for}('${name}'), &quot; .</td></tr>
+<tr><td class="h"><a name="587"></a>587</td><td></td><td></td><td></td><td></td><td class="s">              &quot;but if you really wanted to search, pass in a regexp as the argument &quot; .</td></tr>
+<tr><td class="h"><a name="588"></a>588</td><td></td><td></td><td></td><td></td><td class="s">              &quot;like so: \$c-&gt;${warn_for}(qr/${name}/)&quot;;</td></tr>
+<tr><td class="h"><a name="589"></a>589</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="590"></a>590</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;warn( &quot;${msg}$shortmess&quot; );</td></tr>
+<tr><td class="h"><a name="591"></a>591</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="592"></a>592</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="593"></a>593</td><td></td><td></td><td></td><td></td><td class="s">    return @result;</td></tr>
+<tr><td class="h"><a name="594"></a>594</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="595"></a>595</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="596"></a>596</td><td></td><td></td><td></td><td></td><td class="s"># Find possible names for a prefix</td></tr>
+<tr><td class="h"><a name="597"></a>597</td><td></td><td></td><td></td><td></td><td class="s">sub _comp_names {</td></tr>
+<tr><td class="h"><a name="598"></a>598</td><td></td><td></td><td></td><td></td><td class="s">    my ( $c, @prefixes ) = @_;</td></tr>
+<tr><td class="h"><a name="599"></a>599</td><td></td><td></td><td></td><td></td><td class="s">    my $appclass = ref $c || $c;</td></tr>
+<tr><td class="h"><a name="600"></a>600</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="601"></a>601</td><td></td><td></td><td></td><td></td><td class="s">    my $filter = &quot;^${appclass}::(&quot; . join( '|', @prefixes ) . ')::';</td></tr>
+<tr><td class="h"><a name="602"></a>602</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="603"></a>603</td><td></td><td></td><td></td><td></td><td class="s">    my @names = map { s{$filter}{}; $_; }</td></tr>
+<tr><td class="h"><a name="604"></a>604</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;_comp_names_search_prefixes( undef, @prefixes );</td></tr>
+<tr><td class="h"><a name="605"></a>605</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="606"></a>606</td><td></td><td></td><td></td><td></td><td class="s">    return @names;</td></tr>
+<tr><td class="h"><a name="607"></a>607</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="608"></a>608</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="609"></a>609</td><td></td><td></td><td></td><td></td><td class="s"># Filter a component before returning by calling ACCEPT_CONTEXT if available</td></tr>
+<tr><td class="h"><a name="610"></a>610</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 1.23ms (79&micro;s+1.15) within Catalyst::_filter_component which was called 13 times, avg 94&micro;s/call:
+# 9 times (45&micro;s+19&micro;s) by Catalyst::component at <a href="Catalyst-pm-381-sub.html#840">line 840</a>, avg 7&micro;s/call
+# 3 times (27&micro;s+1.11ms) by Catalyst::model at <a href="Catalyst-pm-381-sub.html#685">line 685</a>, avg 380&micro;s/call
+#    once (8&micro;s+13&micro;s) by Catalyst::component at <a href="Catalyst-pm-381-sub.html#845">line 845</a></div></div>sub _filter_component {</td></tr>
+<tr><td class="h"><a name="611"></a>611</td><td class="c0">49</td><td class="c0"><span title="Avg 2&micro;s">122&micro;s</span></td><td></td><td></td><td class="s">    my ( $c, $comp, @args ) = @_;</td></tr>
+<tr><td class="h"><a name="612"></a>612</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="613"></a>613</td><td></td><td></td><td class="c0">16</td><td class="c0">1.15ms</td><td class="s">    if ( eval { $comp-&gt;can('ACCEPT_CONTEXT'); } ) {<div class="calls"><div class="calls_out">    # spent  1.11ms making  3 calls to <a href="Catalyst-Model-KiokuDB-pm-2055-sub.html#21">Catalyst::Model::KiokuDB::ACCEPT_CONTEXT</a>, avg 369&micro;s/call
+    # spent    41&micro;s making 13 calls to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__can">UNIVERSAL::can</a>, avg 3&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="614"></a>614</td><td></td><td></td><td></td><td></td><td class="s">        return $comp-&gt;ACCEPT_CONTEXT( $c, @args );</td></tr>
+<tr><td class="h"><a name="615"></a>615</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="616"></a>616</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="617"></a>617</td><td></td><td></td><td></td><td></td><td class="s">    return $comp;</td></tr>
+<tr><td class="h"><a name="618"></a>618</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="619"></a>619</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="620"></a>620</td><td></td><td></td><td></td><td></td><td class="s">=head2 COMPONENT ACCESSORS</td></tr>
+<tr><td class="h"><a name="621"></a>621</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="622"></a>622</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;controller($name)</td></tr>
+<tr><td class="h"><a name="623"></a>623</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="624"></a>624</td><td></td><td></td><td></td><td></td><td class="s">Gets a L&lt;Catalyst::Controller&gt; instance by name.</td></tr>
+<tr><td class="h"><a name="625"></a>625</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="626"></a>626</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;controller('Foo')-&gt;do_stuff;</td></tr>
+<tr><td class="h"><a name="627"></a>627</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="628"></a>628</td><td></td><td></td><td></td><td></td><td class="s">If the name is omitted, will return the controller for the dispatched</td></tr>
+<tr><td class="h"><a name="629"></a>629</td><td></td><td></td><td></td><td></td><td class="s">action.</td></tr>
+<tr><td class="h"><a name="630"></a>630</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="631"></a>631</td><td></td><td></td><td></td><td></td><td class="s">If you want to search for controllers, pass in a regexp as the argument.</td></tr>
+<tr><td class="h"><a name="632"></a>632</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="633"></a>633</td><td></td><td></td><td></td><td></td><td class="s">    # find all controllers that start with Foo</td></tr>
+<tr><td class="h"><a name="634"></a>634</td><td></td><td></td><td></td><td></td><td class="s">    my @foo_controllers = $c-&gt;controller(qr{^Foo});</td></tr>
+<tr><td class="h"><a name="635"></a>635</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="636"></a>636</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="637"></a>637</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="638"></a>638</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="639"></a>639</td><td></td><td></td><td></td><td></td><td class="s">sub controller {</td></tr>
+<tr><td class="h"><a name="640"></a>640</td><td></td><td></td><td></td><td></td><td class="s">    my ( $c, $name, @args ) = @_;</td></tr>
+<tr><td class="h"><a name="641"></a>641</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="642"></a>642</td><td></td><td></td><td></td><td></td><td class="s">    my $appclass = ref($c) || $c;</td></tr>
+<tr><td class="h"><a name="643"></a>643</td><td></td><td></td><td></td><td></td><td class="s">    if( $name ) {</td></tr>
+<tr><td class="h"><a name="644"></a>644</td><td></td><td></td><td></td><td></td><td class="s">        unless ( ref($name) ) { # Direct component hash lookup to avoid costly regexps</td></tr>
+<tr><td class="h"><a name="645"></a>645</td><td></td><td></td><td></td><td></td><td class="s">            my $comps = $c-&gt;components;</td></tr>
+<tr><td class="h"><a name="646"></a>646</td><td></td><td></td><td></td><td></td><td class="s">            my $check = $appclass.&quot;::Controller::&quot;.$name;</td></tr>
+<tr><td class="h"><a name="647"></a>647</td><td></td><td></td><td></td><td></td><td class="s">            return $c-&gt;_filter_component( $comps-&gt;{$check}, @args ) if exists $comps-&gt;{$check};</td></tr>
+<tr><td class="h"><a name="648"></a>648</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="649"></a>649</td><td></td><td></td><td></td><td></td><td class="s">        my @result = $c-&gt;_comp_search_prefixes( $name, qw/Controller C/ );</td></tr>
+<tr><td class="h"><a name="650"></a>650</td><td></td><td></td><td></td><td></td><td class="s">        return map { $c-&gt;_filter_component( $_, @args ) } @result if ref $name;</td></tr>
+<tr><td class="h"><a name="651"></a>651</td><td></td><td></td><td></td><td></td><td class="s">        return $c-&gt;_filter_component( $result[ 0 ], @args );</td></tr>
+<tr><td class="h"><a name="652"></a>652</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="653"></a>653</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="654"></a>654</td><td></td><td></td><td></td><td></td><td class="s">    return $c-&gt;component( $c-&gt;action-&gt;class );</td></tr>
+<tr><td class="h"><a name="655"></a>655</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="656"></a>656</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="657"></a>657</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;model($name)</td></tr>
+<tr><td class="h"><a name="658"></a>658</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="659"></a>659</td><td></td><td></td><td></td><td></td><td class="s">Gets a L&lt;Catalyst::Model&gt; instance by name.</td></tr>
+<tr><td class="h"><a name="660"></a>660</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="661"></a>661</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;model('Foo')-&gt;do_stuff;</td></tr>
+<tr><td class="h"><a name="662"></a>662</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="663"></a>663</td><td></td><td></td><td></td><td></td><td class="s">Any extra arguments are directly passed to ACCEPT_CONTEXT.</td></tr>
+<tr><td class="h"><a name="664"></a>664</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="665"></a>665</td><td></td><td></td><td></td><td></td><td class="s">If the name is omitted, it will look for</td></tr>
+<tr><td class="h"><a name="666"></a>666</td><td></td><td></td><td></td><td></td><td class="s"> - a model object in $c-&gt;stash-&gt;{current_model_instance}, then</td></tr>
+<tr><td class="h"><a name="667"></a>667</td><td></td><td></td><td></td><td></td><td class="s"> - a model name in $c-&gt;stash-&gt;{current_model}, then</td></tr>
+<tr><td class="h"><a name="668"></a>668</td><td></td><td></td><td></td><td></td><td class="s"> - a config setting 'default_model', or</td></tr>
+<tr><td class="h"><a name="669"></a>669</td><td></td><td></td><td></td><td></td><td class="s"> - check if there is only one model, and return it if that's the case.</td></tr>
+<tr><td class="h"><a name="670"></a>670</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="671"></a>671</td><td></td><td></td><td></td><td></td><td class="s">If you want to search for models, pass in a regexp as the argument.</td></tr>
+<tr><td class="h"><a name="672"></a>672</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="673"></a>673</td><td></td><td></td><td></td><td></td><td class="s">    # find all models that start with Foo</td></tr>
+<tr><td class="h"><a name="674"></a>674</td><td></td><td></td><td></td><td></td><td class="s">    my @foo_models = $c-&gt;model(qr{^Foo});</td></tr>
+<tr><td class="h"><a name="675"></a>675</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="676"></a>676</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="677"></a>677</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="678"></a>678</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 1.24ms (47&micro;s+1.20) within Catalyst::model which was called 3 times, avg 414&micro;s/call:
+#    once (28&micro;s+607&micro;s) by main::RUNTIME at <a href="script-nytprof-pl-1-sub.html#29">line 29 of script/nytprof.pl</a>
+#    once (10&micro;s+397&micro;s) by stemmaweb::Controller::Relation::text at <a href="lib-stemmaweb-Controller-Relation-pm-2093-sub.html#72">line 72 of lib/stemmaweb/Controller/Relation.pm</a>
+#    once (9&micro;s+191&micro;s) by stemmaweb::Controller::Relation::relationships at <a href="lib-stemmaweb-Controller-Relation-pm-2093-sub.html#155">line 155 of lib/stemmaweb/Controller/Relation.pm</a></div></div>sub model {</td></tr>
+<tr><td class="h"><a name="679"></a>679</td><td class="c0">21</td><td class="c3"><span title="Avg 2&micro;s">40&micro;s</span></td><td></td><td></td><td class="s">    my ( $c, $name, @args ) = @_;</td></tr>
+<tr><td class="h"><a name="680"></a>680</td><td></td><td></td><td></td><td></td><td class="s">    my $appclass = ref($c) || $c;</td></tr>
+<tr><td class="h"><a name="681"></a>681</td><td></td><td></td><td></td><td></td><td class="s">    if( $name ) {</td></tr>
+<tr><td class="h"><a name="682"></a>682</td><td></td><td></td><td></td><td></td><td class="s">        unless ( ref($name) ) { # Direct component hash lookup to avoid costly regexps</td></tr>
+<tr><td class="h"><a name="683"></a>683</td><td></td><td></td><td class="c1">3</td><td class="c3">54&micro;s</td><td class="s">            my $comps = $c-&gt;components;<div class="calls"><div class="calls_out">            # spent    54&micro;s making 3 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_components_accessor</a>, avg 18&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="684"></a>684</td><td></td><td></td><td></td><td></td><td class="s">            my $check = $appclass.&quot;::Model::&quot;.$name;</td></tr>
+<tr><td class="h"><a name="685"></a>685</td><td></td><td></td><td class="c1">3</td><td class="c0">1.14ms</td><td class="s">            return $c-&gt;_filter_component( $comps-&gt;{$check}, @args ) if exists $comps-&gt;{$check};<div class="calls"><div class="calls_out">            # spent  1.14ms making 3 calls to <a href="Catalyst-pm-381-sub.html#610">Catalyst::_filter_component</a>, avg 380&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="686"></a>686</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="687"></a>687</td><td></td><td></td><td></td><td></td><td class="s">        my @result = $c-&gt;_comp_search_prefixes( $name, qw/Model M/ );</td></tr>
+<tr><td class="h"><a name="688"></a>688</td><td></td><td></td><td></td><td></td><td class="s">        return map { $c-&gt;_filter_component( $_, @args ) } @result if ref $name;</td></tr>
+<tr><td class="h"><a name="689"></a>689</td><td></td><td></td><td></td><td></td><td class="s">        return $c-&gt;_filter_component( $result[ 0 ], @args );</td></tr>
+<tr><td class="h"><a name="690"></a>690</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="691"></a>691</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="692"></a>692</td><td></td><td></td><td></td><td></td><td class="s">    if (ref $c) {</td></tr>
+<tr><td class="h"><a name="693"></a>693</td><td></td><td></td><td></td><td></td><td class="s">        return $c-&gt;stash-&gt;{current_model_instance}</td></tr>
+<tr><td class="h"><a name="694"></a>694</td><td></td><td></td><td></td><td></td><td class="s">          if $c-&gt;stash-&gt;{current_model_instance};</td></tr>
+<tr><td class="h"><a name="695"></a>695</td><td></td><td></td><td></td><td></td><td class="s">        return $c-&gt;model( $c-&gt;stash-&gt;{current_model} )</td></tr>
+<tr><td class="h"><a name="696"></a>696</td><td></td><td></td><td></td><td></td><td class="s">          if $c-&gt;stash-&gt;{current_model};</td></tr>
+<tr><td class="h"><a name="697"></a>697</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="698"></a>698</td><td></td><td></td><td></td><td></td><td class="s">    return $c-&gt;model( $appclass-&gt;config-&gt;{default_model} )</td></tr>
+<tr><td class="h"><a name="699"></a>699</td><td></td><td></td><td></td><td></td><td class="s">      if $appclass-&gt;config-&gt;{default_model};</td></tr>
+<tr><td class="h"><a name="700"></a>700</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="701"></a>701</td><td></td><td></td><td></td><td></td><td class="s">    my( $comp, $rest ) = $c-&gt;_comp_search_prefixes( undef, qw/Model M/);</td></tr>
+<tr><td class="h"><a name="702"></a>702</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="703"></a>703</td><td></td><td></td><td></td><td></td><td class="s">    if( $rest ) {</td></tr>
+<tr><td class="h"><a name="704"></a>704</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;warn( Carp::shortmess('Calling $c-&gt;model() will return a random model unless you specify one of:') );</td></tr>
+<tr><td class="h"><a name="705"></a>705</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;warn( '* $c-&gt;config(default_model =&gt; &quot;the name of the default model to use&quot;)' );</td></tr>
+<tr><td class="h"><a name="706"></a>706</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;warn( '* $c-&gt;stash-&gt;{current_model} # the name of the model to use for this request' );</td></tr>
+<tr><td class="h"><a name="707"></a>707</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;warn( '* $c-&gt;stash-&gt;{current_model_instance} # the instance of the model to use for this request' );</td></tr>
+<tr><td class="h"><a name="708"></a>708</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;warn( 'NB: in version 5.81, the &quot;random&quot; behavior will not work at all.' );</td></tr>
+<tr><td class="h"><a name="709"></a>709</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="710"></a>710</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="711"></a>711</td><td></td><td></td><td></td><td></td><td class="s">    return $c-&gt;_filter_component( $comp );</td></tr>
+<tr><td class="h"><a name="712"></a>712</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="713"></a>713</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="714"></a>714</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="715"></a>715</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;view($name)</td></tr>
+<tr><td class="h"><a name="716"></a>716</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="717"></a>717</td><td></td><td></td><td></td><td></td><td class="s">Gets a L&lt;Catalyst::View&gt; instance by name.</td></tr>
+<tr><td class="h"><a name="718"></a>718</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="719"></a>719</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;view('Foo')-&gt;do_stuff;</td></tr>
+<tr><td class="h"><a name="720"></a>720</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="721"></a>721</td><td></td><td></td><td></td><td></td><td class="s">Any extra arguments are directly passed to ACCEPT_CONTEXT.</td></tr>
+<tr><td class="h"><a name="722"></a>722</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="723"></a>723</td><td></td><td></td><td></td><td></td><td class="s">If the name is omitted, it will look for</td></tr>
+<tr><td class="h"><a name="724"></a>724</td><td></td><td></td><td></td><td></td><td class="s"> - a view object in $c-&gt;stash-&gt;{current_view_instance}, then</td></tr>
+<tr><td class="h"><a name="725"></a>725</td><td></td><td></td><td></td><td></td><td class="s"> - a view name in $c-&gt;stash-&gt;{current_view}, then</td></tr>
+<tr><td class="h"><a name="726"></a>726</td><td></td><td></td><td></td><td></td><td class="s"> - a config setting 'default_view', or</td></tr>
+<tr><td class="h"><a name="727"></a>727</td><td></td><td></td><td></td><td></td><td class="s"> - check if there is only one view, and return it if that's the case.</td></tr>
+<tr><td class="h"><a name="728"></a>728</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="729"></a>729</td><td></td><td></td><td></td><td></td><td class="s">If you want to search for views, pass in a regexp as the argument.</td></tr>
+<tr><td class="h"><a name="730"></a>730</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="731"></a>731</td><td></td><td></td><td></td><td></td><td class="s">    # find all views that start with Foo</td></tr>
+<tr><td class="h"><a name="732"></a>732</td><td></td><td></td><td></td><td></td><td class="s">    my @foo_views = $c-&gt;view(qr{^Foo});</td></tr>
+<tr><td class="h"><a name="733"></a>733</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="734"></a>734</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="735"></a>735</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="736"></a>736</td><td></td><td></td><td></td><td></td><td class="s">sub view {</td></tr>
+<tr><td class="h"><a name="737"></a>737</td><td></td><td></td><td></td><td></td><td class="s">    my ( $c, $name, @args ) = @_;</td></tr>
+<tr><td class="h"><a name="738"></a>738</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="739"></a>739</td><td></td><td></td><td></td><td></td><td class="s">    my $appclass = ref($c) || $c;</td></tr>
+<tr><td class="h"><a name="740"></a>740</td><td></td><td></td><td></td><td></td><td class="s">    if( $name ) {</td></tr>
+<tr><td class="h"><a name="741"></a>741</td><td></td><td></td><td></td><td></td><td class="s">        unless ( ref($name) ) { # Direct component hash lookup to avoid costly regexps</td></tr>
+<tr><td class="h"><a name="742"></a>742</td><td></td><td></td><td></td><td></td><td class="s">            my $comps = $c-&gt;components;</td></tr>
+<tr><td class="h"><a name="743"></a>743</td><td></td><td></td><td></td><td></td><td class="s">            my $check = $appclass.&quot;::View::&quot;.$name;</td></tr>
+<tr><td class="h"><a name="744"></a>744</td><td></td><td></td><td></td><td></td><td class="s">            if( exists $comps-&gt;{$check} ) {</td></tr>
+<tr><td class="h"><a name="745"></a>745</td><td></td><td></td><td></td><td></td><td class="s">                return $c-&gt;_filter_component( $comps-&gt;{$check}, @args );</td></tr>
+<tr><td class="h"><a name="746"></a>746</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="747"></a>747</td><td></td><td></td><td></td><td></td><td class="s">            else {</td></tr>
+<tr><td class="h"><a name="748"></a>748</td><td></td><td></td><td></td><td></td><td class="s">                $c-&gt;log-&gt;warn( &quot;Attempted to use view '$check', but does not exist&quot; );</td></tr>
+<tr><td class="h"><a name="749"></a>749</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="750"></a>750</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="751"></a>751</td><td></td><td></td><td></td><td></td><td class="s">        my @result = $c-&gt;_comp_search_prefixes( $name, qw/View V/ );</td></tr>
+<tr><td class="h"><a name="752"></a>752</td><td></td><td></td><td></td><td></td><td class="s">        return map { $c-&gt;_filter_component( $_, @args ) } @result if ref $name;</td></tr>
+<tr><td class="h"><a name="753"></a>753</td><td></td><td></td><td></td><td></td><td class="s">        return $c-&gt;_filter_component( $result[ 0 ], @args );</td></tr>
+<tr><td class="h"><a name="754"></a>754</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="755"></a>755</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="756"></a>756</td><td></td><td></td><td></td><td></td><td class="s">    if (ref $c) {</td></tr>
+<tr><td class="h"><a name="757"></a>757</td><td></td><td></td><td></td><td></td><td class="s">        return $c-&gt;stash-&gt;{current_view_instance}</td></tr>
+<tr><td class="h"><a name="758"></a>758</td><td></td><td></td><td></td><td></td><td class="s">          if $c-&gt;stash-&gt;{current_view_instance};</td></tr>
+<tr><td class="h"><a name="759"></a>759</td><td></td><td></td><td></td><td></td><td class="s">        return $c-&gt;view( $c-&gt;stash-&gt;{current_view} )</td></tr>
+<tr><td class="h"><a name="760"></a>760</td><td></td><td></td><td></td><td></td><td class="s">          if $c-&gt;stash-&gt;{current_view};</td></tr>
+<tr><td class="h"><a name="761"></a>761</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="762"></a>762</td><td></td><td></td><td></td><td></td><td class="s">    return $c-&gt;view( $appclass-&gt;config-&gt;{default_view} )</td></tr>
+<tr><td class="h"><a name="763"></a>763</td><td></td><td></td><td></td><td></td><td class="s">      if $appclass-&gt;config-&gt;{default_view};</td></tr>
+<tr><td class="h"><a name="764"></a>764</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="765"></a>765</td><td></td><td></td><td></td><td></td><td class="s">    my( $comp, $rest ) = $c-&gt;_comp_search_prefixes( undef, qw/View V/);</td></tr>
+<tr><td class="h"><a name="766"></a>766</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="767"></a>767</td><td></td><td></td><td></td><td></td><td class="s">    if( $rest ) {</td></tr>
+<tr><td class="h"><a name="768"></a>768</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;warn( 'Calling $c-&gt;view() will return a random view unless you specify one of:' );</td></tr>
+<tr><td class="h"><a name="769"></a>769</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;warn( '* $c-&gt;config(default_view =&gt; &quot;the name of the default view to use&quot;)' );</td></tr>
+<tr><td class="h"><a name="770"></a>770</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;warn( '* $c-&gt;stash-&gt;{current_view} # the name of the view to use for this request' );</td></tr>
+<tr><td class="h"><a name="771"></a>771</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;warn( '* $c-&gt;stash-&gt;{current_view_instance} # the instance of the view to use for this request' );</td></tr>
+<tr><td class="h"><a name="772"></a>772</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;warn( 'NB: in version 5.81, the &quot;random&quot; behavior will not work at all.' );</td></tr>
+<tr><td class="h"><a name="773"></a>773</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="774"></a>774</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="775"></a>775</td><td></td><td></td><td></td><td></td><td class="s">    return $c-&gt;_filter_component( $comp );</td></tr>
+<tr><td class="h"><a name="776"></a>776</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="777"></a>777</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="778"></a>778</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;controllers</td></tr>
+<tr><td class="h"><a name="779"></a>779</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="780"></a>780</td><td></td><td></td><td></td><td></td><td class="s">Returns the available names which can be passed to $c-&gt;controller</td></tr>
+<tr><td class="h"><a name="781"></a>781</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="782"></a>782</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="783"></a>783</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="784"></a>784</td><td></td><td></td><td></td><td></td><td class="s">sub controllers {</td></tr>
+<tr><td class="h"><a name="785"></a>785</td><td></td><td></td><td></td><td></td><td class="s">    my ( $c ) = @_;</td></tr>
+<tr><td class="h"><a name="786"></a>786</td><td></td><td></td><td></td><td></td><td class="s">    return $c-&gt;_comp_names(qw/Controller C/);</td></tr>
+<tr><td class="h"><a name="787"></a>787</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="788"></a>788</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="789"></a>789</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;models</td></tr>
+<tr><td class="h"><a name="790"></a>790</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="791"></a>791</td><td></td><td></td><td></td><td></td><td class="s">Returns the available names which can be passed to $c-&gt;model</td></tr>
+<tr><td class="h"><a name="792"></a>792</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="793"></a>793</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="794"></a>794</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="795"></a>795</td><td></td><td></td><td></td><td></td><td class="s">sub models {</td></tr>
+<tr><td class="h"><a name="796"></a>796</td><td></td><td></td><td></td><td></td><td class="s">    my ( $c ) = @_;</td></tr>
+<tr><td class="h"><a name="797"></a>797</td><td></td><td></td><td></td><td></td><td class="s">    return $c-&gt;_comp_names(qw/Model M/);</td></tr>
+<tr><td class="h"><a name="798"></a>798</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="799"></a>799</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="800"></a>800</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="801"></a>801</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;views</td></tr>
+<tr><td class="h"><a name="802"></a>802</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="803"></a>803</td><td></td><td></td><td></td><td></td><td class="s">Returns the available names which can be passed to $c-&gt;view</td></tr>
+<tr><td class="h"><a name="804"></a>804</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="805"></a>805</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="806"></a>806</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="807"></a>807</td><td></td><td></td><td></td><td></td><td class="s">sub views {</td></tr>
+<tr><td class="h"><a name="808"></a>808</td><td></td><td></td><td></td><td></td><td class="s">    my ( $c ) = @_;</td></tr>
+<tr><td class="h"><a name="809"></a>809</td><td></td><td></td><td></td><td></td><td class="s">    return $c-&gt;_comp_names(qw/View V/);</td></tr>
+<tr><td class="h"><a name="810"></a>810</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="811"></a>811</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="812"></a>812</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;comp($name)</td></tr>
+<tr><td class="h"><a name="813"></a>813</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="814"></a>814</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;component($name)</td></tr>
+<tr><td class="h"><a name="815"></a>815</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="816"></a>816</td><td></td><td></td><td></td><td></td><td class="s">Gets a component object by name. This method is not recommended,</td></tr>
+<tr><td class="h"><a name="817"></a>817</td><td></td><td></td><td></td><td></td><td class="s">unless you want to get a specific component by full</td></tr>
+<tr><td class="h"><a name="818"></a>818</td><td></td><td></td><td></td><td></td><td class="s">class. C&lt;&lt; $c-&gt;controller &gt;&gt;, C&lt;&lt; $c-&gt;model &gt;&gt;, and C&lt;&lt; $c-&gt;view &gt;&gt;</td></tr>
+<tr><td class="h"><a name="819"></a>819</td><td></td><td></td><td></td><td></td><td class="s">should be used instead.</td></tr>
+<tr><td class="h"><a name="820"></a>820</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="821"></a>821</td><td></td><td></td><td></td><td></td><td class="s">If C&lt;$name&gt; is a regexp, a list of components matched against the full</td></tr>
+<tr><td class="h"><a name="822"></a>822</td><td></td><td></td><td></td><td></td><td class="s">component name will be returned.</td></tr>
+<tr><td class="h"><a name="823"></a>823</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="824"></a>824</td><td></td><td></td><td></td><td></td><td class="s">If Catalyst can't find a component by name, it will fallback to regex</td></tr>
+<tr><td class="h"><a name="825"></a>825</td><td></td><td></td><td></td><td></td><td class="s">matching by default. To disable this behaviour set</td></tr>
+<tr><td class="h"><a name="826"></a>826</td><td></td><td></td><td></td><td></td><td class="s">disable_component_resolution_regex_fallback to a true value.</td></tr>
+<tr><td class="h"><a name="827"></a>827</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="828"></a>828</td><td></td><td></td><td></td><td></td><td class="s">    __PACKAGE__-&gt;config( disable_component_resolution_regex_fallback =&gt; 1 );</td></tr>
+<tr><td class="h"><a name="829"></a>829</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="830"></a>830</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="831"></a>831</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="832"></a>832</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 305&micro;s (90+216) within Catalyst::component which was called 10 times, avg 31&micro;s/call:
+# 9 times (74&micro;s+181&micro;s) by Catalyst::execute at <a href="Catalyst-pm-381-sub.html#1648">line 1648</a>, avg 28&micro;s/call
+#    once (16&micro;s+35&micro;s) by Catalyst::Dispatcher::_find_component at <a href="Catalyst-Dispatcher-pm-1877-sub.html#314">line 314 of Catalyst/Dispatcher.pm</a></div></div>sub component {</td></tr>
+<tr><td class="h"><a name="833"></a>833</td><td class="c0">52</td><td class="c1"><span title="Avg 1&micro;s">70&micro;s</span></td><td></td><td></td><td class="s">    my ( $c, $name, @args ) = @_;</td></tr>
+<tr><td class="h"><a name="834"></a>834</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="835"></a>835</td><td></td><td></td><td></td><td></td><td class="s">    if( $name ) {</td></tr>
+<tr><td class="h"><a name="836"></a>836</td><td></td><td></td><td class="c0">10</td><td class="c3">130&micro;s</td><td class="s">        my $comps = $c-&gt;components;<div class="calls"><div class="calls_out">        # spent   130&micro;s making 10 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_components_accessor</a>, avg 13&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="837"></a>837</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="838"></a>838</td><td></td><td></td><td></td><td></td><td class="s">        if( !ref $name ) {</td></tr>
+<tr><td class="h"><a name="839"></a>839</td><td></td><td></td><td></td><td></td><td class="s">            # is it the exact name?</td></tr>
+<tr><td class="h"><a name="840"></a>840</td><td></td><td></td><td class="c0">9</td><td class="c3">64&micro;s</td><td class="s">            return $c-&gt;_filter_component( $comps-&gt;{ $name }, @args )<div class="calls"><div class="calls_out">            # spent    64&micro;s making 9 calls to <a href="Catalyst-pm-381-sub.html#610">Catalyst::_filter_component</a>, avg 7&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="841"></a>841</td><td></td><td></td><td></td><td></td><td class="s">                       if exists $comps-&gt;{ $name };</td></tr>
+<tr><td class="h"><a name="842"></a>842</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="843"></a>843</td><td></td><td></td><td></td><td></td><td class="s">            # perhaps we just omitted &quot;MyApp&quot;?</td></tr>
+<tr><td class="h"><a name="844"></a>844</td><td></td><td></td><td></td><td></td><td class="s">            my $composed = ( ref $c || $c ) . &quot;::${name}&quot;;</td></tr>
+<tr><td class="h"><a name="845"></a>845</td><td></td><td></td><td class="c3">1</td><td class="c3">21&micro;s</td><td class="s">            return $c-&gt;_filter_component( $comps-&gt;{ $composed }, @args )<div class="calls"><div class="calls_out">            # spent    21&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#610">Catalyst::_filter_component</a></div></div></td></tr>
+<tr><td class="h"><a name="846"></a>846</td><td></td><td></td><td></td><td></td><td class="s">                       if exists $comps-&gt;{ $composed };</td></tr>
+<tr><td class="h"><a name="847"></a>847</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="848"></a>848</td><td></td><td></td><td></td><td></td><td class="s">            # search all of the models, views and controllers</td></tr>
+<tr><td class="h"><a name="849"></a>849</td><td></td><td></td><td></td><td></td><td class="s">            my( $comp ) = $c-&gt;_comp_search_prefixes( $name, qw/Model M Controller C View V/ );</td></tr>
+<tr><td class="h"><a name="850"></a>850</td><td></td><td></td><td></td><td></td><td class="s">            return $c-&gt;_filter_component( $comp, @args ) if $comp;</td></tr>
+<tr><td class="h"><a name="851"></a>851</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="852"></a>852</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="853"></a>853</td><td></td><td></td><td></td><td></td><td class="s">        return</td></tr>
+<tr><td class="h"><a name="854"></a>854</td><td></td><td></td><td></td><td></td><td class="s">            if $c-&gt;config-&gt;{disable_component_resolution_regex_fallback};</td></tr>
+<tr><td class="h"><a name="855"></a>855</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="856"></a>856</td><td></td><td></td><td></td><td></td><td class="s">        # This is here so $c-&gt;comp( '::M::' ) works</td></tr>
+<tr><td class="h"><a name="857"></a>857</td><td></td><td></td><td></td><td></td><td class="s">        my $query = ref $name ? $name : qr{$name}i;</td></tr>
+<tr><td class="h"><a name="858"></a>858</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="859"></a>859</td><td></td><td></td><td></td><td></td><td class="s">        my @result = grep { m{$query} } keys %{ $c-&gt;components };</td></tr>
+<tr><td class="h"><a name="860"></a>860</td><td></td><td></td><td></td><td></td><td class="s">        return map { $c-&gt;_filter_component( $_, @args ) } @result if ref $name;</td></tr>
+<tr><td class="h"><a name="861"></a>861</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="862"></a>862</td><td></td><td></td><td></td><td></td><td class="s">        if( $result[ 0 ] ) {</td></tr>
+<tr><td class="h"><a name="863"></a>863</td><td></td><td></td><td></td><td></td><td class="s">            $c-&gt;log-&gt;warn( Carp::shortmess(qq(Found results for &quot;${name}&quot; using regexp fallback)) );</td></tr>
+<tr><td class="h"><a name="864"></a>864</td><td></td><td></td><td></td><td></td><td class="s">            $c-&gt;log-&gt;warn( 'Relying on the regexp fallback behavior for component resolution' );</td></tr>
+<tr><td class="h"><a name="865"></a>865</td><td></td><td></td><td></td><td></td><td class="s">            $c-&gt;log-&gt;warn( 'is unreliable and unsafe. You have been warned' );</td></tr>
+<tr><td class="h"><a name="866"></a>866</td><td></td><td></td><td></td><td></td><td class="s">            return $c-&gt;_filter_component( $result[ 0 ], @args );</td></tr>
+<tr><td class="h"><a name="867"></a>867</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="868"></a>868</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="869"></a>869</td><td></td><td></td><td></td><td></td><td class="s">        # I would expect to return an empty list here, but that breaks back-compat</td></tr>
+<tr><td class="h"><a name="870"></a>870</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="871"></a>871</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="872"></a>872</td><td></td><td></td><td></td><td></td><td class="s">    # fallback</td></tr>
+<tr><td class="h"><a name="873"></a>873</td><td></td><td></td><td></td><td></td><td class="s">    return sort keys %{ $c-&gt;components };</td></tr>
+<tr><td class="h"><a name="874"></a>874</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="875"></a>875</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="876"></a>876</td><td></td><td></td><td></td><td></td><td class="s">=head2 CLASS DATA AND HELPER CLASSES</td></tr>
+<tr><td class="h"><a name="877"></a>877</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="878"></a>878</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;config</td></tr>
+<tr><td class="h"><a name="879"></a>879</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="880"></a>880</td><td></td><td></td><td></td><td></td><td class="s">Returns or takes a hashref containing the application's configuration.</td></tr>
+<tr><td class="h"><a name="881"></a>881</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="882"></a>882</td><td></td><td></td><td></td><td></td><td class="s">    __PACKAGE__-&gt;config( { db =&gt; 'dsn:SQLite:foo.db' } );</td></tr>
+<tr><td class="h"><a name="883"></a>883</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="884"></a>884</td><td></td><td></td><td></td><td></td><td class="s">You can also use a C&lt;YAML&gt;, C&lt;XML&gt; or L&lt;Config::General&gt; config file</td></tr>
+<tr><td class="h"><a name="885"></a>885</td><td></td><td></td><td></td><td></td><td class="s">like C&lt;myapp.conf&gt; in your applications home directory. See</td></tr>
+<tr><td class="h"><a name="886"></a>886</td><td></td><td></td><td></td><td></td><td class="s">L&lt;Catalyst::Plugin::ConfigLoader&gt;.</td></tr>
+<tr><td class="h"><a name="887"></a>887</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="888"></a>888</td><td></td><td></td><td></td><td></td><td class="s">=head3 Cascading configuration</td></tr>
+<tr><td class="h"><a name="889"></a>889</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="890"></a>890</td><td></td><td></td><td></td><td></td><td class="s">The config method is present on all Catalyst components, and configuration</td></tr>
+<tr><td class="h"><a name="891"></a>891</td><td></td><td></td><td></td><td></td><td class="s">will be merged when an application is started. Configuration loaded with</td></tr>
+<tr><td class="h"><a name="892"></a>892</td><td></td><td></td><td></td><td></td><td class="s">L&lt;Catalyst::Plugin::ConfigLoader&gt; takes precedence over other configuration,</td></tr>
+<tr><td class="h"><a name="893"></a>893</td><td></td><td></td><td></td><td></td><td class="s">followed by configuration in your top level C&lt;MyApp&gt; class. These two</td></tr>
+<tr><td class="h"><a name="894"></a>894</td><td></td><td></td><td></td><td></td><td class="s">configurations are merged, and then configuration data whose hash key matches a</td></tr>
+<tr><td class="h"><a name="895"></a>895</td><td></td><td></td><td></td><td></td><td class="s">component name is merged with configuration for that component.</td></tr>
+<tr><td class="h"><a name="896"></a>896</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="897"></a>897</td><td></td><td></td><td></td><td></td><td class="s">The configuration for a component is then passed to the C&lt;new&gt; method when a</td></tr>
+<tr><td class="h"><a name="898"></a>898</td><td></td><td></td><td></td><td></td><td class="s">component is constructed.</td></tr>
+<tr><td class="h"><a name="899"></a>899</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="900"></a>900</td><td></td><td></td><td></td><td></td><td class="s">For example:</td></tr>
+<tr><td class="h"><a name="901"></a>901</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="902"></a>902</td><td></td><td></td><td></td><td></td><td class="s">    MyApp-&gt;config({ 'Model::Foo' =&gt; { bar =&gt; 'baz', overrides =&gt; 'me' } });</td></tr>
+<tr><td class="h"><a name="903"></a>903</td><td></td><td></td><td></td><td></td><td class="s">    MyApp::Model::Foo-&gt;config({ quux =&gt; 'frob', overrides =&gt; 'this' });</td></tr>
+<tr><td class="h"><a name="904"></a>904</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="905"></a>905</td><td></td><td></td><td></td><td></td><td class="s">will mean that C&lt;MyApp::Model::Foo&gt; receives the following data when</td></tr>
+<tr><td class="h"><a name="906"></a>906</td><td></td><td></td><td></td><td></td><td class="s">constructed:</td></tr>
+<tr><td class="h"><a name="907"></a>907</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="908"></a>908</td><td></td><td></td><td></td><td></td><td class="s">    MyApp::Model::Foo-&gt;new({</td></tr>
+<tr><td class="h"><a name="909"></a>909</td><td></td><td></td><td></td><td></td><td class="s">        bar =&gt; 'baz',</td></tr>
+<tr><td class="h"><a name="910"></a>910</td><td></td><td></td><td></td><td></td><td class="s">        quux =&gt; 'frob',</td></tr>
+<tr><td class="h"><a name="911"></a>911</td><td></td><td></td><td></td><td></td><td class="s">        overrides =&gt; 'me',</td></tr>
+<tr><td class="h"><a name="912"></a>912</td><td></td><td></td><td></td><td></td><td class="s">    });</td></tr>
+<tr><td class="h"><a name="913"></a>913</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="914"></a>914</td><td></td><td></td><td></td><td></td><td class="s">It's common practice to use a Moose attribute</td></tr>
+<tr><td class="h"><a name="915"></a>915</td><td></td><td></td><td></td><td></td><td class="s">on the receiving component to access the config value.</td></tr>
+<tr><td class="h"><a name="916"></a>916</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="917"></a>917</td><td></td><td></td><td></td><td></td><td class="s">    package MyApp::Model::Foo;</td></tr>
+<tr><td class="h"><a name="918"></a>918</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="919"></a>919</td><td></td><td></td><td></td><td></td><td class="s">    use Moose;</td></tr>
+<tr><td class="h"><a name="920"></a>920</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="921"></a>921</td><td></td><td></td><td></td><td></td><td class="s">    # this attr will receive 'baz' at construction time</td></tr>
+<tr><td class="h"><a name="922"></a>922</td><td></td><td></td><td></td><td></td><td class="s">    has 'bar' =&gt; (</td></tr>
+<tr><td class="h"><a name="923"></a>923</td><td></td><td></td><td></td><td></td><td class="s">        is  =&gt; 'rw',</td></tr>
+<tr><td class="h"><a name="924"></a>924</td><td></td><td></td><td></td><td></td><td class="s">        isa =&gt; 'Str',</td></tr>
+<tr><td class="h"><a name="925"></a>925</td><td></td><td></td><td></td><td></td><td class="s">    );</td></tr>
+<tr><td class="h"><a name="926"></a>926</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="927"></a>927</td><td></td><td></td><td></td><td></td><td class="s">You can then get the value 'baz' by calling $c-&gt;model('Foo')-&gt;bar</td></tr>
+<tr><td class="h"><a name="928"></a>928</td><td></td><td></td><td></td><td></td><td class="s">(or $self-&gt;bar inside code in the model).</td></tr>
+<tr><td class="h"><a name="929"></a>929</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="930"></a>930</td><td></td><td></td><td></td><td></td><td class="s">B&lt;NOTE:&gt; you MUST NOT call C&lt;&lt; $self-&gt;config &gt;&gt; or C&lt;&lt; __PACKAGE__-&gt;config &gt;&gt;</td></tr>
+<tr><td class="h"><a name="931"></a>931</td><td></td><td></td><td></td><td></td><td class="s">as a way of reading config within your code, as this B&lt;will not&gt; give you the</td></tr>
+<tr><td class="h"><a name="932"></a>932</td><td></td><td></td><td></td><td></td><td class="s">correctly merged config back. You B&lt;MUST&gt; take the config values supplied to</td></tr>
+<tr><td class="h"><a name="933"></a>933</td><td></td><td></td><td></td><td></td><td class="s">the constructor and use those instead.</td></tr>
+<tr><td class="h"><a name="934"></a>934</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="935"></a>935</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="936"></a>936</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="937"></a>937</td><td></td><td></td><td></td><td></td><td class="s">around config =&gt; sub {</td></tr>
+<tr><td class="h"><a name="938"></a>938</td><td class="c0">296</td><td class="c0"><span title="Avg 1&micro;s">310&micro;s</span></td><td></td><td></td><td class="s">    my $orig = shift;</td></tr>
+<tr><td class="h"><a name="939"></a>939</td><td></td><td></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="940"></a>940</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="941"></a>941</td><td></td><td></td><td class="c1">3</td><td class="c3">175&micro;s</td><td class="s">    croak('Setting config after setup has been run is not allowed.')<div class="calls"><div class="calls_out">    # spent   175&micro;s making 3 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_setup_finished_accessor</a>, avg 58&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="942"></a>942</td><td></td><td></td><td></td><td></td><td class="s">        if ( @_ and $c-&gt;setup_finished );</td></tr>
+<tr><td class="h"><a name="943"></a>943</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="944"></a>944</td><td></td><td></td><td class="c0">74</td><td class="c0">4.56ms</td><td class="s">    $c-&gt;$orig(@_);<div class="calls"><div class="calls_out">    # spent  4.56ms making 74 calls to <a href="Catalyst-Component-pm-579-sub.html#124">Catalyst::Component::config</a>, avg 62&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="945"></a>945</td><td class="c3">1</td><td class="c3"><span title="Avg 5&micro;s">5&micro;s</span></td><td class="c3">1</td><td class="c0">778&micro;s</td><td class="s">};<div class="calls"><div class="calls_out"># spent   778&micro;s making 1 call to <a href="Moose-pm-62-sub.html#90">Moose::around</a></div></div></td></tr>
+<tr><td class="h"><a name="946"></a>946</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="947"></a>947</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;log</td></tr>
+<tr><td class="h"><a name="948"></a>948</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="949"></a>949</td><td></td><td></td><td></td><td></td><td class="s">Returns the logging object instance. Unless it is already set, Catalyst</td></tr>
+<tr><td class="h"><a name="950"></a>950</td><td></td><td></td><td></td><td></td><td class="s">sets this up with a L&lt;Catalyst::Log&gt; object. To use your own log class,</td></tr>
+<tr><td class="h"><a name="951"></a>951</td><td></td><td></td><td></td><td></td><td class="s">set the logger with the C&lt;&lt; __PACKAGE__-&gt;log &gt;&gt; method prior to calling</td></tr>
+<tr><td class="h"><a name="952"></a>952</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; __PACKAGE__-&gt;setup &gt;&gt;.</td></tr>
+<tr><td class="h"><a name="953"></a>953</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="954"></a>954</td><td></td><td></td><td></td><td></td><td class="s"> __PACKAGE__-&gt;log( MyLogger-&gt;new );</td></tr>
+<tr><td class="h"><a name="955"></a>955</td><td></td><td></td><td></td><td></td><td class="s"> __PACKAGE__-&gt;setup;</td></tr>
+<tr><td class="h"><a name="956"></a>956</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="957"></a>957</td><td></td><td></td><td></td><td></td><td class="s">And later:</td></tr>
+<tr><td class="h"><a name="958"></a>958</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="959"></a>959</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;log-&gt;info( 'Now logging with my own logger!' );</td></tr>
+<tr><td class="h"><a name="960"></a>960</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="961"></a>961</td><td></td><td></td><td></td><td></td><td class="s">Your log class should implement the methods described in</td></tr>
+<tr><td class="h"><a name="962"></a>962</td><td></td><td></td><td></td><td></td><td class="s">L&lt;Catalyst::Log&gt;.</td></tr>
+<tr><td class="h"><a name="963"></a>963</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="964"></a>964</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="965"></a>965</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;debug</td></tr>
+<tr><td class="h"><a name="966"></a>966</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="967"></a>967</td><td></td><td></td><td></td><td></td><td class="s">Returns 1 if debug mode is enabled, 0 otherwise.</td></tr>
+<tr><td class="h"><a name="968"></a>968</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="969"></a>969</td><td></td><td></td><td></td><td></td><td class="s">You can enable debug mode in several ways:</td></tr>
+<tr><td class="h"><a name="970"></a>970</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="971"></a>971</td><td></td><td></td><td></td><td></td><td class="s">=over</td></tr>
+<tr><td class="h"><a name="972"></a>972</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="973"></a>973</td><td></td><td></td><td></td><td></td><td class="s">=item By calling myapp_server.pl with the -d flag</td></tr>
+<tr><td class="h"><a name="974"></a>974</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="975"></a>975</td><td></td><td></td><td></td><td></td><td class="s">=item With the environment variables MYAPP_DEBUG, or CATALYST_DEBUG</td></tr>
+<tr><td class="h"><a name="976"></a>976</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="977"></a>977</td><td></td><td></td><td></td><td></td><td class="s">=item The -Debug option in your MyApp.pm</td></tr>
+<tr><td class="h"><a name="978"></a>978</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="979"></a>979</td><td></td><td></td><td></td><td></td><td class="s">=item By declaring C&lt;sub debug { 1 }&gt; in your MyApp.pm.</td></tr>
+<tr><td class="h"><a name="980"></a>980</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="981"></a>981</td><td></td><td></td><td></td><td></td><td class="s">=back</td></tr>
+<tr><td class="h"><a name="982"></a>982</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="983"></a>983</td><td></td><td></td><td></td><td></td><td class="s">The first three also set the log level to 'debug'.</td></tr>
+<tr><td class="h"><a name="984"></a>984</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="985"></a>985</td><td></td><td></td><td></td><td></td><td class="s">Calling C&lt;&lt; $c-&gt;debug(1) &gt;&gt; has no effect.</td></tr>
+<tr><td class="h"><a name="986"></a>986</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="987"></a>987</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="988"></a>988</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="989"></a>989</td><td class="c0">21</td><td class="c2"><span title="Avg 3&micro;s">67&micro;s</span></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 30&micro;s within Catalyst::debug which was called 21 times, avg 1&micro;s/call:
+# 2 times (3&micro;s+0s) by Catalyst::Model::KiokuDB::setup_scope_guard at <a href="Catalyst-Model-KiokuDB-pm-2055-sub.html#154">line 154 of Catalyst/Model/KiokuDB.pm</a>, avg 2&micro;s/call
+# 2 times (3&micro;s+0s) by Catalyst::prepare at <a href="Catalyst-pm-381-sub.html#2005">line 2005</a>, avg 1&micro;s/call
+# 2 times (2&micro;s+0s) by Catalyst::Dispatcher::prepare_action at <a href="Catalyst-Dispatcher-pm-1877-sub.html#387">line 387 of Catalyst/Dispatcher.pm</a>, avg 1&micro;s/call
+# 2 times (2&micro;s+0s) by Catalyst::log_request at <a href="Catalyst-pm-381-sub.html#2188">line 2188</a>, avg 750ns/call
+# 2 times (1&micro;s+0s) by Catalyst::Dispatcher::prepare_action at <a href="Catalyst-Dispatcher-pm-1877-sub.html#390">line 390 of Catalyst/Dispatcher.pm</a>, avg 700ns/call
+#    once (4&micro;s+0s) by Catalyst::Dispatcher::setup_actions at <a href="Catalyst-Dispatcher-pm-1877-sub.html#610">line 610 of Catalyst/Dispatcher.pm</a>
+#    once (2&micro;s+0s) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1182">line 1182</a>
+#    once (2&micro;s+0s) by Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:1966] at <a href="Catalyst-pm-381-sub.html#1956">line 1956</a>
+#    once (2&micro;s+0s) by Catalyst::setup_stats at <a href="Catalyst-pm-381-sub.html#2893">line 2893</a>
+#    once (2&micro;s+0s) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1164">line 1164</a>
+#    once (2&micro;s+0s) by Catalyst::Action::RenderView::execute at <a href="Catalyst-Action-RenderView-pm-2496-sub.html#33">line 33 of Catalyst/Action/RenderView.pm</a>
+#    once (1&micro;s+0s) by Catalyst::View::TT::new at <a href="Catalyst-View-TT-pm-2017-sub.html#131">line 131 of Catalyst/View/TT.pm</a>
+#    once (1&micro;s+0s) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1127">line 1127</a>
+#    once (1&micro;s+0s) by Catalyst::Plugin::ConfigLoader::load_config at <a href="Catalyst-Plugin-ConfigLoader-pm-1861-sub.html#118">line 118 of Catalyst/Plugin/ConfigLoader.pm</a>
+#    once (1&micro;s+0s) by Class::MOP::Class:::before at <a href="Catalyst-Plugin-Static-Simple-pm-1856-sub.html#108">line 108 of Catalyst/Plugin/Static/Simple.pm</a>
+#    once (900ns+0s) by Catalyst::log_response at <a href="Catalyst-pm-381-sub.html#2220">line 2220</a></div></div>sub debug { 0 }</td></tr>
+<tr><td class="h"><a name="990"></a>990</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="991"></a>991</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;dispatcher</td></tr>
+<tr><td class="h"><a name="992"></a>992</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="993"></a>993</td><td></td><td></td><td></td><td></td><td class="s">Returns the dispatcher instance. See L&lt;Catalyst::Dispatcher&gt;.</td></tr>
+<tr><td class="h"><a name="994"></a>994</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="995"></a>995</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;engine</td></tr>
+<tr><td class="h"><a name="996"></a>996</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="997"></a>997</td><td></td><td></td><td></td><td></td><td class="s">Returns the engine instance. See L&lt;Catalyst::Engine&gt;.</td></tr>
+<tr><td class="h"><a name="998"></a>998</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="999"></a>999</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1000"></a>1000</td><td></td><td></td><td></td><td></td><td class="s">=head2 UTILITY METHODS</td></tr>
+<tr><td class="h"><a name="1001"></a>1001</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1002"></a>1002</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;path_to(@path)</td></tr>
+<tr><td class="h"><a name="1003"></a>1003</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1004"></a>1004</td><td></td><td></td><td></td><td></td><td class="s">Merges C&lt;@path&gt; with C&lt;&lt; $c-&gt;config-&gt;{home} &gt;&gt; and returns a</td></tr>
+<tr><td class="h"><a name="1005"></a>1005</td><td></td><td></td><td></td><td></td><td class="s">L&lt;Path::Class::Dir&gt; object. Note you can usually use this object as</td></tr>
+<tr><td class="h"><a name="1006"></a>1006</td><td></td><td></td><td></td><td></td><td class="s">a filename, but sometimes you will have to explicitly stringify it</td></tr>
+<tr><td class="h"><a name="1007"></a>1007</td><td></td><td></td><td></td><td></td><td class="s">yourself by calling the C&lt;&lt; -&gt;stringify &gt;&gt; method.</td></tr>
+<tr><td class="h"><a name="1008"></a>1008</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1009"></a>1009</td><td></td><td></td><td></td><td></td><td class="s">For example:</td></tr>
+<tr><td class="h"><a name="1010"></a>1010</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1011"></a>1011</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;path_to( 'db', 'sqlite.db' );</td></tr>
+<tr><td class="h"><a name="1012"></a>1012</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1013"></a>1013</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1014"></a>1014</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1015"></a>1015</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 742&micro;s (52+690) within Catalyst::path_to which was called 2 times, avg 371&micro;s/call:
+#    once (27&micro;s+428&micro;s) by Catalyst::Plugin::ConfigLoader::get_config_path at <a href="Catalyst-Plugin-ConfigLoader-pm-1861-sub.html#184">line 184 of Catalyst/Plugin/ConfigLoader.pm</a>
+#    once (25&micro;s+262&micro;s) by main::BEGIN@9 at <a href="lib-stemmaweb-pm-61-sub.html#38">line 38 of lib/stemmaweb.pm</a></div></div>sub path_to {</td></tr>
+<tr><td class="h"><a name="1016"></a>1016</td><td class="c0">7</td><td class="c3"><span title="Avg 6&micro;s">40&micro;s</span></td><td></td><td></td><td class="s">    my ( $c, @path ) = @_;</td></tr>
+<tr><td class="h"><a name="1017"></a>1017</td><td></td><td></td><td class="c0">4</td><td class="c0">370&micro;s</td><td class="s">    my $path = Path::Class::Dir-&gt;new( $c-&gt;config-&gt;{home}, @path );<div class="calls"><div class="calls_out">    # spent   242&micro;s making 2 calls to <a href="Path-Class-Dir-pm-21-sub.html#21">Path::Class::Dir::new</a>, avg 121&micro;s/call
+    # spent   128&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::config</a>, avg 64&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1018"></a>1018</td><td class="c3">1</td><td class="c2"><span title="Avg 60&micro;s">60&micro;s</span></td><td class="c0">4</td><td class="c2">193&micro;s</td><td class="s">    if ( -d $path ) { return $path }<div class="calls"><div class="calls_out">    # spent   126&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#Catalyst__CORE_ftdir">Catalyst::CORE:ftdir</a>, avg 63&micro;s/call
+    # spent    68&micro;s making 2 calls to <a href="Path-Class-Dir-pm-21-sub.html#62">Path::Class::Dir::stringify</a>, avg 34&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1019"></a>1019</td><td></td><td></td><td class="c3">2</td><td class="c2">194&micro;s</td><td class="s">    else { return Path::Class::File-&gt;new( $c-&gt;config-&gt;{home}, @path ) }<div class="calls"><div class="calls_out">    # spent   140&micro;s making 1 call to <a href="Path-Class-File-pm-20-sub.html#14">Path::Class::File::new</a>
+    # spent    54&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::config</a></div></div></td></tr>
+<tr><td class="h"><a name="1020"></a>1020</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1021"></a>1021</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1022"></a>1022</td><td></td><td></td><td></td><td></td><td class="s">sub plugin {</td></tr>
+<tr><td class="h"><a name="1023"></a>1023</td><td></td><td></td><td></td><td></td><td class="s">    my ( $class, $name, $plugin, @args ) = @_;</td></tr>
+<tr><td class="h"><a name="1024"></a>1024</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1025"></a>1025</td><td></td><td></td><td></td><td></td><td class="s">    # See block comment in t/unit_core_plugin.t</td></tr>
+<tr><td class="h"><a name="1026"></a>1026</td><td></td><td></td><td></td><td></td><td class="s">    $class-&gt;log-&gt;warn(qq/Adding plugin using the -&gt;plugin method is deprecated, and will be removed in a future release/);</td></tr>
+<tr><td class="h"><a name="1027"></a>1027</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1028"></a>1028</td><td></td><td></td><td></td><td></td><td class="s">    $class-&gt;_register_plugin( $plugin, 1 );</td></tr>
+<tr><td class="h"><a name="1029"></a>1029</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1030"></a>1030</td><td></td><td></td><td></td><td></td><td class="s">    eval { $plugin-&gt;import };</td></tr>
+<tr><td class="h"><a name="1031"></a>1031</td><td></td><td></td><td></td><td></td><td class="s">    $class-&gt;mk_classdata($name);</td></tr>
+<tr><td class="h"><a name="1032"></a>1032</td><td></td><td></td><td></td><td></td><td class="s">    my $obj;</td></tr>
+<tr><td class="h"><a name="1033"></a>1033</td><td></td><td></td><td></td><td></td><td class="s">    eval { $obj = $plugin-&gt;new(@args) };</td></tr>
+<tr><td class="h"><a name="1034"></a>1034</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1035"></a>1035</td><td></td><td></td><td></td><td></td><td class="s">    if ($@) {</td></tr>
+<tr><td class="h"><a name="1036"></a>1036</td><td></td><td></td><td></td><td></td><td class="s">        Catalyst::Exception-&gt;throw( message =&gt;</td></tr>
+<tr><td class="h"><a name="1037"></a>1037</td><td></td><td></td><td></td><td></td><td class="s">              qq/Couldn't instantiate instant plugin &quot;$plugin&quot;, &quot;$@&quot;/ );</td></tr>
+<tr><td class="h"><a name="1038"></a>1038</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1039"></a>1039</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1040"></a>1040</td><td></td><td></td><td></td><td></td><td class="s">    $class-&gt;$name($obj);</td></tr>
+<tr><td class="h"><a name="1041"></a>1041</td><td></td><td></td><td></td><td></td><td class="s">    $class-&gt;log-&gt;debug(qq/Initialized instant plugin &quot;$plugin&quot; as &quot;$name&quot;/)</td></tr>
+<tr><td class="h"><a name="1042"></a>1042</td><td></td><td></td><td></td><td></td><td class="s">      if $class-&gt;debug;</td></tr>
+<tr><td class="h"><a name="1043"></a>1043</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1044"></a>1044</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1045"></a>1045</td><td></td><td></td><td></td><td></td><td class="s">=head2 MyApp-&gt;setup</td></tr>
+<tr><td class="h"><a name="1046"></a>1046</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1047"></a>1047</td><td></td><td></td><td></td><td></td><td class="s">Initializes the dispatcher and engine, loads any plugins, and loads the</td></tr>
+<tr><td class="h"><a name="1048"></a>1048</td><td></td><td></td><td></td><td></td><td class="s">model, view, and controller components. You may also specify an array</td></tr>
+<tr><td class="h"><a name="1049"></a>1049</td><td></td><td></td><td></td><td></td><td class="s">of plugins to load here, if you choose to not load them in the C&lt;use</td></tr>
+<tr><td class="h"><a name="1050"></a>1050</td><td></td><td></td><td></td><td></td><td class="s">Catalyst&gt; line.</td></tr>
+<tr><td class="h"><a name="1051"></a>1051</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1052"></a>1052</td><td></td><td></td><td></td><td></td><td class="s">    MyApp-&gt;setup;</td></tr>
+<tr><td class="h"><a name="1053"></a>1053</td><td></td><td></td><td></td><td></td><td class="s">    MyApp-&gt;setup( qw/-Debug/ );</td></tr>
+<tr><td class="h"><a name="1054"></a>1054</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1055"></a>1055</td><td></td><td></td><td></td><td></td><td class="s">B&lt;Note:&gt; You B&lt;should not&gt; wrap this method with method modifiers</td></tr>
+<tr><td class="h"><a name="1056"></a>1056</td><td></td><td></td><td></td><td></td><td class="s">or bad things will happen - wrap the C&lt;setup_finalize&gt; method instead.</td></tr>
+<tr><td class="h"><a name="1057"></a>1057</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1058"></a>1058</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1059"></a>1059</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1060"></a>1060</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 1.60s (334&micro;s+1.60) within Catalyst::setup which was called:
+#    once (334&micro;s+1.60s) by main::RUNTIME at <a href="script-nytprof-pl-1-sub.html#16">line 16 of script/nytprof.pl</a></div></div>sub setup {</td></tr>
+<tr><td class="h"><a name="1061"></a>1061</td><td class="c0">37</td><td class="c0"><span title="Avg 8&micro;s">303&micro;s</span></td><td></td><td></td><td class="s">    my ( $class, @arguments ) = @_;</td></tr>
+<tr><td class="h"><a name="1062"></a>1062</td><td></td><td></td><td class="c3">1</td><td class="c3">31&micro;s</td><td class="s">    croak('Running setup more than once')<div class="calls"><div class="calls_out">    # spent    31&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_setup_finished_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="1063"></a>1063</td><td></td><td></td><td></td><td></td><td class="s">        if ( $class-&gt;setup_finished );</td></tr>
+<tr><td class="h"><a name="1064"></a>1064</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1065"></a>1065</td><td></td><td></td><td class="c3">1</td><td class="c3">2&micro;s</td><td class="s">    unless ( $class-&gt;isa('Catalyst') ) {<div class="calls"><div class="calls_out">    # spent     2&micro;s making 1 call to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__isa">UNIVERSAL::isa</a></div></div></td></tr>
+<tr><td class="h"><a name="1066"></a>1066</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1067"></a>1067</td><td></td><td></td><td></td><td></td><td class="s">        Catalyst::Exception-&gt;throw(</td></tr>
+<tr><td class="h"><a name="1068"></a>1068</td><td></td><td></td><td></td><td></td><td class="s">            message =&gt; qq/'$class' does not inherit from Catalyst/ );</td></tr>
+<tr><td class="h"><a name="1069"></a>1069</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1070"></a>1070</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1071"></a>1071</td><td></td><td></td><td class="c3">2</td><td class="c3">27&micro;s</td><td class="s">    if ( $class-&gt;arguments ) {<div class="calls"><div class="calls_out">    # spent    27&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_arguments_accessor</a>, avg 13&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1072"></a>1072</td><td></td><td></td><td></td><td></td><td class="s">        @arguments = ( @arguments, @{ $class-&gt;arguments } );</td></tr>
+<tr><td class="h"><a name="1073"></a>1073</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1074"></a>1074</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1075"></a>1075</td><td></td><td></td><td></td><td></td><td class="s">    # Process options</td></tr>
+<tr><td class="h"><a name="1076"></a>1076</td><td></td><td></td><td></td><td></td><td class="s">    my $flags = {};</td></tr>
+<tr><td class="h"><a name="1077"></a>1077</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1078"></a>1078</td><td></td><td></td><td></td><td></td><td class="s">    foreach (@arguments) {</td></tr>
+<tr><td class="h"><a name="1079"></a>1079</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1080"></a>1080</td><td></td><td></td><td class="c0">6</td><td class="c3">4&micro;s</td><td class="s">        if (/^-Debug$/) {<div class="calls"><div class="calls_out">        # spent     4&micro;s making 6 calls to <a href="Catalyst-pm-381-sub.html#Catalyst__CORE_match">Catalyst::CORE:match</a>, avg 650ns/call</div></div></td></tr>
+<tr><td class="h"><a name="1081"></a>1081</td><td></td><td></td><td></td><td></td><td class="s">            $flags-&gt;{log} =</td></tr>
+<tr><td class="h"><a name="1082"></a>1082</td><td></td><td></td><td></td><td></td><td class="s">              ( $flags-&gt;{log} ) ? 'debug,' . $flags-&gt;{log} : 'debug';</td></tr>
+<tr><td class="h"><a name="1083"></a>1083</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1084"></a>1084</td><td></td><td></td><td></td><td></td><td class="s">        elsif (/^-(\w+)=?(.*)$/) {</td></tr>
+<tr><td class="h"><a name="1085"></a>1085</td><td></td><td></td><td></td><td></td><td class="s">            $flags-&gt;{ lc $1 } = $2;</td></tr>
+<tr><td class="h"><a name="1086"></a>1086</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1087"></a>1087</td><td></td><td></td><td></td><td></td><td class="s">        else {</td></tr>
+<tr><td class="h"><a name="1088"></a>1088</td><td></td><td></td><td></td><td></td><td class="s">            push @{ $flags-&gt;{plugins} }, $_;</td></tr>
+<tr><td class="h"><a name="1089"></a>1089</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1090"></a>1090</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1091"></a>1091</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1092"></a>1092</td><td></td><td></td><td class="c3">1</td><td class="c0">3.28ms</td><td class="s">    $class-&gt;setup_home( delete $flags-&gt;{home} );<div class="calls"><div class="calls_out">    # spent  3.28ms making 1 call to <a href="Catalyst-pm-381-sub.html#2819">Catalyst::setup_home</a></div></div></td></tr>
+<tr><td class="h"><a name="1093"></a>1093</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1094"></a>1094</td><td></td><td></td><td class="c3">1</td><td class="c0">793&micro;s</td><td class="s">    $class-&gt;setup_log( delete $flags-&gt;{log} );<div class="calls"><div class="calls_out">    # spent   793&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#2851">Catalyst::setup_log</a></div></div></td></tr>
+<tr><td class="h"><a name="1095"></a>1095</td><td></td><td></td><td class="c3">1</td><td class="c0">103ms</td><td class="s">    $class-&gt;setup_plugins( delete $flags-&gt;{plugins} );<div class="calls"><div class="calls_out">    # spent   103ms making 1 call to <a href="Catalyst-pm-381-sub.html#2945">Catalyst::setup_plugins</a></div></div></td></tr>
+<tr><td class="h"><a name="1096"></a>1096</td><td></td><td></td><td class="c3">1</td><td class="c0">118ms</td><td class="s">    $class-&gt;setup_dispatcher( delete $flags-&gt;{dispatcher} );<div class="calls"><div class="calls_out">    # spent   118ms making 1 call to <a href="Catalyst-pm-381-sub.html#2610">Catalyst::setup_dispatcher</a></div></div></td></tr>
+<tr><td class="h"><a name="1097"></a>1097</td><td></td><td></td><td></td><td></td><td class="s">    if (my $engine = delete $flags-&gt;{engine}) {</td></tr>
+<tr><td class="h"><a name="1098"></a>1098</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;warn(&quot;Specifying the engine in -&gt;setup is no longer supported, see Catalyst::Upgrading&quot;);</td></tr>
+<tr><td class="h"><a name="1099"></a>1099</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1100"></a>1100</td><td></td><td></td><td class="c3">1</td><td class="c0">29.9ms</td><td class="s">    $class-&gt;setup_engine();<div class="calls"><div class="calls_out">    # spent  29.9ms making 1 call to <a href="Catalyst-pm-381-sub.html#2653">Catalyst::setup_engine</a></div></div></td></tr>
+<tr><td class="h"><a name="1101"></a>1101</td><td></td><td></td><td class="c3">1</td><td class="c0">17.3ms</td><td class="s">    $class-&gt;setup_stats( delete $flags-&gt;{stats} );<div class="calls"><div class="calls_out">    # spent  17.3ms making 1 call to <a href="Catalyst-pm-381-sub.html#2887">Catalyst::setup_stats</a></div></div></td></tr>
+<tr><td class="h"><a name="1102"></a>1102</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1103"></a>1103</td><td></td><td></td><td class="c3">1</td><td class="c3">600ns</td><td class="s">    for my $flag ( sort keys %{$flags} ) {<div class="calls"><div class="calls_out">    # spent   600ns making 1 call to <a href="Catalyst-pm-381-sub.html#Catalyst__CORE_sort">Catalyst::CORE:sort</a></div></div></td></tr>
+<tr><td class="h"><a name="1104"></a>1104</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1105"></a>1105</td><td></td><td></td><td></td><td></td><td class="s">        if ( my $code = $class-&gt;can( 'setup_' . $flag ) ) {</td></tr>
+<tr><td class="h"><a name="1106"></a>1106</td><td></td><td></td><td></td><td></td><td class="s">            &amp;$code( $class, delete $flags-&gt;{$flag} );</td></tr>
+<tr><td class="h"><a name="1107"></a>1107</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1108"></a>1108</td><td></td><td></td><td></td><td></td><td class="s">        else {</td></tr>
+<tr><td class="h"><a name="1109"></a>1109</td><td></td><td></td><td></td><td></td><td class="s">            $class-&gt;log-&gt;warn(qq/Unknown flag &quot;$flag&quot;/);</td></tr>
+<tr><td class="h"><a name="1110"></a>1110</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1111"></a>1111</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1112"></a>1112</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1113"></a>1113</td><td></td><td></td><td></td><td></td><td class="s">    eval { require Catalyst::Devel; };</td></tr>
+<tr><td class="h"><a name="1114"></a>1114</td><td></td><td></td><td></td><td></td><td class="s">    if( !$@ &amp;&amp; $ENV{CATALYST_SCRIPT_GEN} &amp;&amp; ( $ENV{CATALYST_SCRIPT_GEN} &lt; $Catalyst::Devel::CATALYST_SCRIPT_GEN ) ) {</td></tr>
+<tr><td class="h"><a name="1115"></a>1115</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;warn(&lt;&lt;&quot;EOF&quot;);</td></tr>
+<tr><td class="h"><a name="1116"></a>1116</td><td></td><td></td><td></td><td></td><td class="s">You are running an old script!</td></tr>
+<tr><td class="h"><a name="1117"></a>1117</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1118"></a>1118</td><td></td><td></td><td></td><td></td><td class="s">  Please update by running (this will overwrite existing files):</td></tr>
+<tr><td class="h"><a name="1119"></a>1119</td><td></td><td></td><td></td><td></td><td class="s">    catalyst.pl -force -scripts $class</td></tr>
+<tr><td class="h"><a name="1120"></a>1120</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1121"></a>1121</td><td></td><td></td><td></td><td></td><td class="s">  or (this will not overwrite existing files):</td></tr>
+<tr><td class="h"><a name="1122"></a>1122</td><td></td><td></td><td></td><td></td><td class="s">    catalyst.pl -scripts $class</td></tr>
+<tr><td class="h"><a name="1123"></a>1123</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1124"></a>1124</td><td></td><td></td><td></td><td></td><td class="s">EOF</td></tr>
+<tr><td class="h"><a name="1125"></a>1125</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1126"></a>1126</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1127"></a>1127</td><td></td><td></td><td class="c3">1</td><td class="c3">1&micro;s</td><td class="s">    if ( $class-&gt;debug ) {<div class="calls"><div class="calls_out">    # spent     1&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#989">Catalyst::debug</a></div></div></td></tr>
+<tr><td class="h"><a name="1128"></a>1128</td><td></td><td></td><td></td><td></td><td class="s">        my @plugins = map { &quot;$_  &quot; . ( $_-&gt;VERSION || '' ) } $class-&gt;registered_plugins;</td></tr>
+<tr><td class="h"><a name="1129"></a>1129</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1130"></a>1130</td><td></td><td></td><td></td><td></td><td class="s">        if (@plugins) {</td></tr>
+<tr><td class="h"><a name="1131"></a>1131</td><td></td><td></td><td></td><td></td><td class="s">            my $column_width = Catalyst::Utils::term_width() - 6;</td></tr>
+<tr><td class="h"><a name="1132"></a>1132</td><td></td><td></td><td></td><td></td><td class="s">            my $t = Text::SimpleTable-&gt;new($column_width);</td></tr>
+<tr><td class="h"><a name="1133"></a>1133</td><td></td><td></td><td></td><td></td><td class="s">            $t-&gt;row($_) for @plugins;</td></tr>
+<tr><td class="h"><a name="1134"></a>1134</td><td></td><td></td><td></td><td></td><td class="s">            $class-&gt;log-&gt;debug( &quot;Loaded plugins:\n&quot; . $t-&gt;draw . &quot;\n&quot; );</td></tr>
+<tr><td class="h"><a name="1135"></a>1135</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1136"></a>1136</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1137"></a>1137</td><td></td><td></td><td></td><td></td><td class="s">        my $dispatcher = $class-&gt;dispatcher;</td></tr>
+<tr><td class="h"><a name="1138"></a>1138</td><td></td><td></td><td></td><td></td><td class="s">        my $engine     = $class-&gt;engine;</td></tr>
+<tr><td class="h"><a name="1139"></a>1139</td><td></td><td></td><td></td><td></td><td class="s">        my $home       = $class-&gt;config-&gt;{home};</td></tr>
+<tr><td class="h"><a name="1140"></a>1140</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1141"></a>1141</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;debug(sprintf(q/Loaded dispatcher &quot;%s&quot;/, blessed($dispatcher)));</td></tr>
+<tr><td class="h"><a name="1142"></a>1142</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;debug(sprintf(q/Loaded engine &quot;%s&quot;/, blessed($engine)));</td></tr>
+<tr><td class="h"><a name="1143"></a>1143</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1144"></a>1144</td><td></td><td></td><td></td><td></td><td class="s">        $home</td></tr>
+<tr><td class="h"><a name="1145"></a>1145</td><td></td><td></td><td></td><td></td><td class="s">          ? ( -d $home )</td></tr>
+<tr><td class="h"><a name="1146"></a>1146</td><td></td><td></td><td></td><td></td><td class="s">          ? $class-&gt;log-&gt;debug(qq/Found home &quot;$home&quot;/)</td></tr>
+<tr><td class="h"><a name="1147"></a>1147</td><td></td><td></td><td></td><td></td><td class="s">          : $class-&gt;log-&gt;debug(qq/Home &quot;$home&quot; doesn't exist/)</td></tr>
+<tr><td class="h"><a name="1148"></a>1148</td><td></td><td></td><td></td><td></td><td class="s">          : $class-&gt;log-&gt;debug(q/Couldn't find home/);</td></tr>
+<tr><td class="h"><a name="1149"></a>1149</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1150"></a>1150</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1151"></a>1151</td><td></td><td></td><td></td><td></td><td class="s">    # Call plugins setup, this is stupid and evil.</td></tr>
+<tr><td class="h"><a name="1152"></a>1152</td><td></td><td></td><td></td><td></td><td class="s">    # Also screws C3 badly on 5.10, hack to avoid.</td></tr>
+<tr><td class="h"><a name="1153"></a>1153</td><td></td><td></td><td></td><td></td><td class="s">    {</td></tr>
+<tr><td class="h"><a name="1154"></a>1154</td><td class="c3">2</td><td class="c0"><span title="Avg 1.30ms">2.59ms</span></td><td class="c3">2</td><td class="c3">82&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 53&micro;s (24+29) within Catalyst::BEGIN@1154 which was called:
+#    once (24&micro;s+29&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#1154">line 1154</a></div></div>        no warnings qw/redefine/;<div class="calls"><div class="calls_out">        # spent    53&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#1154">Catalyst::BEGIN@1154</a>
+        # spent    29&micro;s making 1 call to <a href="warnings-pm-2-sub.html#401">warnings::unimport</a></div></div></td></tr>
+<tr><td class="h"><a name="1155"></a>1155</td><td class="c3">1</td><td class="c3"><span title="Avg 4&micro;s">4&micro;s</span></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 2&micro;s within Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:1155] which was called:
+#    once (2&micro;s+0s) by Catalyst::Plugin::Unicode::Encoding::setup at <a href="mro-pm-85-sub.html#28">line 28 of mro.pm</a></div></div>        local *setup = sub { };</td></tr>
+<tr><td class="h"><a name="1156"></a>1156</td><td></td><td></td><td class="c3">1</td><td class="c0">33.0ms</td><td class="s">        $class-&gt;setup unless $Catalyst::__AM_RESTARTING;<div class="calls"><div class="calls_out">        # spent  33.0ms making 1 call to <a href="Catalyst-Plugin-ConfigLoader-pm-1861-sub.html#70">Catalyst::Plugin::ConfigLoader::setup</a></div></div></td></tr>
+<tr><td class="h"><a name="1157"></a>1157</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1158"></a>1158</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1159"></a>1159</td><td></td><td></td><td></td><td></td><td class="s">    # Initialize our data structure</td></tr>
+<tr><td class="h"><a name="1160"></a>1160</td><td></td><td></td><td class="c3">1</td><td class="c3">28&micro;s</td><td class="s">    $class-&gt;components( {} );<div class="calls"><div class="calls_out">    # spent    28&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_components_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="1161"></a>1161</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1162"></a>1162</td><td></td><td></td><td class="c3">1</td><td class="c0">1.13s</td><td class="s">    $class-&gt;setup_components;<div class="calls"><div class="calls_out">    # spent  1.13s making 1 call to <a href="Catalyst-pm-381-sub.html#2486">Catalyst::setup_components</a></div></div></td></tr>
+<tr><td class="h"><a name="1163"></a>1163</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1164"></a>1164</td><td></td><td></td><td class="c3">1</td><td class="c3">2&micro;s</td><td class="s">    if ( $class-&gt;debug ) {<div class="calls"><div class="calls_out">    # spent     2&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#989">Catalyst::debug</a></div></div></td></tr>
+<tr><td class="h"><a name="1165"></a>1165</td><td></td><td></td><td></td><td></td><td class="s">        my $column_width = Catalyst::Utils::term_width() - 8 - 9;</td></tr>
+<tr><td class="h"><a name="1166"></a>1166</td><td></td><td></td><td></td><td></td><td class="s">        my $t = Text::SimpleTable-&gt;new( [ $column_width, 'Class' ], [ 8, 'Type' ] );</td></tr>
+<tr><td class="h"><a name="1167"></a>1167</td><td></td><td></td><td></td><td></td><td class="s">        for my $comp ( sort keys %{ $class-&gt;components } ) {</td></tr>
+<tr><td class="h"><a name="1168"></a>1168</td><td></td><td></td><td></td><td></td><td class="s">            my $type = ref $class-&gt;components-&gt;{$comp} ? 'instance' : 'class';</td></tr>
+<tr><td class="h"><a name="1169"></a>1169</td><td></td><td></td><td></td><td></td><td class="s">            $t-&gt;row( $comp, $type );</td></tr>
+<tr><td class="h"><a name="1170"></a>1170</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1171"></a>1171</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;debug( &quot;Loaded components:\n&quot; . $t-&gt;draw . &quot;\n&quot; )</td></tr>
+<tr><td class="h"><a name="1172"></a>1172</td><td></td><td></td><td></td><td></td><td class="s">          if ( keys %{ $class-&gt;components } );</td></tr>
+<tr><td class="h"><a name="1173"></a>1173</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1174"></a>1174</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1175"></a>1175</td><td></td><td></td><td></td><td></td><td class="s">    # Add our self to components, since we are also a component</td></tr>
+<tr><td class="h"><a name="1176"></a>1176</td><td></td><td></td><td class="c3">1</td><td class="c3">9&micro;s</td><td class="s">    if( $class-&gt;isa('Catalyst::Controller') ){<div class="calls"><div class="calls_out">    # spent     9&micro;s making 1 call to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__isa">UNIVERSAL::isa</a></div></div></td></tr>
+<tr><td class="h"><a name="1177"></a>1177</td><td></td><td></td><td></td><td></td><td class="s">      $class-&gt;components-&gt;{$class} = $class;</td></tr>
+<tr><td class="h"><a name="1178"></a>1178</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1179"></a>1179</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1180"></a>1180</td><td></td><td></td><td class="c3">1</td><td class="c0">131ms</td><td class="s">    $class-&gt;setup_actions;<div class="calls"><div class="calls_out">    # spent   131ms making 1 call to <a href="Catalyst-pm-381-sub.html#2469">Catalyst::setup_actions</a></div></div></td></tr>
+<tr><td class="h"><a name="1181"></a>1181</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1182"></a>1182</td><td></td><td></td><td class="c3">1</td><td class="c3">2&micro;s</td><td class="s">    if ( $class-&gt;debug ) {<div class="calls"><div class="calls_out">    # spent     2&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#989">Catalyst::debug</a></div></div></td></tr>
+<tr><td class="h"><a name="1183"></a>1183</td><td></td><td></td><td></td><td></td><td class="s">        my $name = $class-&gt;config-&gt;{name} || 'Application';</td></tr>
+<tr><td class="h"><a name="1184"></a>1184</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;info(&quot;$name powered by Catalyst $Catalyst::VERSION&quot;);</td></tr>
+<tr><td class="h"><a name="1185"></a>1185</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1186"></a>1186</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1187"></a>1187</td><td></td><td></td><td class="c3">1</td><td class="c2">190&micro;s</td><td class="s">    if ($class-&gt;config-&gt;{case_sensitive}) {<div class="calls"><div class="calls_out">    # spent   190&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::config</a></div></div></td></tr>
+<tr><td class="h"><a name="1188"></a>1188</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;warn($class . &quot;-&gt;config-&gt;{case_sensitive} is set.&quot;);</td></tr>
+<tr><td class="h"><a name="1189"></a>1189</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;warn(&quot;This setting is deprecated and planned to be removed in Catalyst 5.81.&quot;);</td></tr>
+<tr><td class="h"><a name="1190"></a>1190</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1191"></a>1191</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1192"></a>1192</td><td></td><td></td><td class="c3">1</td><td class="c0">32.9ms</td><td class="s">    $class-&gt;setup_finalize;<div class="calls"><div class="calls_out">    # spent  32.9ms making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">stemmaweb::setup_finalize</a></div></div></td></tr>
+<tr><td class="h"><a name="1193"></a>1193</td><td></td><td></td><td></td><td></td><td class="s">    # Should be the last thing we do so that user things hooking</td></tr>
+<tr><td class="h"><a name="1194"></a>1194</td><td></td><td></td><td></td><td></td><td class="s">    # setup_finalize can log..</td></tr>
+<tr><td class="h"><a name="1195"></a>1195</td><td></td><td></td><td class="c0">4</td><td class="c3">54&micro;s</td><td class="s">    $class-&gt;log-&gt;_flush() if $class-&gt;log-&gt;can('_flush');<div class="calls"><div class="calls_out">    # spent    26&micro;s making 1 call to <a href="Catalyst-Log-pm-469-sub.html#100">Catalyst::Log::_flush</a>
+    # spent    25&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_log_accessor</a>, avg 13&micro;s/call
+    # spent     2&micro;s making 1 call to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__can">UNIVERSAL::can</a></div></div></td></tr>
+<tr><td class="h"><a name="1196"></a>1196</td><td></td><td></td><td></td><td></td><td class="s">    return 1; # Explicit return true as people have __PACKAGE__-&gt;setup as the last thing in their class. HATE.</td></tr>
+<tr><td class="h"><a name="1197"></a>1197</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1198"></a>1198</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1199"></a>1199</td><td></td><td></td><td></td><td></td><td class="s">=head2 $app-&gt;setup_finalize</td></tr>
+<tr><td class="h"><a name="1200"></a>1200</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1201"></a>1201</td><td></td><td></td><td></td><td></td><td class="s">A hook to attach modifiers to. This method does not do anything except set the</td></tr>
+<tr><td class="h"><a name="1202"></a>1202</td><td></td><td></td><td></td><td></td><td class="s">C&lt;setup_finished&gt; accessor.</td></tr>
+<tr><td class="h"><a name="1203"></a>1203</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1204"></a>1204</td><td></td><td></td><td></td><td></td><td class="s">Applying method modifiers to the C&lt;setup&gt; method doesn't work, because of quirky things done for plugin setup.</td></tr>
+<tr><td class="h"><a name="1205"></a>1205</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1206"></a>1206</td><td></td><td></td><td></td><td></td><td class="s">Example:</td></tr>
+<tr><td class="h"><a name="1207"></a>1207</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1208"></a>1208</td><td></td><td></td><td></td><td></td><td class="s">    after setup_finalize =&gt; sub {</td></tr>
+<tr><td class="h"><a name="1209"></a>1209</td><td></td><td></td><td></td><td></td><td class="s">        my $app = shift;</td></tr>
+<tr><td class="h"><a name="1210"></a>1210</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1211"></a>1211</td><td></td><td></td><td></td><td></td><td class="s">        ## do stuff here..</td></tr>
+<tr><td class="h"><a name="1212"></a>1212</td><td></td><td></td><td></td><td></td><td class="s">    };</td></tr>
+<tr><td class="h"><a name="1213"></a>1213</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1214"></a>1214</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1215"></a>1215</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1216"></a>1216</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 64&micro;s (21+43) within Catalyst::setup_finalize which was called:
+#    once (21&micro;s+43&micro;s) by Class::MOP::Method::Wrapped::__ANON__[/Users/edenc/perl5/lib/perl5/darwin-multi-2level/Class/MOP/Method/Wrapped.pm:51] at <a href="Class-MOP-Method-Wrapped-pm-106-sub.html#50">line 50 of Class/MOP/Method/Wrapped.pm</a></div></div>sub setup_finalize {</td></tr>
+<tr><td class="h"><a name="1217"></a>1217</td><td class="c3">2</td><td class="c3"><span title="Avg 8&micro;s">17&micro;s</span></td><td></td><td></td><td class="s">    my ($class) = @_;</td></tr>
+<tr><td class="h"><a name="1218"></a>1218</td><td></td><td></td><td class="c3">1</td><td class="c3">43&micro;s</td><td class="s">    $class-&gt;setup_finished(1);<div class="calls"><div class="calls_out">    # spent    43&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_setup_finished_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="1219"></a>1219</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1220"></a>1220</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1221"></a>1221</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;uri_for( $path?, @args?, \%query_values? )</td></tr>
+<tr><td class="h"><a name="1222"></a>1222</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1223"></a>1223</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;uri_for( $action, \@captures?, @args?, \%query_values? )</td></tr>
+<tr><td class="h"><a name="1224"></a>1224</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1225"></a>1225</td><td></td><td></td><td></td><td></td><td class="s">Constructs an absolute L&lt;URI&gt; object based on the application root, the</td></tr>
+<tr><td class="h"><a name="1226"></a>1226</td><td></td><td></td><td></td><td></td><td class="s">provided path, and the additional arguments and query parameters provided.</td></tr>
+<tr><td class="h"><a name="1227"></a>1227</td><td></td><td></td><td></td><td></td><td class="s">When used as a string, provides a textual URI.  If you need more flexibility</td></tr>
+<tr><td class="h"><a name="1228"></a>1228</td><td></td><td></td><td></td><td></td><td class="s">than this (i.e. the option to provide relative URIs etc.) see</td></tr>
+<tr><td class="h"><a name="1229"></a>1229</td><td></td><td></td><td></td><td></td><td class="s">L&lt;Catalyst::Plugin::SmartURI&gt;.</td></tr>
+<tr><td class="h"><a name="1230"></a>1230</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1231"></a>1231</td><td></td><td></td><td></td><td></td><td class="s">If no arguments are provided, the URI for the current action is returned.</td></tr>
+<tr><td class="h"><a name="1232"></a>1232</td><td></td><td></td><td></td><td></td><td class="s">To return the current action and also provide @args, use</td></tr>
+<tr><td class="h"><a name="1233"></a>1233</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $c-&gt;uri_for( $c-&gt;action, @args ) &gt;&gt;.</td></tr>
+<tr><td class="h"><a name="1234"></a>1234</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1235"></a>1235</td><td></td><td></td><td></td><td></td><td class="s">If the first argument is a string, it is taken as a public URI path relative</td></tr>
+<tr><td class="h"><a name="1236"></a>1236</td><td></td><td></td><td></td><td></td><td class="s">to C&lt;&lt; $c-&gt;namespace &gt;&gt; (if it doesn't begin with a forward slash) or</td></tr>
+<tr><td class="h"><a name="1237"></a>1237</td><td></td><td></td><td></td><td></td><td class="s">relative to the application root (if it does). It is then merged with</td></tr>
+<tr><td class="h"><a name="1238"></a>1238</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $c-&gt;request-&gt;base &gt;&gt;; any C&lt;@args&gt; are appended as additional path</td></tr>
+<tr><td class="h"><a name="1239"></a>1239</td><td></td><td></td><td></td><td></td><td class="s">components; and any C&lt;%query_values&gt; are appended as C&lt;?foo=bar&gt; parameters.</td></tr>
+<tr><td class="h"><a name="1240"></a>1240</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1241"></a>1241</td><td></td><td></td><td></td><td></td><td class="s">If the first argument is a L&lt;Catalyst::Action&gt; it represents an action which</td></tr>
+<tr><td class="h"><a name="1242"></a>1242</td><td></td><td></td><td></td><td></td><td class="s">will have its path resolved using C&lt;&lt; $c-&gt;dispatcher-&gt;uri_for_action &gt;&gt;. The</td></tr>
+<tr><td class="h"><a name="1243"></a>1243</td><td></td><td></td><td></td><td></td><td class="s">optional C&lt;\@captures&gt; argument (an arrayref) allows passing the captured</td></tr>
+<tr><td class="h"><a name="1244"></a>1244</td><td></td><td></td><td></td><td></td><td class="s">variables that are needed to fill in the paths of Chained and Regex actions;</td></tr>
+<tr><td class="h"><a name="1245"></a>1245</td><td></td><td></td><td></td><td></td><td class="s">once the path is resolved, C&lt;uri_for&gt; continues as though a path was</td></tr>
+<tr><td class="h"><a name="1246"></a>1246</td><td></td><td></td><td></td><td></td><td class="s">provided, appending any arguments or parameters and creating an absolute</td></tr>
+<tr><td class="h"><a name="1247"></a>1247</td><td></td><td></td><td></td><td></td><td class="s">URI.</td></tr>
+<tr><td class="h"><a name="1248"></a>1248</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1249"></a>1249</td><td></td><td></td><td></td><td></td><td class="s">The captures for the current request can be found in</td></tr>
+<tr><td class="h"><a name="1250"></a>1250</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $c-&gt;request-&gt;captures &gt;&gt;, and actions can be resolved using</td></tr>
+<tr><td class="h"><a name="1251"></a>1251</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; Catalyst::Controller-&gt;action_for($name) &gt;&gt;. If you have a private action</td></tr>
+<tr><td class="h"><a name="1252"></a>1252</td><td></td><td></td><td></td><td></td><td class="s">path, use C&lt;&lt; $c-&gt;uri_for_action &gt;&gt; instead.</td></tr>
+<tr><td class="h"><a name="1253"></a>1253</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1254"></a>1254</td><td></td><td></td><td></td><td></td><td class="s">  # Equivalent to $c-&gt;req-&gt;uri</td></tr>
+<tr><td class="h"><a name="1255"></a>1255</td><td></td><td></td><td></td><td></td><td class="s">  $c-&gt;uri_for($c-&gt;action, $c-&gt;req-&gt;captures,</td></tr>
+<tr><td class="h"><a name="1256"></a>1256</td><td></td><td></td><td></td><td></td><td class="s">      @{ $c-&gt;req-&gt;args }, $c-&gt;req-&gt;params);</td></tr>
+<tr><td class="h"><a name="1257"></a>1257</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1258"></a>1258</td><td></td><td></td><td></td><td></td><td class="s">  # For the Foo action in the Bar controller</td></tr>
+<tr><td class="h"><a name="1259"></a>1259</td><td></td><td></td><td></td><td></td><td class="s">  $c-&gt;uri_for($c-&gt;controller('Bar')-&gt;action_for('Foo'));</td></tr>
+<tr><td class="h"><a name="1260"></a>1260</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1261"></a>1261</td><td></td><td></td><td></td><td></td><td class="s">  # Path to a static resource</td></tr>
+<tr><td class="h"><a name="1262"></a>1262</td><td></td><td></td><td></td><td></td><td class="s">  $c-&gt;uri_for('/static/images/logo.png');</td></tr>
+<tr><td class="h"><a name="1263"></a>1263</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1264"></a>1264</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1265"></a>1265</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1266"></a>1266</td><td></td><td></td><td></td><td></td><td class="s">sub uri_for {</td></tr>
+<tr><td class="h"><a name="1267"></a>1267</td><td></td><td></td><td></td><td></td><td class="s">    my ( $c, $path, @args ) = @_;</td></tr>
+<tr><td class="h"><a name="1268"></a>1268</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1269"></a>1269</td><td></td><td></td><td></td><td></td><td class="s">    if (blessed($path) &amp;&amp; $path-&gt;isa('Catalyst::Controller')) {</td></tr>
+<tr><td class="h"><a name="1270"></a>1270</td><td></td><td></td><td></td><td></td><td class="s">        $path = $path-&gt;path_prefix;</td></tr>
+<tr><td class="h"><a name="1271"></a>1271</td><td></td><td></td><td></td><td></td><td class="s">        $path =~ s{/+\z}{};</td></tr>
+<tr><td class="h"><a name="1272"></a>1272</td><td></td><td></td><td></td><td></td><td class="s">        $path .= '/';</td></tr>
+<tr><td class="h"><a name="1273"></a>1273</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1274"></a>1274</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1275"></a>1275</td><td></td><td></td><td></td><td></td><td class="s">    undef($path) if (defined $path &amp;&amp; $path eq '');</td></tr>
+<tr><td class="h"><a name="1276"></a>1276</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1277"></a>1277</td><td></td><td></td><td></td><td></td><td class="s">    my $params =</td></tr>
+<tr><td class="h"><a name="1278"></a>1278</td><td></td><td></td><td></td><td></td><td class="s">      ( scalar @args &amp;&amp; ref $args[$#args] eq 'HASH' ? pop @args : {} );</td></tr>
+<tr><td class="h"><a name="1279"></a>1279</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1280"></a>1280</td><td></td><td></td><td></td><td></td><td class="s">    carp &quot;uri_for called with undef argument&quot; if grep { ! defined $_ } @args;</td></tr>
+<tr><td class="h"><a name="1281"></a>1281</td><td></td><td></td><td></td><td></td><td class="s">    foreach my $arg (@args) {</td></tr>
+<tr><td class="h"><a name="1282"></a>1282</td><td></td><td></td><td></td><td></td><td class="s">        utf8::encode($arg) if utf8::is_utf8($arg);</td></tr>
+<tr><td class="h"><a name="1283"></a>1283</td><td></td><td></td><td></td><td></td><td class="s">        $arg =~ s/([^$URI::uric])/$URI::Escape::escapes{$1}/go;</td></tr>
+<tr><td class="h"><a name="1284"></a>1284</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1285"></a>1285</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1286"></a>1286</td><td></td><td></td><td></td><td></td><td class="s">    if ( blessed($path) ) { # action object</td></tr>
+<tr><td class="h"><a name="1287"></a>1287</td><td></td><td></td><td></td><td></td><td class="s">        s|/|%2F|g for @args;</td></tr>
+<tr><td class="h"><a name="1288"></a>1288</td><td></td><td></td><td></td><td></td><td class="s">        my $captures = [ map { s|/|%2F|g; $_; }</td></tr>
+<tr><td class="h"><a name="1289"></a>1289</td><td></td><td></td><td></td><td></td><td class="s">                        ( scalar @args &amp;&amp; ref $args[0] eq 'ARRAY'</td></tr>
+<tr><td class="h"><a name="1290"></a>1290</td><td></td><td></td><td></td><td></td><td class="s">                         ? @{ shift(@args) }</td></tr>
+<tr><td class="h"><a name="1291"></a>1291</td><td></td><td></td><td></td><td></td><td class="s">                         : ()) ];</td></tr>
+<tr><td class="h"><a name="1292"></a>1292</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1293"></a>1293</td><td></td><td></td><td></td><td></td><td class="s">        foreach my $capture (@$captures) {</td></tr>
+<tr><td class="h"><a name="1294"></a>1294</td><td></td><td></td><td></td><td></td><td class="s">            utf8::encode($capture) if utf8::is_utf8($capture);</td></tr>
+<tr><td class="h"><a name="1295"></a>1295</td><td></td><td></td><td></td><td></td><td class="s">            $capture =~ s/([^$URI::uric])/$URI::Escape::escapes{$1}/go;</td></tr>
+<tr><td class="h"><a name="1296"></a>1296</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1297"></a>1297</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1298"></a>1298</td><td></td><td></td><td></td><td></td><td class="s">        my $action = $path;</td></tr>
+<tr><td class="h"><a name="1299"></a>1299</td><td></td><td></td><td></td><td></td><td class="s">        # -&gt;uri_for( $action, \@captures_and_args, \%query_values? )</td></tr>
+<tr><td class="h"><a name="1300"></a>1300</td><td></td><td></td><td></td><td></td><td class="s">        if( !@args &amp;&amp; $action-&gt;number_of_args ) {</td></tr>
+<tr><td class="h"><a name="1301"></a>1301</td><td></td><td></td><td></td><td></td><td class="s">            my $expanded_action = $c-&gt;dispatcher-&gt;expand_action( $action );</td></tr>
+<tr><td class="h"><a name="1302"></a>1302</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1303"></a>1303</td><td></td><td></td><td></td><td></td><td class="s">            my $num_captures = $expanded_action-&gt;number_of_captures;</td></tr>
+<tr><td class="h"><a name="1304"></a>1304</td><td></td><td></td><td></td><td></td><td class="s">            unshift @args, splice @$captures, $num_captures;</td></tr>
+<tr><td class="h"><a name="1305"></a>1305</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1306"></a>1306</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1307"></a>1307</td><td></td><td></td><td></td><td></td><td class="s">       $path = $c-&gt;dispatcher-&gt;uri_for_action($action, $captures);</td></tr>
+<tr><td class="h"><a name="1308"></a>1308</td><td></td><td></td><td></td><td></td><td class="s">        if (not defined $path) {</td></tr>
+<tr><td class="h"><a name="1309"></a>1309</td><td></td><td></td><td></td><td></td><td class="s">            $c-&gt;log-&gt;debug(qq/Can't find uri_for action '$action' @$captures/)</td></tr>
+<tr><td class="h"><a name="1310"></a>1310</td><td></td><td></td><td></td><td></td><td class="s">                if $c-&gt;debug;</td></tr>
+<tr><td class="h"><a name="1311"></a>1311</td><td></td><td></td><td></td><td></td><td class="s">            return undef;</td></tr>
+<tr><td class="h"><a name="1312"></a>1312</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1313"></a>1313</td><td></td><td></td><td></td><td></td><td class="s">        $path = '/' if $path eq '';</td></tr>
+<tr><td class="h"><a name="1314"></a>1314</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1315"></a>1315</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1316"></a>1316</td><td></td><td></td><td></td><td></td><td class="s">    unshift(@args, $path);</td></tr>
+<tr><td class="h"><a name="1317"></a>1317</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1318"></a>1318</td><td></td><td></td><td></td><td></td><td class="s">    unless (defined $path &amp;&amp; $path =~ s!^/!!) { # in-place strip</td></tr>
+<tr><td class="h"><a name="1319"></a>1319</td><td></td><td></td><td></td><td></td><td class="s">        my $namespace = $c-&gt;namespace;</td></tr>
+<tr><td class="h"><a name="1320"></a>1320</td><td></td><td></td><td></td><td></td><td class="s">        if (defined $path) { # cheesy hack to handle path '../foo'</td></tr>
+<tr><td class="h"><a name="1321"></a>1321</td><td></td><td></td><td></td><td></td><td class="s">           $namespace =~ s{(?:^|/)[^/]+$}{} while $args[0] =~ s{^\.\./}{};</td></tr>
+<tr><td class="h"><a name="1322"></a>1322</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1323"></a>1323</td><td></td><td></td><td></td><td></td><td class="s">        unshift(@args, $namespace || '');</td></tr>
+<tr><td class="h"><a name="1324"></a>1324</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1325"></a>1325</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1326"></a>1326</td><td></td><td></td><td></td><td></td><td class="s">    # join args with '/', or a blank string</td></tr>
+<tr><td class="h"><a name="1327"></a>1327</td><td></td><td></td><td></td><td></td><td class="s">    my $args = join('/', grep { defined($_) } @args);</td></tr>
+<tr><td class="h"><a name="1328"></a>1328</td><td></td><td></td><td></td><td></td><td class="s">    $args =~ s/\?/%3F/g; # STUPID STUPID SPECIAL CASE</td></tr>
+<tr><td class="h"><a name="1329"></a>1329</td><td></td><td></td><td></td><td></td><td class="s">    $args =~ s!^/+!!;</td></tr>
+<tr><td class="h"><a name="1330"></a>1330</td><td></td><td></td><td></td><td></td><td class="s">    my $base = $c-&gt;req-&gt;base;</td></tr>
+<tr><td class="h"><a name="1331"></a>1331</td><td></td><td></td><td></td><td></td><td class="s">    my $class = ref($base);</td></tr>
+<tr><td class="h"><a name="1332"></a>1332</td><td></td><td></td><td></td><td></td><td class="s">    $base =~ s{(?&lt;!/)$}{/};</td></tr>
+<tr><td class="h"><a name="1333"></a>1333</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1334"></a>1334</td><td></td><td></td><td></td><td></td><td class="s">    my $query = '';</td></tr>
+<tr><td class="h"><a name="1335"></a>1335</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1336"></a>1336</td><td></td><td></td><td></td><td></td><td class="s">    if (my @keys = keys %$params) {</td></tr>
+<tr><td class="h"><a name="1337"></a>1337</td><td></td><td></td><td></td><td></td><td class="s">      # somewhat lifted from URI::_query's query_form</td></tr>
+<tr><td class="h"><a name="1338"></a>1338</td><td></td><td></td><td></td><td></td><td class="s">      $query = '?'.join('&amp;', map {</td></tr>
+<tr><td class="h"><a name="1339"></a>1339</td><td></td><td></td><td></td><td></td><td class="s">          my $val = $params-&gt;{$_};</td></tr>
+<tr><td class="h"><a name="1340"></a>1340</td><td></td><td></td><td></td><td></td><td class="s">          s/([;\/?:@&amp;=+,\$\[\]%])/$URI::Escape::escapes{$1}/go;</td></tr>
+<tr><td class="h"><a name="1341"></a>1341</td><td></td><td></td><td></td><td></td><td class="s">          s/ /+/g;</td></tr>
+<tr><td class="h"><a name="1342"></a>1342</td><td></td><td></td><td></td><td></td><td class="s">          my $key = $_;</td></tr>
+<tr><td class="h"><a name="1343"></a>1343</td><td></td><td></td><td></td><td></td><td class="s">          $val = '' unless defined $val;</td></tr>
+<tr><td class="h"><a name="1344"></a>1344</td><td></td><td></td><td></td><td></td><td class="s">          (map {</td></tr>
+<tr><td class="h"><a name="1345"></a>1345</td><td></td><td></td><td></td><td></td><td class="s">              my $param = &quot;$_&quot;;</td></tr>
+<tr><td class="h"><a name="1346"></a>1346</td><td></td><td></td><td></td><td></td><td class="s">              utf8::encode( $param ) if utf8::is_utf8($param);</td></tr>
+<tr><td class="h"><a name="1347"></a>1347</td><td></td><td></td><td></td><td></td><td class="s">              # using the URI::Escape pattern here so utf8 chars survive</td></tr>
+<tr><td class="h"><a name="1348"></a>1348</td><td></td><td></td><td></td><td></td><td class="s">              $param =~ s/([^A-Za-z0-9\-_.!~*'() ])/$URI::Escape::escapes{$1}/go;</td></tr>
+<tr><td class="h"><a name="1349"></a>1349</td><td></td><td></td><td></td><td></td><td class="s">              $param =~ s/ /+/g;</td></tr>
+<tr><td class="h"><a name="1350"></a>1350</td><td></td><td></td><td></td><td></td><td class="s">              &quot;${key}=$param&quot;; } ( ref $val eq 'ARRAY' ? @$val : $val ));</td></tr>
+<tr><td class="h"><a name="1351"></a>1351</td><td></td><td></td><td></td><td></td><td class="s">      } @keys);</td></tr>
+<tr><td class="h"><a name="1352"></a>1352</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1353"></a>1353</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1354"></a>1354</td><td></td><td></td><td></td><td></td><td class="s">    my $res = bless(\&quot;${base}${args}${query}&quot;, $class);</td></tr>
+<tr><td class="h"><a name="1355"></a>1355</td><td></td><td></td><td></td><td></td><td class="s">    $res;</td></tr>
+<tr><td class="h"><a name="1356"></a>1356</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1357"></a>1357</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1358"></a>1358</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;uri_for_action( $path, \@captures_and_args?, @args?, \%query_values? )</td></tr>
+<tr><td class="h"><a name="1359"></a>1359</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1360"></a>1360</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;uri_for_action( $action, \@captures_and_args?, @args?, \%query_values? )</td></tr>
+<tr><td class="h"><a name="1361"></a>1361</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1362"></a>1362</td><td></td><td></td><td></td><td></td><td class="s">=over</td></tr>
+<tr><td class="h"><a name="1363"></a>1363</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1364"></a>1364</td><td></td><td></td><td></td><td></td><td class="s">=item $path</td></tr>
+<tr><td class="h"><a name="1365"></a>1365</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1366"></a>1366</td><td></td><td></td><td></td><td></td><td class="s">A private path to the Catalyst action you want to create a URI for.</td></tr>
+<tr><td class="h"><a name="1367"></a>1367</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1368"></a>1368</td><td></td><td></td><td></td><td></td><td class="s">This is a shortcut for calling C&lt;&lt; $c-&gt;dispatcher-&gt;get_action_by_path($path)</td></tr>
+<tr><td class="h"><a name="1369"></a>1369</td><td></td><td></td><td></td><td></td><td class="s">&gt;&gt; and passing the resulting C&lt;$action&gt; and the remaining arguments to C&lt;&lt;</td></tr>
+<tr><td class="h"><a name="1370"></a>1370</td><td></td><td></td><td></td><td></td><td class="s">$c-&gt;uri_for &gt;&gt;.</td></tr>
+<tr><td class="h"><a name="1371"></a>1371</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1372"></a>1372</td><td></td><td></td><td></td><td></td><td class="s">You can also pass in a Catalyst::Action object, in which case it is passed to</td></tr>
+<tr><td class="h"><a name="1373"></a>1373</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $c-&gt;uri_for &gt;&gt;.</td></tr>
+<tr><td class="h"><a name="1374"></a>1374</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1375"></a>1375</td><td></td><td></td><td></td><td></td><td class="s">Note that although the path looks like a URI that dispatches to the wanted action, it is not a URI, but an internal path to that action.</td></tr>
+<tr><td class="h"><a name="1376"></a>1376</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1377"></a>1377</td><td></td><td></td><td></td><td></td><td class="s">For example, if the action looks like:</td></tr>
+<tr><td class="h"><a name="1378"></a>1378</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1379"></a>1379</td><td></td><td></td><td></td><td></td><td class="s"> package MyApp::Controller::Users;</td></tr>
+<tr><td class="h"><a name="1380"></a>1380</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1381"></a>1381</td><td></td><td></td><td></td><td></td><td class="s"> sub lst : Path('the-list') {}</td></tr>
+<tr><td class="h"><a name="1382"></a>1382</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1383"></a>1383</td><td></td><td></td><td></td><td></td><td class="s">You can use:</td></tr>
+<tr><td class="h"><a name="1384"></a>1384</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1385"></a>1385</td><td></td><td></td><td></td><td></td><td class="s"> $c-&gt;uri_for_action('/users/lst')</td></tr>
+<tr><td class="h"><a name="1386"></a>1386</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1387"></a>1387</td><td></td><td></td><td></td><td></td><td class="s">and it will create the URI /users/the-list.</td></tr>
+<tr><td class="h"><a name="1388"></a>1388</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1389"></a>1389</td><td></td><td></td><td></td><td></td><td class="s">=item \@captures_and_args?</td></tr>
+<tr><td class="h"><a name="1390"></a>1390</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1391"></a>1391</td><td></td><td></td><td></td><td></td><td class="s">Optional array reference of Captures (i.e. C&lt;&lt;CaptureArgs or $c-&gt;req-&gt;captures&gt;)</td></tr>
+<tr><td class="h"><a name="1392"></a>1392</td><td></td><td></td><td></td><td></td><td class="s">and arguments to the request. Usually used with L&lt;Catalyst::DispatchType::Chained&gt;</td></tr>
+<tr><td class="h"><a name="1393"></a>1393</td><td></td><td></td><td></td><td></td><td class="s">to interpolate all the parameters in the URI.</td></tr>
+<tr><td class="h"><a name="1394"></a>1394</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1395"></a>1395</td><td></td><td></td><td></td><td></td><td class="s">=item @args?</td></tr>
+<tr><td class="h"><a name="1396"></a>1396</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1397"></a>1397</td><td></td><td></td><td></td><td></td><td class="s">Optional list of extra arguments - can be supplied in the</td></tr>
+<tr><td class="h"><a name="1398"></a>1398</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; \@captures_and_args? &gt;&gt; array ref, or here - whichever is easier for your</td></tr>
+<tr><td class="h"><a name="1399"></a>1399</td><td></td><td></td><td></td><td></td><td class="s">code.</td></tr>
+<tr><td class="h"><a name="1400"></a>1400</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1401"></a>1401</td><td></td><td></td><td></td><td></td><td class="s">Your action can have zero, a fixed or a variable number of args (e.g.</td></tr>
+<tr><td class="h"><a name="1402"></a>1402</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; Args(1) &gt;&gt; for a fixed number or C&lt;&lt; Args() &gt;&gt; for a variable number)..</td></tr>
+<tr><td class="h"><a name="1403"></a>1403</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1404"></a>1404</td><td></td><td></td><td></td><td></td><td class="s">=item \%query_values?</td></tr>
+<tr><td class="h"><a name="1405"></a>1405</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1406"></a>1406</td><td></td><td></td><td></td><td></td><td class="s">Optional array reference of query parameters to append. E.g.</td></tr>
+<tr><td class="h"><a name="1407"></a>1407</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1408"></a>1408</td><td></td><td></td><td></td><td></td><td class="s">  { foo =&gt; 'bar' }</td></tr>
+<tr><td class="h"><a name="1409"></a>1409</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1410"></a>1410</td><td></td><td></td><td></td><td></td><td class="s">will generate</td></tr>
+<tr><td class="h"><a name="1411"></a>1411</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1412"></a>1412</td><td></td><td></td><td></td><td></td><td class="s">  /rest/of/your/uri?foo=bar</td></tr>
+<tr><td class="h"><a name="1413"></a>1413</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1414"></a>1414</td><td></td><td></td><td></td><td></td><td class="s">=back</td></tr>
+<tr><td class="h"><a name="1415"></a>1415</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1416"></a>1416</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1417"></a>1417</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1418"></a>1418</td><td></td><td></td><td></td><td></td><td class="s">sub uri_for_action {</td></tr>
+<tr><td class="h"><a name="1419"></a>1419</td><td></td><td></td><td></td><td></td><td class="s">    my ( $c, $path, @args ) = @_;</td></tr>
+<tr><td class="h"><a name="1420"></a>1420</td><td></td><td></td><td></td><td></td><td class="s">    my $action = blessed($path)</td></tr>
+<tr><td class="h"><a name="1421"></a>1421</td><td></td><td></td><td></td><td></td><td class="s">      ? $path</td></tr>
+<tr><td class="h"><a name="1422"></a>1422</td><td></td><td></td><td></td><td></td><td class="s">      : $c-&gt;dispatcher-&gt;get_action_by_path($path);</td></tr>
+<tr><td class="h"><a name="1423"></a>1423</td><td></td><td></td><td></td><td></td><td class="s">    unless (defined $action) {</td></tr>
+<tr><td class="h"><a name="1424"></a>1424</td><td></td><td></td><td></td><td></td><td class="s">      croak &quot;Can't find action for path '$path'&quot;;</td></tr>
+<tr><td class="h"><a name="1425"></a>1425</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1426"></a>1426</td><td></td><td></td><td></td><td></td><td class="s">    return $c-&gt;uri_for( $action, @args );</td></tr>
+<tr><td class="h"><a name="1427"></a>1427</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1428"></a>1428</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1429"></a>1429</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;welcome_message</td></tr>
+<tr><td class="h"><a name="1430"></a>1430</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1431"></a>1431</td><td></td><td></td><td></td><td></td><td class="s">Returns the Catalyst welcome HTML page.</td></tr>
+<tr><td class="h"><a name="1432"></a>1432</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1433"></a>1433</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1434"></a>1434</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1435"></a>1435</td><td></td><td></td><td></td><td></td><td class="s">sub welcome_message {</td></tr>
+<tr><td class="h"><a name="1436"></a>1436</td><td></td><td></td><td></td><td></td><td class="s">    my $c      = shift;</td></tr>
+<tr><td class="h"><a name="1437"></a>1437</td><td></td><td></td><td></td><td></td><td class="s">    my $name   = $c-&gt;config-&gt;{name};</td></tr>
+<tr><td class="h"><a name="1438"></a>1438</td><td></td><td></td><td></td><td></td><td class="s">    my $logo   = $c-&gt;uri_for('/static/images/catalyst_logo.png');</td></tr>
+<tr><td class="h"><a name="1439"></a>1439</td><td></td><td></td><td></td><td></td><td class="s">    my $prefix = Catalyst::Utils::appprefix( ref $c );</td></tr>
+<tr><td class="h"><a name="1440"></a>1440</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;response-&gt;content_type('text/html; charset=utf-8');</td></tr>
+<tr><td class="h"><a name="1441"></a>1441</td><td></td><td></td><td></td><td></td><td class="s">    return &lt;&lt;&quot;EOF&quot;;</td></tr>
+<tr><td class="h"><a name="1442"></a>1442</td><td></td><td></td><td></td><td></td><td class="s">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;</td></tr>
+<tr><td class="h"><a name="1443"></a>1443</td><td></td><td></td><td></td><td></td><td class="s">    &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;</td></tr>
+<tr><td class="h"><a name="1444"></a>1444</td><td></td><td></td><td></td><td></td><td class="s">&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;</td></tr>
+<tr><td class="h"><a name="1445"></a>1445</td><td></td><td></td><td></td><td></td><td class="s">    &lt;head&gt;</td></tr>
+<tr><td class="h"><a name="1446"></a>1446</td><td></td><td></td><td></td><td></td><td class="s">    &lt;meta http-equiv=&quot;Content-Language&quot; content=&quot;en&quot; /&gt;</td></tr>
+<tr><td class="h"><a name="1447"></a>1447</td><td></td><td></td><td></td><td></td><td class="s">    &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;</td></tr>
+<tr><td class="h"><a name="1448"></a>1448</td><td></td><td></td><td></td><td></td><td class="s">        &lt;title&gt;$name on Catalyst $VERSION&lt;/title&gt;</td></tr>
+<tr><td class="h"><a name="1449"></a>1449</td><td></td><td></td><td></td><td></td><td class="s">        &lt;style type=&quot;text/css&quot;&gt;</td></tr>
+<tr><td class="h"><a name="1450"></a>1450</td><td></td><td></td><td></td><td></td><td class="s">            body {</td></tr>
+<tr><td class="h"><a name="1451"></a>1451</td><td></td><td></td><td></td><td></td><td class="s">                color: #000;</td></tr>
+<tr><td class="h"><a name="1452"></a>1452</td><td></td><td></td><td></td><td></td><td class="s">                background-color: #eee;</td></tr>
+<tr><td class="h"><a name="1453"></a>1453</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1454"></a>1454</td><td></td><td></td><td></td><td></td><td class="s">            div#content {</td></tr>
+<tr><td class="h"><a name="1455"></a>1455</td><td></td><td></td><td></td><td></td><td class="s">                width: 640px;</td></tr>
+<tr><td class="h"><a name="1456"></a>1456</td><td></td><td></td><td></td><td></td><td class="s">                margin-left: auto;</td></tr>
+<tr><td class="h"><a name="1457"></a>1457</td><td></td><td></td><td></td><td></td><td class="s">                margin-right: auto;</td></tr>
+<tr><td class="h"><a name="1458"></a>1458</td><td></td><td></td><td></td><td></td><td class="s">                margin-top: 10px;</td></tr>
+<tr><td class="h"><a name="1459"></a>1459</td><td></td><td></td><td></td><td></td><td class="s">                margin-bottom: 10px;</td></tr>
+<tr><td class="h"><a name="1460"></a>1460</td><td></td><td></td><td></td><td></td><td class="s">                text-align: left;</td></tr>
+<tr><td class="h"><a name="1461"></a>1461</td><td></td><td></td><td></td><td></td><td class="s">                background-color: #ccc;</td></tr>
+<tr><td class="h"><a name="1462"></a>1462</td><td></td><td></td><td></td><td></td><td class="s">                border: 1px solid #aaa;</td></tr>
+<tr><td class="h"><a name="1463"></a>1463</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1464"></a>1464</td><td></td><td></td><td></td><td></td><td class="s">            p, h1, h2 {</td></tr>
+<tr><td class="h"><a name="1465"></a>1465</td><td></td><td></td><td></td><td></td><td class="s">                margin-left: 20px;</td></tr>
+<tr><td class="h"><a name="1466"></a>1466</td><td></td><td></td><td></td><td></td><td class="s">                margin-right: 20px;</td></tr>
+<tr><td class="h"><a name="1467"></a>1467</td><td></td><td></td><td></td><td></td><td class="s">                font-family: verdana, tahoma, sans-serif;</td></tr>
+<tr><td class="h"><a name="1468"></a>1468</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1469"></a>1469</td><td></td><td></td><td></td><td></td><td class="s">            a {</td></tr>
+<tr><td class="h"><a name="1470"></a>1470</td><td></td><td></td><td></td><td></td><td class="s">                font-family: verdana, tahoma, sans-serif;</td></tr>
+<tr><td class="h"><a name="1471"></a>1471</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1472"></a>1472</td><td></td><td></td><td></td><td></td><td class="s">            :link, :visited {</td></tr>
+<tr><td class="h"><a name="1473"></a>1473</td><td></td><td></td><td></td><td></td><td class="s">                    text-decoration: none;</td></tr>
+<tr><td class="h"><a name="1474"></a>1474</td><td></td><td></td><td></td><td></td><td class="s">                    color: #b00;</td></tr>
+<tr><td class="h"><a name="1475"></a>1475</td><td></td><td></td><td></td><td></td><td class="s">                    border-bottom: 1px dotted #bbb;</td></tr>
+<tr><td class="h"><a name="1476"></a>1476</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1477"></a>1477</td><td></td><td></td><td></td><td></td><td class="s">            :link:hover, :visited:hover {</td></tr>
+<tr><td class="h"><a name="1478"></a>1478</td><td></td><td></td><td></td><td></td><td class="s">                    color: #555;</td></tr>
+<tr><td class="h"><a name="1479"></a>1479</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1480"></a>1480</td><td></td><td></td><td></td><td></td><td class="s">            div#topbar {</td></tr>
+<tr><td class="h"><a name="1481"></a>1481</td><td></td><td></td><td></td><td></td><td class="s">                margin: 0px;</td></tr>
+<tr><td class="h"><a name="1482"></a>1482</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1483"></a>1483</td><td></td><td></td><td></td><td></td><td class="s">            pre {</td></tr>
+<tr><td class="h"><a name="1484"></a>1484</td><td></td><td></td><td></td><td></td><td class="s">                margin: 10px;</td></tr>
+<tr><td class="h"><a name="1485"></a>1485</td><td></td><td></td><td></td><td></td><td class="s">                padding: 8px;</td></tr>
+<tr><td class="h"><a name="1486"></a>1486</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1487"></a>1487</td><td></td><td></td><td></td><td></td><td class="s">            div#answers {</td></tr>
+<tr><td class="h"><a name="1488"></a>1488</td><td></td><td></td><td></td><td></td><td class="s">                padding: 8px;</td></tr>
+<tr><td class="h"><a name="1489"></a>1489</td><td></td><td></td><td></td><td></td><td class="s">                margin: 10px;</td></tr>
+<tr><td class="h"><a name="1490"></a>1490</td><td></td><td></td><td></td><td></td><td class="s">                background-color: #fff;</td></tr>
+<tr><td class="h"><a name="1491"></a>1491</td><td></td><td></td><td></td><td></td><td class="s">                border: 1px solid #aaa;</td></tr>
+<tr><td class="h"><a name="1492"></a>1492</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1493"></a>1493</td><td></td><td></td><td></td><td></td><td class="s">            h1 {</td></tr>
+<tr><td class="h"><a name="1494"></a>1494</td><td></td><td></td><td></td><td></td><td class="s">                font-size: 0.9em;</td></tr>
+<tr><td class="h"><a name="1495"></a>1495</td><td></td><td></td><td></td><td></td><td class="s">                font-weight: normal;</td></tr>
+<tr><td class="h"><a name="1496"></a>1496</td><td></td><td></td><td></td><td></td><td class="s">                text-align: center;</td></tr>
+<tr><td class="h"><a name="1497"></a>1497</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1498"></a>1498</td><td></td><td></td><td></td><td></td><td class="s">            h2 {</td></tr>
+<tr><td class="h"><a name="1499"></a>1499</td><td></td><td></td><td></td><td></td><td class="s">                font-size: 1.0em;</td></tr>
+<tr><td class="h"><a name="1500"></a>1500</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1501"></a>1501</td><td></td><td></td><td></td><td></td><td class="s">            p {</td></tr>
+<tr><td class="h"><a name="1502"></a>1502</td><td></td><td></td><td></td><td></td><td class="s">                font-size: 0.9em;</td></tr>
+<tr><td class="h"><a name="1503"></a>1503</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1504"></a>1504</td><td></td><td></td><td></td><td></td><td class="s">            p img {</td></tr>
+<tr><td class="h"><a name="1505"></a>1505</td><td></td><td></td><td></td><td></td><td class="s">                float: right;</td></tr>
+<tr><td class="h"><a name="1506"></a>1506</td><td></td><td></td><td></td><td></td><td class="s">                margin-left: 10px;</td></tr>
+<tr><td class="h"><a name="1507"></a>1507</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1508"></a>1508</td><td></td><td></td><td></td><td></td><td class="s">            span#appname {</td></tr>
+<tr><td class="h"><a name="1509"></a>1509</td><td></td><td></td><td></td><td></td><td class="s">                font-weight: bold;</td></tr>
+<tr><td class="h"><a name="1510"></a>1510</td><td></td><td></td><td></td><td></td><td class="s">                font-size: 1.6em;</td></tr>
+<tr><td class="h"><a name="1511"></a>1511</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1512"></a>1512</td><td></td><td></td><td></td><td></td><td class="s">        &lt;/style&gt;</td></tr>
+<tr><td class="h"><a name="1513"></a>1513</td><td></td><td></td><td></td><td></td><td class="s">    &lt;/head&gt;</td></tr>
+<tr><td class="h"><a name="1514"></a>1514</td><td></td><td></td><td></td><td></td><td class="s">    &lt;body&gt;</td></tr>
+<tr><td class="h"><a name="1515"></a>1515</td><td></td><td></td><td></td><td></td><td class="s">        &lt;div id=&quot;content&quot;&gt;</td></tr>
+<tr><td class="h"><a name="1516"></a>1516</td><td></td><td></td><td></td><td></td><td class="s">            &lt;div id=&quot;topbar&quot;&gt;</td></tr>
+<tr><td class="h"><a name="1517"></a>1517</td><td></td><td></td><td></td><td></td><td class="s">                &lt;h1&gt;&lt;span id=&quot;appname&quot;&gt;$name&lt;/span&gt; on &lt;a href=&quot;http://catalyst.perl.org&quot;&gt;Catalyst&lt;/a&gt;</td></tr>
+<tr><td class="h"><a name="1518"></a>1518</td><td></td><td></td><td></td><td></td><td class="s">                    $VERSION&lt;/h1&gt;</td></tr>
+<tr><td class="h"><a name="1519"></a>1519</td><td></td><td></td><td></td><td></td><td class="s">             &lt;/div&gt;</td></tr>
+<tr><td class="h"><a name="1520"></a>1520</td><td></td><td></td><td></td><td></td><td class="s">             &lt;div id=&quot;answers&quot;&gt;</td></tr>
+<tr><td class="h"><a name="1521"></a>1521</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;p&gt;</td></tr>
+<tr><td class="h"><a name="1522"></a>1522</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;img src=&quot;$logo&quot; alt=&quot;Catalyst Logo&quot; /&gt;</td></tr>
+<tr><td class="h"><a name="1523"></a>1523</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;/p&gt;</td></tr>
+<tr><td class="h"><a name="1524"></a>1524</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;p&gt;Welcome to the  world of Catalyst.</td></tr>
+<tr><td class="h"><a name="1525"></a>1525</td><td></td><td></td><td></td><td></td><td class="s">                    This &lt;a href=&quot;http://en.wikipedia.org/wiki/MVC&quot;&gt;MVC&lt;/a&gt;</td></tr>
+<tr><td class="h"><a name="1526"></a>1526</td><td></td><td></td><td></td><td></td><td class="s">                    framework will make web development something you had</td></tr>
+<tr><td class="h"><a name="1527"></a>1527</td><td></td><td></td><td></td><td></td><td class="s">                    never expected it to be: Fun, rewarding, and quick.&lt;/p&gt;</td></tr>
+<tr><td class="h"><a name="1528"></a>1528</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;h2&gt;What to do now?&lt;/h2&gt;</td></tr>
+<tr><td class="h"><a name="1529"></a>1529</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;p&gt;That really depends  on what &lt;b&gt;you&lt;/b&gt; want to do.</td></tr>
+<tr><td class="h"><a name="1530"></a>1530</td><td></td><td></td><td></td><td></td><td class="s">                    We do, however, provide you with a few starting points.&lt;/p&gt;</td></tr>
+<tr><td class="h"><a name="1531"></a>1531</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;p&gt;If you want to jump right into web development with Catalyst</td></tr>
+<tr><td class="h"><a name="1532"></a>1532</td><td></td><td></td><td></td><td></td><td class="s">                    you might want to start with a tutorial.&lt;/p&gt;</td></tr>
+<tr><td class="h"><a name="1533"></a>1533</td><td></td><td></td><td></td><td></td><td class="s">&lt;pre&gt;perldoc &lt;a href=&quot;https://metacpan.org/module/Catalyst::Manual::Tutorial&quot;&gt;Catalyst::Manual::Tutorial&lt;/a&gt;&lt;/code&gt;</td></tr>
+<tr><td class="h"><a name="1534"></a>1534</td><td></td><td></td><td></td><td></td><td class="s">&lt;/pre&gt;</td></tr>
+<tr><td class="h"><a name="1535"></a>1535</td><td></td><td></td><td></td><td></td><td class="s">&lt;p&gt;Afterwards you can go on to check out a more complete look at our features.&lt;/p&gt;</td></tr>
+<tr><td class="h"><a name="1536"></a>1536</td><td></td><td></td><td></td><td></td><td class="s">&lt;pre&gt;</td></tr>
+<tr><td class="h"><a name="1537"></a>1537</td><td></td><td></td><td></td><td></td><td class="s">&lt;code&gt;perldoc &lt;a href=&quot;https://metacpan.org/module/Catalyst::Manual::Intro&quot;&gt;Catalyst::Manual::Intro&lt;/a&gt;</td></tr>
+<tr><td class="h"><a name="1538"></a>1538</td><td></td><td></td><td></td><td></td><td class="s">&lt;!-- Something else should go here, but the Catalyst::Manual link seems unhelpful --&gt;</td></tr>
+<tr><td class="h"><a name="1539"></a>1539</td><td></td><td></td><td></td><td></td><td class="s">&lt;/code&gt;&lt;/pre&gt;</td></tr>
+<tr><td class="h"><a name="1540"></a>1540</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;h2&gt;What to do next?&lt;/h2&gt;</td></tr>
+<tr><td class="h"><a name="1541"></a>1541</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;p&gt;Next it's time to write an actual application. Use the</td></tr>
+<tr><td class="h"><a name="1542"></a>1542</td><td></td><td></td><td></td><td></td><td class="s">                    helper scripts to generate &lt;a href=&quot;https://metacpan.org/search?q=Catalyst%3A%3AController&quot;&gt;controllers&lt;/a&gt;,</td></tr>
+<tr><td class="h"><a name="1543"></a>1543</td><td></td><td></td><td></td><td></td><td class="s">                    &lt;a href=&quot;https://metacpan.org/search?q=Catalyst%3A%3AModel&quot;&gt;models&lt;/a&gt;, and</td></tr>
+<tr><td class="h"><a name="1544"></a>1544</td><td></td><td></td><td></td><td></td><td class="s">                    &lt;a href=&quot;https://metacpan.org/search?q=Catalyst%3A%3AView&quot;&gt;views&lt;/a&gt;;</td></tr>
+<tr><td class="h"><a name="1545"></a>1545</td><td></td><td></td><td></td><td></td><td class="s">                    they can save you a lot of work.&lt;/p&gt;</td></tr>
+<tr><td class="h"><a name="1546"></a>1546</td><td></td><td></td><td></td><td></td><td class="s">                    &lt;pre&gt;&lt;code&gt;script/${prefix}_create.pl --help&lt;/code&gt;&lt;/pre&gt;</td></tr>
+<tr><td class="h"><a name="1547"></a>1547</td><td></td><td></td><td></td><td></td><td class="s">                    &lt;p&gt;Also, be sure to check out the vast and growing</td></tr>
+<tr><td class="h"><a name="1548"></a>1548</td><td></td><td></td><td></td><td></td><td class="s">                    collection of &lt;a href=&quot;http://search.cpan.org/search?query=Catalyst&quot;&gt;plugins for Catalyst on CPAN&lt;/a&gt;;</td></tr>
+<tr><td class="h"><a name="1549"></a>1549</td><td></td><td></td><td></td><td></td><td class="s">                    you are likely to find what you need there.</td></tr>
+<tr><td class="h"><a name="1550"></a>1550</td><td></td><td></td><td></td><td></td><td class="s">                    &lt;/p&gt;</td></tr>
+<tr><td class="h"><a name="1551"></a>1551</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1552"></a>1552</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;h2&gt;Need help?&lt;/h2&gt;</td></tr>
+<tr><td class="h"><a name="1553"></a>1553</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;p&gt;Catalyst has a very active community. Here are the main places to</td></tr>
+<tr><td class="h"><a name="1554"></a>1554</td><td></td><td></td><td></td><td></td><td class="s">                    get in touch with us.&lt;/p&gt;</td></tr>
+<tr><td class="h"><a name="1555"></a>1555</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;ul&gt;</td></tr>
+<tr><td class="h"><a name="1556"></a>1556</td><td></td><td></td><td></td><td></td><td class="s">                     &lt;li&gt;</td></tr>
+<tr><td class="h"><a name="1557"></a>1557</td><td></td><td></td><td></td><td></td><td class="s">                         &lt;a href=&quot;http://dev.catalyst.perl.org&quot;&gt;Wiki&lt;/a&gt;</td></tr>
+<tr><td class="h"><a name="1558"></a>1558</td><td></td><td></td><td></td><td></td><td class="s">                     &lt;/li&gt;</td></tr>
+<tr><td class="h"><a name="1559"></a>1559</td><td></td><td></td><td></td><td></td><td class="s">                     &lt;li&gt;</td></tr>
+<tr><td class="h"><a name="1560"></a>1560</td><td></td><td></td><td></td><td></td><td class="s">                         &lt;a href=&quot;http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst&quot;&gt;Mailing-List&lt;/a&gt;</td></tr>
+<tr><td class="h"><a name="1561"></a>1561</td><td></td><td></td><td></td><td></td><td class="s">                     &lt;/li&gt;</td></tr>
+<tr><td class="h"><a name="1562"></a>1562</td><td></td><td></td><td></td><td></td><td class="s">                     &lt;li&gt;</td></tr>
+<tr><td class="h"><a name="1563"></a>1563</td><td></td><td></td><td></td><td></td><td class="s">                         &lt;a href=&quot;irc://irc.perl.org/catalyst&quot;&gt;IRC channel #catalyst on irc.perl.org&lt;/a&gt;</td></tr>
+<tr><td class="h"><a name="1564"></a>1564</td><td></td><td></td><td></td><td></td><td class="s">                     &lt;/li&gt;</td></tr>
+<tr><td class="h"><a name="1565"></a>1565</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;/ul&gt;</td></tr>
+<tr><td class="h"><a name="1566"></a>1566</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;h2&gt;In conclusion&lt;/h2&gt;</td></tr>
+<tr><td class="h"><a name="1567"></a>1567</td><td></td><td></td><td></td><td></td><td class="s">                 &lt;p&gt;The Catalyst team hopes you will enjoy using Catalyst as much</td></tr>
+<tr><td class="h"><a name="1568"></a>1568</td><td></td><td></td><td></td><td></td><td class="s">                    as we enjoyed making it. Please contact us if you have ideas</td></tr>
+<tr><td class="h"><a name="1569"></a>1569</td><td></td><td></td><td></td><td></td><td class="s">                    for improvement or other feedback.&lt;/p&gt;</td></tr>
+<tr><td class="h"><a name="1570"></a>1570</td><td></td><td></td><td></td><td></td><td class="s">             &lt;/div&gt;</td></tr>
+<tr><td class="h"><a name="1571"></a>1571</td><td></td><td></td><td></td><td></td><td class="s">         &lt;/div&gt;</td></tr>
+<tr><td class="h"><a name="1572"></a>1572</td><td></td><td></td><td></td><td></td><td class="s">    &lt;/body&gt;</td></tr>
+<tr><td class="h"><a name="1573"></a>1573</td><td></td><td></td><td></td><td></td><td class="s">&lt;/html&gt;</td></tr>
+<tr><td class="h"><a name="1574"></a>1574</td><td></td><td></td><td></td><td></td><td class="s">EOF</td></tr>
+<tr><td class="h"><a name="1575"></a>1575</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1576"></a>1576</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1577"></a>1577</td><td></td><td></td><td></td><td></td><td class="s">=head2 run_options</td></tr>
+<tr><td class="h"><a name="1578"></a>1578</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1579"></a>1579</td><td></td><td></td><td></td><td></td><td class="s">Contains a hash of options passed from the application script, including</td></tr>
+<tr><td class="h"><a name="1580"></a>1580</td><td></td><td></td><td></td><td></td><td class="s">the original ARGV the script received, the processed values from that</td></tr>
+<tr><td class="h"><a name="1581"></a>1581</td><td></td><td></td><td></td><td></td><td class="s">ARGV and any extra arguments to the script which were not processed.</td></tr>
+<tr><td class="h"><a name="1582"></a>1582</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1583"></a>1583</td><td></td><td></td><td></td><td></td><td class="s">This can be used to add custom options to your application's scripts</td></tr>
+<tr><td class="h"><a name="1584"></a>1584</td><td></td><td></td><td></td><td></td><td class="s">and setup your application differently depending on the values of these</td></tr>
+<tr><td class="h"><a name="1585"></a>1585</td><td></td><td></td><td></td><td></td><td class="s">options.</td></tr>
+<tr><td class="h"><a name="1586"></a>1586</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1587"></a>1587</td><td></td><td></td><td></td><td></td><td class="s">=head1 INTERNAL METHODS</td></tr>
+<tr><td class="h"><a name="1588"></a>1588</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1589"></a>1589</td><td></td><td></td><td></td><td></td><td class="s">These methods are not meant to be used by end users.</td></tr>
+<tr><td class="h"><a name="1590"></a>1590</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1591"></a>1591</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;components</td></tr>
+<tr><td class="h"><a name="1592"></a>1592</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1593"></a>1593</td><td></td><td></td><td></td><td></td><td class="s">Returns a hash of components.</td></tr>
+<tr><td class="h"><a name="1594"></a>1594</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1595"></a>1595</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;context_class</td></tr>
+<tr><td class="h"><a name="1596"></a>1596</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1597"></a>1597</td><td></td><td></td><td></td><td></td><td class="s">Returns or sets the context class.</td></tr>
+<tr><td class="h"><a name="1598"></a>1598</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1599"></a>1599</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;counter</td></tr>
+<tr><td class="h"><a name="1600"></a>1600</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1601"></a>1601</td><td></td><td></td><td></td><td></td><td class="s">Returns a hashref containing coderefs and execution counts (needed for</td></tr>
+<tr><td class="h"><a name="1602"></a>1602</td><td></td><td></td><td></td><td></td><td class="s">deep recursion detection).</td></tr>
+<tr><td class="h"><a name="1603"></a>1603</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1604"></a>1604</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;depth</td></tr>
+<tr><td class="h"><a name="1605"></a>1605</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1606"></a>1606</td><td></td><td></td><td></td><td></td><td class="s">Returns the number of actions on the current internal execution stack.</td></tr>
+<tr><td class="h"><a name="1607"></a>1607</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1608"></a>1608</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;dispatch</td></tr>
+<tr><td class="h"><a name="1609"></a>1609</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1610"></a>1610</td><td></td><td></td><td></td><td></td><td class="s">Dispatches a request to actions.</td></tr>
+<tr><td class="h"><a name="1611"></a>1611</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1612"></a>1612</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1613"></a>1613</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1614"></a>1614</td><td class="c3">2</td><td class="c3"><span title="Avg 3&micro;s">7&micro;s</span></td><td class="c3">2</td><td class="c0">17.2ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 17.2ms (10&micro;s+17.2) within Catalyst::dispatch which was called:
+#    once (10&micro;s+17.2ms) by Class::MOP::Class:::around at <a href="Catalyst-Plugin-Static-Simple-pm-1856-sub.html#77">line 77 of Catalyst/Plugin/Static/Simple.pm</a></div></div>sub dispatch { my $c = shift; $c-&gt;dispatcher-&gt;dispatch( $c, @_ ) }<div class="calls"><div class="calls_out"># spent  17.2ms making 1 call to <a href="Catalyst-Dispatcher-pm-1877-sub.html#103">Catalyst::Dispatcher::dispatch</a>
+# spent    13&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_dispatcher_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="1615"></a>1615</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1616"></a>1616</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;dispatcher_class</td></tr>
+<tr><td class="h"><a name="1617"></a>1617</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1618"></a>1618</td><td></td><td></td><td></td><td></td><td class="s">Returns or sets the dispatcher class.</td></tr>
+<tr><td class="h"><a name="1619"></a>1619</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1620"></a>1620</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;dump_these</td></tr>
+<tr><td class="h"><a name="1621"></a>1621</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1622"></a>1622</td><td></td><td></td><td></td><td></td><td class="s">Returns a list of 2-element array references (name, structure) pairs</td></tr>
+<tr><td class="h"><a name="1623"></a>1623</td><td></td><td></td><td></td><td></td><td class="s">that will be dumped on the error page in debug mode.</td></tr>
+<tr><td class="h"><a name="1624"></a>1624</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1625"></a>1625</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1626"></a>1626</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1627"></a>1627</td><td></td><td></td><td></td><td></td><td class="s">sub dump_these {</td></tr>
+<tr><td class="h"><a name="1628"></a>1628</td><td></td><td></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="1629"></a>1629</td><td></td><td></td><td></td><td></td><td class="s">    [ Request =&gt; $c-&gt;req ],</td></tr>
+<tr><td class="h"><a name="1630"></a>1630</td><td></td><td></td><td></td><td></td><td class="s">    [ Response =&gt; $c-&gt;res ],</td></tr>
+<tr><td class="h"><a name="1631"></a>1631</td><td></td><td></td><td></td><td></td><td class="s">    [ Stash =&gt; $c-&gt;stash ],</td></tr>
+<tr><td class="h"><a name="1632"></a>1632</td><td></td><td></td><td></td><td></td><td class="s">    [ Config =&gt; $c-&gt;config ];</td></tr>
+<tr><td class="h"><a name="1633"></a>1633</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1634"></a>1634</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1635"></a>1635</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;engine_class</td></tr>
+<tr><td class="h"><a name="1636"></a>1636</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1637"></a>1637</td><td></td><td></td><td></td><td></td><td class="s">Returns or sets the engine class.</td></tr>
+<tr><td class="h"><a name="1638"></a>1638</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1639"></a>1639</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;execute( $class, $coderef )</td></tr>
+<tr><td class="h"><a name="1640"></a>1640</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1641"></a>1641</td><td></td><td></td><td></td><td></td><td class="s">Execute a coderef in given class and catch exceptions. Errors are available</td></tr>
+<tr><td class="h"><a name="1642"></a>1642</td><td></td><td></td><td></td><td></td><td class="s">via $c-&gt;error.</td></tr>
+<tr><td class="h"><a name="1643"></a>1643</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1644"></a>1644</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1645"></a>1645</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1646"></a>1646</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 17.0ms (326&micro;s+16.7) within Catalyst::execute which was called 9 times, avg 1.89ms/call:
+# 9 times (326&micro;s+16.7ms) by Catalyst::Action::dispatch at <a href="Catalyst-Action-pm-1880-sub.html#60">line 60 of Catalyst/Action.pm</a>, avg 1.89ms/call</div></div>sub execute {</td></tr>
+<tr><td class="h"><a name="1647"></a>1647</td><td class="c0">117</td><td class="c0"><span title="Avg 2&micro;s">203&micro;s</span></td><td></td><td></td><td class="s">    my ( $c, $class, $code ) = @_;</td></tr>
+<tr><td class="h"><a name="1648"></a>1648</td><td></td><td></td><td class="c0">9</td><td class="c1">254&micro;s</td><td class="s">    $class = $c-&gt;component($class) || $class;<div class="calls"><div class="calls_out">    # spent   254&micro;s making 9 calls to <a href="Catalyst-pm-381-sub.html#832">Catalyst::component</a>, avg 28&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1649"></a>1649</td><td></td><td></td><td class="c0">9</td><td class="c3">18&micro;s</td><td class="s">    $c-&gt;state(0);<div class="calls"><div class="calls_out">    # spent    18&micro;s making 9 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::state</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1650"></a>1650</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1651"></a>1651</td><td></td><td></td><td class="c0">9</td><td class="c3">47&micro;s</td><td class="s">    if ( $c-&gt;depth &gt;= $RECURSION ) {<div class="calls"><div class="calls_out">    # spent    47&micro;s making 9 calls to <a href="Catalyst-pm-381-sub.html#69">Catalyst::depth</a>, avg 5&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1652"></a>1652</td><td></td><td></td><td></td><td></td><td class="s">        my $action = $code-&gt;reverse();</td></tr>
+<tr><td class="h"><a name="1653"></a>1653</td><td></td><td></td><td></td><td></td><td class="s">        $action = &quot;/$action&quot; unless $action =~ /-&gt;/;</td></tr>
+<tr><td class="h"><a name="1654"></a>1654</td><td></td><td></td><td></td><td></td><td class="s">        my $error = qq/Deep recursion detected calling &quot;${action}&quot;/;</td></tr>
+<tr><td class="h"><a name="1655"></a>1655</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;error($error);</td></tr>
+<tr><td class="h"><a name="1656"></a>1656</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;error($error);</td></tr>
+<tr><td class="h"><a name="1657"></a>1657</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;state(0);</td></tr>
+<tr><td class="h"><a name="1658"></a>1658</td><td></td><td></td><td></td><td></td><td class="s">        return $c-&gt;state;</td></tr>
+<tr><td class="h"><a name="1659"></a>1659</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1660"></a>1660</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1661"></a>1661</td><td></td><td></td><td class="c0">9</td><td class="c3">8&micro;s</td><td class="s">    my $stats_info = $c-&gt;_stats_start_execute( $code ) if $c-&gt;use_stats;<div class="calls"><div class="calls_out">    # spent     8&micro;s making 9 calls to <a href="Catalyst-pm-381-sub.html#3009">Catalyst::use_stats</a>, avg 900ns/call</div></div></td></tr>
+<tr><td class="h"><a name="1662"></a>1662</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1663"></a>1663</td><td></td><td></td><td class="c0">9</td><td class="c3">11&micro;s</td><td class="s">    push( @{ $c-&gt;stack }, $code );<div class="calls"><div class="calls_out">    # spent    11&micro;s making 9 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::stack</a>, avg 1&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1664"></a>1664</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1665"></a>1665</td><td class="c3">2</td><td class="c0"><span title="Avg 114&micro;s">227&micro;s</span></td><td class="c3">2</td><td class="c3">78&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 51&micro;s (23+28) within Catalyst::BEGIN@1665 which was called:
+#    once (23&micro;s+28&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#1665">line 1665</a></div></div>    no warnings 'recursion';<div class="calls"><div class="calls_out">    # spent    51&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#1665">Catalyst::BEGIN@1665</a>
+    # spent    27&micro;s making 1 call to <a href="warnings-pm-2-sub.html#401">warnings::unimport</a></div></div></td></tr>
+<tr><td class="h"><a name="1666"></a>1666</td><td></td><td></td><td></td><td></td><td class="s">    # N.B. This used to be combined, but I have seen $c get clobbered if so, and</td></tr>
+<tr><td class="h"><a name="1667"></a>1667</td><td></td><td></td><td></td><td></td><td class="s">    #      I have no idea how, ergo $ret (which appears to fix the issue)</td></tr>
+<tr><td class="h"><a name="1668"></a>1668</td><td></td><td></td><td class="c0">36</td><td class="c0">17.4ms</td><td class="s">    eval { my $ret = $code-&gt;execute( $class, $c, @{ $c-&gt;req-&gt;args } ) || 0; $c-&gt;state( $ret ) };<div class="calls"><div class="calls_out">    # spent  48.0ms making 8 calls to <a href="Catalyst-Action-pm-1880-sub.html#63">Catalyst::Action::execute</a>, avg 6.00ms/call, recursion: max depth 3, sum of overlapping time 31.1ms
+    # spent   453&micro;s making 1 call to <a href="Catalyst-Action-RenderView-pm-2496-sub.html#15">Catalyst::Action::RenderView::execute</a>
+    # spent    45&micro;s making 9 calls to <a href="Catalyst-pm-381-sub.html#72">Catalyst::req</a>, avg 5&micro;s/call
+    # spent    39&micro;s making 9 calls to <a href="Catalyst-Request-pm-483-sub.html#292">Catalyst::Request::args</a>, avg 4&micro;s/call
+    # spent    20&micro;s making 9 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::state</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1669"></a>1669</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1670"></a>1670</td><td></td><td></td><td class="c0">9</td><td class="c3">10&micro;s</td><td class="s">    $c-&gt;_stats_finish_execute( $stats_info ) if $c-&gt;use_stats and $stats_info;<div class="calls"><div class="calls_out">    # spent    10&micro;s making 9 calls to <a href="Catalyst-pm-381-sub.html#3009">Catalyst::use_stats</a>, avg 1&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1671"></a>1671</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1672"></a>1672</td><td></td><td></td><td class="c0">9</td><td class="c3">16&micro;s</td><td class="s">    my $last = pop( @{ $c-&gt;stack } );<div class="calls"><div class="calls_out">    # spent    16&micro;s making 9 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::stack</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1673"></a>1673</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1674"></a>1674</td><td></td><td></td><td></td><td></td><td class="s">    if ( my $error = $@ ) {</td></tr>
+<tr><td class="h"><a name="1675"></a>1675</td><td></td><td></td><td></td><td></td><td class="s">        if ( blessed($error) and $error-&gt;isa('Catalyst::Exception::Detach') ) {</td></tr>
+<tr><td class="h"><a name="1676"></a>1676</td><td></td><td></td><td></td><td></td><td class="s">            $error-&gt;rethrow if $c-&gt;depth &gt; 1;</td></tr>
+<tr><td class="h"><a name="1677"></a>1677</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1678"></a>1678</td><td></td><td></td><td></td><td></td><td class="s">        elsif ( blessed($error) and $error-&gt;isa('Catalyst::Exception::Go') ) {</td></tr>
+<tr><td class="h"><a name="1679"></a>1679</td><td></td><td></td><td></td><td></td><td class="s">            $error-&gt;rethrow if $c-&gt;depth &gt; 0;</td></tr>
+<tr><td class="h"><a name="1680"></a>1680</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1681"></a>1681</td><td></td><td></td><td></td><td></td><td class="s">        else {</td></tr>
+<tr><td class="h"><a name="1682"></a>1682</td><td></td><td></td><td></td><td></td><td class="s">            unless ( ref $error ) {</td></tr>
+<tr><td class="h"><a name="1683"></a>1683</td><td class="c3">2</td><td class="c0"><span title="Avg 3.10ms">6.19ms</span></td><td class="c3">2</td><td class="c3">43&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 28&micro;s (14+15) within Catalyst::BEGIN@1683 which was called:
+#    once (14&micro;s+15&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#1683">line 1683</a></div></div>                no warnings 'uninitialized';<div class="calls"><div class="calls_out">                # spent    28&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#1683">Catalyst::BEGIN@1683</a>
+                # spent    15&micro;s making 1 call to <a href="warnings-pm-2-sub.html#401">warnings::unimport</a></div></div></td></tr>
+<tr><td class="h"><a name="1684"></a>1684</td><td></td><td></td><td></td><td></td><td class="s">                chomp $error;</td></tr>
+<tr><td class="h"><a name="1685"></a>1685</td><td></td><td></td><td></td><td></td><td class="s">                my $class = $last-&gt;class;</td></tr>
+<tr><td class="h"><a name="1686"></a>1686</td><td></td><td></td><td></td><td></td><td class="s">                my $name  = $last-&gt;name;</td></tr>
+<tr><td class="h"><a name="1687"></a>1687</td><td></td><td></td><td></td><td></td><td class="s">                $error = qq/Caught exception in $class-&gt;$name &quot;$error&quot;/;</td></tr>
+<tr><td class="h"><a name="1688"></a>1688</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1689"></a>1689</td><td></td><td></td><td></td><td></td><td class="s">            $c-&gt;error($error);</td></tr>
+<tr><td class="h"><a name="1690"></a>1690</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1691"></a>1691</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;state(0);</td></tr>
+<tr><td class="h"><a name="1692"></a>1692</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1693"></a>1693</td><td></td><td></td><td class="c0">9</td><td class="c3">12&micro;s</td><td class="s">    return $c-&gt;state;<div class="calls"><div class="calls_out">    # spent    12&micro;s making 9 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::state</a>, avg 1&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1694"></a>1694</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1695"></a>1695</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1696"></a>1696</td><td></td><td></td><td></td><td></td><td class="s">sub _stats_start_execute {</td></tr>
+<tr><td class="h"><a name="1697"></a>1697</td><td></td><td></td><td></td><td></td><td class="s">    my ( $c, $code ) = @_;</td></tr>
+<tr><td class="h"><a name="1698"></a>1698</td><td></td><td></td><td></td><td></td><td class="s">    my $appclass = ref($c) || $c;</td></tr>
+<tr><td class="h"><a name="1699"></a>1699</td><td></td><td></td><td></td><td></td><td class="s">    return if ( ( $code-&gt;name =~ /^_.*/ )</td></tr>
+<tr><td class="h"><a name="1700"></a>1700</td><td></td><td></td><td></td><td></td><td class="s">        &amp;&amp; ( !$appclass-&gt;config-&gt;{show_internal_actions} ) );</td></tr>
+<tr><td class="h"><a name="1701"></a>1701</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1702"></a>1702</td><td></td><td></td><td></td><td></td><td class="s">    my $action_name = $code-&gt;reverse();</td></tr>
+<tr><td class="h"><a name="1703"></a>1703</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;counter-&gt;{$action_name}++;</td></tr>
+<tr><td class="h"><a name="1704"></a>1704</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1705"></a>1705</td><td></td><td></td><td></td><td></td><td class="s">    my $action = $action_name;</td></tr>
+<tr><td class="h"><a name="1706"></a>1706</td><td></td><td></td><td></td><td></td><td class="s">    $action = &quot;/$action&quot; unless $action =~ /-&gt;/;</td></tr>
+<tr><td class="h"><a name="1707"></a>1707</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1708"></a>1708</td><td></td><td></td><td></td><td></td><td class="s">    # determine if the call was the result of a forward</td></tr>
+<tr><td class="h"><a name="1709"></a>1709</td><td></td><td></td><td></td><td></td><td class="s">    # this is done by walking up the call stack and looking for a calling</td></tr>
+<tr><td class="h"><a name="1710"></a>1710</td><td></td><td></td><td></td><td></td><td class="s">    # sub of Catalyst::forward before the eval</td></tr>
+<tr><td class="h"><a name="1711"></a>1711</td><td></td><td></td><td></td><td></td><td class="s">    my $callsub = q{};</td></tr>
+<tr><td class="h"><a name="1712"></a>1712</td><td></td><td></td><td></td><td></td><td class="s">    for my $index ( 2 .. 11 ) {</td></tr>
+<tr><td class="h"><a name="1713"></a>1713</td><td></td><td></td><td></td><td></td><td class="s">        last</td></tr>
+<tr><td class="h"><a name="1714"></a>1714</td><td></td><td></td><td></td><td></td><td class="s">        if ( ( caller($index) )[0] eq 'Catalyst'</td></tr>
+<tr><td class="h"><a name="1715"></a>1715</td><td></td><td></td><td></td><td></td><td class="s">            &amp;&amp; ( caller($index) )[3] eq '(eval)' );</td></tr>
+<tr><td class="h"><a name="1716"></a>1716</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1717"></a>1717</td><td></td><td></td><td></td><td></td><td class="s">        if ( ( caller($index) )[3] =~ /forward$/ ) {</td></tr>
+<tr><td class="h"><a name="1718"></a>1718</td><td></td><td></td><td></td><td></td><td class="s">            $callsub = ( caller($index) )[3];</td></tr>
+<tr><td class="h"><a name="1719"></a>1719</td><td></td><td></td><td></td><td></td><td class="s">            $action  = &quot;-&gt; $action&quot;;</td></tr>
+<tr><td class="h"><a name="1720"></a>1720</td><td></td><td></td><td></td><td></td><td class="s">            last;</td></tr>
+<tr><td class="h"><a name="1721"></a>1721</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1722"></a>1722</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1723"></a>1723</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1724"></a>1724</td><td></td><td></td><td></td><td></td><td class="s">    my $uid = $action_name . $c-&gt;counter-&gt;{$action_name};</td></tr>
+<tr><td class="h"><a name="1725"></a>1725</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1726"></a>1726</td><td></td><td></td><td></td><td></td><td class="s">    # is this a root-level call or a forwarded call?</td></tr>
+<tr><td class="h"><a name="1727"></a>1727</td><td></td><td></td><td></td><td></td><td class="s">    if ( $callsub =~ /forward$/ ) {</td></tr>
+<tr><td class="h"><a name="1728"></a>1728</td><td></td><td></td><td></td><td></td><td class="s">        my $parent = $c-&gt;stack-&gt;[-1];</td></tr>
+<tr><td class="h"><a name="1729"></a>1729</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1730"></a>1730</td><td></td><td></td><td></td><td></td><td class="s">        # forward, locate the caller</td></tr>
+<tr><td class="h"><a name="1731"></a>1731</td><td></td><td></td><td></td><td></td><td class="s">        if ( defined $parent &amp;&amp; exists $c-&gt;counter-&gt;{&quot;$parent&quot;} ) {</td></tr>
+<tr><td class="h"><a name="1732"></a>1732</td><td></td><td></td><td></td><td></td><td class="s">            $c-&gt;stats-&gt;profile(</td></tr>
+<tr><td class="h"><a name="1733"></a>1733</td><td></td><td></td><td></td><td></td><td class="s">                begin  =&gt; $action,</td></tr>
+<tr><td class="h"><a name="1734"></a>1734</td><td></td><td></td><td></td><td></td><td class="s">                parent =&gt; &quot;$parent&quot; . $c-&gt;counter-&gt;{&quot;$parent&quot;},</td></tr>
+<tr><td class="h"><a name="1735"></a>1735</td><td></td><td></td><td></td><td></td><td class="s">                uid    =&gt; $uid,</td></tr>
+<tr><td class="h"><a name="1736"></a>1736</td><td></td><td></td><td></td><td></td><td class="s">            );</td></tr>
+<tr><td class="h"><a name="1737"></a>1737</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1738"></a>1738</td><td></td><td></td><td></td><td></td><td class="s">        else {</td></tr>
+<tr><td class="h"><a name="1739"></a>1739</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1740"></a>1740</td><td></td><td></td><td></td><td></td><td class="s">            # forward with no caller may come from a plugin</td></tr>
+<tr><td class="h"><a name="1741"></a>1741</td><td></td><td></td><td></td><td></td><td class="s">            $c-&gt;stats-&gt;profile(</td></tr>
+<tr><td class="h"><a name="1742"></a>1742</td><td></td><td></td><td></td><td></td><td class="s">                begin =&gt; $action,</td></tr>
+<tr><td class="h"><a name="1743"></a>1743</td><td></td><td></td><td></td><td></td><td class="s">                uid   =&gt; $uid,</td></tr>
+<tr><td class="h"><a name="1744"></a>1744</td><td></td><td></td><td></td><td></td><td class="s">            );</td></tr>
+<tr><td class="h"><a name="1745"></a>1745</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1746"></a>1746</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1747"></a>1747</td><td></td><td></td><td></td><td></td><td class="s">    else {</td></tr>
+<tr><td class="h"><a name="1748"></a>1748</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1749"></a>1749</td><td></td><td></td><td></td><td></td><td class="s">        # root-level call</td></tr>
+<tr><td class="h"><a name="1750"></a>1750</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;stats-&gt;profile(</td></tr>
+<tr><td class="h"><a name="1751"></a>1751</td><td></td><td></td><td></td><td></td><td class="s">            begin =&gt; $action,</td></tr>
+<tr><td class="h"><a name="1752"></a>1752</td><td></td><td></td><td></td><td></td><td class="s">            uid   =&gt; $uid,</td></tr>
+<tr><td class="h"><a name="1753"></a>1753</td><td></td><td></td><td></td><td></td><td class="s">        );</td></tr>
+<tr><td class="h"><a name="1754"></a>1754</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1755"></a>1755</td><td></td><td></td><td></td><td></td><td class="s">    return $action;</td></tr>
+<tr><td class="h"><a name="1756"></a>1756</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1757"></a>1757</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1758"></a>1758</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1759"></a>1759</td><td></td><td></td><td></td><td></td><td class="s">sub _stats_finish_execute {</td></tr>
+<tr><td class="h"><a name="1760"></a>1760</td><td></td><td></td><td></td><td></td><td class="s">    my ( $c, $info ) = @_;</td></tr>
+<tr><td class="h"><a name="1761"></a>1761</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;stats-&gt;profile( end =&gt; $info );</td></tr>
+<tr><td class="h"><a name="1762"></a>1762</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1763"></a>1763</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1764"></a>1764</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;finalize</td></tr>
+<tr><td class="h"><a name="1765"></a>1765</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1766"></a>1766</td><td></td><td></td><td></td><td></td><td class="s">Finalizes the request.</td></tr>
+<tr><td class="h"><a name="1767"></a>1767</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1768"></a>1768</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1769"></a>1769</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1770"></a>1770</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 901&micro;s (66+835) within Catalyst::finalize which was called:
+#    once (66&micro;s+835&micro;s) by Class::MOP::Method::Wrapped::__ANON__[/Users/edenc/perl5/lib/perl5/darwin-multi-2level/Class/MOP/Method/Wrapped.pm:51] at <a href="Class-MOP-Method-Wrapped-pm-106-sub.html#50">line 50 of Class/MOP/Method/Wrapped.pm</a></div></div>sub finalize {</td></tr>
+<tr><td class="h"><a name="1771"></a>1771</td><td class="c0">12</td><td class="c3"><span title="Avg 4&micro;s">50&micro;s</span></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="1772"></a>1772</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1773"></a>1773</td><td></td><td></td><td class="c3">1</td><td class="c3">2&micro;s</td><td class="s">    for my $error ( @{ $c-&gt;error } ) {<div class="calls"><div class="calls_out">    # spent     2&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#494">Catalyst::error</a></div></div></td></tr>
+<tr><td class="h"><a name="1774"></a>1774</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;error($error);</td></tr>
+<tr><td class="h"><a name="1775"></a>1775</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1776"></a>1776</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1777"></a>1777</td><td></td><td></td><td></td><td></td><td class="s">    # Allow engine to handle finalize flow (for POE)</td></tr>
+<tr><td class="h"><a name="1778"></a>1778</td><td></td><td></td><td class="c3">1</td><td class="c3">12&micro;s</td><td class="s">    my $engine = $c-&gt;engine;<div class="calls"><div class="calls_out">    # spent    12&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="1779"></a>1779</td><td></td><td></td><td class="c3">1</td><td class="c3">4&micro;s</td><td class="s">    if ( my $code = $engine-&gt;can('finalize') ) {<div class="calls"><div class="calls_out">    # spent     4&micro;s making 1 call to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__can">UNIVERSAL::can</a></div></div></td></tr>
+<tr><td class="h"><a name="1780"></a>1780</td><td></td><td></td><td></td><td></td><td class="s">        $engine-&gt;$code($c);</td></tr>
+<tr><td class="h"><a name="1781"></a>1781</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1782"></a>1782</td><td></td><td></td><td></td><td></td><td class="s">    else {</td></tr>
+<tr><td class="h"><a name="1783"></a>1783</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1784"></a>1784</td><td></td><td></td><td class="c3">1</td><td class="c3">35&micro;s</td><td class="s">        $c-&gt;finalize_uploads;<div class="calls"><div class="calls_out">        # spent    35&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#1925">Catalyst::finalize_uploads</a></div></div></td></tr>
+<tr><td class="h"><a name="1785"></a>1785</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1786"></a>1786</td><td></td><td></td><td></td><td></td><td class="s">        # Error</td></tr>
+<tr><td class="h"><a name="1787"></a>1787</td><td></td><td></td><td class="c3">1</td><td class="c3">2&micro;s</td><td class="s">        if ( $#{ $c-&gt;error } &gt;= 0 ) {<div class="calls"><div class="calls_out">        # spent     2&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#494">Catalyst::error</a></div></div></td></tr>
+<tr><td class="h"><a name="1788"></a>1788</td><td></td><td></td><td></td><td></td><td class="s">            $c-&gt;finalize_error;</td></tr>
+<tr><td class="h"><a name="1789"></a>1789</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1790"></a>1790</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1791"></a>1791</td><td></td><td></td><td class="c3">1</td><td class="c0">500&micro;s</td><td class="s">        $c-&gt;finalize_headers;<div class="calls"><div class="calls_out">        # spent   500&micro;s making 1 call to <a href="Catalyst-Plugin-Unicode-Encoding-pm-1853-sub.html#40">Catalyst::Plugin::Unicode::Encoding::finalize_headers</a></div></div></td></tr>
+<tr><td class="h"><a name="1792"></a>1792</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1793"></a>1793</td><td></td><td></td><td></td><td></td><td class="s">        # HEAD request</td></tr>
+<tr><td class="h"><a name="1794"></a>1794</td><td></td><td></td><td class="c3">2</td><td class="c3">4&micro;s</td><td class="s">        if ( $c-&gt;request-&gt;method eq 'HEAD' ) {<div class="calls"><div class="calls_out">        # spent     2&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::request</a>
+        # spent     2&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Request::method</a></div></div></td></tr>
+<tr><td class="h"><a name="1795"></a>1795</td><td></td><td></td><td></td><td></td><td class="s">            $c-&gt;response-&gt;body('');</td></tr>
+<tr><td class="h"><a name="1796"></a>1796</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1797"></a>1797</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1798"></a>1798</td><td></td><td></td><td class="c3">1</td><td class="c1">266&micro;s</td><td class="s">        $c-&gt;finalize_body;<div class="calls"><div class="calls_out">        # spent   266&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#1819">Catalyst::finalize_body</a></div></div></td></tr>
+<tr><td class="h"><a name="1799"></a>1799</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1800"></a>1800</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1801"></a>1801</td><td></td><td></td><td class="c3">1</td><td class="c3">6&micro;s</td><td class="s">    $c-&gt;log_response;<div class="calls"><div class="calls_out">    # spent     6&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#2217">Catalyst::log_response</a></div></div></td></tr>
+<tr><td class="h"><a name="1802"></a>1802</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1803"></a>1803</td><td></td><td></td><td class="c3">1</td><td class="c3">800ns</td><td class="s">    if ($c-&gt;use_stats) {<div class="calls"><div class="calls_out">    # spent   800ns making 1 call to <a href="Catalyst-pm-381-sub.html#3009">Catalyst::use_stats</a></div></div></td></tr>
+<tr><td class="h"><a name="1804"></a>1804</td><td></td><td></td><td></td><td></td><td class="s">        my $elapsed = sprintf '%f', $c-&gt;stats-&gt;elapsed;</td></tr>
+<tr><td class="h"><a name="1805"></a>1805</td><td></td><td></td><td></td><td></td><td class="s">        my $av = $elapsed == 0 ? '??' : sprintf '%.3f', 1 / $elapsed;</td></tr>
+<tr><td class="h"><a name="1806"></a>1806</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;info(</td></tr>
+<tr><td class="h"><a name="1807"></a>1807</td><td></td><td></td><td></td><td></td><td class="s">            &quot;Request took ${elapsed}s ($av/s)\n&quot; . $c-&gt;stats-&gt;report . &quot;\n&quot; );</td></tr>
+<tr><td class="h"><a name="1808"></a>1808</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1809"></a>1809</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1810"></a>1810</td><td></td><td></td><td class="c3">2</td><td class="c3">3&micro;s</td><td class="s">    return $c-&gt;response-&gt;status;<div class="calls"><div class="calls_out">    # spent     2&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::response</a>
+    # spent     2&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Response::status</a></div></div></td></tr>
+<tr><td class="h"><a name="1811"></a>1811</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1812"></a>1812</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1813"></a>1813</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;finalize_body</td></tr>
+<tr><td class="h"><a name="1814"></a>1814</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1815"></a>1815</td><td></td><td></td><td></td><td></td><td class="s">Finalizes body.</td></tr>
+<tr><td class="h"><a name="1816"></a>1816</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1817"></a>1817</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1818"></a>1818</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1819"></a>1819</td><td class="c3">2</td><td class="c3"><span title="Avg 3&micro;s">6&micro;s</span></td><td class="c3">2</td><td class="c1">257&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 266&micro;s (9+257) within Catalyst::finalize_body which was called:
+#    once (9&micro;s+257&micro;s) by Catalyst::finalize at <a href="Catalyst-pm-381-sub.html#1798">line 1798</a></div></div>sub finalize_body { my $c = shift; $c-&gt;engine-&gt;finalize_body( $c, @_ ) }<div class="calls"><div class="calls_out"># spent   245&micro;s making 1 call to <a href="Catalyst-Engine-pm-1927-sub.html#61">Catalyst::Engine::finalize_body</a>
+# spent    12&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="1820"></a>1820</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1821"></a>1821</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;finalize_cookies</td></tr>
+<tr><td class="h"><a name="1822"></a>1822</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1823"></a>1823</td><td></td><td></td><td></td><td></td><td class="s">Finalizes cookies.</td></tr>
+<tr><td class="h"><a name="1824"></a>1824</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1825"></a>1825</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1826"></a>1826</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1827"></a>1827</td><td class="c3">2</td><td class="c3"><span title="Avg 3&micro;s">7&micro;s</span></td><td class="c3">2</td><td class="c3">30&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 39&micro;s (9+30) within Catalyst::finalize_cookies which was called:
+#    once (9&micro;s+30&micro;s) by Catalyst::finalize_headers at <a href="Catalyst-pm-381-sub.html#1899">line 1899</a></div></div>sub finalize_cookies { my $c = shift; $c-&gt;engine-&gt;finalize_cookies( $c, @_ ) }<div class="calls"><div class="calls_out"># spent    18&micro;s making 1 call to <a href="Catalyst-Engine-pm-1927-sub.html#92">Catalyst::Engine::finalize_cookies</a>
+# spent    12&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="1828"></a>1828</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1829"></a>1829</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;finalize_error</td></tr>
+<tr><td class="h"><a name="1830"></a>1830</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1831"></a>1831</td><td></td><td></td><td></td><td></td><td class="s">Finalizes error.</td></tr>
+<tr><td class="h"><a name="1832"></a>1832</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1833"></a>1833</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1834"></a>1834</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1835"></a>1835</td><td></td><td></td><td></td><td></td><td class="s">sub finalize_error { my $c = shift; $c-&gt;engine-&gt;finalize_error( $c, @_ ) }</td></tr>
+<tr><td class="h"><a name="1836"></a>1836</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1837"></a>1837</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;finalize_headers</td></tr>
+<tr><td class="h"><a name="1838"></a>1838</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1839"></a>1839</td><td></td><td></td><td></td><td></td><td class="s">Finalizes headers.</td></tr>
+<tr><td class="h"><a name="1840"></a>1840</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1841"></a>1841</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1842"></a>1842</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1843"></a>1843</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 379&micro;s (68+310) within Catalyst::finalize_headers which was called:
+#    once (68&micro;s+310&micro;s) by Catalyst::Plugin::Unicode::Encoding::finalize_headers at <a href="mro-pm-85-sub.html#28">line 28 of mro.pm</a></div></div>sub finalize_headers {</td></tr>
+<tr><td class="h"><a name="1844"></a>1844</td><td class="c0">11</td><td class="c3"><span title="Avg 4&micro;s">45&micro;s</span></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="1845"></a>1845</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1846"></a>1846</td><td></td><td></td><td class="c3">1</td><td class="c3">2&micro;s</td><td class="s">    my $response = $c-&gt;response; #accessor calls can add up?<div class="calls"><div class="calls_out">    # spent     2&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::response</a></div></div></td></tr>
+<tr><td class="h"><a name="1847"></a>1847</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1848"></a>1848</td><td></td><td></td><td></td><td></td><td class="s">    # Check if we already finalized headers</td></tr>
+<tr><td class="h"><a name="1849"></a>1849</td><td></td><td></td><td class="c3">1</td><td class="c3">3&micro;s</td><td class="s">    return if $response-&gt;finalized_headers;<div class="calls"><div class="calls_out">    # spent     3&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Response::finalized_headers</a></div></div></td></tr>
+<tr><td class="h"><a name="1850"></a>1850</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1851"></a>1851</td><td></td><td></td><td></td><td></td><td class="s">    # Handle redirects</td></tr>
+<tr><td class="h"><a name="1852"></a>1852</td><td></td><td></td><td class="c3">1</td><td class="c3">8&micro;s</td><td class="s">    if ( my $location = $response-&gt;redirect ) {<div class="calls"><div class="calls_out">    # spent     8&micro;s making 1 call to <a href="Catalyst-Response-pm-553-sub.html#214">Catalyst::Response::redirect</a></div></div></td></tr>
+<tr><td class="h"><a name="1853"></a>1853</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;debug(qq/Redirecting to &quot;$location&quot;/) if $c-&gt;debug;</td></tr>
+<tr><td class="h"><a name="1854"></a>1854</td><td></td><td></td><td></td><td></td><td class="s">        $response-&gt;header( Location =&gt; $location );</td></tr>
+<tr><td class="h"><a name="1855"></a>1855</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1856"></a>1856</td><td></td><td></td><td></td><td></td><td class="s">        if ( !$response-&gt;has_body ) {</td></tr>
+<tr><td class="h"><a name="1857"></a>1857</td><td></td><td></td><td></td><td></td><td class="s">            # Add a default body if none is already present</td></tr>
+<tr><td class="h"><a name="1858"></a>1858</td><td></td><td></td><td></td><td></td><td class="s">            $response-&gt;body(&lt;&lt;&quot;EOF&quot;);</td></tr>
+<tr><td class="h"><a name="1859"></a>1859</td><td></td><td></td><td></td><td></td><td class="s">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</td></tr>
+<tr><td class="h"><a name="1860"></a>1860</td><td></td><td></td><td></td><td></td><td class="s">&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; </td></tr>
+<tr><td class="h"><a name="1861"></a>1861</td><td></td><td></td><td></td><td></td><td class="s">  &lt;head&gt;</td></tr>
+<tr><td class="h"><a name="1862"></a>1862</td><td></td><td></td><td></td><td></td><td class="s">    &lt;title&gt;Moved&lt;/title&gt;</td></tr>
+<tr><td class="h"><a name="1863"></a>1863</td><td></td><td></td><td></td><td></td><td class="s">  &lt;/head&gt;</td></tr>
+<tr><td class="h"><a name="1864"></a>1864</td><td></td><td></td><td></td><td></td><td class="s">  &lt;body&gt;</td></tr>
+<tr><td class="h"><a name="1865"></a>1865</td><td></td><td></td><td></td><td></td><td class="s">     &lt;p&gt;This item has moved &lt;a href=&quot;$location&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</td></tr>
+<tr><td class="h"><a name="1866"></a>1866</td><td></td><td></td><td></td><td></td><td class="s">  &lt;/body&gt;</td></tr>
+<tr><td class="h"><a name="1867"></a>1867</td><td></td><td></td><td></td><td></td><td class="s">&lt;/html&gt;</td></tr>
+<tr><td class="h"><a name="1868"></a>1868</td><td></td><td></td><td></td><td></td><td class="s">EOF</td></tr>
+<tr><td class="h"><a name="1869"></a>1869</td><td></td><td></td><td></td><td></td><td class="s">            $response-&gt;content_type('text/html; charset=utf-8');</td></tr>
+<tr><td class="h"><a name="1870"></a>1870</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1871"></a>1871</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1872"></a>1872</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1873"></a>1873</td><td></td><td></td><td></td><td></td><td class="s">    # Content-Length</td></tr>
+<tr><td class="h"><a name="1874"></a>1874</td><td></td><td></td><td class="c1">3</td><td class="c3">37&micro;s</td><td class="s">    if ( defined $response-&gt;body &amp;&amp; length $response-&gt;body &amp;&amp; !$response-&gt;content_length ) {<div class="calls"><div class="calls_out">    # spent    33&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Response::content_length</a>
+    # spent     4&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Response::body</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1875"></a>1875</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1876"></a>1876</td><td></td><td></td><td></td><td></td><td class="s">        # get the length from a filehandle</td></tr>
+<tr><td class="h"><a name="1877"></a>1877</td><td></td><td></td><td class="c1">3</td><td class="c3">5&micro;s</td><td class="s">        if ( blessed( $response-&gt;body ) &amp;&amp; $response-&gt;body-&gt;can('read') || ref( $response-&gt;body ) eq 'GLOB' )<div class="calls"><div class="calls_out">        # spent     4&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Response::body</a>, avg 2&micro;s/call
+        # spent   800ns making 1 call to <a href="Scalar-Util-pm-63-sub.html#Scalar__Util__blessed">Scalar::Util::blessed</a></div></div></td></tr>
+<tr><td class="h"><a name="1878"></a>1878</td><td></td><td></td><td></td><td></td><td class="s">        {</td></tr>
+<tr><td class="h"><a name="1879"></a>1879</td><td></td><td></td><td></td><td></td><td class="s">            my $size = -s $response-&gt;body;</td></tr>
+<tr><td class="h"><a name="1880"></a>1880</td><td></td><td></td><td></td><td></td><td class="s">            if ( $size ) {</td></tr>
+<tr><td class="h"><a name="1881"></a>1881</td><td></td><td></td><td></td><td></td><td class="s">                $response-&gt;content_length( $size );</td></tr>
+<tr><td class="h"><a name="1882"></a>1882</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1883"></a>1883</td><td></td><td></td><td></td><td></td><td class="s">            else {</td></tr>
+<tr><td class="h"><a name="1884"></a>1884</td><td></td><td></td><td></td><td></td><td class="s">                $c-&gt;log-&gt;warn('Serving filehandle without a content-length');</td></tr>
+<tr><td class="h"><a name="1885"></a>1885</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="1886"></a>1886</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1887"></a>1887</td><td></td><td></td><td></td><td></td><td class="s">        else {</td></tr>
+<tr><td class="h"><a name="1888"></a>1888</td><td></td><td></td><td></td><td></td><td class="s">            # everything should be bytes at this point, but just in case</td></tr>
+<tr><td class="h"><a name="1889"></a>1889</td><td></td><td></td><td class="c3">2</td><td class="c3">28&micro;s</td><td class="s">            $response-&gt;content_length( length( $response-&gt;body ) );<div class="calls"><div class="calls_out">            # spent    26&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Response::content_length</a>
+            # spent     2&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Response::body</a></div></div></td></tr>
+<tr><td class="h"><a name="1890"></a>1890</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1891"></a>1891</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1892"></a>1892</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1893"></a>1893</td><td></td><td></td><td></td><td></td><td class="s">    # Errors</td></tr>
+<tr><td class="h"><a name="1894"></a>1894</td><td></td><td></td><td class="c3">2</td><td class="c3">4&micro;s</td><td class="s">    if ( $response-&gt;status =~ /^(1\d\d|[23]04)$/ ) {<div class="calls"><div class="calls_out">    # spent     3&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Response::status</a>
+    # spent     2&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#Catalyst__CORE_match">Catalyst::CORE:match</a></div></div></td></tr>
+<tr><td class="h"><a name="1895"></a>1895</td><td></td><td></td><td></td><td></td><td class="s">        $response-&gt;headers-&gt;remove_header(&quot;Content-Length&quot;);</td></tr>
+<tr><td class="h"><a name="1896"></a>1896</td><td></td><td></td><td></td><td></td><td class="s">        $response-&gt;body('');</td></tr>
+<tr><td class="h"><a name="1897"></a>1897</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1898"></a>1898</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1899"></a>1899</td><td></td><td></td><td class="c3">1</td><td class="c3">39&micro;s</td><td class="s">    $c-&gt;finalize_cookies;<div class="calls"><div class="calls_out">    # spent    39&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#1827">Catalyst::finalize_cookies</a></div></div></td></tr>
+<tr><td class="h"><a name="1900"></a>1900</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1901"></a>1901</td><td></td><td></td><td class="c3">2</td><td class="c2">181&micro;s</td><td class="s">    $c-&gt;engine-&gt;finalize_headers( $c, @_ );<div class="calls"><div class="calls_out">    # spent   170&micro;s making 1 call to <a href="Catalyst-Engine-pm-1927-sub.html#328">Catalyst::Engine::finalize_headers</a>
+    # spent    11&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="1902"></a>1902</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1903"></a>1903</td><td></td><td></td><td></td><td></td><td class="s">    # Done</td></tr>
+<tr><td class="h"><a name="1904"></a>1904</td><td></td><td></td><td class="c3">1</td><td class="c3">2&micro;s</td><td class="s">    $response-&gt;finalized_headers(1);<div class="calls"><div class="calls_out">    # spent     2&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Response::finalized_headers</a></div></div></td></tr>
+<tr><td class="h"><a name="1905"></a>1905</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1906"></a>1906</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1907"></a>1907</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;finalize_output</td></tr>
+<tr><td class="h"><a name="1908"></a>1908</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1909"></a>1909</td><td></td><td></td><td></td><td></td><td class="s">An alias for finalize_body.</td></tr>
+<tr><td class="h"><a name="1910"></a>1910</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1911"></a>1911</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;finalize_read</td></tr>
+<tr><td class="h"><a name="1912"></a>1912</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1913"></a>1913</td><td></td><td></td><td></td><td></td><td class="s">Finalizes the input after reading is complete.</td></tr>
+<tr><td class="h"><a name="1914"></a>1914</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1915"></a>1915</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1916"></a>1916</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1917"></a>1917</td><td></td><td></td><td></td><td></td><td class="s">sub finalize_read { my $c = shift; $c-&gt;engine-&gt;finalize_read( $c, @_ ) }</td></tr>
+<tr><td class="h"><a name="1918"></a>1918</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1919"></a>1919</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;finalize_uploads</td></tr>
+<tr><td class="h"><a name="1920"></a>1920</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1921"></a>1921</td><td></td><td></td><td></td><td></td><td class="s">Finalizes uploads. Cleans up any temporary files.</td></tr>
+<tr><td class="h"><a name="1922"></a>1922</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1923"></a>1923</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1924"></a>1924</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1925"></a>1925</td><td class="c3">2</td><td class="c3"><span title="Avg 3&micro;s">7&micro;s</span></td><td class="c3">2</td><td class="c3">26&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 35&micro;s (9+26) within Catalyst::finalize_uploads which was called:
+#    once (9&micro;s+26&micro;s) by Catalyst::finalize at <a href="Catalyst-pm-381-sub.html#1784">line 1784</a></div></div>sub finalize_uploads { my $c = shift; $c-&gt;engine-&gt;finalize_uploads( $c, @_ ) }<div class="calls"><div class="calls_out"># spent    16&micro;s making 1 call to <a href="Catalyst-Engine-pm-1927-sub.html#341">Catalyst::Engine::finalize_uploads</a>
+# spent    11&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="1926"></a>1926</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1927"></a>1927</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;get_action( $action, $namespace )</td></tr>
+<tr><td class="h"><a name="1928"></a>1928</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1929"></a>1929</td><td></td><td></td><td></td><td></td><td class="s">Gets an action in a given namespace.</td></tr>
+<tr><td class="h"><a name="1930"></a>1930</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1931"></a>1931</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1932"></a>1932</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1933"></a>1933</td><td class="c0">14</td><td class="c3"><span title="Avg 3&micro;s">38&micro;s</span></td><td class="c0">14</td><td class="c3">176&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 224&micro;s (48+176) within Catalyst::get_action which was called 7 times, avg 32&micro;s/call:
+# 5 times (32&micro;s+118&micro;s) by Catalyst::Dispatcher::_invoke_as_path at <a href="Catalyst-Dispatcher-pm-1877-sub.html#294">line 294 of Catalyst/Dispatcher.pm</a>, avg 30&micro;s/call
+# 2 times (16&micro;s+58&micro;s) by Catalyst::DispatchType::Index::match at <a href="Catalyst-DispatchType-Index-pm-1909-sub.html#47">line 47 of Catalyst/DispatchType/Index.pm</a>, avg 37&micro;s/call</div></div>sub get_action { my $c = shift; $c-&gt;dispatcher-&gt;get_action(@_) }<div class="calls"><div class="calls_out"># spent    91&micro;s making 7 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_dispatcher_accessor</a>, avg 13&micro;s/call
+# spent    85&micro;s making 7 calls to <a href="Catalyst-Dispatcher-pm-1877-sub.html#400">Catalyst::Dispatcher::get_action</a>, avg 12&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1934"></a>1934</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1935"></a>1935</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;get_actions( $action, $namespace )</td></tr>
+<tr><td class="h"><a name="1936"></a>1936</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1937"></a>1937</td><td></td><td></td><td></td><td></td><td class="s">Gets all actions of a given name in a namespace and all parent</td></tr>
+<tr><td class="h"><a name="1938"></a>1938</td><td></td><td></td><td></td><td></td><td class="s">namespaces.</td></tr>
+<tr><td class="h"><a name="1939"></a>1939</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1940"></a>1940</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1941"></a>1941</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1942"></a>1942</td><td class="c0">6</td><td class="c3"><span title="Avg 4&micro;s">23&micro;s</span></td><td class="c0">6</td><td class="c2">227&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 252&micro;s (25+227) within Catalyst::get_actions which was called 3 times, avg 84&micro;s/call:
+#    once (8&micro;s+85&micro;s) by Catalyst::Controller::_AUTO at <a href="Catalyst-Controller-pm-576-sub.html#115">line 115 of Catalyst/Controller.pm</a>
+#    once (8&micro;s+73&micro;s) by Catalyst::Controller::_END at <a href="Catalyst-Controller-pm-576-sub.html#136">line 136 of Catalyst/Controller.pm</a>
+#    once (9&micro;s+68&micro;s) by Catalyst::Controller::_BEGIN at <a href="Catalyst-Controller-pm-576-sub.html#107">line 107 of Catalyst/Controller.pm</a></div></div>sub get_actions { my $c = shift; $c-&gt;dispatcher-&gt;get_actions( $c, @_ ) }<div class="calls"><div class="calls_out"># spent   179&micro;s making 3 calls to <a href="Catalyst-Dispatcher-pm-1877-sub.html#426">Catalyst::Dispatcher::get_actions</a>, avg 60&micro;s/call
+# spent    48&micro;s making 3 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_dispatcher_accessor</a>, avg 16&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1943"></a>1943</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1944"></a>1944</td><td></td><td></td><td></td><td></td><td class="s">=head2 $app-&gt;handle_request( @arguments )</td></tr>
+<tr><td class="h"><a name="1945"></a>1945</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1946"></a>1946</td><td></td><td></td><td></td><td></td><td class="s">Called to handle each HTTP request.</td></tr>
+<tr><td class="h"><a name="1947"></a>1947</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1948"></a>1948</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1949"></a>1949</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1950"></a>1950</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 23.1ms (41&micro;s+23.1) within Catalyst::handle_request which was called:
+#    once (41&micro;s+23.1ms) by Catalyst::Engine::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst/Engine.pm:683] at <a href="Catalyst-Engine-pm-1927-sub.html#682">line 682 of Catalyst/Engine.pm</a></div></div>sub handle_request {</td></tr>
+<tr><td class="h"><a name="1951"></a>1951</td><td class="c0">6</td><td class="c3"><span title="Avg 6&micro;s">35&micro;s</span></td><td></td><td></td><td class="s">    my ( $class, @arguments ) = @_;</td></tr>
+<tr><td class="h"><a name="1952"></a>1952</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1953"></a>1953</td><td></td><td></td><td></td><td></td><td class="s">    # Always expect worst case!</td></tr>
+<tr><td class="h"><a name="1954"></a>1954</td><td></td><td></td><td></td><td></td><td class="s">    my $status = -1;</td></tr>
+<tr><td class="h"><a name="1955"></a>1955</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 22.6ms (89&micro;s+22.5) within Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:1966] which was called:
+#    once (89&micro;s+22.5ms) by Try::Tiny::try at <a href="Try-Tiny-pm-76-sub.html#76">line 76 of Try/Tiny.pm</a></div></div>    try {</td></tr>
+<tr><td class="h"><a name="1956"></a>1956</td><td class="c0">4</td><td class="c3"><span title="Avg 4&micro;s">16&micro;s</span></td><td class="c3">1</td><td class="c3">2&micro;s</td><td class="s">        if ($class-&gt;debug) {<div class="calls"><div class="calls_out">        # spent     2&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#989">Catalyst::debug</a></div></div></td></tr>
+<tr><td class="h"><a name="1957"></a>1957</td><td></td><td></td><td></td><td></td><td class="s">            my $secs = time - $START || 1;</td></tr>
+<tr><td class="h"><a name="1958"></a>1958</td><td></td><td></td><td></td><td></td><td class="s">            my $av = sprintf '%.3f', $COUNT / $secs;</td></tr>
+<tr><td class="h"><a name="1959"></a>1959</td><td></td><td></td><td></td><td></td><td class="s">            my $time = localtime time;</td></tr>
+<tr><td class="h"><a name="1960"></a>1960</td><td></td><td></td><td></td><td></td><td class="s">            $class-&gt;log-&gt;info(&quot;*** Request $COUNT ($av/s) [$$] [$time] ***&quot;);</td></tr>
+<tr><td class="h"><a name="1961"></a>1961</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="1962"></a>1962</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1963"></a>1963</td><td></td><td></td><td class="c3">1</td><td class="c0">4.16ms</td><td class="s">        my $c = $class-&gt;prepare(@arguments);<div class="calls"><div class="calls_out">        # spent  4.16ms making 1 call to <a href="Catalyst-pm-381-sub.html#1992">Catalyst::prepare</a></div></div></td></tr>
+<tr><td class="h"><a name="1964"></a>1964</td><td></td><td></td><td class="c3">1</td><td class="c0">17.2ms</td><td class="s">        $c-&gt;dispatch;<div class="calls"><div class="calls_out">        # spent  17.2ms making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">stemmaweb::dispatch</a></div></div></td></tr>
+<tr><td class="h"><a name="1965"></a>1965</td><td></td><td></td><td class="c3">1</td><td class="c0">978&micro;s</td><td class="s">        $status = $c-&gt;finalize;<div class="calls"><div class="calls_out">        # spent   978&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">stemmaweb::finalize</a></div></div></td></tr>
+<tr><td class="h"><a name="1966"></a>1966</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1967"></a>1967</td><td></td><td></td><td></td><td></td><td class="s">    catch {</td></tr>
+<tr><td class="h"><a name="1968"></a>1968</td><td></td><td></td><td></td><td></td><td class="s">        chomp(my $error = $_);</td></tr>
+<tr><td class="h"><a name="1969"></a>1969</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;error(qq/Caught exception in engine &quot;$error&quot;/);</td></tr>
+<tr><td class="h"><a name="1970"></a>1970</td><td></td><td></td><td class="c3">2</td><td class="c3">2&micro;s</td><td class="s">    };<div class="calls"><div class="calls_out">    # spent     2&micro;s making 1 call to <a href="Try-Tiny-pm-76-sub.html#114">Try::Tiny::catch</a>
+    # spent  23.0ms making 1 call to <a href="Try-Tiny-pm-76-sub.html#25">Try::Tiny::try</a>, recursion: max depth 1, sum of overlapping time 23.0ms</div></div></td></tr>
+<tr><td class="h"><a name="1971"></a>1971</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1972"></a>1972</td><td></td><td></td><td></td><td></td><td class="s">    $COUNT++;</td></tr>
+<tr><td class="h"><a name="1973"></a>1973</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1974"></a>1974</td><td></td><td></td><td class="c0">4</td><td class="c3">46&micro;s</td><td class="s">    if(my $coderef = $class-&gt;log-&gt;can('_flush')){<div class="calls"><div class="calls_out">    # spent    25&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_log_accessor</a>, avg 13&micro;s/call
+    # spent    20&micro;s making 1 call to <a href="Catalyst-Log-pm-469-sub.html#100">Catalyst::Log::_flush</a>
+    # spent     1&micro;s making 1 call to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__can">UNIVERSAL::can</a></div></div></td></tr>
+<tr><td class="h"><a name="1975"></a>1975</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;$coderef();</td></tr>
+<tr><td class="h"><a name="1976"></a>1976</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="1977"></a>1977</td><td></td><td></td><td></td><td></td><td class="s">    return $status;</td></tr>
+<tr><td class="h"><a name="1978"></a>1978</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="1979"></a>1979</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1980"></a>1980</td><td></td><td></td><td></td><td></td><td class="s">=head2 $class-&gt;prepare( @arguments )</td></tr>
+<tr><td class="h"><a name="1981"></a>1981</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1982"></a>1982</td><td></td><td></td><td></td><td></td><td class="s">Creates a Catalyst context from an engine-specific request (Apache, CGI,</td></tr>
+<tr><td class="h"><a name="1983"></a>1983</td><td></td><td></td><td></td><td></td><td class="s">etc.).</td></tr>
+<tr><td class="h"><a name="1984"></a>1984</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1985"></a>1985</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="1986"></a>1986</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1987"></a>1987</td><td class="c3">1</td><td class="c3"><span title="Avg 4&micro;s">4&micro;s</span></td><td class="c3">1</td><td class="c0">3.46ms</td><td class="s">has _uploadtmp =&gt; (<div class="calls"><div class="calls_out"># spent  3.46ms making 1 call to <a href="Moose-pm-62-sub.html#70">Moose::has</a></div></div></td></tr>
+<tr><td class="h"><a name="1988"></a>1988</td><td></td><td></td><td></td><td></td><td class="s">    is =&gt; 'ro',</td></tr>
+<tr><td class="h"><a name="1989"></a>1989</td><td></td><td></td><td></td><td></td><td class="s">    predicate =&gt; '_has_uploadtmp',</td></tr>
+<tr><td class="h"><a name="1990"></a>1990</td><td></td><td></td><td></td><td></td><td class="s">);</td></tr>
+<tr><td class="h"><a name="1991"></a>1991</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1992"></a>1992</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 9.38ms (174&micro;s+9.20) within Catalyst::prepare which was called 2 times, avg 4.69ms/call:
+#    once (117&micro;s+5.11ms) by CatalystX::Test::MockContext::__ANON__[/Users/edenc/perl5/lib/perl5/CatalystX/Test/MockContext.pm:26] at <a href="CatalystX-Test-MockContext-pm-1852-sub.html#24">line 24 of CatalystX/Test/MockContext.pm</a>
+#    once (57&micro;s+4.10ms) by Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:1966] at <a href="Catalyst-pm-381-sub.html#1963">line 1963</a></div></div>sub prepare {</td></tr>
+<tr><td class="h"><a name="1993"></a>1993</td><td class="c0">18</td><td class="c0"><span title="Avg 8&micro;s">136&micro;s</span></td><td></td><td></td><td class="s">    my ( $class, @arguments ) = @_;</td></tr>
+<tr><td class="h"><a name="1994"></a>1994</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="1995"></a>1995</td><td></td><td></td><td></td><td></td><td class="s">    # XXX</td></tr>
+<tr><td class="h"><a name="1996"></a>1996</td><td></td><td></td><td></td><td></td><td class="s">    # After the app/ctxt split, this should become an attribute based on something passed</td></tr>
+<tr><td class="h"><a name="1997"></a>1997</td><td></td><td></td><td></td><td></td><td class="s">    # into the application.</td></tr>
+<tr><td class="h"><a name="1998"></a>1998</td><td></td><td></td><td class="c1">3</td><td class="c3">136&micro;s</td><td class="s">    $class-&gt;context_class( ref $class || $class ) unless $class-&gt;context_class;<div class="calls"><div class="calls_out">    # spent   136&micro;s making 3 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_context_class_accessor</a>, avg 45&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="1999"></a>1999</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2000"></a>2000</td><td></td><td></td><td class="c3">2</td><td class="c2">184&micro;s</td><td class="s">    my $uploadtmp = $class-&gt;config-&gt;{uploadtmp};<div class="calls"><div class="calls_out">    # spent   184&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::config</a>, avg 92&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2001"></a>2001</td><td></td><td></td><td class="c0">4</td><td class="c0">3.44ms</td><td class="s">    my $c = $class-&gt;context_class-&gt;new({ $uploadtmp ? (_uploadtmp =&gt; $uploadtmp) : ()});<div class="calls"><div class="calls_out">    # spent  3.42ms making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::new</a>, avg 1.71ms/call
+    # spent    25&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_context_class_accessor</a>, avg 13&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2002"></a>2002</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2003"></a>2003</td><td></td><td></td><td></td><td></td><td class="s">    #surely this is not the most efficient way to do things...</td></tr>
+<tr><td class="h"><a name="2004"></a>2004</td><td></td><td></td><td class="c0">10</td><td class="c1">305&micro;s</td><td class="s">    $c-&gt;stats($class-&gt;stats_class-&gt;new)-&gt;enable($c-&gt;use_stats);<div class="calls"><div class="calls_out">    # spent   202&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Stats::new</a>, avg 101&micro;s/call
+    # spent    84&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_stats_class_accessor</a>, avg 42&micro;s/call
+    # spent     8&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::stats</a>, avg 4&micro;s/call
+    # spent     8&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Stats::enable</a>, avg 4&micro;s/call
+    # spent     3&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#3009">Catalyst::use_stats</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2005"></a>2005</td><td></td><td></td><td class="c0">4</td><td class="c3">130&micro;s</td><td class="s">    if ( $c-&gt;debug || $c-&gt;config-&gt;{enable_catalyst_header} ) {<div class="calls"><div class="calls_out">    # spent   127&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::config</a>, avg 64&micro;s/call
+    # spent     3&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#989">Catalyst::debug</a>, avg 1&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2006"></a>2006</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;res-&gt;headers-&gt;header( 'X-Catalyst' =&gt; $Catalyst::VERSION );</td></tr>
+<tr><td class="h"><a name="2007"></a>2007</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2008"></a>2008</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2009"></a>2009</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 4.95ms (129&micro;s+4.82) within Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:2032] which was called 2 times, avg 2.47ms/call:
+# 2 times (129&micro;s+4.82ms) by Try::Tiny::try at <a href="Try-Tiny-pm-76-sub.html#76">line 76 of Try/Tiny.pm</a>, avg 2.47ms/call</div></div>    try {</td></tr>
+<tr><td class="h"><a name="2010"></a>2010</td><td></td><td></td><td></td><td></td><td class="s">        # Allow engine to direct the prepare flow (for POE)</td></tr>
+<tr><td class="h"><a name="2011"></a>2011</td><td class="c0">20</td><td class="c0"><span title="Avg 5&micro;s">107&micro;s</span></td><td class="c0">4</td><td class="c3">35&micro;s</td><td class="s">        if ( my $prepare = $c-&gt;engine-&gt;can('prepare') ) {<div class="calls"><div class="calls_out">        # spent    29&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a>, avg 14&micro;s/call
+        # spent     6&micro;s making 2 calls to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__can">UNIVERSAL::can</a>, avg 3&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2012"></a>2012</td><td></td><td></td><td></td><td></td><td class="s">            $c-&gt;engine-&gt;$prepare( $c, @arguments );</td></tr>
+<tr><td class="h"><a name="2013"></a>2013</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="2014"></a>2014</td><td></td><td></td><td></td><td></td><td class="s">        else {</td></tr>
+<tr><td class="h"><a name="2015"></a>2015</td><td></td><td></td><td class="c3">2</td><td class="c0">807&micro;s</td><td class="s">            $c-&gt;prepare_request(@arguments);<div class="calls"><div class="calls_out">            # spent   807&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#2371">Catalyst::prepare_request</a>, avg 404&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2016"></a>2016</td><td></td><td></td><td class="c3">2</td><td class="c2">193&micro;s</td><td class="s">            $c-&gt;prepare_connection;<div class="calls"><div class="calls_out">            # spent   193&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#2110">Catalyst::prepare_connection</a>, avg 97&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2017"></a>2017</td><td></td><td></td><td class="c3">2</td><td class="c3">121&micro;s</td><td class="s">            $c-&gt;prepare_query_parameters;<div class="calls"><div class="calls_out">            # spent   121&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#2161">Catalyst::prepare_query_parameters</a>, avg 61&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2018"></a>2018</td><td></td><td></td><td class="c3">2</td><td class="c1">352&micro;s</td><td class="s">            $c-&gt;prepare_headers; # Just hooks, no longer needed - they just<div class="calls"><div class="calls_out">            # spent   352&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#2133">Catalyst::prepare_headers</a>, avg 176&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2019"></a>2019</td><td></td><td></td><td class="c3">2</td><td class="c3">170&micro;s</td><td class="s">            $c-&gt;prepare_cookies; # cause the lazy attribute on req to build<div class="calls"><div class="calls_out">            # spent   170&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#2124">Catalyst::prepare_cookies</a>, avg 85&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2020"></a>2020</td><td></td><td></td><td class="c3">2</td><td class="c0">633&micro;s</td><td class="s">            $c-&gt;prepare_path;<div class="calls"><div class="calls_out">            # spent   633&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#2153">Catalyst::prepare_path</a>, avg 317&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2021"></a>2021</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2022"></a>2022</td><td></td><td></td><td></td><td></td><td class="s">            # Prepare the body for reading, either by prepare_body</td></tr>
+<tr><td class="h"><a name="2023"></a>2023</td><td></td><td></td><td></td><td></td><td class="s">            # or the user, if they are using $c-&gt;read</td></tr>
+<tr><td class="h"><a name="2024"></a>2024</td><td></td><td></td><td class="c3">2</td><td class="c3">160&micro;s</td><td class="s">            $c-&gt;prepare_read;<div class="calls"><div class="calls_out">            # spent   160&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#2363">Catalyst::prepare_read</a>, avg 80&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2025"></a>2025</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2026"></a>2026</td><td></td><td></td><td></td><td></td><td class="s">            # Parse the body unless the user wants it on-demand</td></tr>
+<tr><td class="h"><a name="2027"></a>2027</td><td></td><td></td><td class="c0">4</td><td class="c0">778&micro;s</td><td class="s">            unless ( ref($c)-&gt;config-&gt;{parse_on_demand} ) {<div class="calls"><div class="calls_out">            # spent   629&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#2069">Catalyst::prepare_body</a>, avg 315&micro;s/call
+            # spent   149&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::config</a>, avg 74&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2028"></a>2028</td><td></td><td></td><td></td><td></td><td class="s">                $c-&gt;prepare_body;</td></tr>
+<tr><td class="h"><a name="2029"></a>2029</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="2030"></a>2030</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="2031"></a>2031</td><td></td><td></td><td class="c3">2</td><td class="c0">1.57ms</td><td class="s">        $c-&gt;prepare_action;<div class="calls"><div class="calls_out">        # spent  1.57ms making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">stemmaweb::prepare_action</a>, avg 785&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2032"></a>2032</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2033"></a>2033</td><td></td><td></td><td></td><td></td><td class="s">    # VERY ugly and probably shouldn't rely on -&gt;finalize actually working</td></tr>
+<tr><td class="h"><a name="2034"></a>2034</td><td></td><td></td><td></td><td></td><td class="s">    catch {</td></tr>
+<tr><td class="h"><a name="2035"></a>2035</td><td></td><td></td><td></td><td></td><td class="s">        # failed prepare is always due to an invalid request, right?</td></tr>
+<tr><td class="h"><a name="2036"></a>2036</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;response-&gt;status(400);</td></tr>
+<tr><td class="h"><a name="2037"></a>2037</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;response-&gt;content_type('text/plain');</td></tr>
+<tr><td class="h"><a name="2038"></a>2038</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;response-&gt;body('Bad Request');</td></tr>
+<tr><td class="h"><a name="2039"></a>2039</td><td></td><td></td><td></td><td></td><td class="s">        # Note we call finalize and then die here, which escapes</td></tr>
+<tr><td class="h"><a name="2040"></a>2040</td><td></td><td></td><td></td><td></td><td class="s">        # finalize being called in the enclosing block..</td></tr>
+<tr><td class="h"><a name="2041"></a>2041</td><td></td><td></td><td></td><td></td><td class="s">        # It in fact couldn't be called, as we don't return $c..</td></tr>
+<tr><td class="h"><a name="2042"></a>2042</td><td></td><td></td><td></td><td></td><td class="s">        # This is a mess - but I'm unsure you can fix this without</td></tr>
+<tr><td class="h"><a name="2043"></a>2043</td><td></td><td></td><td></td><td></td><td class="s">        # breaking compat for people doing crazy things (we should set</td></tr>
+<tr><td class="h"><a name="2044"></a>2044</td><td></td><td></td><td></td><td></td><td class="s">        # the 400 and just return the ctx here IMO, letting finalize get called</td></tr>
+<tr><td class="h"><a name="2045"></a>2045</td><td></td><td></td><td></td><td></td><td class="s">        # above...</td></tr>
+<tr><td class="h"><a name="2046"></a>2046</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;finalize;</td></tr>
+<tr><td class="h"><a name="2047"></a>2047</td><td></td><td></td><td></td><td></td><td class="s">        die $_;</td></tr>
+<tr><td class="h"><a name="2048"></a>2048</td><td></td><td></td><td class="c0">4</td><td class="c3">8&micro;s</td><td class="s">    };<div class="calls"><div class="calls_out">    # spent     8&micro;s making 2 calls to <a href="Try-Tiny-pm-76-sub.html#114">Try::Tiny::catch</a>, avg 4&micro;s/call
+    # spent  4.99ms making 2 calls to <a href="Try-Tiny-pm-76-sub.html#25">Try::Tiny::try</a>, avg 2.49ms/call, recursion: max depth 2, sum of overlapping time 4.99ms</div></div></td></tr>
+<tr><td class="h"><a name="2049"></a>2049</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2050"></a>2050</td><td></td><td></td><td class="c3">2</td><td class="c3">11&micro;s</td><td class="s">    $c-&gt;log_request;<div class="calls"><div class="calls_out">    # spent    11&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#2185">Catalyst::log_request</a>, avg 6&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2051"></a>2051</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2052"></a>2052</td><td></td><td></td><td></td><td></td><td class="s">    return $c;</td></tr>
+<tr><td class="h"><a name="2053"></a>2053</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2054"></a>2054</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2055"></a>2055</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_action</td></tr>
+<tr><td class="h"><a name="2056"></a>2056</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2057"></a>2057</td><td></td><td></td><td></td><td></td><td class="s">Prepares action. See L&lt;Catalyst::Dispatcher&gt;.</td></tr>
+<tr><td class="h"><a name="2058"></a>2058</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2059"></a>2059</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2060"></a>2060</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2061"></a>2061</td><td class="c0">4</td><td class="c3"><span title="Avg 4&micro;s">15&micro;s</span></td><td class="c0">4</td><td class="c0">1.01ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 1.03ms (18&micro;s+1.01) within Catalyst::prepare_action which was called 2 times, avg 515&micro;s/call:
+# 2 times (18&micro;s+1.01ms) by Catalyst::Plugin::Unicode::Encoding::prepare_action at <a href="mro-pm-85-sub.html#28">line 28 of mro.pm</a>, avg 515&micro;s/call</div></div>sub prepare_action { my $c = shift; $c-&gt;dispatcher-&gt;prepare_action( $c, @_ ) }<div class="calls"><div class="calls_out"># spent   986&micro;s making 2 calls to <a href="Catalyst-Dispatcher-pm-1877-sub.html#359">Catalyst::Dispatcher::prepare_action</a>, avg 493&micro;s/call
+# spent    26&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_dispatcher_accessor</a>, avg 13&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2062"></a>2062</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2063"></a>2063</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_body</td></tr>
+<tr><td class="h"><a name="2064"></a>2064</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2065"></a>2065</td><td></td><td></td><td></td><td></td><td class="s">Prepares message body.</td></tr>
+<tr><td class="h"><a name="2066"></a>2066</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2067"></a>2067</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2068"></a>2068</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2069"></a>2069</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 629&micro;s (47+583) within Catalyst::prepare_body which was called 2 times, avg 315&micro;s/call:
+# 2 times (47&micro;s+583&micro;s) by Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:2032] at <a href="Catalyst-pm-381-sub.html#2027">line 2027</a>, avg 315&micro;s/call</div></div>sub prepare_body {</td></tr>
+<tr><td class="h"><a name="2070"></a>2070</td><td class="c0">10</td><td class="c3"><span title="Avg 3&micro;s">34&micro;s</span></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="2071"></a>2071</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2072"></a>2072</td><td></td><td></td><td class="c0">4</td><td class="c3">8&micro;s</td><td class="s">    return if $c-&gt;request-&gt;_has_body;<div class="calls"><div class="calls_out">    # spent     5&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Request::_has_body</a>, avg 2&micro;s/call
+    # spent     4&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::request</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2073"></a>2073</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2074"></a>2074</td><td></td><td></td><td></td><td></td><td class="s">    # Initialize on-demand data</td></tr>
+<tr><td class="h"><a name="2075"></a>2075</td><td></td><td></td><td class="c0">4</td><td class="c3">80&micro;s</td><td class="s">    $c-&gt;engine-&gt;prepare_body( $c, @_ );<div class="calls"><div class="calls_out">    # spent    59&micro;s making 2 calls to <a href="Catalyst-Engine-pm-1927-sub.html#361">Catalyst::Engine::prepare_body</a>, avg 29&micro;s/call
+    # spent    22&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a>, avg 11&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2076"></a>2076</td><td></td><td></td><td class="c3">2</td><td class="c1">266&micro;s</td><td class="s">    $c-&gt;prepare_parameters;<div class="calls"><div class="calls_out">    # spent   266&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#2141">Catalyst::prepare_parameters</a>, avg 133&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2077"></a>2077</td><td></td><td></td><td class="c3">2</td><td class="c2">227&micro;s</td><td class="s">    $c-&gt;prepare_uploads;<div class="calls"><div class="calls_out">    # spent   227&micro;s making 2 calls to <a href="Catalyst-Plugin-Unicode-Encoding-pm-1853-sub.html#78">Catalyst::Plugin::Unicode::Encoding::prepare_uploads</a>, avg 114&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2078"></a>2078</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2079"></a>2079</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2080"></a>2080</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_body_chunk( $chunk )</td></tr>
+<tr><td class="h"><a name="2081"></a>2081</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2082"></a>2082</td><td></td><td></td><td></td><td></td><td class="s">Prepares a chunk of data before sending it to L&lt;HTTP::Body&gt;.</td></tr>
+<tr><td class="h"><a name="2083"></a>2083</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2084"></a>2084</td><td></td><td></td><td></td><td></td><td class="s">See L&lt;Catalyst::Engine&gt;.</td></tr>
+<tr><td class="h"><a name="2085"></a>2085</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2086"></a>2086</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2087"></a>2087</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2088"></a>2088</td><td></td><td></td><td></td><td></td><td class="s">sub prepare_body_chunk {</td></tr>
+<tr><td class="h"><a name="2089"></a>2089</td><td></td><td></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="2090"></a>2090</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;engine-&gt;prepare_body_chunk( $c, @_ );</td></tr>
+<tr><td class="h"><a name="2091"></a>2091</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2092"></a>2092</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2093"></a>2093</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_body_parameters</td></tr>
+<tr><td class="h"><a name="2094"></a>2094</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2095"></a>2095</td><td></td><td></td><td></td><td></td><td class="s">Prepares body parameters.</td></tr>
+<tr><td class="h"><a name="2096"></a>2096</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2097"></a>2097</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2098"></a>2098</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2099"></a>2099</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 72&micro;s (14+57) within Catalyst::prepare_body_parameters which was called 2 times, avg 36&micro;s/call:
+# 2 times (14&micro;s+57&micro;s) by Catalyst::prepare_parameters at <a href="Catalyst-pm-381-sub.html#2143">line 2143</a>, avg 36&micro;s/call</div></div>sub prepare_body_parameters {</td></tr>
+<tr><td class="h"><a name="2100"></a>2100</td><td class="c0">4</td><td class="c3"><span title="Avg 3&micro;s">10&micro;s</span></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="2101"></a>2101</td><td></td><td></td><td class="c0">4</td><td class="c3">58&micro;s</td><td class="s">    $c-&gt;engine-&gt;prepare_body_parameters( $c, @_ );<div class="calls"><div class="calls_out">    # spent    37&micro;s making 2 calls to <a href="Catalyst-Engine-pm-1927-sub.html#386">Catalyst::Engine::prepare_body_parameters</a>, avg 18&micro;s/call
+    # spent    21&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a>, avg 10&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2102"></a>2102</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2103"></a>2103</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2104"></a>2104</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_connection</td></tr>
+<tr><td class="h"><a name="2105"></a>2105</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2106"></a>2106</td><td></td><td></td><td></td><td></td><td class="s">Prepares connection.</td></tr>
+<tr><td class="h"><a name="2107"></a>2107</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2108"></a>2108</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2109"></a>2109</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2110"></a>2110</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 193&micro;s (17+176) within Catalyst::prepare_connection which was called 2 times, avg 97&micro;s/call:
+# 2 times (17&micro;s+176&micro;s) by Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:2032] at <a href="Catalyst-pm-381-sub.html#2016">line 2016</a>, avg 97&micro;s/call</div></div>sub prepare_connection {</td></tr>
+<tr><td class="h"><a name="2111"></a>2111</td><td class="c0">4</td><td class="c3"><span title="Avg 3&micro;s">13&micro;s</span></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="2112"></a>2112</td><td></td><td></td><td></td><td></td><td class="s">    # XXX - This is called on the engine (not the request) to maintain</td></tr>
+<tr><td class="h"><a name="2113"></a>2113</td><td></td><td></td><td></td><td></td><td class="s">    #       Engine::PSGI back compat.</td></tr>
+<tr><td class="h"><a name="2114"></a>2114</td><td></td><td></td><td class="c0">4</td><td class="c3">176&micro;s</td><td class="s">    $c-&gt;engine-&gt;prepare_connection($c);<div class="calls"><div class="calls_out">    # spent   149&micro;s making 2 calls to <a href="Catalyst-Engine-pm-1927-sub.html#37">Catalyst::Engine::prepare_connection</a>, avg 75&micro;s/call
+    # spent    26&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a>, avg 13&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2115"></a>2115</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2116"></a>2116</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2117"></a>2117</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_cookies</td></tr>
+<tr><td class="h"><a name="2118"></a>2118</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2119"></a>2119</td><td></td><td></td><td></td><td></td><td class="s">Prepares cookies by ensuring that the attribute on the request</td></tr>
+<tr><td class="h"><a name="2120"></a>2120</td><td></td><td></td><td></td><td></td><td class="s">object has been built.</td></tr>
+<tr><td class="h"><a name="2121"></a>2121</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2122"></a>2122</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2123"></a>2123</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2124"></a>2124</td><td class="c0">4</td><td class="c3"><span title="Avg 3&micro;s">13&micro;s</span></td><td class="c0">4</td><td class="c3">154&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 170&micro;s (16+154) within Catalyst::prepare_cookies which was called 2 times, avg 85&micro;s/call:
+# 2 times (16&micro;s+154&micro;s) by Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:2032] at <a href="Catalyst-pm-381-sub.html#2019">line 2019</a>, avg 85&micro;s/call</div></div>sub prepare_cookies { my $c = shift; $c-&gt;request-&gt;cookies }<div class="calls"><div class="calls_out"># spent   150&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Request::cookies</a>, avg 75&micro;s/call
+# spent     4&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::request</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2125"></a>2125</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2126"></a>2126</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_headers</td></tr>
+<tr><td class="h"><a name="2127"></a>2127</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2128"></a>2128</td><td></td><td></td><td></td><td></td><td class="s">Prepares request headers by ensuring that the attribute on the request</td></tr>
+<tr><td class="h"><a name="2129"></a>2129</td><td></td><td></td><td></td><td></td><td class="s">object has been built.</td></tr>
+<tr><td class="h"><a name="2130"></a>2130</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2131"></a>2131</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2132"></a>2132</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2133"></a>2133</td><td class="c0">4</td><td class="c3"><span title="Avg 3&micro;s">13&micro;s</span></td><td class="c0">4</td><td class="c1">331&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 352&micro;s (20+331) within Catalyst::prepare_headers which was called 2 times, avg 176&micro;s/call:
+# 2 times (20&micro;s+331&micro;s) by Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:2032] at <a href="Catalyst-pm-381-sub.html#2018">line 2018</a>, avg 176&micro;s/call</div></div>sub prepare_headers { my $c = shift; $c-&gt;request-&gt;headers }<div class="calls"><div class="calls_out"># spent   328&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Request::headers</a>, avg 164&micro;s/call
+# spent     3&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::request</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2134"></a>2134</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2135"></a>2135</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_parameters</td></tr>
+<tr><td class="h"><a name="2136"></a>2136</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2137"></a>2137</td><td></td><td></td><td></td><td></td><td class="s">Prepares parameters.</td></tr>
+<tr><td class="h"><a name="2138"></a>2138</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2139"></a>2139</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2140"></a>2140</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2141"></a>2141</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 266&micro;s (26+240) within Catalyst::prepare_parameters which was called 2 times, avg 133&micro;s/call:
+# 2 times (26&micro;s+240&micro;s) by Catalyst::prepare_body at <a href="Catalyst-pm-381-sub.html#2076">line 2076</a>, avg 133&micro;s/call</div></div>sub prepare_parameters {</td></tr>
+<tr><td class="h"><a name="2142"></a>2142</td><td class="c0">6</td><td class="c3"><span title="Avg 3&micro;s">18&micro;s</span></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="2143"></a>2143</td><td></td><td></td><td class="c3">2</td><td class="c3">72&micro;s</td><td class="s">    $c-&gt;prepare_body_parameters;<div class="calls"><div class="calls_out">    # spent    72&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#2099">Catalyst::prepare_body_parameters</a>, avg 36&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2144"></a>2144</td><td></td><td></td><td class="c0">4</td><td class="c3">168&micro;s</td><td class="s">    $c-&gt;engine-&gt;prepare_parameters( $c, @_ );<div class="calls"><div class="calls_out">    # spent   148&micro;s making 2 calls to <a href="Catalyst-Engine-pm-1927-sub.html#398">Catalyst::Engine::prepare_parameters</a>, avg 74&micro;s/call
+    # spent    20&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a>, avg 10&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2145"></a>2145</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2146"></a>2146</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2147"></a>2147</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_path</td></tr>
+<tr><td class="h"><a name="2148"></a>2148</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2149"></a>2149</td><td></td><td></td><td></td><td></td><td class="s">Prepares path and base.</td></tr>
+<tr><td class="h"><a name="2150"></a>2150</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2151"></a>2151</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2152"></a>2152</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2153"></a>2153</td><td class="c0">4</td><td class="c3"><span title="Avg 3&micro;s">13&micro;s</span></td><td class="c0">4</td><td class="c0">616&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 633&micro;s (17+616) within Catalyst::prepare_path which was called 2 times, avg 317&micro;s/call:
+# 2 times (17&micro;s+616&micro;s) by Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:2032] at <a href="Catalyst-pm-381-sub.html#2020">line 2020</a>, avg 317&micro;s/call</div></div>sub prepare_path { my $c = shift; $c-&gt;engine-&gt;prepare_path( $c, @_ ) }<div class="calls"><div class="calls_out"># spent   589&micro;s making 2 calls to <a href="Catalyst-Engine-pm-1927-sub.html#410">Catalyst::Engine::prepare_path</a>, avg 294&micro;s/call
+# spent    28&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a>, avg 14&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2154"></a>2154</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2155"></a>2155</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_query_parameters</td></tr>
+<tr><td class="h"><a name="2156"></a>2156</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2157"></a>2157</td><td></td><td></td><td></td><td></td><td class="s">Prepares query parameters.</td></tr>
+<tr><td class="h"><a name="2158"></a>2158</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2159"></a>2159</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2160"></a>2160</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2161"></a>2161</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 121&micro;s (17+104) within Catalyst::prepare_query_parameters which was called 2 times, avg 61&micro;s/call:
+# 2 times (17&micro;s+104&micro;s) by Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:2032] at <a href="Catalyst-pm-381-sub.html#2017">line 2017</a>, avg 61&micro;s/call</div></div>sub prepare_query_parameters {</td></tr>
+<tr><td class="h"><a name="2162"></a>2162</td><td class="c0">4</td><td class="c3"><span title="Avg 3&micro;s">14&micro;s</span></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="2163"></a>2163</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2164"></a>2164</td><td></td><td></td><td class="c0">4</td><td class="c3">104&micro;s</td><td class="s">    $c-&gt;engine-&gt;prepare_query_parameters( $c, @_ );<div class="calls"><div class="calls_out">    # spent    79&micro;s making 2 calls to <a href="Catalyst-Engine-pm-1927-sub.html#474">Catalyst::Engine::prepare_query_parameters</a>, avg 40&micro;s/call
+    # spent    25&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a>, avg 12&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2165"></a>2165</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2166"></a>2166</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2167"></a>2167</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;log_request</td></tr>
+<tr><td class="h"><a name="2168"></a>2168</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2169"></a>2169</td><td></td><td></td><td></td><td></td><td class="s">Writes information about the request to the debug logs.  This includes:</td></tr>
+<tr><td class="h"><a name="2170"></a>2170</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2171"></a>2171</td><td></td><td></td><td></td><td></td><td class="s">=over 4</td></tr>
+<tr><td class="h"><a name="2172"></a>2172</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2173"></a>2173</td><td></td><td></td><td></td><td></td><td class="s">=item * Request method, path, and remote IP address</td></tr>
+<tr><td class="h"><a name="2174"></a>2174</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2175"></a>2175</td><td></td><td></td><td></td><td></td><td class="s">=item * Query keywords (see L&lt;Catalyst::Request/query_keywords&gt;)</td></tr>
+<tr><td class="h"><a name="2176"></a>2176</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2177"></a>2177</td><td></td><td></td><td></td><td></td><td class="s">=item * Request parameters</td></tr>
+<tr><td class="h"><a name="2178"></a>2178</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2179"></a>2179</td><td></td><td></td><td></td><td></td><td class="s">=item * File uploads</td></tr>
+<tr><td class="h"><a name="2180"></a>2180</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2181"></a>2181</td><td></td><td></td><td></td><td></td><td class="s">=back</td></tr>
+<tr><td class="h"><a name="2182"></a>2182</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2183"></a>2183</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2184"></a>2184</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2185"></a>2185</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 11&micro;s (10+2) within Catalyst::log_request which was called 2 times, avg 6&micro;s/call:
+# 2 times (10&micro;s+2&micro;s) by Catalyst::prepare at <a href="Catalyst-pm-381-sub.html#2050">line 2050</a>, avg 6&micro;s/call</div></div>sub log_request {</td></tr>
+<tr><td class="h"><a name="2186"></a>2186</td><td class="c0">4</td><td class="c3"><span title="Avg 2&micro;s">8&micro;s</span></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="2187"></a>2187</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2188"></a>2188</td><td></td><td></td><td class="c3">2</td><td class="c3">2&micro;s</td><td class="s">    return unless $c-&gt;debug;<div class="calls"><div class="calls_out">    # spent     2&micro;s making 2 calls to <a href="Catalyst-pm-381-sub.html#989">Catalyst::debug</a>, avg 750ns/call</div></div></td></tr>
+<tr><td class="h"><a name="2189"></a>2189</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2190"></a>2190</td><td></td><td></td><td></td><td></td><td class="s">    my($dump) = grep {$_-&gt;[0] eq 'Request' } $c-&gt;dump_these;</td></tr>
+<tr><td class="h"><a name="2191"></a>2191</td><td></td><td></td><td></td><td></td><td class="s">    my $request = $dump-&gt;[1];</td></tr>
+<tr><td class="h"><a name="2192"></a>2192</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2193"></a>2193</td><td></td><td></td><td></td><td></td><td class="s">    my ( $method, $path, $address ) = ( $request-&gt;method, $request-&gt;path, $request-&gt;address );</td></tr>
+<tr><td class="h"><a name="2194"></a>2194</td><td></td><td></td><td></td><td></td><td class="s">    $method ||= '';</td></tr>
+<tr><td class="h"><a name="2195"></a>2195</td><td></td><td></td><td></td><td></td><td class="s">    $path = '/' unless length $path;</td></tr>
+<tr><td class="h"><a name="2196"></a>2196</td><td></td><td></td><td></td><td></td><td class="s">    $address ||= '';</td></tr>
+<tr><td class="h"><a name="2197"></a>2197</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;log-&gt;debug(qq/&quot;$method&quot; request for &quot;$path&quot; from &quot;$address&quot;/);</td></tr>
+<tr><td class="h"><a name="2198"></a>2198</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2199"></a>2199</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;log_request_headers($request-&gt;headers);</td></tr>
+<tr><td class="h"><a name="2200"></a>2200</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2201"></a>2201</td><td></td><td></td><td></td><td></td><td class="s">    if ( my $keywords = $request-&gt;query_keywords ) {</td></tr>
+<tr><td class="h"><a name="2202"></a>2202</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;debug(&quot;Query keywords are: $keywords&quot;);</td></tr>
+<tr><td class="h"><a name="2203"></a>2203</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2204"></a>2204</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2205"></a>2205</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;log_request_parameters( query =&gt; $request-&gt;query_parameters, $request-&gt;_has_body ? (body =&gt; $request-&gt;body_parameters) : () );</td></tr>
+<tr><td class="h"><a name="2206"></a>2206</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2207"></a>2207</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;log_request_uploads($request);</td></tr>
+<tr><td class="h"><a name="2208"></a>2208</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2209"></a>2209</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2210"></a>2210</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;log_response</td></tr>
+<tr><td class="h"><a name="2211"></a>2211</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2212"></a>2212</td><td></td><td></td><td></td><td></td><td class="s">Writes information about the response to the debug logs by calling</td></tr>
+<tr><td class="h"><a name="2213"></a>2213</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $c-&gt;log_response_status_line &gt;&gt; and C&lt;&lt; $c-&gt;log_response_headers &gt;&gt;.</td></tr>
+<tr><td class="h"><a name="2214"></a>2214</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2215"></a>2215</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2216"></a>2216</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2217"></a>2217</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 6&micro;s (5+900ns) within Catalyst::log_response which was called:
+#    once (5&micro;s+900ns) by Catalyst::finalize at <a href="Catalyst-pm-381-sub.html#1801">line 1801</a></div></div>sub log_response {</td></tr>
+<tr><td class="h"><a name="2218"></a>2218</td><td class="c3">2</td><td class="c3"><span title="Avg 2&micro;s">5&micro;s</span></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="2219"></a>2219</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2220"></a>2220</td><td></td><td></td><td class="c3">1</td><td class="c3">900ns</td><td class="s">    return unless $c-&gt;debug;<div class="calls"><div class="calls_out">    # spent   900ns making 1 call to <a href="Catalyst-pm-381-sub.html#989">Catalyst::debug</a></div></div></td></tr>
+<tr><td class="h"><a name="2221"></a>2221</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2222"></a>2222</td><td></td><td></td><td></td><td></td><td class="s">    my($dump) = grep {$_-&gt;[0] eq 'Response' } $c-&gt;dump_these;</td></tr>
+<tr><td class="h"><a name="2223"></a>2223</td><td></td><td></td><td></td><td></td><td class="s">    my $response = $dump-&gt;[1];</td></tr>
+<tr><td class="h"><a name="2224"></a>2224</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2225"></a>2225</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;log_response_status_line($response);</td></tr>
+<tr><td class="h"><a name="2226"></a>2226</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;log_response_headers($response-&gt;headers);</td></tr>
+<tr><td class="h"><a name="2227"></a>2227</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2228"></a>2228</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2229"></a>2229</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;log_response_status_line($response)</td></tr>
+<tr><td class="h"><a name="2230"></a>2230</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2231"></a>2231</td><td></td><td></td><td></td><td></td><td class="s">Writes one line of information about the response to the debug logs.  This includes:</td></tr>
+<tr><td class="h"><a name="2232"></a>2232</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2233"></a>2233</td><td></td><td></td><td></td><td></td><td class="s">=over 4</td></tr>
+<tr><td class="h"><a name="2234"></a>2234</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2235"></a>2235</td><td></td><td></td><td></td><td></td><td class="s">=item * Response status code</td></tr>
+<tr><td class="h"><a name="2236"></a>2236</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2237"></a>2237</td><td></td><td></td><td></td><td></td><td class="s">=item * Content-Type header (if present)</td></tr>
+<tr><td class="h"><a name="2238"></a>2238</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2239"></a>2239</td><td></td><td></td><td></td><td></td><td class="s">=item * Content-Length header (if present)</td></tr>
+<tr><td class="h"><a name="2240"></a>2240</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2241"></a>2241</td><td></td><td></td><td></td><td></td><td class="s">=back</td></tr>
+<tr><td class="h"><a name="2242"></a>2242</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2243"></a>2243</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2244"></a>2244</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2245"></a>2245</td><td></td><td></td><td></td><td></td><td class="s">sub log_response_status_line {</td></tr>
+<tr><td class="h"><a name="2246"></a>2246</td><td></td><td></td><td></td><td></td><td class="s">    my ($c, $response) = @_;</td></tr>
+<tr><td class="h"><a name="2247"></a>2247</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2248"></a>2248</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;log-&gt;debug(</td></tr>
+<tr><td class="h"><a name="2249"></a>2249</td><td></td><td></td><td></td><td></td><td class="s">        sprintf(</td></tr>
+<tr><td class="h"><a name="2250"></a>2250</td><td></td><td></td><td></td><td></td><td class="s">            'Response Code: %s; Content-Type: %s; Content-Length: %s',</td></tr>
+<tr><td class="h"><a name="2251"></a>2251</td><td></td><td></td><td></td><td></td><td class="s">            $response-&gt;status                            || 'unknown',</td></tr>
+<tr><td class="h"><a name="2252"></a>2252</td><td></td><td></td><td></td><td></td><td class="s">            $response-&gt;headers-&gt;header('Content-Type')   || 'unknown',</td></tr>
+<tr><td class="h"><a name="2253"></a>2253</td><td></td><td></td><td></td><td></td><td class="s">            $response-&gt;headers-&gt;header('Content-Length') || 'unknown'</td></tr>
+<tr><td class="h"><a name="2254"></a>2254</td><td></td><td></td><td></td><td></td><td class="s">        )</td></tr>
+<tr><td class="h"><a name="2255"></a>2255</td><td></td><td></td><td></td><td></td><td class="s">    );</td></tr>
+<tr><td class="h"><a name="2256"></a>2256</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2257"></a>2257</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2258"></a>2258</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;log_response_headers($headers);</td></tr>
+<tr><td class="h"><a name="2259"></a>2259</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2260"></a>2260</td><td></td><td></td><td></td><td></td><td class="s">Hook method which can be wrapped by plugins to log the response headers.</td></tr>
+<tr><td class="h"><a name="2261"></a>2261</td><td></td><td></td><td></td><td></td><td class="s">No-op in the default implementation.</td></tr>
+<tr><td class="h"><a name="2262"></a>2262</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2263"></a>2263</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2264"></a>2264</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2265"></a>2265</td><td></td><td></td><td></td><td></td><td class="s">sub log_response_headers {}</td></tr>
+<tr><td class="h"><a name="2266"></a>2266</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2267"></a>2267</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;log_request_parameters( query =&gt; {}, body =&gt; {} )</td></tr>
+<tr><td class="h"><a name="2268"></a>2268</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2269"></a>2269</td><td></td><td></td><td></td><td></td><td class="s">Logs request parameters to debug logs</td></tr>
+<tr><td class="h"><a name="2270"></a>2270</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2271"></a>2271</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2272"></a>2272</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2273"></a>2273</td><td></td><td></td><td></td><td></td><td class="s">sub log_request_parameters {</td></tr>
+<tr><td class="h"><a name="2274"></a>2274</td><td></td><td></td><td></td><td></td><td class="s">    my $c          = shift;</td></tr>
+<tr><td class="h"><a name="2275"></a>2275</td><td></td><td></td><td></td><td></td><td class="s">    my %all_params = @_;</td></tr>
+<tr><td class="h"><a name="2276"></a>2276</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2277"></a>2277</td><td></td><td></td><td></td><td></td><td class="s">    return unless $c-&gt;debug;</td></tr>
+<tr><td class="h"><a name="2278"></a>2278</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2279"></a>2279</td><td></td><td></td><td></td><td></td><td class="s">    my $column_width = Catalyst::Utils::term_width() - 44;</td></tr>
+<tr><td class="h"><a name="2280"></a>2280</td><td></td><td></td><td></td><td></td><td class="s">    foreach my $type (qw(query body)) {</td></tr>
+<tr><td class="h"><a name="2281"></a>2281</td><td></td><td></td><td></td><td></td><td class="s">        my $params = $all_params{$type};</td></tr>
+<tr><td class="h"><a name="2282"></a>2282</td><td></td><td></td><td></td><td></td><td class="s">        next if ! keys %$params;</td></tr>
+<tr><td class="h"><a name="2283"></a>2283</td><td></td><td></td><td></td><td></td><td class="s">        my $t = Text::SimpleTable-&gt;new( [ 35, 'Parameter' ], [ $column_width, 'Value' ] );</td></tr>
+<tr><td class="h"><a name="2284"></a>2284</td><td></td><td></td><td></td><td></td><td class="s">        for my $key ( sort keys %$params ) {</td></tr>
+<tr><td class="h"><a name="2285"></a>2285</td><td></td><td></td><td></td><td></td><td class="s">            my $param = $params-&gt;{$key};</td></tr>
+<tr><td class="h"><a name="2286"></a>2286</td><td></td><td></td><td></td><td></td><td class="s">            my $value = defined($param) ? $param : '';</td></tr>
+<tr><td class="h"><a name="2287"></a>2287</td><td></td><td></td><td></td><td></td><td class="s">            $t-&gt;row( $key, ref $value eq 'ARRAY' ? ( join ', ', @$value ) : $value );</td></tr>
+<tr><td class="h"><a name="2288"></a>2288</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="2289"></a>2289</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;debug( ucfirst($type) . &quot; Parameters are:\n&quot; . $t-&gt;draw );</td></tr>
+<tr><td class="h"><a name="2290"></a>2290</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2291"></a>2291</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2292"></a>2292</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2293"></a>2293</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;log_request_uploads</td></tr>
+<tr><td class="h"><a name="2294"></a>2294</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2295"></a>2295</td><td></td><td></td><td></td><td></td><td class="s">Logs file uploads included in the request to the debug logs.</td></tr>
+<tr><td class="h"><a name="2296"></a>2296</td><td></td><td></td><td></td><td></td><td class="s">The parameter name, filename, file type, and file size are all included in</td></tr>
+<tr><td class="h"><a name="2297"></a>2297</td><td></td><td></td><td></td><td></td><td class="s">the debug logs.</td></tr>
+<tr><td class="h"><a name="2298"></a>2298</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2299"></a>2299</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2300"></a>2300</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2301"></a>2301</td><td></td><td></td><td></td><td></td><td class="s">sub log_request_uploads {</td></tr>
+<tr><td class="h"><a name="2302"></a>2302</td><td></td><td></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="2303"></a>2303</td><td></td><td></td><td></td><td></td><td class="s">    my $request = shift;</td></tr>
+<tr><td class="h"><a name="2304"></a>2304</td><td></td><td></td><td></td><td></td><td class="s">    return unless $c-&gt;debug;</td></tr>
+<tr><td class="h"><a name="2305"></a>2305</td><td></td><td></td><td></td><td></td><td class="s">    my $uploads = $request-&gt;uploads;</td></tr>
+<tr><td class="h"><a name="2306"></a>2306</td><td></td><td></td><td></td><td></td><td class="s">    if ( keys %$uploads ) {</td></tr>
+<tr><td class="h"><a name="2307"></a>2307</td><td></td><td></td><td></td><td></td><td class="s">        my $t = Text::SimpleTable-&gt;new(</td></tr>
+<tr><td class="h"><a name="2308"></a>2308</td><td></td><td></td><td></td><td></td><td class="s">            [ 12, 'Parameter' ],</td></tr>
+<tr><td class="h"><a name="2309"></a>2309</td><td></td><td></td><td></td><td></td><td class="s">            [ 26, 'Filename' ],</td></tr>
+<tr><td class="h"><a name="2310"></a>2310</td><td></td><td></td><td></td><td></td><td class="s">            [ 18, 'Type' ],</td></tr>
+<tr><td class="h"><a name="2311"></a>2311</td><td></td><td></td><td></td><td></td><td class="s">            [ 9,  'Size' ]</td></tr>
+<tr><td class="h"><a name="2312"></a>2312</td><td></td><td></td><td></td><td></td><td class="s">        );</td></tr>
+<tr><td class="h"><a name="2313"></a>2313</td><td></td><td></td><td></td><td></td><td class="s">        for my $key ( sort keys %$uploads ) {</td></tr>
+<tr><td class="h"><a name="2314"></a>2314</td><td></td><td></td><td></td><td></td><td class="s">            my $upload = $uploads-&gt;{$key};</td></tr>
+<tr><td class="h"><a name="2315"></a>2315</td><td></td><td></td><td></td><td></td><td class="s">            for my $u ( ref $upload eq 'ARRAY' ? @{$upload} : ($upload) ) {</td></tr>
+<tr><td class="h"><a name="2316"></a>2316</td><td></td><td></td><td></td><td></td><td class="s">                $t-&gt;row( $key, $u-&gt;filename, $u-&gt;type, $u-&gt;size );</td></tr>
+<tr><td class="h"><a name="2317"></a>2317</td><td></td><td></td><td></td><td></td><td class="s">            }</td></tr>
+<tr><td class="h"><a name="2318"></a>2318</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="2319"></a>2319</td><td></td><td></td><td></td><td></td><td class="s">        $c-&gt;log-&gt;debug( &quot;File Uploads are:\n&quot; . $t-&gt;draw );</td></tr>
+<tr><td class="h"><a name="2320"></a>2320</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2321"></a>2321</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2322"></a>2322</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2323"></a>2323</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;log_request_headers($headers);</td></tr>
+<tr><td class="h"><a name="2324"></a>2324</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2325"></a>2325</td><td></td><td></td><td></td><td></td><td class="s">Hook method which can be wrapped by plugins to log the request headers.</td></tr>
+<tr><td class="h"><a name="2326"></a>2326</td><td></td><td></td><td></td><td></td><td class="s">No-op in the default implementation.</td></tr>
+<tr><td class="h"><a name="2327"></a>2327</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2328"></a>2328</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2329"></a>2329</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2330"></a>2330</td><td></td><td></td><td></td><td></td><td class="s">sub log_request_headers {}</td></tr>
+<tr><td class="h"><a name="2331"></a>2331</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2332"></a>2332</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;log_headers($type =&gt; $headers)</td></tr>
+<tr><td class="h"><a name="2333"></a>2333</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2334"></a>2334</td><td></td><td></td><td></td><td></td><td class="s">Logs L&lt;HTTP::Headers&gt; (either request or response) to the debug logs.</td></tr>
+<tr><td class="h"><a name="2335"></a>2335</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2336"></a>2336</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2337"></a>2337</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2338"></a>2338</td><td></td><td></td><td></td><td></td><td class="s">sub log_headers {</td></tr>
+<tr><td class="h"><a name="2339"></a>2339</td><td></td><td></td><td></td><td></td><td class="s">    my $c       = shift;</td></tr>
+<tr><td class="h"><a name="2340"></a>2340</td><td></td><td></td><td></td><td></td><td class="s">    my $type    = shift;</td></tr>
+<tr><td class="h"><a name="2341"></a>2341</td><td></td><td></td><td></td><td></td><td class="s">    my $headers = shift;    # an HTTP::Headers instance</td></tr>
+<tr><td class="h"><a name="2342"></a>2342</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2343"></a>2343</td><td></td><td></td><td></td><td></td><td class="s">    return unless $c-&gt;debug;</td></tr>
+<tr><td class="h"><a name="2344"></a>2344</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2345"></a>2345</td><td></td><td></td><td></td><td></td><td class="s">    my $column_width = Catalyst::Utils::term_width() - 28;</td></tr>
+<tr><td class="h"><a name="2346"></a>2346</td><td></td><td></td><td></td><td></td><td class="s">    my $t = Text::SimpleTable-&gt;new( [ 15, 'Header Name' ], [ $column_width, 'Value' ] );</td></tr>
+<tr><td class="h"><a name="2347"></a>2347</td><td></td><td></td><td></td><td></td><td class="s">    $headers-&gt;scan(</td></tr>
+<tr><td class="h"><a name="2348"></a>2348</td><td></td><td></td><td></td><td></td><td class="s">        sub {</td></tr>
+<tr><td class="h"><a name="2349"></a>2349</td><td></td><td></td><td></td><td></td><td class="s">            my ( $name, $value ) = @_;</td></tr>
+<tr><td class="h"><a name="2350"></a>2350</td><td></td><td></td><td></td><td></td><td class="s">            $t-&gt;row( $name, $value );</td></tr>
+<tr><td class="h"><a name="2351"></a>2351</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="2352"></a>2352</td><td></td><td></td><td></td><td></td><td class="s">    );</td></tr>
+<tr><td class="h"><a name="2353"></a>2353</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;log-&gt;debug( ucfirst($type) . &quot; Headers:\n&quot; . $t-&gt;draw );</td></tr>
+<tr><td class="h"><a name="2354"></a>2354</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2355"></a>2355</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2356"></a>2356</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2357"></a>2357</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_read</td></tr>
+<tr><td class="h"><a name="2358"></a>2358</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2359"></a>2359</td><td></td><td></td><td></td><td></td><td class="s">Prepares the input for reading.</td></tr>
+<tr><td class="h"><a name="2360"></a>2360</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2361"></a>2361</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2362"></a>2362</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2363"></a>2363</td><td class="c0">4</td><td class="c3"><span title="Avg 3&micro;s">13&micro;s</span></td><td class="c0">4</td><td class="c3">143&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 160&micro;s (17+143) within Catalyst::prepare_read which was called 2 times, avg 80&micro;s/call:
+# 2 times (17&micro;s+143&micro;s) by Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:2032] at <a href="Catalyst-pm-381-sub.html#2024">line 2024</a>, avg 80&micro;s/call</div></div>sub prepare_read { my $c = shift; $c-&gt;engine-&gt;prepare_read( $c, @_ ) }<div class="calls"><div class="calls_out"># spent   116&micro;s making 2 calls to <a href="Catalyst-Engine-pm-1927-sub.html#525">Catalyst::Engine::prepare_read</a>, avg 58&micro;s/call
+# spent    27&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a>, avg 14&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2364"></a>2364</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2365"></a>2365</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_request</td></tr>
+<tr><td class="h"><a name="2366"></a>2366</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2367"></a>2367</td><td></td><td></td><td></td><td></td><td class="s">Prepares the engine request.</td></tr>
+<tr><td class="h"><a name="2368"></a>2368</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2369"></a>2369</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2370"></a>2370</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2371"></a>2371</td><td class="c0">4</td><td class="c3"><span title="Avg 4&micro;s">14&micro;s</span></td><td class="c0">4</td><td class="c0">790&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 807&micro;s (17+790) within Catalyst::prepare_request which was called 2 times, avg 404&micro;s/call:
+# 2 times (17&micro;s+790&micro;s) by Catalyst::__ANON__[/Users/edenc/perl5/lib/perl5/Catalyst.pm:2032] at <a href="Catalyst-pm-381-sub.html#2015">line 2015</a>, avg 404&micro;s/call</div></div>sub prepare_request { my $c = shift; $c-&gt;engine-&gt;prepare_request( $c, @_ ) }<div class="calls"><div class="calls_out"># spent   768&micro;s making 2 calls to <a href="Catalyst-Engine-pm-1927-sub.html#538">Catalyst::Engine::prepare_request</a>, avg 384&micro;s/call
+# spent    22&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a>, avg 11&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2372"></a>2372</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2373"></a>2373</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_uploads</td></tr>
+<tr><td class="h"><a name="2374"></a>2374</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2375"></a>2375</td><td></td><td></td><td></td><td></td><td class="s">Prepares uploads.</td></tr>
+<tr><td class="h"><a name="2376"></a>2376</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2377"></a>2377</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2378"></a>2378</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2379"></a>2379</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 68&micro;s (18+50) within Catalyst::prepare_uploads which was called 2 times, avg 34&micro;s/call:
+# 2 times (18&micro;s+50&micro;s) by Catalyst::Plugin::Unicode::Encoding::prepare_uploads at <a href="mro-pm-85-sub.html#28">line 28 of mro.pm</a>, avg 34&micro;s/call</div></div>sub prepare_uploads {</td></tr>
+<tr><td class="h"><a name="2380"></a>2380</td><td class="c0">4</td><td class="c3"><span title="Avg 3&micro;s">12&micro;s</span></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="2381"></a>2381</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2382"></a>2382</td><td></td><td></td><td class="c0">4</td><td class="c3">50&micro;s</td><td class="s">    $c-&gt;engine-&gt;prepare_uploads( $c, @_ );<div class="calls"><div class="calls_out">    # spent    26&micro;s making 2 calls to <a href="Catalyst-Engine-pm-1927-sub.html#549">Catalyst::Engine::prepare_uploads</a>, avg 13&micro;s/call
+    # spent    24&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a>, avg 12&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2383"></a>2383</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2384"></a>2384</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2385"></a>2385</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;prepare_write</td></tr>
+<tr><td class="h"><a name="2386"></a>2386</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2387"></a>2387</td><td></td><td></td><td></td><td></td><td class="s">Prepares the output for writing.</td></tr>
+<tr><td class="h"><a name="2388"></a>2388</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2389"></a>2389</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2390"></a>2390</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2391"></a>2391</td><td></td><td></td><td></td><td></td><td class="s">sub prepare_write { my $c = shift; $c-&gt;engine-&gt;prepare_write( $c, @_ ) }</td></tr>
+<tr><td class="h"><a name="2392"></a>2392</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2393"></a>2393</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;request_class</td></tr>
+<tr><td class="h"><a name="2394"></a>2394</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2395"></a>2395</td><td></td><td></td><td></td><td></td><td class="s">Returns or sets the request class. Defaults to L&lt;Catalyst::Request&gt;.</td></tr>
+<tr><td class="h"><a name="2396"></a>2396</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2397"></a>2397</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;response_class</td></tr>
+<tr><td class="h"><a name="2398"></a>2398</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2399"></a>2399</td><td></td><td></td><td></td><td></td><td class="s">Returns or sets the response class. Defaults to L&lt;Catalyst::Response&gt;.</td></tr>
+<tr><td class="h"><a name="2400"></a>2400</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2401"></a>2401</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;read( [$maxlength] )</td></tr>
+<tr><td class="h"><a name="2402"></a>2402</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2403"></a>2403</td><td></td><td></td><td></td><td></td><td class="s">Reads a chunk of data from the request body. This method is designed to</td></tr>
+<tr><td class="h"><a name="2404"></a>2404</td><td></td><td></td><td></td><td></td><td class="s">be used in a while loop, reading C&lt;$maxlength&gt; bytes on every call.</td></tr>
+<tr><td class="h"><a name="2405"></a>2405</td><td></td><td></td><td></td><td></td><td class="s">C&lt;$maxlength&gt; defaults to the size of the request if not specified.</td></tr>
+<tr><td class="h"><a name="2406"></a>2406</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2407"></a>2407</td><td></td><td></td><td></td><td></td><td class="s">You have to set C&lt;&lt; MyApp-&gt;config(parse_on_demand =&gt; 1) &gt;&gt; to use this</td></tr>
+<tr><td class="h"><a name="2408"></a>2408</td><td></td><td></td><td></td><td></td><td class="s">directly.</td></tr>
+<tr><td class="h"><a name="2409"></a>2409</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2410"></a>2410</td><td></td><td></td><td></td><td></td><td class="s">Warning: If you use read(), Catalyst will not process the body,</td></tr>
+<tr><td class="h"><a name="2411"></a>2411</td><td></td><td></td><td></td><td></td><td class="s">so you will not be able to access POST parameters or file uploads via</td></tr>
+<tr><td class="h"><a name="2412"></a>2412</td><td></td><td></td><td></td><td></td><td class="s">$c-&gt;request.  You must handle all body parsing yourself.</td></tr>
+<tr><td class="h"><a name="2413"></a>2413</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2414"></a>2414</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2415"></a>2415</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2416"></a>2416</td><td></td><td></td><td></td><td></td><td class="s">sub read { my $c = shift; return $c-&gt;request-&gt;read( @_ ) }</td></tr>
+<tr><td class="h"><a name="2417"></a>2417</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2418"></a>2418</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;run</td></tr>
+<tr><td class="h"><a name="2419"></a>2419</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2420"></a>2420</td><td></td><td></td><td></td><td></td><td class="s">Starts the engine.</td></tr>
+<tr><td class="h"><a name="2421"></a>2421</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2422"></a>2422</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2423"></a>2423</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2424"></a>2424</td><td></td><td></td><td></td><td></td><td class="s">sub run {</td></tr>
+<tr><td class="h"><a name="2425"></a>2425</td><td></td><td></td><td></td><td></td><td class="s">  my $app = shift;</td></tr>
+<tr><td class="h"><a name="2426"></a>2426</td><td></td><td></td><td></td><td></td><td class="s">  $app-&gt;_make_immutable_if_needed;</td></tr>
+<tr><td class="h"><a name="2427"></a>2427</td><td></td><td></td><td></td><td></td><td class="s">  $app-&gt;engine_loader-&gt;needs_psgi_engine_compat_hack ?</td></tr>
+<tr><td class="h"><a name="2428"></a>2428</td><td></td><td></td><td></td><td></td><td class="s">    $app-&gt;engine-&gt;run($app, @_) :</td></tr>
+<tr><td class="h"><a name="2429"></a>2429</td><td></td><td></td><td></td><td></td><td class="s">      $app-&gt;engine-&gt;run( $app, $app-&gt;_finalized_psgi_app, @_ );</td></tr>
+<tr><td class="h"><a name="2430"></a>2430</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2431"></a>2431</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2432"></a>2432</td><td></td><td></td><td></td><td></td><td class="s">sub _make_immutable_if_needed {</td></tr>
+<tr><td class="h"><a name="2433"></a>2433</td><td></td><td></td><td></td><td></td><td class="s">    my $class = shift;</td></tr>
+<tr><td class="h"><a name="2434"></a>2434</td><td></td><td></td><td></td><td></td><td class="s">    my $meta = Class::MOP::get_metaclass_by_name($class);</td></tr>
+<tr><td class="h"><a name="2435"></a>2435</td><td></td><td></td><td></td><td></td><td class="s">    my $isa_ca = $class-&gt;isa('Class::Accessor::Fast') || $class-&gt;isa('Class::Accessor');</td></tr>
+<tr><td class="h"><a name="2436"></a>2436</td><td></td><td></td><td></td><td></td><td class="s">    if (</td></tr>
+<tr><td class="h"><a name="2437"></a>2437</td><td></td><td></td><td></td><td></td><td class="s">        $meta-&gt;is_immutable</td></tr>
+<tr><td class="h"><a name="2438"></a>2438</td><td></td><td></td><td></td><td></td><td class="s">        &amp;&amp; ! { $meta-&gt;immutable_options }-&gt;{replace_constructor}</td></tr>
+<tr><td class="h"><a name="2439"></a>2439</td><td></td><td></td><td></td><td></td><td class="s">        &amp;&amp; $isa_ca</td></tr>
+<tr><td class="h"><a name="2440"></a>2440</td><td></td><td></td><td></td><td></td><td class="s">    ) {</td></tr>
+<tr><td class="h"><a name="2441"></a>2441</td><td></td><td></td><td></td><td></td><td class="s">        warn(&quot;You made your application class ($class) immutable, &quot;</td></tr>
+<tr><td class="h"><a name="2442"></a>2442</td><td></td><td></td><td></td><td></td><td class="s">            . &quot;but did not inline the\nconstructor. &quot;</td></tr>
+<tr><td class="h"><a name="2443"></a>2443</td><td></td><td></td><td></td><td></td><td class="s">            . &quot;This will break catalyst, as your app \@ISA &quot;</td></tr>
+<tr><td class="h"><a name="2444"></a>2444</td><td></td><td></td><td></td><td></td><td class="s">            . &quot;Class::Accessor(::Fast)?\nPlease pass &quot;</td></tr>
+<tr><td class="h"><a name="2445"></a>2445</td><td></td><td></td><td></td><td></td><td class="s">            . &quot;(replace_constructor =&gt; 1)\nwhen making your class immutable.\n&quot;);</td></tr>
+<tr><td class="h"><a name="2446"></a>2446</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2447"></a>2447</td><td></td><td></td><td></td><td></td><td class="s">    unless ($meta-&gt;is_immutable) {</td></tr>
+<tr><td class="h"><a name="2448"></a>2448</td><td></td><td></td><td></td><td></td><td class="s">        # XXX - FIXME warning here as you should make your app immutable yourself.</td></tr>
+<tr><td class="h"><a name="2449"></a>2449</td><td></td><td></td><td></td><td></td><td class="s">        $meta-&gt;make_immutable(</td></tr>
+<tr><td class="h"><a name="2450"></a>2450</td><td></td><td></td><td></td><td></td><td class="s">            replace_constructor =&gt; 1,</td></tr>
+<tr><td class="h"><a name="2451"></a>2451</td><td></td><td></td><td></td><td></td><td class="s">        );</td></tr>
+<tr><td class="h"><a name="2452"></a>2452</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2453"></a>2453</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2454"></a>2454</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2455"></a>2455</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;set_action( $action, $code, $namespace, $attrs )</td></tr>
+<tr><td class="h"><a name="2456"></a>2456</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2457"></a>2457</td><td></td><td></td><td></td><td></td><td class="s">Sets an action in a given namespace.</td></tr>
+<tr><td class="h"><a name="2458"></a>2458</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2459"></a>2459</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2460"></a>2460</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2461"></a>2461</td><td></td><td></td><td></td><td></td><td class="s">sub set_action { my $c = shift; $c-&gt;dispatcher-&gt;set_action( $c, @_ ) }</td></tr>
+<tr><td class="h"><a name="2462"></a>2462</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2463"></a>2463</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;setup_actions($component)</td></tr>
+<tr><td class="h"><a name="2464"></a>2464</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2465"></a>2465</td><td></td><td></td><td></td><td></td><td class="s">Sets up actions for a component.</td></tr>
+<tr><td class="h"><a name="2466"></a>2466</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2467"></a>2467</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2468"></a>2468</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2469"></a>2469</td><td class="c3">2</td><td class="c3"><span title="Avg 8&micro;s">16&micro;s</span></td><td class="c3">2</td><td class="c0">131ms</td><td class="s"><div class="calls"><div class="calls_in"># spent 131ms (16&micro;s+131) within Catalyst::setup_actions which was called:
+#    once (16&micro;s+131ms) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1180">line 1180</a></div></div>sub setup_actions { my $c = shift; $c-&gt;dispatcher-&gt;setup_actions( $c, @_ ) }<div class="calls"><div class="calls_out"># spent   131ms making 1 call to <a href="Catalyst-Dispatcher-pm-1877-sub.html#597">Catalyst::Dispatcher::setup_actions</a>
+# spent    13&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_dispatcher_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="2470"></a>2470</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2471"></a>2471</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;setup_components</td></tr>
+<tr><td class="h"><a name="2472"></a>2472</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2473"></a>2473</td><td></td><td></td><td></td><td></td><td class="s">This method is called internally to set up the application's components.</td></tr>
+<tr><td class="h"><a name="2474"></a>2474</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2475"></a>2475</td><td></td><td></td><td></td><td></td><td class="s">It finds modules by calling the L&lt;locate_components&gt; method, expands them to</td></tr>
+<tr><td class="h"><a name="2476"></a>2476</td><td></td><td></td><td></td><td></td><td class="s">package names with the L&lt;expand_component_module&gt; method, and then installs</td></tr>
+<tr><td class="h"><a name="2477"></a>2477</td><td></td><td></td><td></td><td></td><td class="s">each component into the application.</td></tr>
+<tr><td class="h"><a name="2478"></a>2478</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2479"></a>2479</td><td></td><td></td><td></td><td></td><td class="s">The C&lt;setup_components&gt; config option is passed to both of the above methods.</td></tr>
+<tr><td class="h"><a name="2480"></a>2480</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2481"></a>2481</td><td></td><td></td><td></td><td></td><td class="s">Installation of each component is performed by the L&lt;setup_component&gt; method,</td></tr>
+<tr><td class="h"><a name="2482"></a>2482</td><td></td><td></td><td></td><td></td><td class="s">below.</td></tr>
+<tr><td class="h"><a name="2483"></a>2483</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2484"></a>2484</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2485"></a>2485</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2486"></a>2486</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 1.13s (239&micro;s+1.13) within Catalyst::setup_components which was called:
+#    once (239&micro;s+1.13s) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1162">line 1162</a></div></div>sub setup_components {</td></tr>
+<tr><td class="h"><a name="2487"></a>2487</td><td class="c0">53</td><td class="c0"><span title="Avg 5&micro;s">239&micro;s</span></td><td></td><td></td><td class="s">    my $class = shift;</td></tr>
+<tr><td class="h"><a name="2488"></a>2488</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2489"></a>2489</td><td></td><td></td><td class="c3">1</td><td class="c3">61&micro;s</td><td class="s">    my $config  = $class-&gt;config-&gt;{ setup_components };<div class="calls"><div class="calls_out">    # spent    61&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::config</a></div></div></td></tr>
+<tr><td class="h"><a name="2490"></a>2490</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2491"></a>2491</td><td></td><td></td><td class="c3">1</td><td class="c0">6.19ms</td><td class="s">    my @comps = $class-&gt;locate_components($config);<div class="calls"><div class="calls_out">    # spent  6.19ms making 1 call to <a href="Catalyst-pm-381-sub.html#2532">Catalyst::locate_components</a></div></div></td></tr>
+<tr><td class="h"><a name="2492"></a>2492</td><td></td><td></td><td></td><td></td><td class="s">    my %comps = map { $_ =&gt; 1 } @comps;</td></tr>
+<tr><td class="h"><a name="2493"></a>2493</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2494"></a>2494</td><td></td><td></td><td class="c0">9</td><td class="c3">8&micro;s</td><td class="s">    my $deprecatedcatalyst_component_names = grep { /::[CMV]::/ } @comps;<div class="calls"><div class="calls_out">    # spent     8&micro;s making 9 calls to <a href="Catalyst-pm-381-sub.html#Catalyst__CORE_match">Catalyst::CORE:match</a>, avg 922ns/call</div></div></td></tr>
+<tr><td class="h"><a name="2495"></a>2495</td><td></td><td></td><td></td><td></td><td class="s">    $class-&gt;log-&gt;warn(qq{Your application is using the deprecated ::[MVC]:: type naming scheme.\n}.</td></tr>
+<tr><td class="h"><a name="2496"></a>2496</td><td></td><td></td><td></td><td></td><td class="s">        qq{Please switch your class names to ::Model::, ::View:: and ::Controller: as appropriate.\n}</td></tr>
+<tr><td class="h"><a name="2497"></a>2497</td><td></td><td></td><td></td><td></td><td class="s">    ) if $deprecatedcatalyst_component_names;</td></tr>
+<tr><td class="h"><a name="2498"></a>2498</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2499"></a>2499</td><td></td><td></td><td></td><td></td><td class="s">    for my $component ( @comps ) {</td></tr>
+<tr><td class="h"><a name="2500"></a>2500</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2501"></a>2501</td><td></td><td></td><td></td><td></td><td class="s">        # We pass ignore_loaded here so that overlay files for (e.g.)</td></tr>
+<tr><td class="h"><a name="2502"></a>2502</td><td></td><td></td><td></td><td></td><td class="s">        # Model::DBI::Schema sub-classes are loaded - if it's in @comps</td></tr>
+<tr><td class="h"><a name="2503"></a>2503</td><td></td><td></td><td></td><td></td><td class="s">        # we know M::P::O found a file on disk so this is safe</td></tr>
+<tr><td class="h"><a name="2504"></a>2504</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2505"></a>2505</td><td></td><td></td><td class="c0">9</td><td class="c0">350ms</td><td class="s">        Catalyst::Utils::ensure_class_loaded( $component, { ignore_loaded =&gt; 1 } );<div class="calls"><div class="calls_out">        # spent   350ms making 9 calls to <a href="Catalyst-Utils-pm-574-sub.html#281">Catalyst::Utils::ensure_class_loaded</a>, avg 38.9ms/call</div></div></td></tr>
+<tr><td class="h"><a name="2506"></a>2506</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2507"></a>2507</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2508"></a>2508</td><td></td><td></td><td></td><td></td><td class="s">    for my $component (@comps) {</td></tr>
+<tr><td class="h"><a name="2509"></a>2509</td><td></td><td></td><td class="c0">18</td><td class="c0">772ms</td><td class="s">        my $instance = $class-&gt;components-&gt;{ $component } = $class-&gt;setup_component($component);<div class="calls"><div class="calls_out">        # spent   772ms making 9 calls to <a href="Catalyst-pm-381-sub.html#2568">Catalyst::setup_component</a>, avg 85.8ms/call
+        # spent   137&micro;s making 9 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_components_accessor</a>, avg 15&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2510"></a>2510</td><td></td><td></td><td class="c0">18</td><td class="c0">693&micro;s</td><td class="s">        my @expanded_components = $instance-&gt;can('expand_modules')<div class="calls"><div class="calls_out">        # spent   653&micro;s making 9 calls to <a href="Catalyst-Component-pm-579-sub.html#162">Catalyst::Component::expand_modules</a>, avg 73&micro;s/call
+        # spent    40&micro;s making 9 calls to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__can">UNIVERSAL::can</a>, avg 4&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2511"></a>2511</td><td></td><td></td><td></td><td></td><td class="s">            ? $instance-&gt;expand_modules( $component, $config )</td></tr>
+<tr><td class="h"><a name="2512"></a>2512</td><td></td><td></td><td></td><td></td><td class="s">            : $class-&gt;expand_component_module( $component, $config );</td></tr>
+<tr><td class="h"><a name="2513"></a>2513</td><td></td><td></td><td></td><td></td><td class="s">        for my $component (@expanded_components) {</td></tr>
+<tr><td class="h"><a name="2514"></a>2514</td><td></td><td></td><td></td><td></td><td class="s">            next if $comps{$component};</td></tr>
+<tr><td class="h"><a name="2515"></a>2515</td><td></td><td></td><td></td><td></td><td class="s">            $class-&gt;components-&gt;{ $component } = $class-&gt;setup_component($component);</td></tr>
+<tr><td class="h"><a name="2516"></a>2516</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="2517"></a>2517</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2518"></a>2518</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2519"></a>2519</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2520"></a>2520</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;locate_components( $setup_component_config )</td></tr>
+<tr><td class="h"><a name="2521"></a>2521</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2522"></a>2522</td><td></td><td></td><td></td><td></td><td class="s">This method is meant to provide a list of component modules that should be</td></tr>
+<tr><td class="h"><a name="2523"></a>2523</td><td></td><td></td><td></td><td></td><td class="s">setup for the application.  By default, it will use L&lt;Module::Pluggable&gt;.</td></tr>
+<tr><td class="h"><a name="2524"></a>2524</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2525"></a>2525</td><td></td><td></td><td></td><td></td><td class="s">Specify a C&lt;setup_components&gt; config option to pass additional options directly</td></tr>
+<tr><td class="h"><a name="2526"></a>2526</td><td></td><td></td><td></td><td></td><td class="s">to L&lt;Module::Pluggable&gt;. To add additional search paths, specify a key named</td></tr>
+<tr><td class="h"><a name="2527"></a>2527</td><td></td><td></td><td></td><td></td><td class="s">C&lt;search_extra&gt; as an array reference. Items in the array beginning with C&lt;::&gt;</td></tr>
+<tr><td class="h"><a name="2528"></a>2528</td><td></td><td></td><td></td><td></td><td class="s">will have the application class name prepended to them.</td></tr>
+<tr><td class="h"><a name="2529"></a>2529</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2530"></a>2530</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2531"></a>2531</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2532"></a>2532</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 6.19ms (53&micro;s+6.14) within Catalyst::locate_components which was called:
+#    once (53&micro;s+6.14ms) by Catalyst::setup_components at <a href="Catalyst-pm-381-sub.html#2491">line 2491</a></div></div>sub locate_components {</td></tr>
+<tr><td class="h"><a name="2533"></a>2533</td><td class="c0">20</td><td class="c2"><span title="Avg 3&micro;s">66&micro;s</span></td><td></td><td></td><td class="s">    my $class  = shift;</td></tr>
+<tr><td class="h"><a name="2534"></a>2534</td><td></td><td></td><td></td><td></td><td class="s">    my $config = shift;</td></tr>
+<tr><td class="h"><a name="2535"></a>2535</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2536"></a>2536</td><td></td><td></td><td></td><td></td><td class="s">    my @paths   = qw( ::Controller ::C ::Model ::M ::View ::V );</td></tr>
+<tr><td class="h"><a name="2537"></a>2537</td><td></td><td></td><td></td><td></td><td class="s">    my $extra   = delete $config-&gt;{ search_extra } || [];</td></tr>
+<tr><td class="h"><a name="2538"></a>2538</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2539"></a>2539</td><td></td><td></td><td></td><td></td><td class="s">    push @paths, @$extra;</td></tr>
+<tr><td class="h"><a name="2540"></a>2540</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2541"></a>2541</td><td></td><td></td><td class="c0">6</td><td class="c3">10&micro;s</td><td class="s">    my $locator = Module::Pluggable::Object-&gt;new(<div class="calls"><div class="calls_out">    # spent    10&micro;s making 6 calls to <a href="Catalyst-pm-381-sub.html#Catalyst__CORE_subst">Catalyst::CORE:subst</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2542"></a>2542</td><td></td><td></td><td class="c3">1</td><td class="c3">7&micro;s</td><td class="s">        search_path =&gt; [ map { s/^(?=::)/$class/; $_; } @paths ],<div class="calls"><div class="calls_out">        # spent     7&micro;s making 1 call to <a href="Module-Pluggable-Object-pm-634-sub.html#14">Module::Pluggable::Object::new</a></div></div></td></tr>
+<tr><td class="h"><a name="2543"></a>2543</td><td></td><td></td><td></td><td></td><td class="s">        %$config</td></tr>
+<tr><td class="h"><a name="2544"></a>2544</td><td></td><td></td><td></td><td></td><td class="s">    );</td></tr>
+<tr><td class="h"><a name="2545"></a>2545</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2546"></a>2546</td><td></td><td></td><td></td><td></td><td class="s">    # XXX think about ditching this sort entirely</td></tr>
+<tr><td class="h"><a name="2547"></a>2547</td><td></td><td></td><td class="c3">2</td><td class="c0">6.12ms</td><td class="s">    my @comps = sort { length $a &lt;=&gt; length $b } $locator-&gt;plugins;<div class="calls"><div class="calls_out">    # spent  6.11ms making 1 call to <a href="Module-Pluggable-Object-pm-634-sub.html#27">Module::Pluggable::Object::plugins</a>
+    # spent     8&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#Catalyst__CORE_sort">Catalyst::CORE:sort</a></div></div></td></tr>
+<tr><td class="h"><a name="2548"></a>2548</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2549"></a>2549</td><td></td><td></td><td></td><td></td><td class="s">    return @comps;</td></tr>
+<tr><td class="h"><a name="2550"></a>2550</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2551"></a>2551</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2552"></a>2552</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;expand_component_module( $component, $setup_component_config )</td></tr>
+<tr><td class="h"><a name="2553"></a>2553</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2554"></a>2554</td><td></td><td></td><td></td><td></td><td class="s">Components found by C&lt;locate_components&gt; will be passed to this method, which</td></tr>
+<tr><td class="h"><a name="2555"></a>2555</td><td></td><td></td><td></td><td></td><td class="s">is expected to return a list of component (package) names to be set up.</td></tr>
+<tr><td class="h"><a name="2556"></a>2556</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2557"></a>2557</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2558"></a>2558</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2559"></a>2559</td><td></td><td></td><td></td><td></td><td class="s">sub expand_component_module {</td></tr>
+<tr><td class="h"><a name="2560"></a>2560</td><td></td><td></td><td></td><td></td><td class="s">    my ($class, $module) = @_;</td></tr>
+<tr><td class="h"><a name="2561"></a>2561</td><td></td><td></td><td></td><td></td><td class="s">    return Devel::InnerPackage::list_packages( $module );</td></tr>
+<tr><td class="h"><a name="2562"></a>2562</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2563"></a>2563</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2564"></a>2564</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;setup_component</td></tr>
+<tr><td class="h"><a name="2565"></a>2565</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2566"></a>2566</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2567"></a>2567</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2568"></a>2568</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 772ms (245&micro;s+772) within Catalyst::setup_component which was called 9 times, avg 85.8ms/call:
+# 9 times (245&micro;s+772ms) by Catalyst::setup_components at <a href="Catalyst-pm-381-sub.html#2509">line 2509</a>, avg 85.8ms/call</div></div>sub setup_component {</td></tr>
+<tr><td class="h"><a name="2569"></a>2569</td><td class="c0">90</td><td class="c0"><span title="Avg 3&micro;s">258&micro;s</span></td><td></td><td></td><td class="s">    my( $class, $component ) = @_;</td></tr>
+<tr><td class="h"><a name="2570"></a>2570</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2571"></a>2571</td><td></td><td></td><td class="c0">9</td><td class="c3">34&micro;s</td><td class="s">    unless ( $component-&gt;can( 'COMPONENT' ) ) {<div class="calls"><div class="calls_out">    # spent    34&micro;s making 9 calls to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__can">UNIVERSAL::can</a>, avg 4&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2572"></a>2572</td><td></td><td></td><td></td><td></td><td class="s">        return $component;</td></tr>
+<tr><td class="h"><a name="2573"></a>2573</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2574"></a>2574</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2575"></a>2575</td><td></td><td></td><td class="c0">9</td><td class="c1">258&micro;s</td><td class="s">    my $suffix = Catalyst::Utils::class2classsuffix( $component );<div class="calls"><div class="calls_out">    # spent   258&micro;s making 9 calls to <a href="Catalyst-Utils-pm-574-sub.html#80">Catalyst::Utils::class2classsuffix</a>, avg 29&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2576"></a>2576</td><td></td><td></td><td class="c0">9</td><td class="c0">606&micro;s</td><td class="s">    my $config = $class-&gt;config-&gt;{ $suffix } || {};<div class="calls"><div class="calls_out">    # spent   606&micro;s making 9 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::config</a>, avg 67&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2577"></a>2577</td><td></td><td></td><td></td><td></td><td class="s">    # Stash catalyst_component_name in the config here, so that custom COMPONENT</td></tr>
+<tr><td class="h"><a name="2578"></a>2578</td><td></td><td></td><td></td><td></td><td class="s">    # methods also pass it. local to avoid pointlessly shitting in config</td></tr>
+<tr><td class="h"><a name="2579"></a>2579</td><td></td><td></td><td></td><td></td><td class="s">    # for the debug screen, as $component is already the key name.</td></tr>
+<tr><td class="h"><a name="2580"></a>2580</td><td></td><td></td><td></td><td></td><td class="s">    local $config-&gt;{catalyst_component_name} = $component;</td></tr>
+<tr><td class="h"><a name="2581"></a>2581</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2582"></a>2582</td><td></td><td></td><td class="c0">9</td><td class="c0">771ms</td><td class="s">    my $instance = eval { $component-&gt;COMPONENT( $class, $config ); };<div class="calls"><div class="calls_out">    # spent   771ms making 9 calls to <a href="Catalyst-Component-pm-579-sub.html#109">Catalyst::Component::COMPONENT</a>, avg 85.6ms/call</div></div></td></tr>
+<tr><td class="h"><a name="2583"></a>2583</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2584"></a>2584</td><td></td><td></td><td></td><td></td><td class="s">    if ( my $error = $@ ) {</td></tr>
+<tr><td class="h"><a name="2585"></a>2585</td><td></td><td></td><td></td><td></td><td class="s">        chomp $error;</td></tr>
+<tr><td class="h"><a name="2586"></a>2586</td><td></td><td></td><td></td><td></td><td class="s">        Catalyst::Exception-&gt;throw(</td></tr>
+<tr><td class="h"><a name="2587"></a>2587</td><td></td><td></td><td></td><td></td><td class="s">            message =&gt; qq/Couldn't instantiate component &quot;$component&quot;, &quot;$error&quot;/</td></tr>
+<tr><td class="h"><a name="2588"></a>2588</td><td></td><td></td><td></td><td></td><td class="s">        );</td></tr>
+<tr><td class="h"><a name="2589"></a>2589</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2590"></a>2590</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2591"></a>2591</td><td></td><td></td><td class="c0">9</td><td class="c3">12&micro;s</td><td class="s">    unless (blessed $instance) {<div class="calls"><div class="calls_out">    # spent    12&micro;s making 9 calls to <a href="Scalar-Util-pm-63-sub.html#Scalar__Util__blessed">Scalar::Util::blessed</a>, avg 1&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2592"></a>2592</td><td></td><td></td><td></td><td></td><td class="s">        my $metaclass = Moose::Util::find_meta($component);</td></tr>
+<tr><td class="h"><a name="2593"></a>2593</td><td></td><td></td><td></td><td></td><td class="s">        my $method_meta = $metaclass-&gt;find_method_by_name('COMPONENT');</td></tr>
+<tr><td class="h"><a name="2594"></a>2594</td><td></td><td></td><td></td><td></td><td class="s">        my $component_method_from = $method_meta-&gt;associated_metaclass-&gt;name;</td></tr>
+<tr><td class="h"><a name="2595"></a>2595</td><td></td><td></td><td></td><td></td><td class="s">        my $value = defined($instance) ? $instance : 'undef';</td></tr>
+<tr><td class="h"><a name="2596"></a>2596</td><td></td><td></td><td></td><td></td><td class="s">        Catalyst::Exception-&gt;throw(</td></tr>
+<tr><td class="h"><a name="2597"></a>2597</td><td></td><td></td><td></td><td></td><td class="s">            message =&gt;</td></tr>
+<tr><td class="h"><a name="2598"></a>2598</td><td></td><td></td><td></td><td></td><td class="s">            qq/Couldn't instantiate component &quot;$component&quot;, COMPONENT() method (from $component_method_from) didn't return an object-like value (value was $value)./</td></tr>
+<tr><td class="h"><a name="2599"></a>2599</td><td></td><td></td><td></td><td></td><td class="s">        );</td></tr>
+<tr><td class="h"><a name="2600"></a>2600</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2601"></a>2601</td><td></td><td></td><td></td><td></td><td class="s">    return $instance;</td></tr>
+<tr><td class="h"><a name="2602"></a>2602</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2603"></a>2603</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2604"></a>2604</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;setup_dispatcher</td></tr>
+<tr><td class="h"><a name="2605"></a>2605</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2606"></a>2606</td><td></td><td></td><td></td><td></td><td class="s">Sets up dispatcher.</td></tr>
+<tr><td class="h"><a name="2607"></a>2607</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2608"></a>2608</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2609"></a>2609</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2610"></a>2610</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 118ms (46&micro;s+118) within Catalyst::setup_dispatcher which was called:
+#    once (46&micro;s+118ms) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1096">line 1096</a></div></div>sub setup_dispatcher {</td></tr>
+<tr><td class="h"><a name="2611"></a>2611</td><td class="c0">6</td><td class="c3"><span title="Avg 5&micro;s">32&micro;s</span></td><td></td><td></td><td class="s">    my ( $class, $dispatcher ) = @_;</td></tr>
+<tr><td class="h"><a name="2612"></a>2612</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2613"></a>2613</td><td></td><td></td><td></td><td></td><td class="s">    if ($dispatcher) {</td></tr>
+<tr><td class="h"><a name="2614"></a>2614</td><td></td><td></td><td></td><td></td><td class="s">        $dispatcher = 'Catalyst::Dispatcher::' . $dispatcher;</td></tr>
+<tr><td class="h"><a name="2615"></a>2615</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2616"></a>2616</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2617"></a>2617</td><td></td><td></td><td class="c3">1</td><td class="c3">22&micro;s</td><td class="s">    if ( my $env = Catalyst::Utils::env_value( $class, 'DISPATCHER' ) ) {<div class="calls"><div class="calls_out">    # spent    22&micro;s making 1 call to <a href="Catalyst-Utils-pm-574-sub.html#354">Catalyst::Utils::env_value</a></div></div></td></tr>
+<tr><td class="h"><a name="2618"></a>2618</td><td></td><td></td><td></td><td></td><td class="s">        $dispatcher = 'Catalyst::Dispatcher::' . $env;</td></tr>
+<tr><td class="h"><a name="2619"></a>2619</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2620"></a>2620</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2621"></a>2621</td><td></td><td></td><td class="c3">1</td><td class="c3">42&micro;s</td><td class="s">    unless ($dispatcher) {<div class="calls"><div class="calls_out">    # spent    42&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_dispatcher_class_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="2622"></a>2622</td><td></td><td></td><td></td><td></td><td class="s">        $dispatcher = $class-&gt;dispatcher_class;</td></tr>
+<tr><td class="h"><a name="2623"></a>2623</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2624"></a>2624</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2625"></a>2625</td><td></td><td></td><td class="c3">1</td><td class="c3">4&micro;s</td><td class="s">    Class::MOP::load_class($dispatcher);<div class="calls"><div class="calls_out">    # spent     4&micro;s making 1 call to <a href="Class-MOP-pm-83-sub.html#76">Class::MOP::load_class</a></div></div></td></tr>
+<tr><td class="h"><a name="2626"></a>2626</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2627"></a>2627</td><td></td><td></td><td></td><td></td><td class="s">    # dispatcher instance</td></tr>
+<tr><td class="h"><a name="2628"></a>2628</td><td></td><td></td><td class="c3">2</td><td class="c1">266&micro;s</td><td class="s">    $class-&gt;dispatcher( $dispatcher-&gt;new );<div class="calls"><div class="calls_out">    # spent   232&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Dispatcher::new</a>
+    # spent    33&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_dispatcher_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="2629"></a>2629</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2630"></a>2630</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2631"></a>2631</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;setup_engine</td></tr>
+<tr><td class="h"><a name="2632"></a>2632</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2633"></a>2633</td><td></td><td></td><td></td><td></td><td class="s">Sets up engine.</td></tr>
+<tr><td class="h"><a name="2634"></a>2634</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2635"></a>2635</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2636"></a>2636</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2637"></a>2637</td><td></td><td></td><td></td><td></td><td class="s">sub engine_class {</td></tr>
+<tr><td class="h"><a name="2638"></a>2638</td><td></td><td></td><td></td><td></td><td class="s">    my ($class, $requested_engine) = @_;</td></tr>
+<tr><td class="h"><a name="2639"></a>2639</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2640"></a>2640</td><td></td><td></td><td></td><td></td><td class="s">    if (!$class-&gt;engine_loader || $requested_engine) {</td></tr>
+<tr><td class="h"><a name="2641"></a>2641</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;engine_loader(</td></tr>
+<tr><td class="h"><a name="2642"></a>2642</td><td></td><td></td><td></td><td></td><td class="s">            Catalyst::EngineLoader-&gt;new({</td></tr>
+<tr><td class="h"><a name="2643"></a>2643</td><td></td><td></td><td></td><td></td><td class="s">                application_name =&gt; $class,</td></tr>
+<tr><td class="h"><a name="2644"></a>2644</td><td></td><td></td><td></td><td></td><td class="s">                (defined $requested_engine</td></tr>
+<tr><td class="h"><a name="2645"></a>2645</td><td></td><td></td><td></td><td></td><td class="s">                     ? (catalyst_engine_class =&gt; $requested_engine) : ()),</td></tr>
+<tr><td class="h"><a name="2646"></a>2646</td><td></td><td></td><td></td><td></td><td class="s">            }),</td></tr>
+<tr><td class="h"><a name="2647"></a>2647</td><td></td><td></td><td></td><td></td><td class="s">        );</td></tr>
+<tr><td class="h"><a name="2648"></a>2648</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2649"></a>2649</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2650"></a>2650</td><td></td><td></td><td></td><td></td><td class="s">    $class-&gt;engine_loader-&gt;catalyst_engine_class;</td></tr>
+<tr><td class="h"><a name="2651"></a>2651</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2652"></a>2652</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2653"></a>2653</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 29.9ms (71&micro;s+29.8) within Catalyst::setup_engine which was called:
+#    once (71&micro;s+29.8ms) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1100">line 1100</a></div></div>sub setup_engine {</td></tr>
+<tr><td class="h"><a name="2654"></a>2654</td><td class="c0">10</td><td class="c3"><span title="Avg 5&micro;s">49&micro;s</span></td><td></td><td></td><td class="s">    my ($class, $requested_engine) = @_;</td></tr>
+<tr><td class="h"><a name="2655"></a>2655</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2656"></a>2656</td><td></td><td></td><td></td><td></td><td class="s">    my $engine = do {</td></tr>
+<tr><td class="h"><a name="2657"></a>2657</td><td></td><td></td><td class="c3">1</td><td class="c3">41&micro;s</td><td class="s">        my $loader = $class-&gt;engine_loader;<div class="calls"><div class="calls_out">        # spent    41&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_loader_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="2658"></a>2658</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2659"></a>2659</td><td></td><td></td><td class="c3">2</td><td class="c3">47&micro;s</td><td class="s">        if (!$loader || $requested_engine) {<div class="calls"><div class="calls_out">        # spent    26&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::EngineLoader::new</a>
+        # spent    20&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_loader_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="2660"></a>2660</td><td></td><td></td><td></td><td></td><td class="s">            $loader = Catalyst::EngineLoader-&gt;new({</td></tr>
+<tr><td class="h"><a name="2661"></a>2661</td><td></td><td></td><td></td><td></td><td class="s">                application_name =&gt; $class,</td></tr>
+<tr><td class="h"><a name="2662"></a>2662</td><td></td><td></td><td></td><td></td><td class="s">                (defined $requested_engine</td></tr>
+<tr><td class="h"><a name="2663"></a>2663</td><td></td><td></td><td></td><td></td><td class="s">                     ? (requested_engine =&gt; $requested_engine) : ()),</td></tr>
+<tr><td class="h"><a name="2664"></a>2664</td><td></td><td></td><td></td><td></td><td class="s">            }),</td></tr>
+<tr><td class="h"><a name="2665"></a>2665</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2666"></a>2666</td><td></td><td></td><td></td><td></td><td class="s">            $class-&gt;engine_loader($loader);</td></tr>
+<tr><td class="h"><a name="2667"></a>2667</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="2668"></a>2668</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2669"></a>2669</td><td></td><td></td><td class="c3">1</td><td class="c3">56&micro;s</td><td class="s">        $loader-&gt;catalyst_engine_class;<div class="calls"><div class="calls_out">        # spent    56&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::EngineLoader::catalyst_engine_class</a></div></div></td></tr>
+<tr><td class="h"><a name="2670"></a>2670</td><td></td><td></td><td></td><td></td><td class="s">    };</td></tr>
+<tr><td class="h"><a name="2671"></a>2671</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2672"></a>2672</td><td></td><td></td><td></td><td></td><td class="s">    # Don't really setup_engine -- see _setup_psgi_app for explanation.</td></tr>
+<tr><td class="h"><a name="2673"></a>2673</td><td></td><td></td><td class="c3">1</td><td class="c3">37&micro;s</td><td class="s">    return if $class-&gt;loading_psgi_file;<div class="calls"><div class="calls_out">    # spent    37&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_loading_psgi_file_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="2674"></a>2674</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2675"></a>2675</td><td></td><td></td><td class="c3">1</td><td class="c3">3&micro;s</td><td class="s">    Class::MOP::load_class($engine);<div class="calls"><div class="calls_out">    # spent     3&micro;s making 1 call to <a href="Class-MOP-pm-83-sub.html#76">Class::MOP::load_class</a></div></div></td></tr>
+<tr><td class="h"><a name="2676"></a>2676</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2677"></a>2677</td><td></td><td></td><td></td><td></td><td class="s">    if ($ENV{MOD_PERL}) {</td></tr>
+<tr><td class="h"><a name="2678"></a>2678</td><td></td><td></td><td></td><td></td><td class="s">        my $apache = $class-&gt;engine_loader-&gt;auto;</td></tr>
+<tr><td class="h"><a name="2679"></a>2679</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2680"></a>2680</td><td></td><td></td><td></td><td></td><td class="s">        my $meta = find_meta($class);</td></tr>
+<tr><td class="h"><a name="2681"></a>2681</td><td></td><td></td><td></td><td></td><td class="s">        my $was_immutable = $meta-&gt;is_immutable;</td></tr>
+<tr><td class="h"><a name="2682"></a>2682</td><td></td><td></td><td></td><td></td><td class="s">        my %immutable_options = $meta-&gt;immutable_options;</td></tr>
+<tr><td class="h"><a name="2683"></a>2683</td><td></td><td></td><td></td><td></td><td class="s">        $meta-&gt;make_mutable if $was_immutable;</td></tr>
+<tr><td class="h"><a name="2684"></a>2684</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2685"></a>2685</td><td></td><td></td><td></td><td></td><td class="s">        $meta-&gt;add_method(handler =&gt; sub {</td></tr>
+<tr><td class="h"><a name="2686"></a>2686</td><td></td><td></td><td></td><td></td><td class="s">            my $r = shift;</td></tr>
+<tr><td class="h"><a name="2687"></a>2687</td><td></td><td></td><td></td><td></td><td class="s">            my $psgi_app = $class-&gt;_finalized_psgi_app;</td></tr>
+<tr><td class="h"><a name="2688"></a>2688</td><td></td><td></td><td></td><td></td><td class="s">            $apache-&gt;call_app($r, $psgi_app);</td></tr>
+<tr><td class="h"><a name="2689"></a>2689</td><td></td><td></td><td></td><td></td><td class="s">        });</td></tr>
+<tr><td class="h"><a name="2690"></a>2690</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2691"></a>2691</td><td></td><td></td><td></td><td></td><td class="s">        $meta-&gt;make_immutable(%immutable_options) if $was_immutable;</td></tr>
+<tr><td class="h"><a name="2692"></a>2692</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2693"></a>2693</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2694"></a>2694</td><td></td><td></td><td class="c3">2</td><td class="c0">474&micro;s</td><td class="s">    $class-&gt;engine( $engine-&gt;new );<div class="calls"><div class="calls_out">    # spent   443&micro;s making 1 call to <a href="Moose-Object-pm-266-sub.html#22">Moose::Object::new</a>
+    # spent    30&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="2695"></a>2695</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2696"></a>2696</td><td></td><td></td><td></td><td></td><td class="s">    return;</td></tr>
+<tr><td class="h"><a name="2697"></a>2697</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2698"></a>2698</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2699"></a>2699</td><td></td><td></td><td></td><td></td><td class="s">sub _finalized_psgi_app {</td></tr>
+<tr><td class="h"><a name="2700"></a>2700</td><td></td><td></td><td></td><td></td><td class="s">    my ($app) = @_;</td></tr>
+<tr><td class="h"><a name="2701"></a>2701</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2702"></a>2702</td><td></td><td></td><td></td><td></td><td class="s">    unless ($app-&gt;_psgi_app) {</td></tr>
+<tr><td class="h"><a name="2703"></a>2703</td><td></td><td></td><td></td><td></td><td class="s">        my $psgi_app = $app-&gt;_setup_psgi_app;</td></tr>
+<tr><td class="h"><a name="2704"></a>2704</td><td></td><td></td><td></td><td></td><td class="s">        $app-&gt;_psgi_app($psgi_app);</td></tr>
+<tr><td class="h"><a name="2705"></a>2705</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2706"></a>2706</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2707"></a>2707</td><td></td><td></td><td></td><td></td><td class="s">    return $app-&gt;_psgi_app;</td></tr>
+<tr><td class="h"><a name="2708"></a>2708</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2709"></a>2709</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2710"></a>2710</td><td></td><td></td><td></td><td></td><td class="s">sub _setup_psgi_app {</td></tr>
+<tr><td class="h"><a name="2711"></a>2711</td><td></td><td></td><td></td><td></td><td class="s">    my ($app) = @_;</td></tr>
+<tr><td class="h"><a name="2712"></a>2712</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2713"></a>2713</td><td></td><td></td><td></td><td></td><td class="s">    for my $home (Path::Class::Dir-&gt;new($app-&gt;config-&gt;{home})) {</td></tr>
+<tr><td class="h"><a name="2714"></a>2714</td><td></td><td></td><td></td><td></td><td class="s">        my $psgi_file = $home-&gt;file(</td></tr>
+<tr><td class="h"><a name="2715"></a>2715</td><td></td><td></td><td></td><td></td><td class="s">            Catalyst::Utils::appprefix($app) . '.psgi',</td></tr>
+<tr><td class="h"><a name="2716"></a>2716</td><td></td><td></td><td></td><td></td><td class="s">        );</td></tr>
+<tr><td class="h"><a name="2717"></a>2717</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2718"></a>2718</td><td></td><td></td><td></td><td></td><td class="s">        next unless -e $psgi_file;</td></tr>
+<tr><td class="h"><a name="2719"></a>2719</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2720"></a>2720</td><td></td><td></td><td></td><td></td><td class="s">        # If $psgi_file calls -&gt;setup_engine, it's doing so to load</td></tr>
+<tr><td class="h"><a name="2721"></a>2721</td><td></td><td></td><td></td><td></td><td class="s">        # Catalyst::Engine::PSGI. But if it does that, we're only going to</td></tr>
+<tr><td class="h"><a name="2722"></a>2722</td><td></td><td></td><td></td><td></td><td class="s">        # throw away the loaded PSGI-app and load the 5.9 Catalyst::Engine</td></tr>
+<tr><td class="h"><a name="2723"></a>2723</td><td></td><td></td><td></td><td></td><td class="s">        # anyway. So set a flag (ick) that tells setup_engine not to populate</td></tr>
+<tr><td class="h"><a name="2724"></a>2724</td><td></td><td></td><td></td><td></td><td class="s">        # $c-&gt;engine or do any other things we might regret.</td></tr>
+<tr><td class="h"><a name="2725"></a>2725</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2726"></a>2726</td><td></td><td></td><td></td><td></td><td class="s">        $app-&gt;loading_psgi_file(1);</td></tr>
+<tr><td class="h"><a name="2727"></a>2727</td><td></td><td></td><td></td><td></td><td class="s">        my $psgi_app = Plack::Util::load_psgi($psgi_file);</td></tr>
+<tr><td class="h"><a name="2728"></a>2728</td><td></td><td></td><td></td><td></td><td class="s">        $app-&gt;loading_psgi_file(0);</td></tr>
+<tr><td class="h"><a name="2729"></a>2729</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2730"></a>2730</td><td></td><td></td><td></td><td></td><td class="s">        return $psgi_app</td></tr>
+<tr><td class="h"><a name="2731"></a>2731</td><td></td><td></td><td></td><td></td><td class="s">            unless $app-&gt;engine_loader-&gt;needs_psgi_engine_compat_hack;</td></tr>
+<tr><td class="h"><a name="2732"></a>2732</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2733"></a>2733</td><td></td><td></td><td></td><td></td><td class="s">        warn &lt;&lt;&quot;EOW&quot;;</td></tr>
+<tr><td class="h"><a name="2734"></a>2734</td><td></td><td></td><td></td><td></td><td class="s">Found a legacy Catalyst::Engine::PSGI .psgi file at ${psgi_file}.</td></tr>
+<tr><td class="h"><a name="2735"></a>2735</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2736"></a>2736</td><td></td><td></td><td></td><td></td><td class="s">Its content has been ignored. Please consult the Catalyst::Upgrading</td></tr>
+<tr><td class="h"><a name="2737"></a>2737</td><td></td><td></td><td></td><td></td><td class="s">documentation on how to upgrade from Catalyst::Engine::PSGI.</td></tr>
+<tr><td class="h"><a name="2738"></a>2738</td><td></td><td></td><td></td><td></td><td class="s">EOW</td></tr>
+<tr><td class="h"><a name="2739"></a>2739</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2740"></a>2740</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2741"></a>2741</td><td></td><td></td><td></td><td></td><td class="s">    return $app-&gt;apply_default_middlewares($app-&gt;psgi_app);</td></tr>
+<tr><td class="h"><a name="2742"></a>2742</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2743"></a>2743</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2744"></a>2744</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;apply_default_middlewares</td></tr>
+<tr><td class="h"><a name="2745"></a>2745</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2746"></a>2746</td><td></td><td></td><td></td><td></td><td class="s">Adds the following L&lt;Plack&gt; middlewares to your application, since they are</td></tr>
+<tr><td class="h"><a name="2747"></a>2747</td><td></td><td></td><td></td><td></td><td class="s">useful and commonly needed:</td></tr>
+<tr><td class="h"><a name="2748"></a>2748</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2749"></a>2749</td><td></td><td></td><td></td><td></td><td class="s">L&lt;Plack::Middleware::ReverseProxy&gt;, (conditionally added based on the status</td></tr>
+<tr><td class="h"><a name="2750"></a>2750</td><td></td><td></td><td></td><td></td><td class="s">of your $ENV{REMOTE_ADDR}, and can be forced on with C&lt;using_frontend_proxy&gt;</td></tr>
+<tr><td class="h"><a name="2751"></a>2751</td><td></td><td></td><td></td><td></td><td class="s">or forced off with C&lt;ignore_frontend_proxy&gt;), L&lt;Plack::Middleware::LighttpdScriptNameFix&gt;</td></tr>
+<tr><td class="h"><a name="2752"></a>2752</td><td></td><td></td><td></td><td></td><td class="s">(if you are using Lighttpd), L&lt;Plack::Middleware::IIS6ScriptNameFix&gt; (always</td></tr>
+<tr><td class="h"><a name="2753"></a>2753</td><td></td><td></td><td></td><td></td><td class="s">applied since this middleware is smart enough to conditionally apply itself).</td></tr>
+<tr><td class="h"><a name="2754"></a>2754</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2755"></a>2755</td><td></td><td></td><td></td><td></td><td class="s">Additionally if we detect we are using Nginx, we add a bit of custom middleware</td></tr>
+<tr><td class="h"><a name="2756"></a>2756</td><td></td><td></td><td></td><td></td><td class="s">to solve some problems with the way that server handles $ENV{PATH_INFO} and</td></tr>
+<tr><td class="h"><a name="2757"></a>2757</td><td></td><td></td><td></td><td></td><td class="s">$ENV{SCRIPT_NAME}</td></tr>
+<tr><td class="h"><a name="2758"></a>2758</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2759"></a>2759</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2760"></a>2760</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2761"></a>2761</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2762"></a>2762</td><td></td><td></td><td></td><td></td><td class="s">sub apply_default_middlewares {</td></tr>
+<tr><td class="h"><a name="2763"></a>2763</td><td></td><td></td><td></td><td></td><td class="s">    my ($app, $psgi_app) = @_;</td></tr>
+<tr><td class="h"><a name="2764"></a>2764</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2765"></a>2765</td><td></td><td></td><td></td><td></td><td class="s">    $psgi_app = Plack::Middleware::Conditional-&gt;wrap(</td></tr>
+<tr><td class="h"><a name="2766"></a>2766</td><td></td><td></td><td></td><td></td><td class="s">        $psgi_app,</td></tr>
+<tr><td class="h"><a name="2767"></a>2767</td><td></td><td></td><td></td><td></td><td class="s">        builder   =&gt; sub { Plack::Middleware::ReverseProxy-&gt;wrap($_[0]) },</td></tr>
+<tr><td class="h"><a name="2768"></a>2768</td><td></td><td></td><td></td><td></td><td class="s">        condition =&gt; sub {</td></tr>
+<tr><td class="h"><a name="2769"></a>2769</td><td></td><td></td><td></td><td></td><td class="s">            my ($env) = @_;</td></tr>
+<tr><td class="h"><a name="2770"></a>2770</td><td></td><td></td><td></td><td></td><td class="s">            return if $app-&gt;config-&gt;{ignore_frontend_proxy};</td></tr>
+<tr><td class="h"><a name="2771"></a>2771</td><td></td><td></td><td></td><td></td><td class="s">            return $env-&gt;{REMOTE_ADDR} eq '127.0.0.1'</td></tr>
+<tr><td class="h"><a name="2772"></a>2772</td><td></td><td></td><td></td><td></td><td class="s">                || $app-&gt;config-&gt;{using_frontend_proxy};</td></tr>
+<tr><td class="h"><a name="2773"></a>2773</td><td></td><td></td><td></td><td></td><td class="s">        },</td></tr>
+<tr><td class="h"><a name="2774"></a>2774</td><td></td><td></td><td></td><td></td><td class="s">    );</td></tr>
+<tr><td class="h"><a name="2775"></a>2775</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2776"></a>2776</td><td></td><td></td><td></td><td></td><td class="s">    # If we're running under Lighttpd, swap PATH_INFO and SCRIPT_NAME</td></tr>
+<tr><td class="h"><a name="2777"></a>2777</td><td></td><td></td><td></td><td></td><td class="s">    # http://lists.scsys.co.uk/pipermail/catalyst/2006-June/008361.html</td></tr>
+<tr><td class="h"><a name="2778"></a>2778</td><td></td><td></td><td></td><td></td><td class="s">    $psgi_app = Plack::Middleware::Conditional-&gt;wrap(</td></tr>
+<tr><td class="h"><a name="2779"></a>2779</td><td></td><td></td><td></td><td></td><td class="s">        $psgi_app,</td></tr>
+<tr><td class="h"><a name="2780"></a>2780</td><td></td><td></td><td></td><td></td><td class="s">        builder   =&gt; sub { Plack::Middleware::LighttpdScriptNameFix-&gt;wrap($_[0]) },</td></tr>
+<tr><td class="h"><a name="2781"></a>2781</td><td></td><td></td><td></td><td></td><td class="s">        condition =&gt; sub {</td></tr>
+<tr><td class="h"><a name="2782"></a>2782</td><td></td><td></td><td></td><td></td><td class="s">            my ($env) = @_;</td></tr>
+<tr><td class="h"><a name="2783"></a>2783</td><td></td><td></td><td></td><td></td><td class="s">            return unless $env-&gt;{SERVER_SOFTWARE} &amp;&amp; $env-&gt;{SERVER_SOFTWARE} =~ m!lighttpd[-/]1\.(\d+\.\d+)!;</td></tr>
+<tr><td class="h"><a name="2784"></a>2784</td><td></td><td></td><td></td><td></td><td class="s">            return unless $1 &lt; 4.23;</td></tr>
+<tr><td class="h"><a name="2785"></a>2785</td><td></td><td></td><td></td><td></td><td class="s">            1;</td></tr>
+<tr><td class="h"><a name="2786"></a>2786</td><td></td><td></td><td></td><td></td><td class="s">        },</td></tr>
+<tr><td class="h"><a name="2787"></a>2787</td><td></td><td></td><td></td><td></td><td class="s">    );</td></tr>
+<tr><td class="h"><a name="2788"></a>2788</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2789"></a>2789</td><td></td><td></td><td></td><td></td><td class="s">    # we're applying this unconditionally as the middleware itself already makes</td></tr>
+<tr><td class="h"><a name="2790"></a>2790</td><td></td><td></td><td></td><td></td><td class="s">    # sure it doesn't fuck things up if it's not running under one of the right</td></tr>
+<tr><td class="h"><a name="2791"></a>2791</td><td></td><td></td><td></td><td></td><td class="s">    # IIS versions</td></tr>
+<tr><td class="h"><a name="2792"></a>2792</td><td></td><td></td><td></td><td></td><td class="s">    $psgi_app = Plack::Middleware::IIS6ScriptNameFix-&gt;wrap($psgi_app);</td></tr>
+<tr><td class="h"><a name="2793"></a>2793</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2794"></a>2794</td><td></td><td></td><td></td><td></td><td class="s">    return $psgi_app;</td></tr>
+<tr><td class="h"><a name="2795"></a>2795</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2796"></a>2796</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2797"></a>2797</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;psgi_app</td></tr>
+<tr><td class="h"><a name="2798"></a>2798</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2799"></a>2799</td><td></td><td></td><td></td><td></td><td class="s">Returns a PSGI application code reference for the catalyst application</td></tr>
+<tr><td class="h"><a name="2800"></a>2800</td><td></td><td></td><td></td><td></td><td class="s">C&lt;$c&gt;. This is the bare application without any middlewares</td></tr>
+<tr><td class="h"><a name="2801"></a>2801</td><td></td><td></td><td></td><td></td><td class="s">applied. C&lt;${myapp}.psgi&gt; is not taken into account.</td></tr>
+<tr><td class="h"><a name="2802"></a>2802</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2803"></a>2803</td><td></td><td></td><td></td><td></td><td class="s">This is what you want to be using to retrieve the PSGI application code</td></tr>
+<tr><td class="h"><a name="2804"></a>2804</td><td></td><td></td><td></td><td></td><td class="s">reference of your Catalyst application for use in F&lt;.psgi&gt; files.</td></tr>
+<tr><td class="h"><a name="2805"></a>2805</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2806"></a>2806</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2807"></a>2807</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2808"></a>2808</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 41&micro;s (12+29) within Catalyst::psgi_app which was called:
+#    once (12&micro;s+29&micro;s) by main::RUNTIME at <a href="script-nytprof-pl-1-sub.html#40">line 40 of script/nytprof.pl</a></div></div>sub psgi_app {</td></tr>
+<tr><td class="h"><a name="2809"></a>2809</td><td class="c3">2</td><td class="c3"><span title="Avg 4&micro;s">9&micro;s</span></td><td></td><td></td><td class="s">    my ($app) = @_;</td></tr>
+<tr><td class="h"><a name="2810"></a>2810</td><td></td><td></td><td class="c3">2</td><td class="c3">29&micro;s</td><td class="s">    return $app-&gt;engine-&gt;build_psgi_app($app);<div class="calls"><div class="calls_out">    # spent    24&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_engine_accessor</a>
+    # spent     6&micro;s making 1 call to <a href="Catalyst-Engine-pm-1927-sub.html#673">Catalyst::Engine::build_psgi_app</a></div></div></td></tr>
+<tr><td class="h"><a name="2811"></a>2811</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2812"></a>2812</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2813"></a>2813</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;setup_home</td></tr>
+<tr><td class="h"><a name="2814"></a>2814</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2815"></a>2815</td><td></td><td></td><td></td><td></td><td class="s">Sets up the home directory.</td></tr>
+<tr><td class="h"><a name="2816"></a>2816</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2817"></a>2817</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2818"></a>2818</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2819"></a>2819</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 9.29ms (81&micro;s+9.20) within Catalyst::setup_home which was called 2 times, avg 4.64ms/call:
+#    once (54&micro;s+5.95ms) by Catalyst::import at <a href="Catalyst-pm-381-sub.html#133">line 133</a>
+#    once (27&micro;s+3.26ms) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1092">line 1092</a></div></div>sub setup_home {</td></tr>
+<tr><td class="h"><a name="2820"></a>2820</td><td class="c0">12</td><td class="c2"><span title="Avg 5&micro;s">60&micro;s</span></td><td></td><td></td><td class="s">    my ( $class, $home ) = @_;</td></tr>
+<tr><td class="h"><a name="2821"></a>2821</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2822"></a>2822</td><td></td><td></td><td class="c3">2</td><td class="c3">45&micro;s</td><td class="s">    if ( my $env = Catalyst::Utils::env_value( $class, 'HOME' ) ) {<div class="calls"><div class="calls_out">    # spent    45&micro;s making 2 calls to <a href="Catalyst-Utils-pm-574-sub.html#354">Catalyst::Utils::env_value</a>, avg 23&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2823"></a>2823</td><td></td><td></td><td></td><td></td><td class="s">        $home = $env;</td></tr>
+<tr><td class="h"><a name="2824"></a>2824</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2825"></a>2825</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2826"></a>2826</td><td></td><td></td><td class="c3">2</td><td class="c0">7.78ms</td><td class="s">    $home ||= Catalyst::Utils::home($class);<div class="calls"><div class="calls_out">    # spent  7.78ms making 2 calls to <a href="Catalyst-Utils-pm-574-sub.html#184">Catalyst::Utils::home</a>, avg 3.89ms/call</div></div></td></tr>
+<tr><td class="h"><a name="2827"></a>2827</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2828"></a>2828</td><td></td><td></td><td></td><td></td><td class="s">    if ($home) {</td></tr>
+<tr><td class="h"><a name="2829"></a>2829</td><td></td><td></td><td></td><td></td><td class="s">        #I remember recently being scolded for assigning config values like this</td></tr>
+<tr><td class="h"><a name="2830"></a>2830</td><td></td><td></td><td class="c3">2</td><td class="c0">432&micro;s</td><td class="s">        $class-&gt;config-&gt;{home} ||= $home;<div class="calls"><div class="calls_out">        # spent   432&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::config</a>, avg 216&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2831"></a>2831</td><td class="c3">1</td><td class="c3"><span title="Avg 800ns">800ns</span></td><td class="c0">5</td><td class="c0">949&micro;s</td><td class="s">        $class-&gt;config-&gt;{root} ||= Path::Class::Dir-&gt;new($home)-&gt;subdir('root');<div class="calls"><div class="calls_out">        # spent   610&micro;s making 1 call to <a href="Path-Class-Dir-pm-21-sub.html#94">Path::Class::Dir::subdir</a>
+        # spent   191&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::config</a>, avg 96&micro;s/call
+        # spent   146&micro;s making 1 call to <a href="Path-Class-Dir-pm-21-sub.html#21">Path::Class::Dir::new</a>
+        # spent     2&micro;s making 1 call to <a href="Path-Class-Entity-pm-25-sub.html#48">Path::Class::Entity::boolify</a></div></div></td></tr>
+<tr><td class="h"><a name="2832"></a>2832</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2833"></a>2833</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2834"></a>2834</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2835"></a>2835</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;setup_log</td></tr>
+<tr><td class="h"><a name="2836"></a>2836</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2837"></a>2837</td><td></td><td></td><td></td><td></td><td class="s">Sets up log by instantiating a L&lt;Catalyst::Log|Catalyst::Log&gt; object and</td></tr>
+<tr><td class="h"><a name="2838"></a>2838</td><td></td><td></td><td></td><td></td><td class="s">passing it to C&lt;log()&gt;. Pass in a comma-delimited list of levels to set the</td></tr>
+<tr><td class="h"><a name="2839"></a>2839</td><td></td><td></td><td></td><td></td><td class="s">log to.</td></tr>
+<tr><td class="h"><a name="2840"></a>2840</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2841"></a>2841</td><td></td><td></td><td></td><td></td><td class="s">This method also installs a C&lt;debug&gt; method that returns a true value into the</td></tr>
+<tr><td class="h"><a name="2842"></a>2842</td><td></td><td></td><td></td><td></td><td class="s">catalyst subclass if the &quot;debug&quot; level is passed in the comma-delimited list,</td></tr>
+<tr><td class="h"><a name="2843"></a>2843</td><td></td><td></td><td></td><td></td><td class="s">or if the C&lt;$CATALYST_DEBUG&gt; environment variable is set to a true value.</td></tr>
+<tr><td class="h"><a name="2844"></a>2844</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2845"></a>2845</td><td></td><td></td><td></td><td></td><td class="s">Note that if the log has already been setup, by either a previous call to</td></tr>
+<tr><td class="h"><a name="2846"></a>2846</td><td></td><td></td><td></td><td></td><td class="s">C&lt;setup_log&gt; or by a call such as C&lt;&lt; __PACKAGE__-&gt;log( MyLogger-&gt;new ) &gt;&gt;,</td></tr>
+<tr><td class="h"><a name="2847"></a>2847</td><td></td><td></td><td></td><td></td><td class="s">that this method won't actually set up the log object.</td></tr>
+<tr><td class="h"><a name="2848"></a>2848</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2849"></a>2849</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2850"></a>2850</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2851"></a>2851</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 793&micro;s (41+752) within Catalyst::setup_log which was called:
+#    once (41&micro;s+752&micro;s) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1094">line 1094</a></div></div>sub setup_log {</td></tr>
+<tr><td class="h"><a name="2852"></a>2852</td><td class="c0">9</td><td class="c3"><span title="Avg 4&micro;s">37&micro;s</span></td><td></td><td></td><td class="s">    my ( $class, $levels ) = @_;</td></tr>
+<tr><td class="h"><a name="2853"></a>2853</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2854"></a>2854</td><td></td><td></td><td></td><td></td><td class="s">    $levels ||= '';</td></tr>
+<tr><td class="h"><a name="2855"></a>2855</td><td></td><td></td><td class="c3">1</td><td class="c3">800ns</td><td class="s">    $levels =~ s/^\s+//;<div class="calls"><div class="calls_out">    # spent   800ns making 1 call to <a href="Catalyst-pm-381-sub.html#Catalyst__CORE_subst">Catalyst::CORE:subst</a></div></div></td></tr>
+<tr><td class="h"><a name="2856"></a>2856</td><td></td><td></td><td class="c3">1</td><td class="c3">800ns</td><td class="s">    $levels =~ s/\s+$//;<div class="calls"><div class="calls_out">    # spent   800ns making 1 call to <a href="Catalyst-pm-381-sub.html#Catalyst__CORE_subst">Catalyst::CORE:subst</a></div></div></td></tr>
+<tr><td class="h"><a name="2857"></a>2857</td><td></td><td></td><td></td><td></td><td class="s">    my %levels = map { $_ =&gt; 1 } split /\s*,\s*/, $levels;</td></tr>
+<tr><td class="h"><a name="2858"></a>2858</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2859"></a>2859</td><td></td><td></td><td class="c3">1</td><td class="c3">22&micro;s</td><td class="s">    my $env_debug = Catalyst::Utils::env_value( $class, 'DEBUG' );<div class="calls"><div class="calls_out">    # spent    22&micro;s making 1 call to <a href="Catalyst-Utils-pm-574-sub.html#354">Catalyst::Utils::env_value</a></div></div></td></tr>
+<tr><td class="h"><a name="2860"></a>2860</td><td></td><td></td><td></td><td></td><td class="s">    if ( defined $env_debug ) {</td></tr>
+<tr><td class="h"><a name="2861"></a>2861</td><td></td><td></td><td></td><td></td><td class="s">        $levels{debug} = 1 if $env_debug; # Ugly!</td></tr>
+<tr><td class="h"><a name="2862"></a>2862</td><td></td><td></td><td></td><td></td><td class="s">        delete($levels{debug}) unless $env_debug;</td></tr>
+<tr><td class="h"><a name="2863"></a>2863</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2864"></a>2864</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2865"></a>2865</td><td></td><td></td><td class="c1">3</td><td class="c0">728&micro;s</td><td class="s">    unless ( $class-&gt;log ) {<div class="calls"><div class="calls_out">    # spent   668&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Log::new</a>
+    # spent    60&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_log_accessor</a>, avg 30&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2866"></a>2866</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log( Catalyst::Log-&gt;new(keys %levels) );</td></tr>
+<tr><td class="h"><a name="2867"></a>2867</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2868"></a>2868</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2869"></a>2869</td><td></td><td></td><td></td><td></td><td class="s">    if ( $levels{debug} ) {</td></tr>
+<tr><td class="h"><a name="2870"></a>2870</td><td></td><td></td><td></td><td></td><td class="s">        Class::MOP::get_metaclass_by_name($class)-&gt;add_method('debug' =&gt; sub { 1 });</td></tr>
+<tr><td class="h"><a name="2871"></a>2871</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;debug('Debug messages enabled');</td></tr>
+<tr><td class="h"><a name="2872"></a>2872</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2873"></a>2873</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2874"></a>2874</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2875"></a>2875</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;setup_plugins</td></tr>
+<tr><td class="h"><a name="2876"></a>2876</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2877"></a>2877</td><td></td><td></td><td></td><td></td><td class="s">Sets up plugins.</td></tr>
+<tr><td class="h"><a name="2878"></a>2878</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2879"></a>2879</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2880"></a>2880</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2881"></a>2881</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;setup_stats</td></tr>
+<tr><td class="h"><a name="2882"></a>2882</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2883"></a>2883</td><td></td><td></td><td></td><td></td><td class="s">Sets up timing statistics class.</td></tr>
+<tr><td class="h"><a name="2884"></a>2884</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2885"></a>2885</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2886"></a>2886</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2887"></a>2887</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 17.3ms (32&micro;s+17.3) within Catalyst::setup_stats which was called:
+#    once (32&micro;s+17.3ms) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1101">line 1101</a></div></div>sub setup_stats {</td></tr>
+<tr><td class="h"><a name="2888"></a>2888</td><td class="c0">4</td><td class="c3"><span title="Avg 6&micro;s">26&micro;s</span></td><td></td><td></td><td class="s">    my ( $class, $stats ) = @_;</td></tr>
+<tr><td class="h"><a name="2889"></a>2889</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2890"></a>2890</td><td></td><td></td><td class="c3">2</td><td class="c0">17.2ms</td><td class="s">    Catalyst::Utils::ensure_class_loaded($class-&gt;stats_class);<div class="calls"><div class="calls_out">    # spent  17.2ms making 1 call to <a href="Catalyst-Utils-pm-574-sub.html#281">Catalyst::Utils::ensure_class_loaded</a>
+    # spent    36&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::_stats_class_accessor</a></div></div></td></tr>
+<tr><td class="h"><a name="2891"></a>2891</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2892"></a>2892</td><td></td><td></td><td class="c3">1</td><td class="c3">28&micro;s</td><td class="s">    my $env = Catalyst::Utils::env_value( $class, 'STATS' );<div class="calls"><div class="calls_out">    # spent    28&micro;s making 1 call to <a href="Catalyst-Utils-pm-574-sub.html#354">Catalyst::Utils::env_value</a></div></div></td></tr>
+<tr><td class="h"><a name="2893"></a>2893</td><td></td><td></td><td class="c3">1</td><td class="c3">2&micro;s</td><td class="s">    if ( defined($env) ? $env : ($stats || $class-&gt;debug ) ) {<div class="calls"><div class="calls_out">    # spent     2&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#989">Catalyst::debug</a></div></div></td></tr>
+<tr><td class="h"><a name="2894"></a>2894</td><td></td><td></td><td></td><td></td><td class="s">        Class::MOP::get_metaclass_by_name($class)-&gt;add_method('use_stats' =&gt; sub { 1 });</td></tr>
+<tr><td class="h"><a name="2895"></a>2895</td><td></td><td></td><td></td><td></td><td class="s">        $class-&gt;log-&gt;debug('Statistics enabled');</td></tr>
+<tr><td class="h"><a name="2896"></a>2896</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2897"></a>2897</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2898"></a>2898</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2899"></a>2899</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2900"></a>2900</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;registered_plugins</td></tr>
+<tr><td class="h"><a name="2901"></a>2901</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2902"></a>2902</td><td></td><td></td><td></td><td></td><td class="s">Returns a sorted list of the plugins which have either been stated in the</td></tr>
+<tr><td class="h"><a name="2903"></a>2903</td><td></td><td></td><td></td><td></td><td class="s">import list.</td></tr>
+<tr><td class="h"><a name="2904"></a>2904</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2905"></a>2905</td><td></td><td></td><td></td><td></td><td class="s">If passed a given plugin name, it will report a boolean value indicating</td></tr>
+<tr><td class="h"><a name="2906"></a>2906</td><td></td><td></td><td></td><td></td><td class="s">whether or not that plugin is loaded.  A fully qualified name is required if</td></tr>
+<tr><td class="h"><a name="2907"></a>2907</td><td></td><td></td><td></td><td></td><td class="s">the plugin name does not begin with C&lt;Catalyst::Plugin::&gt;.</td></tr>
+<tr><td class="h"><a name="2908"></a>2908</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2909"></a>2909</td><td></td><td></td><td></td><td></td><td class="s"> if ($c-&gt;registered_plugins('Some::Plugin')) {</td></tr>
+<tr><td class="h"><a name="2910"></a>2910</td><td></td><td></td><td></td><td></td><td class="s">     ...</td></tr>
+<tr><td class="h"><a name="2911"></a>2911</td><td></td><td></td><td></td><td></td><td class="s"> }</td></tr>
+<tr><td class="h"><a name="2912"></a>2912</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2913"></a>2913</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="2914"></a>2914</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2915"></a>2915</td><td></td><td></td><td></td><td></td><td class="s">{</td></tr>
+<tr><td class="h"><a name="2916"></a>2916</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2917"></a>2917</td><td class="c3">1</td><td class="c3"><span title="Avg 900ns">900ns</span></td><td></td><td></td><td class="s">    sub registered_plugins {</td></tr>
+<tr><td class="h"><a name="2918"></a>2918</td><td></td><td></td><td></td><td></td><td class="s">        my $proto = shift;</td></tr>
+<tr><td class="h"><a name="2919"></a>2919</td><td></td><td></td><td></td><td></td><td class="s">        return sort keys %{ $proto-&gt;_plugins } unless @_;</td></tr>
+<tr><td class="h"><a name="2920"></a>2920</td><td></td><td></td><td></td><td></td><td class="s">        my $plugin = shift;</td></tr>
+<tr><td class="h"><a name="2921"></a>2921</td><td></td><td></td><td></td><td></td><td class="s">        return 1 if exists $proto-&gt;_plugins-&gt;{$plugin};</td></tr>
+<tr><td class="h"><a name="2922"></a>2922</td><td></td><td></td><td></td><td></td><td class="s">        return exists $proto-&gt;_plugins-&gt;{&quot;Catalyst::Plugin::$plugin&quot;};</td></tr>
+<tr><td class="h"><a name="2923"></a>2923</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2924"></a>2924</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2925"></a>2925</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 7.40ms (114&micro;s+7.29) within Catalyst::_register_plugin which was called 2 times, avg 3.70ms/call:
+# 2 times (114&micro;s+7.29ms) by Catalyst::setup_plugins at <a href="Catalyst-pm-381-sub.html#2965">line 2965</a>, avg 3.70ms/call</div></div>    sub _register_plugin {</td></tr>
+<tr><td class="h"><a name="2926"></a>2926</td><td class="c0">22</td><td class="c1"><span title="Avg 4&micro;s">97&micro;s</span></td><td></td><td></td><td class="s">        my ( $proto, $plugin, $instant ) = @_;</td></tr>
+<tr><td class="h"><a name="2927"></a>2927</td><td></td><td></td><td></td><td></td><td class="s">        my $class = ref $proto || $proto;</td></tr>
+<tr><td class="h"><a name="2928"></a>2928</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2929"></a>2929</td><td></td><td></td><td class="c3">2</td><td class="c3">5&micro;s</td><td class="s">        Class::MOP::load_class( $plugin );<div class="calls"><div class="calls_out">        # spent     5&micro;s making 2 calls to <a href="Class-MOP-pm-83-sub.html#76">Class::MOP::load_class</a>, avg 3&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2930"></a>2930</td><td></td><td></td><td class="c3">2</td><td class="c3">5&micro;s</td><td class="s">        $class-&gt;log-&gt;warn( &quot;$plugin inherits from 'Catalyst::Component' - this is deprecated and will not work in 5.81&quot; )<div class="calls"><div class="calls_out">        # spent     5&micro;s making 2 calls to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__isa">UNIVERSAL::isa</a>, avg 2&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2931"></a>2931</td><td></td><td></td><td></td><td></td><td class="s">            if $plugin-&gt;isa( 'Catalyst::Component' );</td></tr>
+<tr><td class="h"><a name="2932"></a>2932</td><td></td><td></td><td class="c3">2</td><td class="c0">3.35ms</td><td class="s">        my $plugin_meta = Moose::Meta::Class-&gt;create($plugin);<div class="calls"><div class="calls_out">        # spent  3.35ms making 2 calls to <a href="Moose-Meta-Class-pm-136-sub.html#88">Moose::Meta::Class::create</a>, avg 1.67ms/call</div></div></td></tr>
+<tr><td class="h"><a name="2933"></a>2933</td><td></td><td></td><td class="c0">6</td><td class="c3">48&micro;s</td><td class="s">        if (!$plugin_meta-&gt;has_method('new')<div class="calls"><div class="calls_out">        # spent    43&micro;s making 2 calls to <a href="Class-MOP-Mixin-HasMethods-pm-91-sub.html#101">Class::MOP::Mixin::HasMethods::has_method</a>, avg 21&micro;s/call
+        # spent     6&micro;s making 4 calls to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__isa">UNIVERSAL::isa</a>, avg 1&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2934"></a>2934</td><td></td><td></td><td></td><td></td><td class="s">            &amp;&amp; ( $plugin-&gt;isa('Class::Accessor::Fast') || $plugin-&gt;isa('Class::Accessor') ) ) {</td></tr>
+<tr><td class="h"><a name="2935"></a>2935</td><td></td><td></td><td></td><td></td><td class="s">            $plugin_meta-&gt;add_method('new', Moose::Object-&gt;meta-&gt;get_method('new'))</td></tr>
+<tr><td class="h"><a name="2936"></a>2936</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="2937"></a>2937</td><td></td><td></td><td class="c3">2</td><td class="c3">34&micro;s</td><td class="s">        if (!$instant &amp;&amp; !$proto-&gt;_plugins-&gt;{$plugin}) {<div class="calls"><div class="calls_out">        # spent    34&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Component::__plugins_accessor</a>, avg 17&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2938"></a>2938</td><td></td><td></td><td class="c3">2</td><td class="c3">2&micro;s</td><td class="s">            my $meta = Class::MOP::get_metaclass_by_name($class);<div class="calls"><div class="calls_out">            # spent     2&micro;s making 2 calls to <a href="Class-MOP-pm-83-sub.html#55">Class::MOP::get_metaclass_by_name</a>, avg 1&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2939"></a>2939</td><td></td><td></td><td class="c0">4</td><td class="c0">3.74ms</td><td class="s">            $meta-&gt;superclasses($plugin, $meta-&gt;superclasses);<div class="calls"><div class="calls_out">            # spent  3.74ms making 4 calls to <a href="Moose-Meta-Class-pm-136-sub.html#549">Moose::Meta::Class::superclasses</a>, avg 935&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2940"></a>2940</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="2941"></a>2941</td><td></td><td></td><td class="c3">2</td><td class="c3">37&micro;s</td><td class="s">        $proto-&gt;_plugins-&gt;{$plugin} = 1;<div class="calls"><div class="calls_out">        # spent    37&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Component::__plugins_accessor</a>, avg 19&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2942"></a>2942</td><td></td><td></td><td></td><td></td><td class="s">        return $class;</td></tr>
+<tr><td class="h"><a name="2943"></a>2943</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2944"></a>2944</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2945"></a>2945</td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 103ms (197&micro;s+103) within Catalyst::setup_plugins which was called:
+#    once (197&micro;s+103ms) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1095">line 1095</a></div></div>    sub setup_plugins {</td></tr>
+<tr><td class="h"><a name="2946"></a>2946</td><td class="c0">18</td><td class="c0"><span title="Avg 9&micro;s">163&micro;s</span></td><td></td><td></td><td class="s">        my ( $class, $plugins ) = @_;</td></tr>
+<tr><td class="h"><a name="2947"></a>2947</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2948"></a>2948</td><td></td><td></td><td class="c3">2</td><td class="c3">55&micro;s</td><td class="s">        $class-&gt;_plugins( {} ) unless $class-&gt;_plugins;<div class="calls"><div class="calls_out">        # spent    55&micro;s making 2 calls to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::Component::__plugins_accessor</a>, avg 28&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2949"></a>2949</td><td></td><td></td><td class="c3">1</td><td class="c3">34&micro;s</td><td class="s">        $plugins = Data::OptList::mkopt($plugins || []);<div class="calls"><div class="calls_out">        # spent    34&micro;s making 1 call to <a href="Data-OptList-pm-69-sub.html#36">Data::OptList::mkopt</a></div></div></td></tr>
+<tr><td class="h"><a name="2950"></a>2950</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2951"></a>2951</td><td></td><td></td><td></td><td></td><td class="s">        my @plugins = map {</td></tr>
+<tr><td class="h"><a name="2952"></a>2952</td><td></td><td></td><td></td><td></td><td class="s">            [ Catalyst::Utils::resolve_namespace(</td></tr>
+<tr><td class="h"><a name="2953"></a>2953</td><td></td><td></td><td></td><td></td><td class="s">                  $class . '::Plugin',</td></tr>
+<tr><td class="h"><a name="2954"></a>2954</td><td></td><td></td><td></td><td></td><td class="s">                  'Catalyst::Plugin', $_-&gt;[0]</td></tr>
+<tr><td class="h"><a name="2955"></a>2955</td><td></td><td></td><td></td><td></td><td class="s">              ),</td></tr>
+<tr><td class="h"><a name="2956"></a>2956</td><td></td><td></td><td></td><td></td><td class="s">              $_-&gt;[1],</td></tr>
+<tr><td class="h"><a name="2957"></a>2957</td><td></td><td></td><td></td><td></td><td class="s">            ]</td></tr>
+<tr><td class="h"><a name="2958"></a>2958</td><td></td><td></td><td class="c1">3</td><td class="c3">164&micro;s</td><td class="s">         } @{ $plugins };<div class="calls"><div class="calls_out">         # spent   164&micro;s making 3 calls to <a href="Catalyst-Utils-pm-574-sub.html#420">Catalyst::Utils::resolve_namespace</a>, avg 55&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2959"></a>2959</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2960"></a>2960</td><td></td><td></td><td></td><td></td><td class="s">        for my $plugin ( reverse @plugins ) {</td></tr>
+<tr><td class="h"><a name="2961"></a>2961</td><td></td><td></td><td class="c1">3</td><td class="c3">9&micro;s</td><td class="s">            Class::MOP::load_class($plugin-&gt;[0], $plugin-&gt;[1]);<div class="calls"><div class="calls_out">            # spent     9&micro;s making 3 calls to <a href="Class-MOP-pm-83-sub.html#76">Class::MOP::load_class</a>, avg 3&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2962"></a>2962</td><td></td><td></td><td class="c1">3</td><td class="c3">36&micro;s</td><td class="s">            my $meta = find_meta($plugin-&gt;[0]);<div class="calls"><div class="calls_out">            # spent    36&micro;s making 3 calls to <a href="Moose-Util-pm-158-sub.html#47">Moose::Util::find_meta</a>, avg 12&micro;s/call</div></div></td></tr>
+<tr><td class="h"><a name="2963"></a>2963</td><td></td><td></td><td class="c3">1</td><td class="c3">1&micro;s</td><td class="s">            next if $meta &amp;&amp; $meta-&gt;isa('Moose::Meta::Role');<div class="calls"><div class="calls_out">            # spent     1&micro;s making 1 call to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__isa">UNIVERSAL::isa</a></div></div></td></tr>
+<tr><td class="h"><a name="2964"></a>2964</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2965"></a>2965</td><td></td><td></td><td class="c3">2</td><td class="c0">7.40ms</td><td class="s">            $class-&gt;_register_plugin($plugin-&gt;[0]);<div class="calls"><div class="calls_out">            # spent  7.40ms making 2 calls to <a href="Catalyst-pm-381-sub.html#2925">Catalyst::_register_plugin</a>, avg 3.70ms/call</div></div></td></tr>
+<tr><td class="h"><a name="2966"></a>2966</td><td></td><td></td><td></td><td></td><td class="s">        }</td></tr>
+<tr><td class="h"><a name="2967"></a>2967</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2968"></a>2968</td><td></td><td></td><td></td><td></td><td class="s">        my @roles =</td></tr>
+<tr><td class="h"><a name="2969"></a>2969</td><td></td><td></td><td></td><td></td><td class="s">            map  { $_-&gt;[0]-&gt;name, $_-&gt;[1] }</td></tr>
+<tr><td class="h"><a name="2970"></a>2970</td><td></td><td></td><td></td><td></td><td class="s">            grep { blessed($_-&gt;[0]) &amp;&amp; $_-&gt;[0]-&gt;isa('Moose::Meta::Role') }</td></tr>
+<tr><td class="h"><a name="2971"></a>2971</td><td></td><td></td><td class="c0">10</td><td class="c3">37&micro;s</td><td class="s">            map  { [find_meta($_-&gt;[0]), $_-&gt;[1]] }<div class="calls"><div class="calls_out">            # spent    29&micro;s making 3 calls to <a href="Moose-Util-pm-158-sub.html#47">Moose::Util::find_meta</a>, avg 10&micro;s/call
+            # spent     4&micro;s making 3 calls to <a href="UNIVERSAL-pm-738-sub.html#UNIVERSAL__isa">UNIVERSAL::isa</a>, avg 1&micro;s/call
+            # spent     2&micro;s making 3 calls to <a href="Scalar-Util-pm-63-sub.html#Scalar__Util__blessed">Scalar::Util::blessed</a>, avg 800ns/call
+            # spent     1&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#Class__MOP__Package__name">Class::MOP::Package::name</a></div></div></td></tr>
+<tr><td class="h"><a name="2972"></a>2972</td><td></td><td></td><td></td><td></td><td class="s">            @plugins;</td></tr>
+<tr><td class="h"><a name="2973"></a>2973</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2974"></a>2974</td><td></td><td></td><td class="c3">1</td><td class="c0">16.0ms</td><td class="s">        Moose::Util::apply_all_roles(<div class="calls"><div class="calls_out">        # spent  16.0ms making 1 call to <a href="Moose-Util-pm-158-sub.html#97">Moose::Util::apply_all_roles</a></div></div></td></tr>
+<tr><td class="h"><a name="2975"></a>2975</td><td></td><td></td><td></td><td></td><td class="s">            $class =&gt; @roles</td></tr>
+<tr><td class="h"><a name="2976"></a>2976</td><td></td><td></td><td></td><td></td><td class="s">        ) if @roles;</td></tr>
+<tr><td class="h"><a name="2977"></a>2977</td><td></td><td></td><td></td><td></td><td class="s">    }</td></tr>
+<tr><td class="h"><a name="2978"></a>2978</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="2979"></a>2979</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2980"></a>2980</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;stack</td></tr>
+<tr><td class="h"><a name="2981"></a>2981</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2982"></a>2982</td><td></td><td></td><td></td><td></td><td class="s">Returns an arrayref of the internal execution stack (actions that are</td></tr>
+<tr><td class="h"><a name="2983"></a>2983</td><td></td><td></td><td></td><td></td><td class="s">currently executing).</td></tr>
+<tr><td class="h"><a name="2984"></a>2984</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2985"></a>2985</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;stats</td></tr>
+<tr><td class="h"><a name="2986"></a>2986</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2987"></a>2987</td><td></td><td></td><td></td><td></td><td class="s">Returns the current timing statistics object. By default Catalyst uses</td></tr>
+<tr><td class="h"><a name="2988"></a>2988</td><td></td><td></td><td></td><td></td><td class="s">L&lt;Catalyst::Stats|Catalyst::Stats&gt;, but can be set otherwise with</td></tr>
+<tr><td class="h"><a name="2989"></a>2989</td><td></td><td></td><td></td><td></td><td class="s">L&lt;&lt; stats_class|/&quot;$c-&gt;stats_class&quot; &gt;&gt;.</td></tr>
+<tr><td class="h"><a name="2990"></a>2990</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2991"></a>2991</td><td></td><td></td><td></td><td></td><td class="s">Even if L&lt;&lt; -Stats|/&quot;-Stats&quot; &gt;&gt; is not enabled, the stats object is still</td></tr>
+<tr><td class="h"><a name="2992"></a>2992</td><td></td><td></td><td></td><td></td><td class="s">available. By enabling it with C&lt; $c-&gt;stats-&gt;enabled(1) &gt;, it can be used to</td></tr>
+<tr><td class="h"><a name="2993"></a>2993</td><td></td><td></td><td></td><td></td><td class="s">profile explicitly, although MyApp.pm still won't profile nor output anything</td></tr>
+<tr><td class="h"><a name="2994"></a>2994</td><td></td><td></td><td></td><td></td><td class="s">by itself.</td></tr>
+<tr><td class="h"><a name="2995"></a>2995</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2996"></a>2996</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;stats_class</td></tr>
+<tr><td class="h"><a name="2997"></a>2997</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="2998"></a>2998</td><td></td><td></td><td></td><td></td><td class="s">Returns or sets the stats (timing statistics) class. L&lt;Catalyst::Stats|Catalyst::Stats&gt; is used by default.</td></tr>
+<tr><td class="h"><a name="2999"></a>2999</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3000"></a>3000</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;use_stats</td></tr>
+<tr><td class="h"><a name="3001"></a>3001</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3002"></a>3002</td><td></td><td></td><td></td><td></td><td class="s">Returns 1 when L&lt;&lt; stats collection|/&quot;-Stats&quot; &gt;&gt; is enabled.</td></tr>
+<tr><td class="h"><a name="3003"></a>3003</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3004"></a>3004</td><td></td><td></td><td></td><td></td><td class="s">Note that this is a static method, not an accessor and should be overridden</td></tr>
+<tr><td class="h"><a name="3005"></a>3005</td><td></td><td></td><td></td><td></td><td class="s">by declaring C&lt;sub use_stats { 1 }&gt; in your MyApp.pm, not by calling C&lt;&lt; $c-&gt;use_stats(1) &gt;&gt;.</td></tr>
+<tr><td class="h"><a name="3006"></a>3006</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3007"></a>3007</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="3008"></a>3008</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3009"></a>3009</td><td class="c0">21</td><td class="c3"><span title="Avg 2&micro;s">40&micro;s</span></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 22&micro;s within Catalyst::use_stats which was called 21 times, avg 1&micro;s/call:
+# 9 times (10&micro;s+0s) by Catalyst::execute at <a href="Catalyst-pm-381-sub.html#1670">line 1670</a>, avg 1&micro;s/call
+# 9 times (8&micro;s+0s) by Catalyst::execute at <a href="Catalyst-pm-381-sub.html#1661">line 1661</a>, avg 900ns/call
+# 2 times (3&micro;s+0s) by Catalyst::prepare at <a href="Catalyst-pm-381-sub.html#2004">line 2004</a>, avg 2&micro;s/call
+#    once (800ns+0s) by Catalyst::finalize at <a href="Catalyst-pm-381-sub.html#1803">line 1803</a></div></div>sub use_stats { 0 }</td></tr>
+<tr><td class="h"><a name="3010"></a>3010</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3011"></a>3011</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3012"></a>3012</td><td></td><td></td><td></td><td></td><td class="s">=head2 $c-&gt;write( $data )</td></tr>
+<tr><td class="h"><a name="3013"></a>3013</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3014"></a>3014</td><td></td><td></td><td></td><td></td><td class="s">Writes $data to the output stream. When using this method directly, you</td></tr>
+<tr><td class="h"><a name="3015"></a>3015</td><td></td><td></td><td></td><td></td><td class="s">will need to manually set the C&lt;Content-Length&gt; header to the length of</td></tr>
+<tr><td class="h"><a name="3016"></a>3016</td><td></td><td></td><td></td><td></td><td class="s">your output data, if known.</td></tr>
+<tr><td class="h"><a name="3017"></a>3017</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3018"></a>3018</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="3019"></a>3019</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3020"></a>3020</td><td></td><td></td><td></td><td></td><td class="s">sub write {</td></tr>
+<tr><td class="h"><a name="3021"></a>3021</td><td></td><td></td><td></td><td></td><td class="s">    my $c = shift;</td></tr>
+<tr><td class="h"><a name="3022"></a>3022</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3023"></a>3023</td><td></td><td></td><td></td><td></td><td class="s">    # Finalize headers if someone manually writes output (for compat)</td></tr>
+<tr><td class="h"><a name="3024"></a>3024</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;finalize_headers;</td></tr>
+<tr><td class="h"><a name="3025"></a>3025</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3026"></a>3026</td><td></td><td></td><td></td><td></td><td class="s">    return $c-&gt;response-&gt;write( @_ );</td></tr>
+<tr><td class="h"><a name="3027"></a>3027</td><td></td><td></td><td></td><td></td><td class="s">}</td></tr>
+<tr><td class="h"><a name="3028"></a>3028</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3029"></a>3029</td><td></td><td></td><td></td><td></td><td class="s">=head2 version</td></tr>
+<tr><td class="h"><a name="3030"></a>3030</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3031"></a>3031</td><td></td><td></td><td></td><td></td><td class="s">Returns the Catalyst version number. Mostly useful for &quot;powered by&quot;</td></tr>
+<tr><td class="h"><a name="3032"></a>3032</td><td></td><td></td><td></td><td></td><td class="s">messages in template systems.</td></tr>
+<tr><td class="h"><a name="3033"></a>3033</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3034"></a>3034</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="3035"></a>3035</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3036"></a>3036</td><td></td><td></td><td></td><td></td><td class="s">sub version { return $Catalyst::VERSION }</td></tr>
+<tr><td class="h"><a name="3037"></a>3037</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3038"></a>3038</td><td></td><td></td><td></td><td></td><td class="s">=head1 CONFIGURATION</td></tr>
+<tr><td class="h"><a name="3039"></a>3039</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3040"></a>3040</td><td></td><td></td><td></td><td></td><td class="s">There are a number of 'base' config variables which can be set:</td></tr>
+<tr><td class="h"><a name="3041"></a>3041</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3042"></a>3042</td><td></td><td></td><td></td><td></td><td class="s">=over</td></tr>
+<tr><td class="h"><a name="3043"></a>3043</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3044"></a>3044</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3045"></a>3045</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3046"></a>3046</td><td></td><td></td><td></td><td></td><td class="s">C&lt;default_model&gt; - The default model picked if you say C&lt;&lt; $c-&gt;model &gt;&gt;. See L&lt;&lt; /$c-&gt;model($name) &gt;&gt;.</td></tr>
+<tr><td class="h"><a name="3047"></a>3047</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3048"></a>3048</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3049"></a>3049</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3050"></a>3050</td><td></td><td></td><td></td><td></td><td class="s">C&lt;default_view&gt; - The default view to be rendered or returned when C&lt;&lt; $c-&gt;view &gt;&gt; is called. See L&lt;&lt; /$c-&gt;view($name) &gt;&gt;.</td></tr>
+<tr><td class="h"><a name="3051"></a>3051</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3052"></a>3052</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3053"></a>3053</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3054"></a>3054</td><td></td><td></td><td></td><td></td><td class="s">C&lt;disable_component_resolution_regex_fallback&gt; - Turns</td></tr>
+<tr><td class="h"><a name="3055"></a>3055</td><td></td><td></td><td></td><td></td><td class="s">off the deprecated component resolution functionality so</td></tr>
+<tr><td class="h"><a name="3056"></a>3056</td><td></td><td></td><td></td><td></td><td class="s">that if any of the component methods (e.g. C&lt;&lt; $c-&gt;controller('Foo') &gt;&gt;)</td></tr>
+<tr><td class="h"><a name="3057"></a>3057</td><td></td><td></td><td></td><td></td><td class="s">are called then regex search will not be attempted on string values and</td></tr>
+<tr><td class="h"><a name="3058"></a>3058</td><td></td><td></td><td></td><td></td><td class="s">instead C&lt;undef&gt; will be returned.</td></tr>
+<tr><td class="h"><a name="3059"></a>3059</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3060"></a>3060</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3061"></a>3061</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3062"></a>3062</td><td></td><td></td><td></td><td></td><td class="s">C&lt;home&gt; - The application home directory. In an uninstalled application,</td></tr>
+<tr><td class="h"><a name="3063"></a>3063</td><td></td><td></td><td></td><td></td><td class="s">this is the top level application directory. In an installed application,</td></tr>
+<tr><td class="h"><a name="3064"></a>3064</td><td></td><td></td><td></td><td></td><td class="s">this will be the directory containing C&lt;&lt; MyApp.pm &gt;&gt;.</td></tr>
+<tr><td class="h"><a name="3065"></a>3065</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3066"></a>3066</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3067"></a>3067</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3068"></a>3068</td><td></td><td></td><td></td><td></td><td class="s">C&lt;ignore_frontend_proxy&gt; - See L&lt;/PROXY SUPPORT&gt;</td></tr>
+<tr><td class="h"><a name="3069"></a>3069</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3070"></a>3070</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3071"></a>3071</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3072"></a>3072</td><td></td><td></td><td></td><td></td><td class="s">C&lt;name&gt; - The name of the application in debug messages and the debug and</td></tr>
+<tr><td class="h"><a name="3073"></a>3073</td><td></td><td></td><td></td><td></td><td class="s">welcome screens</td></tr>
+<tr><td class="h"><a name="3074"></a>3074</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3075"></a>3075</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3076"></a>3076</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3077"></a>3077</td><td></td><td></td><td></td><td></td><td class="s">C&lt;parse_on_demand&gt; - The request body (for example file uploads) will not be parsed</td></tr>
+<tr><td class="h"><a name="3078"></a>3078</td><td></td><td></td><td></td><td></td><td class="s">until it is accessed. This allows you to (for example) check authentication (and reject</td></tr>
+<tr><td class="h"><a name="3079"></a>3079</td><td></td><td></td><td></td><td></td><td class="s">the upload) before actually receiving all the data. See L&lt;/ON-DEMAND PARSER&gt;</td></tr>
+<tr><td class="h"><a name="3080"></a>3080</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3081"></a>3081</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3082"></a>3082</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3083"></a>3083</td><td></td><td></td><td></td><td></td><td class="s">C&lt;root&gt; - The root directory for templates. Usually this is just a</td></tr>
+<tr><td class="h"><a name="3084"></a>3084</td><td></td><td></td><td></td><td></td><td class="s">subdirectory of the home directory, but you can set it to change the</td></tr>
+<tr><td class="h"><a name="3085"></a>3085</td><td></td><td></td><td></td><td></td><td class="s">templates to a different directory.</td></tr>
+<tr><td class="h"><a name="3086"></a>3086</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3087"></a>3087</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3088"></a>3088</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3089"></a>3089</td><td></td><td></td><td></td><td></td><td class="s">C&lt;search_extra&gt; - Array reference passed to Module::Pluggable to for additional</td></tr>
+<tr><td class="h"><a name="3090"></a>3090</td><td></td><td></td><td></td><td></td><td class="s">namespaces from which components will be loaded (and constructed and stored in</td></tr>
+<tr><td class="h"><a name="3091"></a>3091</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $c-&gt;components &gt;&gt;).</td></tr>
+<tr><td class="h"><a name="3092"></a>3092</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3093"></a>3093</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3094"></a>3094</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3095"></a>3095</td><td></td><td></td><td></td><td></td><td class="s">C&lt;show_internal_actions&gt; - If true, causes internal actions such as C&lt;&lt; _DISPATCH &gt;&gt;</td></tr>
+<tr><td class="h"><a name="3096"></a>3096</td><td></td><td></td><td></td><td></td><td class="s">to be shown in hit debug tables in the test server.</td></tr>
+<tr><td class="h"><a name="3097"></a>3097</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3098"></a>3098</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3099"></a>3099</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3100"></a>3100</td><td></td><td></td><td></td><td></td><td class="s">C&lt;use_request_uri_for_path&gt; - Controls if the C&lt;REQUEST_URI&gt; or C&lt;PATH_INFO&gt; environment</td></tr>
+<tr><td class="h"><a name="3101"></a>3101</td><td></td><td></td><td></td><td></td><td class="s">variable should be used for determining the request path. </td></tr>
+<tr><td class="h"><a name="3102"></a>3102</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3103"></a>3103</td><td></td><td></td><td></td><td></td><td class="s">Most web server environments pass the requested path to the application using environment variables,</td></tr>
+<tr><td class="h"><a name="3104"></a>3104</td><td></td><td></td><td></td><td></td><td class="s">from which Catalyst has to reconstruct the request base (i.e. the top level path to / in the application,</td></tr>
+<tr><td class="h"><a name="3105"></a>3105</td><td></td><td></td><td></td><td></td><td class="s">exposed as C&lt;&lt; $c-&gt;request-&gt;base &gt;&gt;) and the request path below that base.</td></tr>
+<tr><td class="h"><a name="3106"></a>3106</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3107"></a>3107</td><td></td><td></td><td></td><td></td><td class="s">There are two methods of doing this, both of which have advantages and disadvantages. Which method is used</td></tr>
+<tr><td class="h"><a name="3108"></a>3108</td><td></td><td></td><td></td><td></td><td class="s">is determined by the C&lt;&lt; $c-&gt;config(use_request_uri_for_path) &gt;&gt; setting (which can either be true or false).</td></tr>
+<tr><td class="h"><a name="3109"></a>3109</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3110"></a>3110</td><td></td><td></td><td></td><td></td><td class="s">=over</td></tr>
+<tr><td class="h"><a name="3111"></a>3111</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3112"></a>3112</td><td></td><td></td><td></td><td></td><td class="s">=item use_request_uri_for_path =&gt; 0</td></tr>
+<tr><td class="h"><a name="3113"></a>3113</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3114"></a>3114</td><td></td><td></td><td></td><td></td><td class="s">This is the default (and the) traditional method that Catalyst has used for determining the path information.</td></tr>
+<tr><td class="h"><a name="3115"></a>3115</td><td></td><td></td><td></td><td></td><td class="s">The path is generated from a combination of the C&lt;PATH_INFO&gt; and C&lt;SCRIPT_NAME&gt; environment variables.</td></tr>
+<tr><td class="h"><a name="3116"></a>3116</td><td></td><td></td><td></td><td></td><td class="s">The allows the application to behave correctly when C&lt;mod_rewrite&gt; is being used to redirect requests</td></tr>
+<tr><td class="h"><a name="3117"></a>3117</td><td></td><td></td><td></td><td></td><td class="s">into the application, as these variables are adjusted by mod_rewrite to take account for the redirect.</td></tr>
+<tr><td class="h"><a name="3118"></a>3118</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3119"></a>3119</td><td></td><td></td><td></td><td></td><td class="s">However this method has the major disadvantage that it is impossible to correctly decode some elements</td></tr>
+<tr><td class="h"><a name="3120"></a>3120</td><td></td><td></td><td></td><td></td><td class="s">of the path, as RFC 3875 says: &quot;C&lt;&lt; Unlike a URI path, the PATH_INFO is not URL-encoded, and cannot</td></tr>
+<tr><td class="h"><a name="3121"></a>3121</td><td></td><td></td><td></td><td></td><td class="s">contain path-segment parameters. &gt;&gt;&quot; This means PATH_INFO is B&lt;always&gt; decoded, and therefore Catalyst</td></tr>
+<tr><td class="h"><a name="3122"></a>3122</td><td></td><td></td><td></td><td></td><td class="s">can't distinguish / vs %2F in paths (in addition to other encoded values).</td></tr>
+<tr><td class="h"><a name="3123"></a>3123</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3124"></a>3124</td><td></td><td></td><td></td><td></td><td class="s">=item use_request_uri_for_path =&gt; 1</td></tr>
+<tr><td class="h"><a name="3125"></a>3125</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3126"></a>3126</td><td></td><td></td><td></td><td></td><td class="s">This method uses the C&lt;REQUEST_URI&gt; and C&lt;SCRIPT_NAME&gt; environment variables. As C&lt;REQUEST_URI&gt; is never</td></tr>
+<tr><td class="h"><a name="3127"></a>3127</td><td></td><td></td><td></td><td></td><td class="s">decoded, this means that applications using this mode can correctly handle URIs including the %2F character</td></tr>
+<tr><td class="h"><a name="3128"></a>3128</td><td></td><td></td><td></td><td></td><td class="s">(i.e. with C&lt;AllowEncodedSlashes&gt; set to C&lt;On&gt; in Apache).</td></tr>
+<tr><td class="h"><a name="3129"></a>3129</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3130"></a>3130</td><td></td><td></td><td></td><td></td><td class="s">Given that this method of path resolution is provably more correct, it is recommended that you use</td></tr>
+<tr><td class="h"><a name="3131"></a>3131</td><td></td><td></td><td></td><td></td><td class="s">this unless you have a specific need to deploy your application in a non-standard environment, and you are</td></tr>
+<tr><td class="h"><a name="3132"></a>3132</td><td></td><td></td><td></td><td></td><td class="s">aware of the implications of not being able to handle encoded URI paths correctly.</td></tr>
+<tr><td class="h"><a name="3133"></a>3133</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3134"></a>3134</td><td></td><td></td><td></td><td></td><td class="s">However it also means that in a number of cases when the app isn't installed directly at a path, but instead</td></tr>
+<tr><td class="h"><a name="3135"></a>3135</td><td></td><td></td><td></td><td></td><td class="s">is having paths rewritten into it (e.g. as a .cgi/fcgi in a public_html directory, with mod_rewrite in a</td></tr>
+<tr><td class="h"><a name="3136"></a>3136</td><td></td><td></td><td></td><td></td><td class="s">.htaccess file, or when SSI is used to rewrite pages into the app, or when sub-paths of the app are exposed</td></tr>
+<tr><td class="h"><a name="3137"></a>3137</td><td></td><td></td><td></td><td></td><td class="s">at other URIs than that which the app is 'normally' based at with C&lt;mod_rewrite&gt;), the resolution of</td></tr>
+<tr><td class="h"><a name="3138"></a>3138</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $c-&gt;request-&gt;base &gt;&gt; will be incorrect.</td></tr>
+<tr><td class="h"><a name="3139"></a>3139</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3140"></a>3140</td><td></td><td></td><td></td><td></td><td class="s">=back</td></tr>
+<tr><td class="h"><a name="3141"></a>3141</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3142"></a>3142</td><td></td><td></td><td></td><td></td><td class="s">=item *</td></tr>
+<tr><td class="h"><a name="3143"></a>3143</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3144"></a>3144</td><td></td><td></td><td></td><td></td><td class="s">C&lt;using_frontend_proxy&gt; - See L&lt;/PROXY SUPPORT&gt;.</td></tr>
+<tr><td class="h"><a name="3145"></a>3145</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3146"></a>3146</td><td></td><td></td><td></td><td></td><td class="s">=back</td></tr>
+<tr><td class="h"><a name="3147"></a>3147</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3148"></a>3148</td><td></td><td></td><td></td><td></td><td class="s">=head1 INTERNAL ACTIONS</td></tr>
+<tr><td class="h"><a name="3149"></a>3149</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3150"></a>3150</td><td></td><td></td><td></td><td></td><td class="s">Catalyst uses internal actions like C&lt;_DISPATCH&gt;, C&lt;_BEGIN&gt;, C&lt;_AUTO&gt;,</td></tr>
+<tr><td class="h"><a name="3151"></a>3151</td><td></td><td></td><td></td><td></td><td class="s">C&lt;_ACTION&gt;, and C&lt;_END&gt;. These are by default not shown in the private</td></tr>
+<tr><td class="h"><a name="3152"></a>3152</td><td></td><td></td><td></td><td></td><td class="s">action table, but you can make them visible with a config parameter.</td></tr>
+<tr><td class="h"><a name="3153"></a>3153</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3154"></a>3154</td><td></td><td></td><td></td><td></td><td class="s">    MyApp-&gt;config(show_internal_actions =&gt; 1);</td></tr>
+<tr><td class="h"><a name="3155"></a>3155</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3156"></a>3156</td><td></td><td></td><td></td><td></td><td class="s">=head1 ON-DEMAND PARSER</td></tr>
+<tr><td class="h"><a name="3157"></a>3157</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3158"></a>3158</td><td></td><td></td><td></td><td></td><td class="s">The request body is usually parsed at the beginning of a request,</td></tr>
+<tr><td class="h"><a name="3159"></a>3159</td><td></td><td></td><td></td><td></td><td class="s">but if you want to handle input yourself, you can enable on-demand</td></tr>
+<tr><td class="h"><a name="3160"></a>3160</td><td></td><td></td><td></td><td></td><td class="s">parsing with a config parameter.</td></tr>
+<tr><td class="h"><a name="3161"></a>3161</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3162"></a>3162</td><td></td><td></td><td></td><td></td><td class="s">    MyApp-&gt;config(parse_on_demand =&gt; 1);</td></tr>
+<tr><td class="h"><a name="3163"></a>3163</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3164"></a>3164</td><td></td><td></td><td></td><td></td><td class="s">=head1 PROXY SUPPORT</td></tr>
+<tr><td class="h"><a name="3165"></a>3165</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3166"></a>3166</td><td></td><td></td><td></td><td></td><td class="s">Many production servers operate using the common double-server approach,</td></tr>
+<tr><td class="h"><a name="3167"></a>3167</td><td></td><td></td><td></td><td></td><td class="s">with a lightweight frontend web server passing requests to a larger</td></tr>
+<tr><td class="h"><a name="3168"></a>3168</td><td></td><td></td><td></td><td></td><td class="s">backend server. An application running on the backend server must deal</td></tr>
+<tr><td class="h"><a name="3169"></a>3169</td><td></td><td></td><td></td><td></td><td class="s">with two problems: the remote user always appears to be C&lt;127.0.0.1&gt; and</td></tr>
+<tr><td class="h"><a name="3170"></a>3170</td><td></td><td></td><td></td><td></td><td class="s">the server's hostname will appear to be C&lt;localhost&gt; regardless of the</td></tr>
+<tr><td class="h"><a name="3171"></a>3171</td><td></td><td></td><td></td><td></td><td class="s">virtual host that the user connected through.</td></tr>
+<tr><td class="h"><a name="3172"></a>3172</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3173"></a>3173</td><td></td><td></td><td></td><td></td><td class="s">Catalyst will automatically detect this situation when you are running</td></tr>
+<tr><td class="h"><a name="3174"></a>3174</td><td></td><td></td><td></td><td></td><td class="s">the frontend and backend servers on the same machine. The following</td></tr>
+<tr><td class="h"><a name="3175"></a>3175</td><td></td><td></td><td></td><td></td><td class="s">changes are made to the request.</td></tr>
+<tr><td class="h"><a name="3176"></a>3176</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3177"></a>3177</td><td></td><td></td><td></td><td></td><td class="s">    $c-&gt;req-&gt;address is set to the user's real IP address, as read from</td></tr>
+<tr><td class="h"><a name="3178"></a>3178</td><td></td><td></td><td></td><td></td><td class="s">    the HTTP X-Forwarded-For header.</td></tr>
+<tr><td class="h"><a name="3179"></a>3179</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3180"></a>3180</td><td></td><td></td><td></td><td></td><td class="s">    The host value for $c-&gt;req-&gt;base and $c-&gt;req-&gt;uri is set to the real</td></tr>
+<tr><td class="h"><a name="3181"></a>3181</td><td></td><td></td><td></td><td></td><td class="s">    host, as read from the HTTP X-Forwarded-Host header.</td></tr>
+<tr><td class="h"><a name="3182"></a>3182</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3183"></a>3183</td><td></td><td></td><td></td><td></td><td class="s">Additionally, you may be running your backend application on an insecure</td></tr>
+<tr><td class="h"><a name="3184"></a>3184</td><td></td><td></td><td></td><td></td><td class="s">connection (port 80) while your frontend proxy is running under SSL.  If there</td></tr>
+<tr><td class="h"><a name="3185"></a>3185</td><td></td><td></td><td></td><td></td><td class="s">is a discrepancy in the ports, use the HTTP header C&lt;X-Forwarded-Port&gt; to</td></tr>
+<tr><td class="h"><a name="3186"></a>3186</td><td></td><td></td><td></td><td></td><td class="s">tell Catalyst what port the frontend listens on.  This will allow all URIs to</td></tr>
+<tr><td class="h"><a name="3187"></a>3187</td><td></td><td></td><td></td><td></td><td class="s">be created properly.</td></tr>
+<tr><td class="h"><a name="3188"></a>3188</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3189"></a>3189</td><td></td><td></td><td></td><td></td><td class="s">In the case of passing in:</td></tr>
+<tr><td class="h"><a name="3190"></a>3190</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3191"></a>3191</td><td></td><td></td><td></td><td></td><td class="s">    X-Forwarded-Port: 443</td></tr>
+<tr><td class="h"><a name="3192"></a>3192</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3193"></a>3193</td><td></td><td></td><td></td><td></td><td class="s">All calls to C&lt;uri_for&gt; will result in an https link, as is expected.</td></tr>
+<tr><td class="h"><a name="3194"></a>3194</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3195"></a>3195</td><td></td><td></td><td></td><td></td><td class="s">Obviously, your web server must support these headers for this to work.</td></tr>
+<tr><td class="h"><a name="3196"></a>3196</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3197"></a>3197</td><td></td><td></td><td></td><td></td><td class="s">In a more complex server farm environment where you may have your</td></tr>
+<tr><td class="h"><a name="3198"></a>3198</td><td></td><td></td><td></td><td></td><td class="s">frontend proxy server(s) on different machines, you will need to set a</td></tr>
+<tr><td class="h"><a name="3199"></a>3199</td><td></td><td></td><td></td><td></td><td class="s">configuration option to tell Catalyst to read the proxied data from the</td></tr>
+<tr><td class="h"><a name="3200"></a>3200</td><td></td><td></td><td></td><td></td><td class="s">headers.</td></tr>
+<tr><td class="h"><a name="3201"></a>3201</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3202"></a>3202</td><td></td><td></td><td></td><td></td><td class="s">    MyApp-&gt;config(using_frontend_proxy =&gt; 1);</td></tr>
+<tr><td class="h"><a name="3203"></a>3203</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3204"></a>3204</td><td></td><td></td><td></td><td></td><td class="s">If you do not wish to use the proxy support at all, you may set:</td></tr>
+<tr><td class="h"><a name="3205"></a>3205</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3206"></a>3206</td><td></td><td></td><td></td><td></td><td class="s">    MyApp-&gt;config(ignore_frontend_proxy =&gt; 0);</td></tr>
+<tr><td class="h"><a name="3207"></a>3207</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3208"></a>3208</td><td></td><td></td><td></td><td></td><td class="s">=head2 Note about psgi files</td></tr>
+<tr><td class="h"><a name="3209"></a>3209</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3210"></a>3210</td><td></td><td></td><td></td><td></td><td class="s">Note that if you supply your own .psgi file, calling</td></tr>
+<tr><td class="h"><a name="3211"></a>3211</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; MyApp-&gt;psgi_app(@_); &gt;&gt;, then B&lt;this will not happen automatically&gt;.</td></tr>
+<tr><td class="h"><a name="3212"></a>3212</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3213"></a>3213</td><td></td><td></td><td></td><td></td><td class="s">You either need to apply L&lt;Plack::Middleware::ReverseProxy&gt; yourself</td></tr>
+<tr><td class="h"><a name="3214"></a>3214</td><td></td><td></td><td></td><td></td><td class="s">in your psgi, for example:</td></tr>
+<tr><td class="h"><a name="3215"></a>3215</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3216"></a>3216</td><td></td><td></td><td></td><td></td><td class="s">    builder {</td></tr>
+<tr><td class="h"><a name="3217"></a>3217</td><td></td><td></td><td></td><td></td><td class="s">        enable &quot;Plack::Middleware::ReverseProxy&quot;;</td></tr>
+<tr><td class="h"><a name="3218"></a>3218</td><td></td><td></td><td></td><td></td><td class="s">        MyApp-&gt;psgi_app</td></tr>
+<tr><td class="h"><a name="3219"></a>3219</td><td></td><td></td><td></td><td></td><td class="s">    };</td></tr>
+<tr><td class="h"><a name="3220"></a>3220</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3221"></a>3221</td><td></td><td></td><td></td><td></td><td class="s">This will unconditionally add the ReverseProxy support, or you need to call</td></tr>
+<tr><td class="h"><a name="3222"></a>3222</td><td></td><td></td><td></td><td></td><td class="s">C&lt;&lt; $app = MyApp-&gt;apply_default_middlewares($app) &gt;&gt; (to conditionally</td></tr>
+<tr><td class="h"><a name="3223"></a>3223</td><td></td><td></td><td></td><td></td><td class="s">apply the support depending upon your config).</td></tr>
+<tr><td class="h"><a name="3224"></a>3224</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3225"></a>3225</td><td></td><td></td><td></td><td></td><td class="s">See L&lt;Catalyst::PSGI&gt; for more information.</td></tr>
+<tr><td class="h"><a name="3226"></a>3226</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3227"></a>3227</td><td></td><td></td><td></td><td></td><td class="s">=head1 THREAD SAFETY</td></tr>
+<tr><td class="h"><a name="3228"></a>3228</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3229"></a>3229</td><td></td><td></td><td></td><td></td><td class="s">Catalyst has been tested under Apache 2's threading C&lt;mpm_worker&gt;,</td></tr>
+<tr><td class="h"><a name="3230"></a>3230</td><td></td><td></td><td></td><td></td><td class="s">C&lt;mpm_winnt&gt;, and the standalone forking HTTP server on Windows. We</td></tr>
+<tr><td class="h"><a name="3231"></a>3231</td><td></td><td></td><td></td><td></td><td class="s">believe the Catalyst core to be thread-safe.</td></tr>
+<tr><td class="h"><a name="3232"></a>3232</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3233"></a>3233</td><td></td><td></td><td></td><td></td><td class="s">If you plan to operate in a threaded environment, remember that all other</td></tr>
+<tr><td class="h"><a name="3234"></a>3234</td><td></td><td></td><td></td><td></td><td class="s">modules you are using must also be thread-safe. Some modules, most notably</td></tr>
+<tr><td class="h"><a name="3235"></a>3235</td><td></td><td></td><td></td><td></td><td class="s">L&lt;DBD::SQLite&gt;, are not thread-safe.</td></tr>
+<tr><td class="h"><a name="3236"></a>3236</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3237"></a>3237</td><td></td><td></td><td></td><td></td><td class="s">=head1 SUPPORT</td></tr>
+<tr><td class="h"><a name="3238"></a>3238</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3239"></a>3239</td><td></td><td></td><td></td><td></td><td class="s">IRC:</td></tr>
+<tr><td class="h"><a name="3240"></a>3240</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3241"></a>3241</td><td></td><td></td><td></td><td></td><td class="s">    Join #catalyst on irc.perl.org.</td></tr>
+<tr><td class="h"><a name="3242"></a>3242</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3243"></a>3243</td><td></td><td></td><td></td><td></td><td class="s">Mailing Lists:</td></tr>
+<tr><td class="h"><a name="3244"></a>3244</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3245"></a>3245</td><td></td><td></td><td></td><td></td><td class="s">    http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</td></tr>
+<tr><td class="h"><a name="3246"></a>3246</td><td></td><td></td><td></td><td></td><td class="s">    http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev</td></tr>
+<tr><td class="h"><a name="3247"></a>3247</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3248"></a>3248</td><td></td><td></td><td></td><td></td><td class="s">Web:</td></tr>
+<tr><td class="h"><a name="3249"></a>3249</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3250"></a>3250</td><td></td><td></td><td></td><td></td><td class="s">    http://catalyst.perl.org</td></tr>
+<tr><td class="h"><a name="3251"></a>3251</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3252"></a>3252</td><td></td><td></td><td></td><td></td><td class="s">Wiki:</td></tr>
+<tr><td class="h"><a name="3253"></a>3253</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3254"></a>3254</td><td></td><td></td><td></td><td></td><td class="s">    http://dev.catalyst.perl.org</td></tr>
+<tr><td class="h"><a name="3255"></a>3255</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3256"></a>3256</td><td></td><td></td><td></td><td></td><td class="s">=head1 SEE ALSO</td></tr>
+<tr><td class="h"><a name="3257"></a>3257</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3258"></a>3258</td><td></td><td></td><td></td><td></td><td class="s">=head2 L&lt;Task::Catalyst&gt; - All you need to start with Catalyst</td></tr>
+<tr><td class="h"><a name="3259"></a>3259</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3260"></a>3260</td><td></td><td></td><td></td><td></td><td class="s">=head2 L&lt;Catalyst::Manual&gt; - The Catalyst Manual</td></tr>
+<tr><td class="h"><a name="3261"></a>3261</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3262"></a>3262</td><td></td><td></td><td></td><td></td><td class="s">=head2 L&lt;Catalyst::Component&gt;, L&lt;Catalyst::Controller&gt; - Base classes for components</td></tr>
+<tr><td class="h"><a name="3263"></a>3263</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3264"></a>3264</td><td></td><td></td><td></td><td></td><td class="s">=head2 L&lt;Catalyst::Engine&gt; - Core engine</td></tr>
+<tr><td class="h"><a name="3265"></a>3265</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3266"></a>3266</td><td></td><td></td><td></td><td></td><td class="s">=head2 L&lt;Catalyst::Log&gt; - Log class.</td></tr>
+<tr><td class="h"><a name="3267"></a>3267</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3268"></a>3268</td><td></td><td></td><td></td><td></td><td class="s">=head2 L&lt;Catalyst::Request&gt; - Request object</td></tr>
+<tr><td class="h"><a name="3269"></a>3269</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3270"></a>3270</td><td></td><td></td><td></td><td></td><td class="s">=head2 L&lt;Catalyst::Response&gt; - Response object</td></tr>
+<tr><td class="h"><a name="3271"></a>3271</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3272"></a>3272</td><td></td><td></td><td></td><td></td><td class="s">=head2 L&lt;Catalyst::Test&gt; - The test suite.</td></tr>
+<tr><td class="h"><a name="3273"></a>3273</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3274"></a>3274</td><td></td><td></td><td></td><td></td><td class="s">=head1 PROJECT FOUNDER</td></tr>
+<tr><td class="h"><a name="3275"></a>3275</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3276"></a>3276</td><td></td><td></td><td></td><td></td><td class="s">sri: Sebastian Riedel &lt;sri@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3277"></a>3277</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3278"></a>3278</td><td></td><td></td><td></td><td></td><td class="s">=head1 CONTRIBUTORS</td></tr>
+<tr><td class="h"><a name="3279"></a>3279</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3280"></a>3280</td><td></td><td></td><td></td><td></td><td class="s">abw: Andy Wardley</td></tr>
+<tr><td class="h"><a name="3281"></a>3281</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3282"></a>3282</td><td></td><td></td><td></td><td></td><td class="s">acme: Leon Brocard &lt;leon@astray.com&gt;</td></tr>
+<tr><td class="h"><a name="3283"></a>3283</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3284"></a>3284</td><td></td><td></td><td></td><td></td><td class="s">abraxxa: Alexander Hartmaier &lt;abraxxa@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3285"></a>3285</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3286"></a>3286</td><td></td><td></td><td></td><td></td><td class="s">Andrew Bramble</td></tr>
+<tr><td class="h"><a name="3287"></a>3287</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3288"></a>3288</td><td></td><td></td><td></td><td></td><td class="s">Andrew Ford E&lt;lt&gt;A.Ford@ford-mason.co.ukE&lt;gt&gt;</td></tr>
+<tr><td class="h"><a name="3289"></a>3289</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3290"></a>3290</td><td></td><td></td><td></td><td></td><td class="s">Andrew Ruthven</td></tr>
+<tr><td class="h"><a name="3291"></a>3291</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3292"></a>3292</td><td></td><td></td><td></td><td></td><td class="s">andyg: Andy Grundman &lt;andy@hybridized.org&gt;</td></tr>
+<tr><td class="h"><a name="3293"></a>3293</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3294"></a>3294</td><td></td><td></td><td></td><td></td><td class="s">audreyt: Audrey Tang</td></tr>
+<tr><td class="h"><a name="3295"></a>3295</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3296"></a>3296</td><td></td><td></td><td></td><td></td><td class="s">bricas: Brian Cassidy &lt;bricas@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3297"></a>3297</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3298"></a>3298</td><td></td><td></td><td></td><td></td><td class="s">Caelum: Rafael Kitover &lt;rkitover@io.com&gt;</td></tr>
+<tr><td class="h"><a name="3299"></a>3299</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3300"></a>3300</td><td></td><td></td><td></td><td></td><td class="s">chansen: Christian Hansen</td></tr>
+<tr><td class="h"><a name="3301"></a>3301</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3302"></a>3302</td><td></td><td></td><td></td><td></td><td class="s">chicks: Christopher Hicks</td></tr>
+<tr><td class="h"><a name="3303"></a>3303</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3304"></a>3304</td><td></td><td></td><td></td><td></td><td class="s">Chisel Wright C&lt;pause@herlpacker.co.uk&gt;</td></tr>
+<tr><td class="h"><a name="3305"></a>3305</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3306"></a>3306</td><td></td><td></td><td></td><td></td><td class="s">Danijel Milicevic C&lt;me@danijel.de&gt;</td></tr>
+<tr><td class="h"><a name="3307"></a>3307</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3308"></a>3308</td><td></td><td></td><td></td><td></td><td class="s">David Kamholz E&lt;lt&gt;dkamholz@cpan.orgE&lt;gt&gt;</td></tr>
+<tr><td class="h"><a name="3309"></a>3309</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3310"></a>3310</td><td></td><td></td><td></td><td></td><td class="s">David Naughton, C&lt;naughton@umn.edu&gt;</td></tr>
+<tr><td class="h"><a name="3311"></a>3311</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3312"></a>3312</td><td></td><td></td><td></td><td></td><td class="s">David E. Wheeler</td></tr>
+<tr><td class="h"><a name="3313"></a>3313</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3314"></a>3314</td><td></td><td></td><td></td><td></td><td class="s">dhoss: Devin Austin &lt;dhoss@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3315"></a>3315</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3316"></a>3316</td><td></td><td></td><td></td><td></td><td class="s">dkubb: Dan Kubb &lt;dan.kubb-cpan@onautopilot.com&gt;</td></tr>
+<tr><td class="h"><a name="3317"></a>3317</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3318"></a>3318</td><td></td><td></td><td></td><td></td><td class="s">Drew Taylor</td></tr>
+<tr><td class="h"><a name="3319"></a>3319</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3320"></a>3320</td><td></td><td></td><td></td><td></td><td class="s">dwc: Daniel Westermann-Clark &lt;danieltwc@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3321"></a>3321</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3322"></a>3322</td><td></td><td></td><td></td><td></td><td class="s">esskar: Sascha Kiefer</td></tr>
+<tr><td class="h"><a name="3323"></a>3323</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3324"></a>3324</td><td></td><td></td><td></td><td></td><td class="s">fireartist: Carl Franks &lt;cfranks@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3325"></a>3325</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3326"></a>3326</td><td></td><td></td><td></td><td></td><td class="s">frew: Arthur Axel &quot;fREW&quot; Schmidt &lt;frioux@gmail.com&gt;</td></tr>
+<tr><td class="h"><a name="3327"></a>3327</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3328"></a>3328</td><td></td><td></td><td></td><td></td><td class="s">gabb: Danijel Milicevic</td></tr>
+<tr><td class="h"><a name="3329"></a>3329</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3330"></a>3330</td><td></td><td></td><td></td><td></td><td class="s">Gary Ashton Jones</td></tr>
+<tr><td class="h"><a name="3331"></a>3331</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3332"></a>3332</td><td></td><td></td><td></td><td></td><td class="s">Gavin Henry C&lt;ghenry@perl.me.uk&gt;</td></tr>
+<tr><td class="h"><a name="3333"></a>3333</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3334"></a>3334</td><td></td><td></td><td></td><td></td><td class="s">Geoff Richards</td></tr>
+<tr><td class="h"><a name="3335"></a>3335</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3336"></a>3336</td><td></td><td></td><td></td><td></td><td class="s">groditi: Guillermo Roditi &lt;groditi@gmail.com&gt;</td></tr>
+<tr><td class="h"><a name="3337"></a>3337</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3338"></a>3338</td><td></td><td></td><td></td><td></td><td class="s">hobbs: Andrew Rodland &lt;andrew@cleverdomain.org&gt;</td></tr>
+<tr><td class="h"><a name="3339"></a>3339</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3340"></a>3340</td><td></td><td></td><td></td><td></td><td class="s">ilmari: Dagfinn Ilmari Mannsåker &lt;ilmari@ilmari.org&gt;</td></tr>
+<tr><td class="h"><a name="3341"></a>3341</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3342"></a>3342</td><td></td><td></td><td></td><td></td><td class="s">jcamacho: Juan Camacho</td></tr>
+<tr><td class="h"><a name="3343"></a>3343</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3344"></a>3344</td><td></td><td></td><td></td><td></td><td class="s">jester: Jesse Sheidlower C&lt;jester@panix.com&gt;</td></tr>
+<tr><td class="h"><a name="3345"></a>3345</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3346"></a>3346</td><td></td><td></td><td></td><td></td><td class="s">jhannah: Jay Hannah &lt;jay@jays.net&gt;</td></tr>
+<tr><td class="h"><a name="3347"></a>3347</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3348"></a>3348</td><td></td><td></td><td></td><td></td><td class="s">Jody Belka</td></tr>
+<tr><td class="h"><a name="3349"></a>3349</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3350"></a>3350</td><td></td><td></td><td></td><td></td><td class="s">Johan Lindstrom</td></tr>
+<tr><td class="h"><a name="3351"></a>3351</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3352"></a>3352</td><td></td><td></td><td></td><td></td><td class="s">jon: Jon Schutz &lt;jjschutz@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3353"></a>3353</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3354"></a>3354</td><td></td><td></td><td></td><td></td><td class="s">Jonathan Rockway C&lt;&lt; &lt;jrockway@cpan.org&gt; &gt;&gt;</td></tr>
+<tr><td class="h"><a name="3355"></a>3355</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3356"></a>3356</td><td></td><td></td><td></td><td></td><td class="s">Kieren Diment C&lt;kd@totaldatasolution.com&gt;</td></tr>
+<tr><td class="h"><a name="3357"></a>3357</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3358"></a>3358</td><td></td><td></td><td></td><td></td><td class="s">konobi: Scott McWhirter &lt;konobi@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3359"></a>3359</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3360"></a>3360</td><td></td><td></td><td></td><td></td><td class="s">marcus: Marcus Ramberg &lt;mramberg@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3361"></a>3361</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3362"></a>3362</td><td></td><td></td><td></td><td></td><td class="s">miyagawa: Tatsuhiko Miyagawa &lt;miyagawa@bulknews.net&gt;</td></tr>
+<tr><td class="h"><a name="3363"></a>3363</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3364"></a>3364</td><td></td><td></td><td></td><td></td><td class="s">mst: Matt S. Trout &lt;mst@shadowcatsystems.co.uk&gt;</td></tr>
+<tr><td class="h"><a name="3365"></a>3365</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3366"></a>3366</td><td></td><td></td><td></td><td></td><td class="s">mugwump: Sam Vilain</td></tr>
+<tr><td class="h"><a name="3367"></a>3367</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3368"></a>3368</td><td></td><td></td><td></td><td></td><td class="s">naughton: David Naughton</td></tr>
+<tr><td class="h"><a name="3369"></a>3369</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3370"></a>3370</td><td></td><td></td><td></td><td></td><td class="s">ningu: David Kamholz &lt;dkamholz@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3371"></a>3371</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3372"></a>3372</td><td></td><td></td><td></td><td></td><td class="s">nothingmuch: Yuval Kogman &lt;nothingmuch@woobling.org&gt;</td></tr>
+<tr><td class="h"><a name="3373"></a>3373</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3374"></a>3374</td><td></td><td></td><td></td><td></td><td class="s">numa: Dan Sully &lt;daniel@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3375"></a>3375</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3376"></a>3376</td><td></td><td></td><td></td><td></td><td class="s">obra: Jesse Vincent</td></tr>
+<tr><td class="h"><a name="3377"></a>3377</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3378"></a>3378</td><td></td><td></td><td></td><td></td><td class="s">Octavian Rasnita</td></tr>
+<tr><td class="h"><a name="3379"></a>3379</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3380"></a>3380</td><td></td><td></td><td></td><td></td><td class="s">omega: Andreas Marienborg</td></tr>
+<tr><td class="h"><a name="3381"></a>3381</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3382"></a>3382</td><td></td><td></td><td></td><td></td><td class="s">Oleg Kostyuk &lt;cub.uanic@gmail.com&gt;</td></tr>
+<tr><td class="h"><a name="3383"></a>3383</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3384"></a>3384</td><td></td><td></td><td></td><td></td><td class="s">phaylon: Robert Sedlacek &lt;phaylon@dunkelheit.at&gt;</td></tr>
+<tr><td class="h"><a name="3385"></a>3385</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3386"></a>3386</td><td></td><td></td><td></td><td></td><td class="s">rafl: Florian Ragwitz &lt;rafl@debian.org&gt;</td></tr>
+<tr><td class="h"><a name="3387"></a>3387</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3388"></a>3388</td><td></td><td></td><td></td><td></td><td class="s">random: Roland Lammel &lt;lammel@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3389"></a>3389</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3390"></a>3390</td><td></td><td></td><td></td><td></td><td class="s">Robert Sedlacek C&lt;&lt; &lt;rs@474.at&gt; &gt;&gt;</td></tr>
+<tr><td class="h"><a name="3391"></a>3391</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3392"></a>3392</td><td></td><td></td><td></td><td></td><td class="s">SpiceMan: Marcel Montes</td></tr>
+<tr><td class="h"><a name="3393"></a>3393</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3394"></a>3394</td><td></td><td></td><td></td><td></td><td class="s">sky: Arthur Bergman</td></tr>
+<tr><td class="h"><a name="3395"></a>3395</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3396"></a>3396</td><td></td><td></td><td></td><td></td><td class="s">szbalint: Balint Szilakszi &lt;szbalint@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3397"></a>3397</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3398"></a>3398</td><td></td><td></td><td></td><td></td><td class="s">t0m: Tomas Doran &lt;bobtfish@bobtfish.net&gt;</td></tr>
+<tr><td class="h"><a name="3399"></a>3399</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3400"></a>3400</td><td></td><td></td><td></td><td></td><td class="s">Ulf Edvinsson</td></tr>
+<tr><td class="h"><a name="3401"></a>3401</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3402"></a>3402</td><td></td><td></td><td></td><td></td><td class="s">Viljo Marrandi C&lt;vilts@yahoo.com&gt;</td></tr>
+<tr><td class="h"><a name="3403"></a>3403</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3404"></a>3404</td><td></td><td></td><td></td><td></td><td class="s">Will Hawes C&lt;info@whawes.co.uk&gt;</td></tr>
+<tr><td class="h"><a name="3405"></a>3405</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3406"></a>3406</td><td></td><td></td><td></td><td></td><td class="s">willert: Sebastian Willert &lt;willert@cpan.org&gt;</td></tr>
+<tr><td class="h"><a name="3407"></a>3407</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3408"></a>3408</td><td></td><td></td><td></td><td></td><td class="s">wreis: Wallace Reis &lt;wallace@reis.org.br&gt;</td></tr>
+<tr><td class="h"><a name="3409"></a>3409</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3410"></a>3410</td><td></td><td></td><td></td><td></td><td class="s">Yuval Kogman, C&lt;nothingmuch@woobling.org&gt;</td></tr>
+<tr><td class="h"><a name="3411"></a>3411</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3412"></a>3412</td><td></td><td></td><td></td><td></td><td class="s">rainboxx: Matthias Dietrich, C&lt;perl@rainboxx.de&gt;</td></tr>
+<tr><td class="h"><a name="3413"></a>3413</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3414"></a>3414</td><td></td><td></td><td></td><td></td><td class="s">dd070: Dhaval Dhanani &lt;dhaval070@gmail.com&gt;</td></tr>
+<tr><td class="h"><a name="3415"></a>3415</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3416"></a>3416</td><td></td><td></td><td></td><td></td><td class="s">=head1 COPYRIGHT</td></tr>
+<tr><td class="h"><a name="3417"></a>3417</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3418"></a>3418</td><td></td><td></td><td></td><td></td><td class="s">Copyright (c) 2005, the above named PROJECT FOUNDER and CONTRIBUTORS.</td></tr>
+<tr><td class="h"><a name="3419"></a>3419</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3420"></a>3420</td><td></td><td></td><td></td><td></td><td class="s">=head1 LICENSE</td></tr>
+<tr><td class="h"><a name="3421"></a>3421</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3422"></a>3422</td><td></td><td></td><td></td><td></td><td class="s">This library is free software. You can redistribute it and/or modify it under</td></tr>
+<tr><td class="h"><a name="3423"></a>3423</td><td></td><td></td><td></td><td></td><td class="s">the same terms as Perl itself.</td></tr>
+<tr><td class="h"><a name="3424"></a>3424</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3425"></a>3425</td><td></td><td></td><td></td><td></td><td class="s">=cut</td></tr>
+<tr><td class="h"><a name="3426"></a>3426</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3427"></a>3427</td><td class="c3">2</td><td class="c3"><span title="Avg 26&micro;s">51&micro;s</span></td><td class="c3">2</td><td class="c1">248&micro;s</td><td class="s"><div class="calls"><div class="calls_in"># spent 132&micro;s (17+115) within Catalyst::BEGIN@3427 which was called:
+#    once (17&micro;s+115&micro;s) by stemmaweb::BEGIN@19 at <a href="Catalyst-pm-381-sub.html#3427">line 3427</a></div></div>no Moose;<div class="calls"><div class="calls_out"># spent   132&micro;s making 1 call to <a href="Catalyst-pm-381-sub.html#3427">Catalyst::BEGIN@3427</a>
+# spent   116&micro;s making 1 call to <a href="Moose-Exporter-pm-82-sub.html#670">Moose::Exporter::__ANON__[Moose/Exporter.pm:678]</a></div></div></td></tr>
+<tr><td class="h"><a name="3428"></a>3428</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3429"></a>3429</td><td class="c3">1</td><td class="c3"><span title="Avg 5&micro;s">5&micro;s</span></td><td class="c3">2</td><td class="c0">7.21ms</td><td class="s">__PACKAGE__-&gt;meta-&gt;make_immutable;<div class="calls"><div class="calls_out"># spent  7.18ms making 1 call to <a href="Class-MOP-Class-pm-103-sub.html#1280">Class::MOP::Class::make_immutable</a>
+# spent    23&micro;s making 1 call to <a href="Class-MOP-Package-pm-122-sub.html#221">Catalyst::meta</a></div></div></td></tr>
+<tr><td class="h"><a name="3430"></a>3430</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="3431"></a>3431</td><td class="c3">1</td><td class="c0"><span title="Avg 209&micro;s">209&micro;s</span></td><td class="c3">1</td><td class="c2">237&micro;s</td><td class="s">1;<div class="calls"><div class="calls_out"># spent   237&micro;s making 1 call to <a href="B-Hooks-EndOfScope-pm-376-sub.html#26">B::Hooks::EndOfScope::__ANON__[B/Hooks/EndOfScope.pm:26]</a></div></div></td></tr>
+<tr><td class="s"><a name=""></a>&nbsp;</td><td></td><td></td><td></td><td></td><td class="s"></td></tr>
+<tr><td class="h"><a name="Catalyst__CORE_ftdir"></a></td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 126&micro;s (58+68) within Catalyst::CORE:ftdir which was called 2 times, avg 63&micro;s/call:
+# 2 times (58&micro;s+68&micro;s) by Catalyst::path_to at <a href="Catalyst-pm-381-sub.html#1018">line 1018</a>, avg 63&micro;s/call</div></div>sub Catalyst::CORE:ftdir; # opcode<br />        </td></tr>
+<tr><td class="h"><a name="Catalyst__CORE_match"></a></td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 14&micro;s within Catalyst::CORE:match which was called 16 times, avg 875ns/call:
+# 9 times (8&micro;s+0s) by Catalyst::setup_components at <a href="Catalyst-pm-381-sub.html#2494">line 2494</a>, avg 922ns/call
+# 6 times (4&micro;s+0s) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1080">line 1080</a>, avg 650ns/call
+#    once (2&micro;s+0s) by Catalyst::finalize_headers at <a href="Catalyst-pm-381-sub.html#1894">line 1894</a></div></div>sub Catalyst::CORE:match; # opcode<br />        </td></tr>
+<tr><td class="h"><a name="Catalyst__CORE_sort"></a></td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 8&micro;s within Catalyst::CORE:sort which was called 2 times, avg 4&micro;s/call:
+#    once (8&micro;s+0s) by Catalyst::locate_components at <a href="Catalyst-pm-381-sub.html#2547">line 2547</a>
+#    once (600ns+0s) by Catalyst::setup at <a href="Catalyst-pm-381-sub.html#1103">line 1103</a></div></div>sub Catalyst::CORE:sort; # opcode<br />        </td></tr>
+<tr><td class="h"><a name="Catalyst__CORE_subst"></a></td><td></td><td></td><td></td><td></td><td class="s"><div class="calls"><div class="calls_in"># spent 12&micro;s within Catalyst::CORE:subst which was called 8 times, avg 1&micro;s/call:
+# 6 times (10&micro;s+0s) by Catalyst::locate_components at <a href="Catalyst-pm-381-sub.html#2541">line 2541</a>, avg 2&micro;s/call
+#    once (800ns+0s) by Catalyst::setup_log at <a href="Catalyst-pm-381-sub.html#2856">line 2856</a>
+#    once (800ns+0s) by Catalyst::setup_log at <a href="Catalyst-pm-381-sub.html#2855">line 2855</a></div></div>sub Catalyst::CORE:subst; # opcode<br />        </td></tr>
+</tbody></table></div>
+        
+            <script type="text/javascript"> $(document).ready(function() { 
+
+        $("#subs_table").tablesorter({
+            sortList: [[3,1]],
+            headers: {
+                3: { sorter: 'fmt_time' },
+                4: { sorter: 'fmt_time' }
+            }
+        });
+    
+ } ); </script>
+        
+        <div class="footer">Report produced by the
+        <a href="http://search.cpan.org/dist/Devel-NYTProf/">NYTProf 4.06</a>
+        Perl profiler, developed by
+        <a href="http://www.linkedin.com/in/timbunce">Tim Bunce</a> and
+        <a href="http://code.nytimes.com">Adam Kaplan</a>.
+        </div>
+        <br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
+    </body></html>
\ No newline at end of file