Question : RegisterArrayDeclaration and RegisterClientScriptBlock

The code below does not happen in the order they are called, the RegisterClientScriptBlock occurs before of the RegisterArrayDeclaration.

protected void Btn_Download_Click(object sender, EventArgs e)
            ClientScriptManager cs = Page.ClientScript;

            foreach (GridViewRow row in gridview.Rows)
                var isChecked = (row.FindControl("chkSelect") as CheckBox).Checked;
                if (!isChecked) continue;
                cs.RegisterArrayDeclaration("array", "\""+((Label)row.FindControl("lblFileName")).Text+"\"");
            StringBuilder cstext = new StringBuilder();
            cstext.Append("<script type=\"text\"/javascript>zip()</script>");

            cs.RegisterClientScriptBlock(this.GetType(), "x", cstext.ToString(), false);    

How do I get them in the order they appear in code?

Answer : RegisterArrayDeclaration and RegisterClientScriptBlock

OK...I'm stupid.  You want to create a route not a firewall rule.  Sorry....just finished a question about fw rules.  Go to Network > Routing.  Add a route and you'll see a window similar to what I've attached.  You can either select Any for the service or particular to Exchange traffic.  Select the interface for both Gateway: and Interface:
Random Solutions  
programming4us programming4us