text:
\section{Introduction}

Quak-gluon plasma (QGP) produced in heavy ion collisions in RHIC and
LHC is believed to be a strongly coupled plasma
\cite{Shuryak:2003xe,Shuryak:2004cy}. Since QGP is totally out of
equilibrium immediately after collision, it is difficult to study
it. After a very short time ($\tau \leq 1 fm/c$) the hydrodynamic
regime  governs the plasma which shows a local equilibrium
\cite{Heinz:2004pj,Luzum:2008cw}. This very fast process is called
rapid thermalization. Perturbative methods are not suitable to study
such a system due to being strongly coupled. Among non-perturbative
methods AdS/CFT correspondence has been recently successful to
describe rapid thermalization.

AdS/CFT correspondence or gauge/gravity duality is generally a
duality between a strongly coupled field theory and a classical
gravitational theory
\cite{Maldacena:1997re,Gubser:1998bc,Witten:1998qj,CasalderreySolana:2011us}.
In its original form, AdS$_5$/CFT$_4$ duality introduces a
correspondence between a four dimensional super conformal Yang-Mills
theory with the gauge group of SU(N$_c$) and type IIB superstring
theory in AdS$_5\times$S$^5$ geometry. This duality is more useful
in the limit of large-N$_c$ and large t'Hooft coupling $\lambda$. In
this limit a classical type IIb supergravity theory in
AdS$_5\times$S$^5$ geometry will be dual to a strongly coupled super
Yang-Mills (SYM) theory that one can not deal with it
perturbatively. There are several generalizations to this original
correspondence. For instance if one is interested in thermal SYM
theory the dual theory is a supergravity in AdS-Schwarzschild black
hole background \cite{Witten:1998zw}. In this case the temperature
of SYM theory is Hawking temperature of the black hole. Also we can
add matter fields to the set up as another generalization
\cite{Karch:2002sh}. In the original form of AdS/CFT duality only
gauge fields are present in SYM theory and in order to add matter
fields (quarks) in the fundamental representation one should add
probe flavor D-branes to the gravity side. In  AdS$_5$/CFT$_4$  case
that D3-branes form AdS$_5\times$S$^5$ geometry, the probe limit
means that the number of flavor D7-branes should be much less than
the number of D3-branes. In this set up open strings stretching
between D3 and D7-branes represent quarks in SYM theory while open
strings with both ends on D7-branes are considered as meson degrees
of freedom.

There is another model for the gravity dual theory of a four
dimensional pure SU(N$_c$) Yang-Mills theory proposed by Witten
\cite{Witten:1998zw}. In this model the background geometry is made
of D4-branes compactified on a circle of radius $M_{\rm kk}^{-1}$
\cite{Kruczenski:2003uq}. D4-brane theory before compactification is a
supersymmetric SU(N$_c$) gauge theory whose fields are fermions, scalars and gauge fields in the adjoint representation of SU(N$_c$).
The theory is effectively four dimensional at energies much less
than compactification scale $M_{\rm kk}$. Also non-periodic conditions
are applied to fermions to break all supersymmetries. Therefore this
theory is very similar to low-energy QCD of course if we add
fundamental quarks in addition to gluons by introducing probe
D6-branes.

In the gauge theory side of this set up there is a supersymmetric
five dimensional SU(N$_c$) theory coupled to a four dimensional
defect. Now if we compactify the 4-direction with the period
$2\pi/M_{\rm kk}$ and apply non-periodic conditions to D4-brane theory fermions, all
supersymmetries are broken and an effective four dimensional theory
remains at low energies $E \ll M_{\rm kk}$. In this limit scalars and
fermions in the adjoint representation become massive and decouple.
So in low energy we are left with our desirable theory that is a
four dimensional SU(N$_c$) gauge theory with a energy scale and
coupled to fundamental quarks. In this paper we are going to study rapid thermalization in such a large-N$_c$ QCD that its holographic dual is a
D4/D6 system. Note that in \cite{Ishii:2015gia} the effect of confinment on thermalization of holographic gauge theories is studied. But the dual gravitational theory differs from what we consider here and belongs to a class of Einstein-dilaton theories. They have also introduced a different procedure for throwing the system out of equilibrium. They perturb the system by specifying time dependent boundary conditions on the scalar and solve the fully backreacted Einstein-dilaton equation of motion.

Thermalization process is generally defined as
a non-adiabatic increase in temperature which drives the system out
of equilibrium and becomes possible by energy injection. In gauge/gravity
duality framework energy injection to gauge theory is done by
turning on a time dependent source which is dual to horizon
formation in bulk \cite{Chesler:2008hg, Chesler:2009cy,
Bhattacharyya:2009uu}. This class of thermalization is called gluon
sector thermalization which corresponds to black hole formation in the
bulk. Meson sector thermalization is another class of thermalization
that is manifested in horizon formation on the probe D-brane
\cite{Hashimoto:2010wv, Ali-Akbari:2013tca, Das:2010yw,AliAkbari:2012hb}. We are
interested in meson sector thermalization in this paper and we
follow the idea of \cite{Hashimoto:2010wv} for the required energy
injection. The main idea is considering a sudden change in
baryon-number chemical potential to provide the condition of heavy
ion collisions. The gravity dual to this change of baryon chemical
potential is throwing open strings into bulk from the boundary.
Since the end point of open string is a source for gauge field, the
process of throwing open strings provides a time dependent gauge
field configuration that leads to a time dependent metric for
mesons. Therefore apparent horizon formation becomes possible on the
flavor D-brane which corresponds to meson thermalization in the dual
strongly coupled field theory. Thermalization of meson degrees of
freedom means their transformation to quark and gluon degrees of
freedom in thermal equilibrium \cite{Hashimoto:2010wv}. Time scale
of thermalization is identified with the time of apparent horizon
formation from the boundary observer point of view.

Produced QGP in heavy ion collision is affected by a large magnetic field \cite{Kharzeev:2007jp} and so there are several studies of different aspects and examples of this effect \cite{Bali:2011qj,Fukushima:2008xe,Kharzeev:2010gd,Mamo:2015dea}. It seems that megnetic field can be potentially important in thermalization in QGP because thermalization occurs at early stages of heavy ion collision where the magnetic field is strong. This investigation has been the subject of some studies based on AdS/CFT duality \cite{AliAkbari:2012vt,Mamo:2015aia,Fuini:2015hba}. Here we aim to study thermalization in a large-N$_c$ QCD by utilizing a D4/D6 gravity model and observe how the scale of the theory and magnetic field affect this process. Note that present work differs from aforementioned studies by the considered gravity dual theory, D4/D6 model, and/or the method of energy injection, sudden change of baryon number chemical potential. We will show that the scale in our theory and the magnetic field both prolong meson thermalization process. This result is justified by meson binding energy considerations.

This paper is organized as follows. In section 2 we first give a brief review of D4/D6 model in AdS/CFT duality framework. Then we show how the scale of the theory, $u_{\rm kk}$, modifies shape of the flavor D6-brane. We continue by turning on an external magnetic field and observe its effect on D6-brane configuration, too. The procedure of meson sector thermalization in D4/D6 system is addressed in section 3. We explain the mechanism of baryon injection and show how it can lead to thermalization which is dual to apparent horizon formation on the probe D6-brane. Sections 4 and 5 are devoted to numerical results and summary of the work, respectively.

\section{D4/D6 Model in the Presence of External Magnetic Field}

In this section we first give a brief review of D4/D6 model as
a confining model for AdS/CFT duality \cite{Kruczenski:2003uq}. Then
we turn on the magnetic field and study its effect on the shape of
the flavor D6-brane.

\subsection{Review of the D4/D6 Model}

The near horizon limit of a configuration of $N_c$ D4-branes
wrapping a circle in the $\tau$ direction with anti-periodic
boundary conditions for fermions is dual to type IIa supergravity
and is given by the following background
\begin{eqnarray}\label{background} %
ds^2=\left(\frac{u}{R}\right)^{3/2}(\eta_{\mu\nu}dx^\mu
dx^\nu+f(u)d\tau^2)+\left(\frac{R}{u}\right)^{3/2}\frac{du^2}{f(u)}+R^{3/2}u^{1/2}{ds}^2_{S^4},
\end{eqnarray} %
\begin{eqnarray}\label{definition} %
e^\phi=g_s\left(\frac{u}{R}\right)^{3/4},~~~~~~~~f(u)=1-\frac{u_{\rm kk}^3}{u^3}.
\end{eqnarray} %
The coordinates $x^\mu={x^0,...,x^3}$ are four non-compact
directions along the D4-brane while $\tau$ shows the direction of
the branes' compactification. ${ds}^2_{S^4}$ is the SO(5)-invariant
line element and $u$ is a radial coordinate in the 56789-directions
transverse to the D4-branes. The radial coordinate $u$ is known to
be bounded from below by the condition $u\geq u_{\rm kk}$. The
periodicity of $\tau$ is given by
\begin{eqnarray}\label{compact} %
\delta\tau=\frac{4\pi}{3}\frac{R^{3/2}}{u_{\rm kk}^{1/2}},
\end{eqnarray} %
to avoid a conical singularity at $u=u_{\rm kk}$. In a general Dp-brane background, the parameter $R$ in \eqref{background} is
defined in terms of $N_c$, number of Dp-branes, $g_s$,
string coupling constant, and $l_s$, string length,
\begin{equation}\label{general-R} %
R^{7-p}=(4\pi)^{\frac{5-p}{2}}\Gamma(\frac{7-p}{2})g_s N_c l_s^{7-p},
\end{equation} %
where for $p=4$ reduces to
\begin{eqnarray}\label{radius} %
R^3=\pi g_s N_c l_s^3.
\end{eqnarray} %

The dual $SU(N_c)$ field theory is defined by the compactification
scale, $M_{\rm kk}$, below which the theory is effectively
four-dimensional with the coupling constant $g_{\rm YM}$. These are
related to the string theory parameters by
\begin{eqnarray}\label{scale} %
M_{\rm kk}=\frac{3}{2}\frac{u_{\rm kk}^{1/2}}{R^{3/2}}=
\frac{3}{2\sqrt{\pi}}\frac{u_{\rm kk}^{1/2}}{(g_sN_c)^{1/2}l_s^{3/2}},~~~~~
g_{\rm YM}^2=3\sqrt{\pi}\left(\frac{g_s u_{\rm kk}}{N_c l_s}\right)^{1/2}.
\end{eqnarray} %

The string tension $T$, the Regge slope $\alpha'$ and $l_s$ are
related by $T=\frac{1}{2\pi\alpha'}=\frac{1}{2\pi l_s^2}$. We are
interested in a background in which one can study the dual field
theory using only classical supergravity. For this reason we require
that the curvature is everywhere small compared to the string
tension. So the maximum curvature that occurs at $u=u_{\rm kk}$ and is
proportional to $(u_{\rm kk} R^3)^{-1/2}$ has
to satisfy $(u_{\rm kk} R^3)^{-1/2} \ll l_s^{-2}$. Therefore using
$\lambda=g_{\rm YM}^2 N_c$ as well as \eqref{radius} and \eqref{scale}
we obtain the following condition
\begin{equation}\label{small-curv} %
\frac{u_{\rm kk}^{1/2} R^{3/2}}{l_s
^2}\approx \lambda \gg1.
\end{equation} %
So demanding small curvatures gives rise to
large t'Hooft coupling condition in the effective four dimensional
dual gauge theory as is essential in AdS/CFT correspondence
\cite{Maldacena:1997re}. We are also interested in small local
string coupling, $g_s$, \cite{Kruczenski:2003uq} that along with
\eqref{small-curv} leads to the following condition
\begin{eqnarray}\label{condition} %
g_{\rm YM}^4\ll\frac{1}{g_{\rm YM}^2N_c}\ll1.
\end{eqnarray} %

One of the most famous holographic QCD models is the D4/D6 model
\cite{Kruczenski:2003uq}. The model contains $N_c$ number of D4-branes and $N_f$ flavor D6-branes
whose configuration is given according to Table ~\ref{embedding}.
\begin{table}[H]%
\begin{center}%
\begin{tabular}{ | l | l | l | l | l | l | l | l | l | l | l |}
   \hline
    &  \multicolumn{4}{ |c| }{Boundary} & $S^1$ & radius of $S^2$ & \multicolumn{2}{ |c| }{$S^2$} & \multicolumn{2}{ |c| }{$D6_\perp$} \\ \hline
  & 0 & 1 & 2 & 3 & \multicolumn{1}{|c|}{$\tau$} & \multicolumn{1}{|c|}{$\rho$} & $\psi_1$ & $\psi_2$ & $\sigma$ & $\Phi$
  \\ \hline
 D4 & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ & \multicolumn{1}{|c|}{$\bullet$} &  &  &  &  &
  \\
  \hline
 D6 & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ &  & \multicolumn{1}{|c|}{$\bullet$} & \multicolumn{1}{|c|}{$\bullet$} & \multicolumn{1}{|c|}{$\bullet$}  &  & \\ \hline
   \end{tabular}
\end{center}
\caption{D6-brane configuraion in the background of D4-branes}\label{embedding}
\end{table}%
$S^4$ sphere in \eqref{background} is divided into two parts, spherical coordinates $\rho$
and $\Omega_2\equiv(\psi_1,\psi_2)$ and polar coordinates $\sigma$
and $\Phi$ which are perpendicular to D6-brane. By defining a new
radial coordinate $r^2=\rho^2+\sigma^2$ related to $u$ by
$u(r)=r\left(1+\frac{u_{\rm kk}^3}{4r^3} \right)^{2/3}$ and a new
function $K(r)=\frac{R^{3/2}u^{1/2}}{r^2}$, D4-brane metric \eqref{background} is
simply written in the form
\begin{eqnarray}
ds^2=\left(
\frac{u}{R}\right)^{3/2}\left(\eta_{\mu\nu}dx^{\mu}dx^{\nu}+f(u)d\tau^2\right)+K(r)\left(d\rho^2+\rho^2
d\Omega_2^2+d\sigma^2+\sigma^2 d\Phi^2 \right).
\end{eqnarray} %
As it is
obvious from Table~\ref{embedding}, worldvolume coordinates of D6-brane are
$x^{\mu}, \rho$ and $\Omega_2$. D6-brane position in 89-plane is
determined by $\sigma=\sigma(\rho)$, $\Phi=\Phi_0$ and $\tau=\rm
constant$. Therefore the induced metric on D6-brane, $g_{ab}$, with the above ansatz can be written
as
\begin{eqnarray} %
ds^2(g)=\left(\frac{u}{R}\right)^{3/2}\eta_{\mu\nu}dx^{\mu}dx^{\nu}+K(r)\left[(1+\dot{\sigma}^2)d\rho^2+\rho^2
d\Omega_2^2\right]
\end{eqnarray} %
where $\dot{\sigma}=\partial_{\rho}\sigma$.

\subsection{External Magnetic Field}
In this subsection we are interested in studying the shape of
D6-brane including the effect of $u_{\rm kk}$ and external
magnetic field, $B$. To do this one should start from the DBI action of D6-brane
\begin{equation}\label{DBI} %
S_{\rm DBI}=-{\cal{T}}_6 \int d^7 \xi
\sqrt{-\det (g_{ab}+2 \pi \alpha' F_{ab})},
\end{equation} %
where ${\cal{T}}_6=\frac{2 \pi}{g_s (2\pi
l_s)^7}$ is the D6-brane tension and $\xi$'s are its worldvolume coordinates (i.e. $\xi \equiv (x^0,x^1, x^2, x^3, \rho, \psi_1, \psi_2)$ according to Table~\ref{embedding}). We consider the magnetic field as $B\equiv F_{x^1 x^2}$ and rewrite the action \eqref{DBI} as
\begin{eqnarray} \label{D6-action} %
S_{\rm D6}=-{\cal{T}}_6 \int d^7 \xi \; \rho^2 \; \sqrt{1+\dot{\sigma}^2}\sqrt{1+(2\pi\alpha'B)^2(R/u)^{3}}\left(1+\frac{u_{\rm kk}^3}{4r^3}\right)^2.
\end{eqnarray} %
We need to solve the equation of motion for $\sigma(\rho)$ to study the shape of the
D6-brane. When $\rho \rightarrow \infty$ this
equation of motion finds the simple form of
\begin{eqnarray} %
\partial_{\rho}(\rho^2\dot{\sigma})\approx -\frac{3}{2}u_{\rm kk}^3\frac{\sigma}{\rho^3}-\frac{3(2\pi \alpha'B)^2 R^3}{\rho^3}\sigma,
\end{eqnarray} %
which is in agreement with \cite{Kruczenski:2003uq} when $B$ is set
to zero. We solve the full equation of motion for $\sigma(\rho)$
numerically, with the regularity condition of $\sigma(\rho)$ at
$\rho=0$, (i.e. $\dot{\sigma}(\rho)|_{\rho=0}=0$) to get Fig.
\ref{sigma-rho} for zero (left) and non-zero (right) magnetic field.
If $u_{\rm kk}=0$ then $\sigma(\rho)=0$ is a solution which is
physically sensible since it is a supersymmetric case. But note that
this is only a formal argument because in the limit
$u_{\rm kk}\rightarrow 0$ the curvature at $u=u_{\rm kk}$ diverges and the
supergravity description is unreliable \cite{Itzhaki:1998dd}. When
$u_{\rm kk}\neq 0$ the force on the D6-brane does not vanish anymore and
the repulsion by the D4-branes causes the D6-brane to bend outward, Fig. \ref{sigma-rho} (left). The semicircle in this
figure is the region that $u<u_{\rm kk}$ and is not part of the space.

For large $\rho$ the $\sigma(\rho)$ expansion is given by
\begin{equation}\label{sigma-exp} %
\sigma(\rho)\simeq \sigma_{\infty}
+\frac{c}{\rho},
\end{equation} %
where according to AdS/CFT dictionary,
$\sigma_\infty$ (the value of $\sigma(\rho)$ at infinity) and $c$ correspond to bare quark mass ($m_q$) and
chiral condensate ($\langle \bar{\psi}\psi\rangle$) respectively
\cite{Karch:2006bv,Kruczenski:2003uq}
\begin{equation}\label{mass-chiral}%
m_q=\frac{u_{\rm kk} \;
\sigma_{\infty}}{2\pi l_s^2},\;\;\;\;\; \langle \bar{\psi}\psi
\rangle \simeq g_{\rm YM}^2 N_C^2 M_{\rm kk}^3 c.
\end{equation} %
For each value of
$\sigma_\infty$ there are two regular solutions which have $c$'s of
opposite sign. Such
solutions are shown in Fig. \ref{sigma-rho} (left) as dotted curves. They have the same value of $\sigma_\infty$ (equivalent to quark
mass) but the one with positive $\sigma(0)$ has lower energy and is
preferable. The dashed curve implies that by increasing $u_{\rm kk}$ there is a sever bending of D6-brane that
results in negative mass and makes the system unphysical. When we put $u(r)=u_{\rm kk}$, a circle equation $\sqrt{\rho^2+\sigma (\rho)^2}=2^{-2/3} u_{\rm kk}$ is obtained that is plotted in Fig. \ref{sigma-rho} and the interior of this circle is not part of the space.

In the right plot of Fig. \ref{sigma-rho} the effect of the magnetic
field on the shape of the probe D6-brane is demonstrated. As we
expect \cite{Ali-Akbari:2014gia}, the magnetic field also causes the
brane to bend. It is seen that for a fixed value of $B$ as one
increases $u_{\rm kk}$ the quark mass ($\sigma_{\infty}$) decreases, dashed curves in Fig.
\ref{sigma-rho} (right). In addition by increasing $B$ for a constant
value of $u_{\rm kk}$ the quark mass will decrease too, solid curves in Fig.
\ref{sigma-rho} (right). For each value of $u_{\rm kk}$ the magnetic
field cannot exceed a specific value because the mass will become
negative then and the system is not physical.
\begin{figure}[ht]
\begin{center}
\includegraphics[width=2.6 in]{sigma-rho.pdf}
\includegraphics[width=2.6 in]{sigma-rho-b.pdf}
\caption{\small D6-brane embedding for several values of $u_{\rm kk}$
(left) and $B$ (right). The circle in the center is the region $u <
u_{\rm kk}$ and is not part of the space.} \label{sigma-rho}
\end{center}
\end{figure}%

\section{Meson Thermalization in D4/D6 System}
As was previously mentioned adding probe D6-branes into the background made by D4-branes
introduces quarks to the dual gauge theory. The fluctuations of various (scalar or vector) fields living
on the D6-brane correspond to different kinds (scalar or vector) of
mesons. In this section we derive the action governing these fluctuations from DBI action of D6-brane. To study meson thermalization we will investigate the formation of apparent horizon on the D6-brane where fluctuations (mesons) live. In order to have thermalization one needs to inject energy into the system. For energy injection we follow the procedure of \cite{Hashimoto:2010wv} in which the necessary energy is provided by baryon injection.

The distance between D6 and D4-branes at $\rho \rightarrow \infty$,
($\sigma_{\infty}$), shows the quark mass according to
\eqref{sigma-exp}. Note that in this paper we put this mass equal to zero for simplicity.

\subsection{Baryon Injection}
In the context of gauge/gravity duality baryon injection into the
strongly coupled gauge theory is done by throwing baryonically
charged open strings from the boundary onto the flavor brane. In this
framework the baryon chemical potential, $\mu$, is given by the time
component of the gauge field
\begin{equation}\label{chem-pot} %
\mu=\int_0^\infty
d\rho \;\;\partial_\rho A_t(\rho).
\end{equation} %
This time dependent chemical
potential becomes possible by introducing a source term to DBI action as
\begin{equation}\label{source-general} %
S_{\rm current}=\int d^{q+1} \xi \sqrt{-g} A_a
J^a,
\end{equation} %
where $J^a$'s are time dependent currents. In the case of D6-brane
this action will be
\begin{equation}\label{source}%
\delta S={\cal{T}}_6 \;V_3\;
V(\Omega_2) \int dt\; d\rho\; (A_t j^t + A_{\rho} j^{\rho} ),
\end{equation} %
where
$\rho^2 u^{15/4} r^{-3} R^{-3/4} \sqrt{1+\dot{\sigma}^2} ~
J^a={\cal{T}}_6 ~ j^a$. Since we have chosen massless quarks we use lightcone coordinates for convenience,
\begin{eqnarray}\label{lightcone}%
\begin{split}
x^+ = t+z=t-\int d\rho \sqrt{K(r)(R/u)^{3/2}(1+\dot{\sigma}^2)}, \cr
x^- = t-z=t+\int d\rho \sqrt{K(r)(R/u)^{3/2}(1+\dot{\sigma}^2)}.
\end{split}
\end{eqnarray} %
Current conservation condition, $\nabla_a J^a=0$, relates the
currents $j^t$ and $j^{\rho}$ and we demand these currents to be
functions of $x^-(=t-z)$ and define them as derivative of an arbitrary
function $g(x^-)$
\begin{equation}\label{j-g}%
 j^{\rho}=
-\left[ K(r)(R/u)^{3/2}(1+\dot{\sigma}^2)\right]^{-1/2} j^t=\partial_{-}g(x^-).
\end{equation} %
Making use of \eqref{j-g} in the quark number $\tilde{n}$
relation $\tilde{n}=\int d^6 \xi \sqrt{-g} J^t$, we can determine
the function $g(x^-)$
\begin{equation}\label{gm} %
g(x^-)\sim\frac{1}{\rm vol(S^2)}
(2\pi)(2\pi\alpha')^3 \lambda n_B(x^-),
\end{equation} %
 where
$n_B(x^-)=\frac{\tilde{n}}{\rm Vol(S^3)}$ is baryon number density.

Planning to have a time dependent chemical potential means that we
should turn on $F_{t\rho}$ component of the time dependent gauge
field in DBI action \eqref{DBI} and add the source term
\eqref{source} to this action, too. The Lagrangian density in the presence of the
magnetic field $B$ is
\begin{eqnarray}\label{B-F-lagrangian} %
\begin{split}
{\cal{L}}_B=\frac{\rho^2 u^{1/4}}{g_s r^2 R^{3/4}} \bigg{\{} \frac{R^{3/2} u^{5/2} [(2\pi\alpha'B)^2 R^3+u^3](1+\dot{\sigma}^2)}{r^2}\cr
-(2\pi\alpha'F_{t\rho})^2(R^{3/2} u^{7/2}+(2\pi\alpha'B)^2 R^{9/2} u)  \bigg{\}}^{1/2}.
\end{split}
\end{eqnarray} %
Now we add the source term \eqref{source} to \eqref{B-F-lagrangian} to find the following DBI action
\begin{eqnarray} %
S_{\rm DBI}=-{\cal{T}}_6 \;V_3\; V(\Omega_2) \int dt\; d\rho [{\cal{L}}_B -
(A_t j^t + A_{\rho} j^{\rho})].
\end{eqnarray} %
Equation of motion for the gauge field components
$A_t$ and $A_{\rho}$ gives following relation for the field strength $F_{t\rho}$ which will be needed in the next subsection,
\begin{eqnarray}\label{F-B} %
(2\pi\alpha')F_{t\rho}=\frac{g(x^-) (1+\frac{u_{\rm kk}^3}{4r^3})^{2/3}
\sqrt{1+\dot{\sigma}^2}}{\sqrt{g^2(x^-)+(2\pi\alpha')^2 \rho^4
(1+\frac{u_{\rm kk}^3}{4r^3})^{8/3}[1+((\frac{R}{u})^3(2\pi\alpha'B)^2)]}}.
\end{eqnarray} %

\eqref{F-B} implies that in order to specify $F_{t\rho}$ one needs to determine $g(x^-)$. We pursue the procedure of \cite{Hashimoto:2010wv} and so our baryon
injection model is according to the profile
\begin{eqnarray}\label{g} %
g(x^-)=
\left\{
\begin{split}
	& 0~~~~~~~~~~~~x^-<0\cr
	& g_m \omega x^-~~~~~0<x^-<1/\omega \cr
	& g_m~~~~~~~~~~1/\omega<x^-
\end{split}
\right. .
\end{eqnarray} %
This choice for $g(x^-)$ means that we
start with zero baryon density $n_B = 0$ and then increase it
linearly in time for the interval $0 < t < 1/\omega$. It reaches its maximum value $g_m$ at
$t = 1/\omega$ and then it is kept constant.
Note that $g_m$ in \eqref{g} is given by \eqref{gm} provided that we replace $n_B(x^-)$ with its constant maximum value $n_B$.

\subsection{Fluctuations and Apparent Horizon on the Probe D6-brane}

In the previous subsection we added a time dependent source to DBI action to have a time dependent baryon chemical potential. It finally led to a relation for $F_{t\rho}$, \eqref{F-B}, which depends on time. Presence of a time dependent source on the probe D6-brane modifies
the induced metric. In fact the fluctuations living on the flavor
D6-brane which are gravity dual of mesons feel an effective metric
and appearance of a horizon for this metric corresponds to
thermalization of mesons.

Since we are interested in qualitative behavior of meson thermalization in D4/D6 model and according to
\cite{Hashimoto:2010wv} scalar and vector mesons have similar thermalization time scales, we study scalar fluctuations in this paper.

Suppose $G$ and $g$ as the background and induced metrics
respectively and decompose the induced metric as \begin{eqnarray} %
g_{ab}=G_{MN}\partial_{a}X^M \partial_b X^N\equiv
G_{ab}+G_{IJ}\partial_a x^I \partial_b x^J,
\end{eqnarray} %
where $a,b$ and
$I,J$ indices are respectively used for parallel coordinates with
and transverse coordinates to the worldvolume of D6-brane. Our
goal is finding an effective metric felt by the scalar fluctuations, so
we divide $x^I$ into two parts as
\[
x^I(\xi^a)=\sigma(\rho)+\chi(\xi^a),
\]
where $\sigma(\rho)$ shows the shape of the D6-brane and is a function of
just $\rho$ while $\chi$ exhibits the small fluctuations that can be functions of all worldvolume coordinates $\xi ^a$. To find the
action governing dynamics of mesons in the presence of external fields, we expand the
D6-brane action \eqref{DBI} about the classical solution
$\sigma(\rho)$ for small fluctuations $\chi$, \begin{eqnarray}\begin{split} \label{decomposed-action} %
& S_{\rm DBI}=S_0+S_{\rm fluc}=\cr & S_0-\frac{{\cal{T}}_6}{2}\int d^7 \xi
\sqrt{\gamma}\bigg{(}\gamma^{ab}M_{ba}+\gamma^{ab}N_{ba}-\frac{1}{2}\gamma^{ab}M_{bc}
\gamma^{cd}M_{da}+\frac{1}{4}(\gamma^{ab}M_{ba})^2+... \bigg{)},
\end{split}
\end{eqnarray} %
where $\gamma$, $M$ and $N$ are defined as
\begin{eqnarray} %
\begin{split}
& \gamma_{ab}=G_{ab}+G_{\sigma\sigma}\partial_a \sigma \partial_b \sigma+(2\pi\alpha')F_{ab},\cr
& M_{ab}=\chi \partial_{\sigma}G_{ab}+G_{\sigma\sigma}\partial_a \sigma \partial_b \chi+G_{\sigma\sigma}\partial_a \chi \partial_b \sigma+\chi \partial_{\sigma} G_{\sigma\sigma} \partial_a \sigma \partial_b \sigma, \cr
& N_{ab}=\frac{1}{2}\chi^2\partial_{\sigma}^2 G_{ab}+G_{\sigma\sigma}\partial_a\chi\partial_b \chi+\chi \partial_{\sigma}G_{\sigma\sigma}\partial_a\sigma\partial_b\chi+\chi\partial_{\sigma}G_{\sigma\sigma}\partial_a\chi\partial_b\sigma+\frac{1}{2}\chi^2\partial_{\sigma}^2 G_{\sigma\sigma}\partial_a\sigma\partial_b\sigma.
\end{split}
\end{eqnarray} %

To calculate the apparent horizon, only the kinetic term of the fluctuations $\chi$ in the action \eqref{decomposed-action} plays role which is given by
\begin{eqnarray}\label{kinetic} %
S_{\rm fluc, k}=\frac{-{\cal{T}}_6}{2}\int d^7\xi
\sqrt{\gamma}\;
G_{\sigma\sigma}\left[ S^{ab}(1-G_{\sigma\sigma}\dot{\sigma}^2
S^{\rho\rho})-\dot{\sigma}^2G_{\sigma\sigma}\theta^{a\rho}\theta^{b\rho}\right] \partial_a\chi\partial_b\chi,
\end{eqnarray} %
where $S$ and $\theta$ are the symmetric and antisymmetric
parts of $\gamma$, respectively. Replacing $G_{\sigma \sigma}$ and
\[
S^{\rho\rho}=\frac{r^2~(u/R)^{3/2}}{u^2(1+\dot{\sigma}^2)-(2\pi\alpha' F_{t\rho})^2 r^2}\;,
\]
in
\eqref{kinetic}, $S_{\rm fluc, k}$ can be written as
\begin{eqnarray}\label{ghat-action} %
S_{\rm fluc,k}=-\frac{{\cal{T}}_6}{2}\int d^7\xi \; A \; G_{\sigma\sigma}
\sqrt{\hat{g}} \hat{g}^{ab} \partial_a \chi \partial_b \chi,
\end{eqnarray} %
where $A=\sqrt{\frac{\gamma}{\hat{g}}}$ and $\hat{g}$ is an
effective metric with components
\begin{eqnarray}\label{ghatB} %
{\hat{g}^{ab}}=\frac{(u/r)^2-(2\pi\alpha')^2
F_{t\rho}^2}{(u/r)^2(1+\dot{\sigma}^2)-(2\pi\alpha')^2
F_{t\rho}^2}S^{ab}-\dot{\sigma}^2
G_{\sigma\sigma}\theta^{a\rho}\theta^{b\rho}.\end{eqnarray}

To read apparent horizon we need the action to be written in the form
\begin{eqnarray}\label{stilde-action} %
\tilde {S}_{\rm fluc,k}=-\int d^7\xi \;\frac{1}{2}\; \sqrt{\tilde{s}}\; \tilde{s}^{ab}\partial_a\chi\partial_b\chi.
\end{eqnarray} %
Considering $\tilde{s}^{ab}=c\hat{g}^{ab}$ and comparing \eqref{ghat-action} and \eqref{stilde-action} leads to
\[c={\cal{T}}_6^{-2/5}A^{-2/5}G_{\sigma\sigma}^{-2/5}.\]
Therefore the new effective metric $\tilde{s}$ can be obtained from $\hat{g}$. The open string metric components $\tilde{s}_{ab}$ resulting from \eqref{ghatB} in the presence of the magnetic field are
\begin{eqnarray}\label{metric-component} %
\begin{split}
\tilde{s}_{tt}=&-{\cal{T}}_6^{2/5}R^{-3/2} u^{7/10} r^{-4/5} (u^3/R^3 +(2\pi\alpha')^2B^2)^{-1/5} (u^2-(2\pi\alpha')^2F_{t\rho}^2 r^2)^{6/5}\\ &(u^2 (1+\dot{\sigma}^2)-(2\pi\alpha')^2 F_{t\rho}^2 r^2)^{-2/5}, \cr
\tilde{s}_{\rho\rho}=&{\cal{T}}_6^{2/5} R^{3/2}u^{-3/10} r^{-14/5}(u^3/R^3 +(2\pi\alpha')^2B^2)^{-1/5} (u^2-(2\pi\alpha')^2F_{t\rho}^2 r^2)^{1/5}\cr &(u^2 (1+\dot{\sigma}^2)-(2\pi\alpha')^2 F_{t\rho}^2 r^2)^{3/5}, \cr
\tilde{s}_{11}=&\tilde{s}_{22}={\cal{T}}_6^{2/5} R^{3/2}u^{-3/10} r^{-4/5} (u^3/R^3 +(2\pi\alpha')^2B^2)^{4/5} (u^2-(2\pi\alpha')^2F_{t\rho}^2 r^2)^{1/5},\cr &(u^2 (1+\dot{\sigma}^2)-(2\pi\alpha')^2 F_{t\rho}^2 r^2)^{-2/5}, \cr
\tilde{s}_{33}=&{\cal{T}}_6^{2/5}R^{-3/2} u^{27/10} r^{-4/5} (u^3/R^3 +(2\pi\alpha')^2B^2)^{-1/5} (u^2-(2\pi\alpha')^2F_{t\rho}^2 r^2)^{1/5}\cr &(u^2 (1+\dot{\sigma}^2)-(2\pi\alpha')^2 F_{t\rho}^2 r^2)^{-2/5}, \cr
\tilde{s}_{\alpha\beta}=&-{\cal{T}}_6^{2/5} R^{3/2} u^{17/10} r^{-14/5}\rho^2 (u^3/R^3 +(2\pi\alpha')^2B^2)^{-1/5} (u^2-(2\pi\alpha')^2F_{t\rho}^2 r^2)^{1/5}\cr &(u^2 (1+\dot{\sigma}^2)-(2\pi\alpha')^2 F_{t\rho}^2 r^2)^{-2/5},
\end{split}
\end{eqnarray} %
where $\alpha$ and $\beta$ stand for angular coordinates of $S^2$ sphere, $\psi_1$ and $\psi_2$, in Table \ref{embedding}.

Given this effective metric we will now determine the apparent horizon.
During blackhole formation one can calculate where, at each instant,
the last outgoing photon will be sent and reach null infinity. This
surface will mark the outermost trapped surface or the apparent
horizon. Finding a condition for apparent horizon formation is
possible by tracking worldline of an outgoing photon. A bunch of
outgoing photons will be trapped if their proper area ($V$) does not
grow in time, $dV/d\tau = 0$ \cite{Luciano}. Therefore we
determine the apparent horizon by demanding that area variation of
the surface
\begin{eqnarray}\label{V} %
V_{\rm surface}=\int d^3x d^2\varphi
\left(\prod_{i=1}^3 \tilde{s}_{ii} \prod_{\alpha=1}^2
\tilde{s}_{\alpha\alpha}\right)^{1/2},
\end{eqnarray} %
vanishes along the null rays normal to the
surface. This is a surface in a given $(t,z)$ at an arbitrary point. $x^i$s ($i=1,2,3$) are
gauge theory directions and $\varphi^\alpha$s ($\alpha=1,2$)
are the angular variables of $S^2$ sphere transverse to D6-brane. The apparent horizon, if
forms, has to satisfy
\begin{eqnarray}\label{dv} %
dV_{\rm surface}|_{dt=-dz}=0,
\end{eqnarray} %
that shows a surface whose area is constant along a null ray.
Since the corresponding relation to $V_{\rm surface}$ is too long we do not write it here and deal with \eqref{dv} numerically.

A null vector $(v^a, v^b)$ satisfies the condition $G_{ab} v^a v^b=0$ \cite{Hashimoto:2013mua}. For $(v^t, v^{\rho})$ in the $(t,  \rho)$ slice the
condition of null vector for open string metric
\eqref{metric-component} reduces to
\[
\tilde{s}_{tt} {v^t}^2+\tilde{s}_{\rho \rho} {v^{\rho}}^2=0,
\]
and results in the following ratio
\begin{eqnarray} %
\frac{v_t}{v_{\rho}}=R^{3/2} u^{-1/2} r^{-1} \sqrt{\frac{u^2 (1+\dot{\sigma}^2)-(2\pi\alpha')^2 F_{t\rho}^2 r^2}{u^2 -(2\pi\alpha')^2 F_{t\rho}^2 r^2}}.
\end{eqnarray} %
So the apparent horizon formation condition \eqref{dv} becomes
\begin{eqnarray} \label{dv-null}%
dV_{\rm surface}=(v^{\rho}\partial_{\rho}+v^t \partial_{t})V_{\rm surface}=0
\end{eqnarray} %

Therefore substituting \eqref{g} in \eqref{F-B} the $\tilde{s}$ components are determined. Then we put them in \eqref{V} to find the surface area $V_{\rm surface}$ and solve \eqref{dv-null} numerically to figure out the apparent horizon.

\section{Numerical Results}

In this section we are going to study meson thermalization by apparent horizon formation on D6-brane, numerically. Supergravity parameters $g_s$, $N_c$, $u_{\rm kk}$ and $R$ are related to $SU(N_c)$
theory parameters $M_{\rm kk}$ and $g_{\rm YM}$
according to \eqref{scale}. As \eqref{small-curv} implies
t'Hooft coupling $\lambda$ in this theory is not a fixed parameter
anymore and depends on $u_{\rm kk}$, $\lambda \approx \frac{u_{\rm kk}^{1/2}
R^{3/2}}{l_s^2}$. In addition as was previously
mentioned the curvature of space is proportional to $u_{\rm kk}^{-1/2}$
and so we are not allowed to choose very small values for $u_{\rm kk}$
since it causes very large curvatures. Considering all of these, in this paper we choose $R=1$ and let $u_{\rm kk}$ admit values from $10$ to $100$ that results in
the curvature of order $0.1$ and $\lambda \sim {\cal{O}} (10)$. This
order for $\lambda$ is usually used in gauge/gravity duality
literature. For numerical study of baryon injection we consider the
number of baryons $n_B$ as twice the standard nuclear density $n_N$
times the Lorentz factor $\gamma$, $n_B \sim 2 \gamma n_N$ and for
RHIC data gives $n_B \sim 34$ \cite{Hashimoto:2010wv}. Finally we
set $\omega=1$ in \eqref{g} for numerical computations.

\subsection{Apparent Horizon Formation}
First we study thermalization for the case $u_{\rm kk}=0$ to have a
qualitative comparison with \cite{Hashimoto:2010wv}, however as we
mentioned earlier it is just a formal discussion. When we choose
$g(x^-)=g_m \omega x^-$ from \eqref{g} and solve \eqref{dv-null},
the blue curve in Fig. \ref{t-z-zero} (left) is obtained. The red
line shows $t=z+1/\omega$ which is plotted to determine the valid
region for blue curve, $t< z+1/\omega$. It means that we are
interested in that part of blue curve which lies under the red line.
The point A at ($t_A , z_A$) in Fig. \ref{t-z-zero} (left)  gives
the earliest delivery of the apparent horizon formation, because the
black line in this figure shows the outgoing null ray toward the
boundary. So the thermalization time seen by the boundary observer
is $t_{\rm th}=t_A + z_A$. This time is equal to $t_B$ since the point
$B$ is located at $z=0$ that determines the boundary.
\begin{figure}[ht]
    \begin{center}
        \includegraphics[width=2.6 in]{t-z-zero.pdf}
        \includegraphics[width=2.6 in]{t-z-zero-1.pdf}
        \caption{\small Location of the apparent horizon in $z-t$ plane for $g(x^-)=g_m \omega x^-$ (left) and $g=g_m$ (right). Earliest thermalization for the boundary observor occurs at points A (left) and C (right). Black line is the light ray propagating toward boundary.}
        \label{t-z-zero}
    \end{center}
\end{figure}%

Now if one chooses $g=g_m$ from \eqref{g} and solve \eqref{dv-null},
the green vertical line in Fig. \ref{t-z-zero} (right) is obtained
and its part above the indicator red line is acceptable according to
its interval in \eqref{g}, $t> z+1/\omega$. In this case the point
$C$ gives the time of the apparent horizon formation that from the
boundary observer point of view occurs at $t_D \equiv t_{th}=t_C
+z_C$. According to the numerical values that we have chosen, it is
seen that $t_B < t_D$ and so the point $A$ gives the earliest
occasion.

Now we study thermalization time in the case of $u_{\rm kk}\neq 0$. For
instance we put $u_{\rm kk}=10$ and by choosing $g(x^-)$ from \eqref{g}
we obtain left and right plots in Fig. \ref{t-z-uk} respectively for
$g(x^-)=g_m \omega x^-$ and $g(x^-)=g_m$. The magnified part in Fig.
\ref{t-z-uk} (left) shows the point of tangency of outgoing null
vector with $t-z$ curve. Again the points B and D show the earliest
times that boundary observer reports horizon formation on D6-brane
for each of the choices of $g(x^-)$. According to selected numerical
values it is seen that the thermalization time measured at B is less
than D and therefore the point A gives the earliest delivery of
information about horizon formation.
\begin{figure}[ht]
    \begin{center}
        \includegraphics[width=2.6 in]{t-z-uk.jpg}
        \includegraphics[width=2.6 in]{t-z-uk-1.pdf}
        \caption{\small Location of the apparent horizon in $z-t$ plane for $g(x^-)=g_m \omega x^-$ (left) and $g=g_m$ (right). $u_{\rm kk}$ is set to $10$. Earliest thermalization for the boundary observor occurs at points A (left) and C (right). Black line is the light ray propagating toward boundary.}
        \label{t-z-uk}
    \end{center}
\end{figure}%

All the above discussion and diagrams of apparent horizon formation can be restated in the presence of magnetic field.

\subsection{The Effect of $u_{\rm kk}$ and $B$ on Thermalization Time}

 In this article we defined thermalization as a time-dependent confinment/ deconfinment transition, albeit in meson sector, which occurs due to a sudden change in baryon's number. During this process dynamical degrees of freedom change from mesons to quarks and gluons of thermal plasma. Our goal is to study the effect of scale, $u_{\rm kk}$, and magnetic field, $B$, on transformation of mesons to quarks and gluons in plasma that is addressed in this subsection.

In zero magnetic field for different $u_{\rm kk}$'s we obtain
thermalization time according to the procedure of the previous
subsection. Fig. \ref{th-uk} shows the result and it is seen that
thermalization time increases with $u_{\rm kk}$. Recall that we
introduced mesons as fluctuations of the field $\sigma(\rho)$.
According to meson spectroscopy, mass spectrum of these mesons
regardless of the mass of constituent quarks is proportional to the
energy scale of the theory \cite{Kruczenski:2003uq}
\begin{equation}\label{meson-mass}
M_{\rm meson}^2 \sim M_{\rm kk}^2\sim \frac{u_{\rm kk}}{R^3}.
\end{equation}
On the other hand, binding energy of mesons depends on the mass of the meson \cite{CasalderreySolana:2011us}
\begin{equation}\label{binding}
E_B \sim \sqrt{\lambda} M_{\rm meson}.
\end{equation}
Therefore with $u_{\rm kk}$ increment, meson mass and accordingly its
binding energy increase. Since thermalization time is  defined as
the required time for mesons to transform into quark/gluon thermal plasma, so binding energy increase prolongs meson
thermalization (Fig. \ref{th-uk}). We have fitted solid blue curve
\[
t_{\rm th}^{u_{\rm kk}}=0.001\;u_{\rm kk}^{1.746}+1.148,
\]
to data points in Fig. \ref{th-uk}.
\begin{figure}[ht]
    \begin{center}
        \includegraphics[width=3.6 in]{th-uk.pdf}
        \caption{\small Thermalization time for $t<z+1/\omega$ is plotted in terms of $u_{\rm kk}$. The blue curve shows the fitted function, $t_{\rm th}^{u_{\rm kk}}=0.001\;u_{\rm kk}^{1.746}+1.148$. }
        \label{th-uk}
    \end{center}
\end{figure}%

In the next step for a fixed value of $u_{\rm kk}$ ($u_{\rm kk}=10$) we obtain
thermalization time for different values of the magnetic field. The
result is shown by red points in Fig. \ref{th-b}. As it is seen
thermalization time increases with magnetic field. The reason is the
effect of magnetic field on the binding energy. According
to \cite{Albash:2007bk} magnetic field affects massive mesons by
making them more bounded, and here we are faced with the same
situation because according to \eqref{meson-mass}, $\sigma$ mesons
are massive due to the scale $u_{\rm kk}$. Another study
\cite{Ali-Akbari:2015bha} shows that mass of the meson and therefore
its binding energy increase with magnetic field. So we can conclude that the presence of magnetic field in a system
with energy scale causes meson dissociation to occur later and increases
thermalization time. The blue curve in Fig. \ref{th-b} is a
quadratic function of $B$ which is fitted to data,
\[
t_{\rm th}^B=t_{\rm th}^{B=0}(1+4.6 \times 10^{-4} B + 2.6 \times 10^{-6} B^2).
\]
\begin{figure}[ht]
    \begin{center}
        \includegraphics[width=3.6 in]{th-b.pdf}
        \caption{\small Thermalization time for $t<z+1/\omega$ is plotted in terms of  ${\cal B}(=2\pi \alpha' B)$ for a specific value $u_{\rm kk}=10$. The blue curve shows the fitted function, $t_{\rm th}^B=t_{\rm th}^{B=0}(1+4.6 \times 10^{-4} B + 2.6 \times 10^{-6} B^2)$ where $t_{\rm th}^{B=0}=1.3158$.}
        \label{th-b}
    \end{center}
\end{figure}%
This qualitative study demonstrates that dependence of $t_{\rm th}$ on magnetic field is insignificant as is pointed in \cite{Fuini:2015hba}.

\section{Summary and Results}

In this article, using AdS/CFT duality, we investigated meson thermalization in QGP in the presence of magnetic field. We supposed that four dimensional large-N$_c$ QCD governs the strongly coupled QGP and we considered a system of N$_c$ D4-branes compactified on a circle as its gravitational dual theory. Inverse of the compactification radius corresponds to energy scale in dual gauge theory and the presence of this scale makes this theory more similar to QCD. To have matter fields we introduced a flavor D6-brane to the system of N$_c$ D4-branes. Then we studied the effect of energy scale and magnetic field on the shape of this flavor brane. As we expected, both quantities prompt a repulsive force between flavor D6-brane and background D4-branes.

Since fluctuations on the flavor brane introduce mesons in the dual gauge theory, to study meson thermalization we first obtained effective metric felt by scalar fluctuations on the brane by expanding DBI action of flavor brane around its classical shape. Then using time dependent components of this metric we wrote the necessary condition for apparent horizon formation on flavor brane which is dual to meson thermalization in dual gauge theory. We considered baryon injection model to mimic the heavy ion collision. It means that we defined baryon-number chemical potential according to a time dependent profile. Using this we introduced the required condition for apparent horizon formation and obtained meson thermalization time in the boundary gauge theory. Finally we studied how the presence of energy scale and magnetic field affect meson thermalization time.

We observed that meson thermalization time or in the other words required time for mesons to transform into quark and gluon degrees of freedom in plasma, increases with energy scale. The reason is that in such a theory, mass of the meson increases when one raises the scale of energy, regardless of the mass of its constituent quarks. This leads to the increase of mesons' binding energy and therefore meson dissociation  becomes harder and thermalization process is prolonged. In addition it was shown that in a fixed energy scale meson thermalization time increases with the magnetic field enhancement. This observation is also justifiable by meson binding energy considerations. In fact it is confirmed in the literature that magnetic field augments the binding energy of mesons and they become more stable. So it is more difficult for them to transform into quark and gluon degrees of freedom in thermal plasma and the thermalization time increases. Note that the effect of magnetic field on thermalization time is not significant except for strong magnetic fields.

\subsection*{Acknowledgments}
The author is thankful to M. Ali-Akbari and M. Rajaee for fruitful comments and discussions.

redpajama_set_name: RedPajamaArXiv


text:
* [
      StefanLage
      /
      SLPagingView
](https://github.com/StefanLage/SLPagingView):
      Navigation bar system allowing to do a Tinder like or Twitter like

* [
      ArtSabintsev
      /
      Harpy
](https://github.com/ArtSabintsev/Harpy):
      Notify users when a new version of your iOS app is available, and prompt them with the App Store link.

* [
      mbrenman
      /
      MBSimpleLoadingIndicator
](https://github.com/mbrenman/MBSimpleLoadingIndicator):
      An easy-to-use, highly-customizable loading indicator for iOS apps

* [
      Masonry
      /
      Masonry
](https://github.com/Masonry/Masonry):
      Harness the power of AutoLayout NSLayoutConstraints with a simplified, chainable and expressive syntax. Supports iOS and OSX Auto Layout

* [
      onevcat
      /
      VVBlurPresentation
](https://github.com/onevcat/VVBlurPresentation):
      A simple way to present a view controller with keeping the blurred previous one.

* [
      kevinzhow
      /
      PNChart
](https://github.com/kevinzhow/PNChart):
      A simple and beautiful chart lib used in Piner and CoinsMan for iOS

* [
      youtube
      /
      youtube-ios-player-helper
](https://github.com/youtube/youtube-ios-player-helper):
      Helper library for iOS developers looking to add YouTube video playback in their applications via the iframe player in a UIWebView

* [
      AFNetworking
      /
      AFNetworking
](https://github.com/AFNetworking/AFNetworking):
      A delightful iOS and OS X networking framework

* [
      mutualmobile
      /
      MMDrawerController
](https://github.com/mutualmobile/MMDrawerController):
       A lightweight, easy to use, Side Drawer Navigation Controller

* [
      smileyborg
      /
      PureLayout
](https://github.com/smileyborg/PureLayout):
      The ultimate API for iOS & OS X Auto Layout — impressively simple, immensely powerful. Objective-C and Swift compatible.

* [
      sibahota059
      /
      SPHChatCollectionView
](https://github.com/sibahota059/SPHChatCollectionView):
      SPHChatCollectionView to use in chat screens. (Supports iOS 8)

* [
      jessesquires
      /
      JSQMessagesViewController
](https://github.com/jessesquires/JSQMessagesViewController):
      An elegant messages UI library for iOS

* [
      atljeremy
      /
      JFMinimalNotifications
](https://github.com/atljeremy/JFMinimalNotifications):
      An iOS UIView for presenting a minimalistic notification that doesn't block the UI and is highly configurable.

* [
      coolbeet
      /
      CBStoreHouseRefreshControl
](https://github.com/coolbeet/CBStoreHouseRefreshControl):
      Fully customizable pull-to-refresh control inspired by Storehouse iOS app

* [
      newmarcel
      /
      KeepingYouAwake
](https://github.com/newmarcel/KeepingYouAwake):
      A Caffeine clone for OS X Yosemite (and Dark Mode).

* [
      xmartlabs
      /
      XLPagerTabStrip
](https://github.com/xmartlabs/XLPagerTabStrip):
      Android PagerTabStrip for iOS.

* [
      johnno1962
      /
      Remote
](https://github.com/johnno1962/Remote):
      Control your iPhone from inside Xcode for end-to-end testing.

* [
      facebook
      /
      AsyncDisplayKit
](https://github.com/facebook/AsyncDisplayKit):
      Smooth asynchronous user interfaces for iOS apps.

* [
      ReactiveCocoa
      /
      ReactiveCocoa
](https://github.com/ReactiveCocoa/ReactiveCocoa):
      A framework for composing and transforming streams of values

* [
      hackiftekhar
      /
      IQKeyboardManager
](https://github.com/hackiftekhar/IQKeyboardManager):
      IQKeyboardManager is a drop-in universal library allows to prevent issues of UIKeyboard sliding up and cover UITextField/UITextView. Neither need to write any code nor any setup required and much more.

* [
      omergul123
      /
      LLSimpleCamera
](https://github.com/omergul123/LLSimpleCamera):
      A simple, customizable camera control for iOS.

* [
      FabrizioBrancati
      /
      BFKit
](https://github.com/FabrizioBrancati/BFKit):
      BFKit is a collection of useful classes to develop Apps faster

* [
      andreamazz
      /
      AMScrollingNavbar
](https://github.com/andreamazz/AMScrollingNavbar):
      Scrollable UINavigationBar that follows the scrolling of a UIScrollView

* [
      nate-parrott
      /
      Flashlight
](https://github.com/nate-parrott/Flashlight):
      The missing Spotlight plugin system

* [
      MakeZL
      /
      ZLGotoSandboxPlugin
](https://github.com/MakeZL/ZLGotoSandboxPlugin):
      You can quickly enter the iOS simulator Xcode plugin!

####go
* [
      nwidger
      /
      nintengo
](https://github.com/nwidger/nintengo):
      An NES emulator written in Go

* [
      google
      /
      novm
](https://github.com/google/novm):
      Experimental KVM-based VMM, written in Go.

* [
      mozillazg
      /
      go-pinyin
](https://github.com/mozillazg/go-pinyin):
      汉语拼音转换工具

* [
      golang
      /
      go
](https://github.com/golang/go):
      The Go programming language

* [
      ttacon
      /
      libphonenumber
](https://github.com/ttacon/libphonenumber):
      golang port of Google's libphonenumber

* [
      docker
      /
      docker
](https://github.com/docker/docker):
      Docker - the open-source application container engine

* [
      shazow
      /
      ssh-chat
](https://github.com/shazow/ssh-chat):
      Chat over SSH.

* [
      colinmarc
      /
      hdfs
](https://github.com/colinmarc/hdfs):
      A native go client for HDFS

* [
      GoogleCloudPlatform
      /
      kubernetes
](https://github.com/GoogleCloudPlatform/kubernetes):
      Container Cluster Manager

* [
      hashicorp
      /
      envconsul
](https://github.com/hashicorp/envconsul):
      Read and set environmental variables for processes from Consul.

* [
      astaxie
      /
      build-web-application-with-golang
](https://github.com/astaxie/build-web-application-with-golang):
      A golang ebook intro how to build a web with golang

* [
      Shopify
      /
      ejson
](https://github.com/Shopify/ejson):
      EJSON is a small library to manage encrypted secrets using asymmetric encryption.

* [
      syncthing
      /
      syncthing
](https://github.com/syncthing/syncthing):
      Open Source Continuous File Synchronization

* [
      influxdb
      /
      influxdb
](https://github.com/influxdb/influxdb):
      Scalable datastore for metrics, events, and real-time analytics

* [
      dropbox
      /
      godropbox
](https://github.com/dropbox/godropbox):
      Common libraries for writing Go services/applications.

* [
      limetext
      /
      lime
](https://github.com/limetext/lime):
      Open source API-compatible alternative to Sublime Text

* [
      coreos
      /
      rocket
](https://github.com/coreos/rocket):
      App Container runtime

* [
      coreos
      /
      etcd
](https://github.com/coreos/etcd):
      A highly-available key value store for shared configuration and service discovery

* [
      drone
      /
      drone
](https://github.com/drone/drone):
      Drone is a Continuous Integration platform built on Docker, written in Go

* [
      docker
      /
      machine
](https://github.com/docker/machine):
      Machine management for a container-centric world

* [
      cockroachdb
      /
      cockroach
](https://github.com/cockroachdb/cockroach):
      A Scalable, Geo-Replicated, Transactional Datastore

* [
      gogits
      /
      gogs
](https://github.com/gogits/gogs):
      Gogs(Go Git Service) is a painless self-hosted Git Service written in Go.

* [
      prometheus
      /
      prometheus
](https://github.com/prometheus/prometheus):
      The Prometheus systems and service monitoring server

* [
      revel
      /
      revel
](https://github.com/revel/revel):
      A high productivity, full-stack web framework for the Go language.

* [
      github
      /
      hub
](https://github.com/github/hub):
      hub helps you win at git.

####javascript
* [
      daniel-lundin
      /
      snabbt.js
](https://github.com/daniel-lundin/snabbt.js):
      Fast animations with javascript and CSS transforms

* [
      ecomfe
      /
      echarts
](https://github.com/ecomfe/echarts):
      Enterprise Charts | Github pages : http://ecomfe.github.io/echarts/index-en.html | Email : echarts@baidu.com | Baidu Hi : 1379172 |

* [
      vesparny
      /
      morpheus
](https://github.com/vesparny/morpheus):
      The next generation web publishing platform.

* [
      keen
      /
      dashboards
](https://github.com/keen/dashboards):
      Responsive dashboard templates for Bootstrap

* [
      systemjs
      /
      systemjs
](https://github.com/systemjs/systemjs):
      Universal dynamic module loader

* [
      iojs
      /
      io.js
](https://github.com/iojs/io.js):
      A spork of Node.js with an open governance model

* [
      Zhouzi
      /
      TheaterJS
](https://github.com/Zhouzi/TheaterJS):
      Typing effect mimicking human behavior.

* [
      angular
      /
      angular.js
](https://github.com/angular/angular.js):
      HTML enhanced for web apps

* [
      meteoric
      /
      meteor-ionic
](https://github.com/meteoric/meteor-ionic):
      Ionic components for Meteor. No Angular!

* [
      allmobilize
      /
      amazeui
](https://github.com/allmobilize/amazeui):
      Amaze UI, a mobile-first and modular front-end framework.

* [
      6to5
      /
      6to5
](https://github.com/6to5/6to5):
      Turn ES6+ code into readable vanilla ES5 with source maps and more!

* [
      Semantic-Org
      /
      Semantic-UI
](https://github.com/Semantic-Org/Semantic-UI):
      Semantic is a UI component framework based around useful principles from natural language.

* [
      zxlie
      /
      WeixinApi
](https://github.com/zxlie/WeixinApi):
      专门用于微信公众平台的Javascript API

* [
      nnnick
      /
      Chart.js
](https://github.com/nnnick/Chart.js):
      Simple HTML5 Charts using the <canvas> tag

* [
      sindresorhus
      /
      got
](https://github.com/sindresorhus/got):
      Simplified HTTP/HTTPS requests

* [
      facebook
      /
      react
](https://github.com/facebook/react):
      A declarative, efficient, and flexible JavaScript library for building user interfaces.

* [
      facebook
      /
      flux
](https://github.com/facebook/flux):
      Application Architecture for Building User Interfaces

* [
      driftyco
      /
      ionic
](https://github.com/driftyco/ionic):
      Advanced HTML5 mobile development framework and SDK. Build great hybrid apps with web technologies you already know and love. Best friends with AngularJS.

* [
      angular
      /
      material
](https://github.com/angular/material):
      Material design for Angular

* [
      getify
      /
      You-Dont-Know-JS
](https://github.com/getify/You-Dont-Know-JS):
      A JavaScript book series. @YDKJS on twitter.

* [
      Unitech
      /
      PM2
](https://github.com/Unitech/PM2):
      Production process manager for Node.JS applications. Perfectly designed for microservice architecture.

* [
      joyent
      /
      node
](https://github.com/joyent/node):
      evented I/O for v8 javascript

* [
      strongloop
      /
      express
](https://github.com/strongloop/express):
      Fast, unopinionated, minimalist web framework for node.

* [
      jspm
      /
      jspm-cli
](https://github.com/jspm/jspm-cli):
      Package management CLI

* [
      dcloudio
      /
      mui
](https://github.com/dcloudio/mui):
      最接近原生APP体验的高性能框架

####ruby
* [
      NARKOZ
      /
      ginatra
](https://github.com/NARKOZ/ginatra):
      A web frontend for Git repositories

* [
      markburns
      /
      to_factory
](https://github.com/markburns/to_factory):
      Auto generate factories from data

* [
      discourse
      /
      discourse
](https://github.com/discourse/discourse):
      A platform for community discussion. Free, open, simple.

* [
      jekyll
      /
      jekyll
](https://github.com/jekyll/jekyll):
      Jekyll is a blog-aware, static site generator in Ruby

* [
      Homebrew
      /
      homebrew
](https://github.com/Homebrew/homebrew):
      The missing package manager for OS X.

* [
      elabs
      /
      refile
](https://github.com/elabs/refile):
      Ruby file uploads, take 3

* [
      Yinfei
      /
      rpg_tools
](https://github.com/Yinfei/rpg_tools):
      RpgTools is a toolbox for tabletop games and RPGs

* [
      rails
      /
      rails
](https://github.com/rails/rails):
      Ruby on Rails

* [
      forgecrafted
      /
      finishing_moves
](https://github.com/forgecrafted/finishing_moves):
      Small, focused, incredibly useful methods added to core Ruby classes.

* [
      gitlabhq
      /
      gitlabhq
](https://github.com/gitlabhq/gitlabhq):
      Open source software to collaborate on code. Follow us on twitter @gitlab

* [
      elasticsearch
      /
      logstash
](https://github.com/elasticsearch/logstash):
      logstash - logs/event transport, processing, management, search.

* [
      caskroom
      /
      homebrew-cask
](https://github.com/caskroom/homebrew-cask):
      A CLI workflow for the administration of Mac applications distributed as binaries

* [
      rapid7
      /
      metasploit-framework
](https://github.com/rapid7/metasploit-framework):
      Metasploit Framework

* [
      seratch
      /
      rspec-kickstarter
](https://github.com/seratch/rspec-kickstarter):
      RSpec 3 code generator toward existing Ruby code.

* [
      chanks
      /
      que
](https://github.com/chanks/que):
      A Ruby job queue that uses PostgreSQL's advisory locks for speed and reliability.

* [
      outpunk
      /
      evil-icons
](https://github.com/outpunk/evil-icons):
      Simple and clean SVG icon pack with the code to support Rails, Node.js, Gulp and Grunt

* [
      sagivo
      /
      algorithms
](https://github.com/sagivo/algorithms):
      algorithms playground for common questions

* [
      plataformatec
      /
      devise
](https://github.com/plataformatec/devise):
      Flexible authentication solution for Rails with Warden.

* [
      lotus
      /
      lotus
](https://github.com/lotus/lotus):
      A complete web framework for Ruby

* [
      nomad
      /
      shenzhen
](https://github.com/nomad/shenzhen):
      CLI for Building & Distributing iOS Apps (.ipa Files)

* [
      bbatsov
      /
      rubocop
](https://github.com/bbatsov/rubocop):
      A Ruby static code analyzer, based on the community Ruby style guide.

* [
      skwp
      /
      dotfiles
](https://github.com/skwp/dotfiles):
      YADR - The best vim,git,zsh plugins and the cleanest vimrc you've ever seen

* [
      ruby
      /
      ruby
](https://github.com/ruby/ruby):
      The Ruby Programming Language

* [
      inf0rmer
      /
      blanket
](https://github.com/inf0rmer/blanket):
      A dead simple API wrapper

* [
      apotonick
      /
      trailblazer
](https://github.com/apotonick/trailblazer):
      A new architecture for Rails.

redpajama_set_name: RedPajamaGithub


"I'm Elliot Francis. Evert's released President Trump's tax returns continue as the chair of the House Ways and means committee, Richard Neal sets another deadline for their release. Correspondent for Sanchez report. Neil is essentially arguing that questions about the constitutionality of his requests are invalid. And that he has the right to make this request as the chairman of the House Ways and means committee. He writes, quote, it is not proper function of the IRS treasury or Justice to question or second guessed the motivations of the committee or it's reasonable determinations regarding its need for the requested tax returns. And return information already say two more deaths than blamed on those weekend. Storms that ravaged the south bringing the death toll to at least eight right now on line of storms stretches from making Georgia all the way to Toronto tornado watch some lasting through early Monday of an issue for most of West Virginia, most of North Carolina, Pennsylvania and Maryland. Parts of Ohio and New York. So far airlines have canceled Nellie Twenty-three hundred flights. A group of democratic lawmakers is looking at a way to make filing your taxes a bit easier next year. Linda Kenyon, explains"


Opportunities in Emergency Care (OEC) is an award-winning medical education program that offers extensive opportunities to students interested in serving others in the healthcare field.
We teach EMS (Emergency Medical Services) programs to regional high school students and offer continuing education for adults. Students can learn basic First Aid, or become fully prepared for pursuing careers in clinics, hospitals, nursing homes, in-home healthcare, ambulance services, fire departments, etc. through our First Aid & CPR, EMR (Emergency Medical Responder), EMT (Emergency Medical Technician), NA-R (Nursing Assistant – Registered), Self Defense and Medical Internship programs. Students can also earn college credits and/or their NREMT (National Registry of Emergency Medical Technician) certification, which enables them to pursue careers in various EMS and healthcare professions.
Based in Spring Lake Park High School, we educate in-district, as well as out-of-district students from many other regional high schools.


In this shootout, I will compare 7 Kodi (was XBMC) remote controls to see which one is the most ideal way to control your Kodi powered HTPC.
I have been using all of the following 7 controlling devices over the past few months and years, so the comparison is based on real life media center use. The comparison and testing was done with the following two HTPCs: an Intel Core i3 system with Windows 8 and an AMD A6-3500 with OpenELEC OS.
Let's start by reviewing each contender separately and then summarize the comparison at the end of this article.
HDMI CEC adapter is a new technology that allows your devices such as TV and HTPC to talk with each other over the HDMI cable. In practice this means that you can use your TV's remote to send key presses to XBMC or any other application that supports libCEC on your home theater computer.
My Samsung Smart TV works out of the box with the HDMI CEC adapter. The key buttons in TV's remote are mapped with XBMC and it is enough for the basic use. However, you are not able to map additional buttons, so the customizability is not so good with the HDMI CEC adapter.
There are nice additional features that no other remote control can provide. For example, the adapter allows you to turn off the TV when the screensaver is activated and turn it back on when any key is pressed. You can also turn off the TV when shutting down the XBMC and automatically turn it on when you boot up your HTPC.
The Flirc USB IR receiver is a very interesting adapter that turns IR signals of any remote into keyboard commands.
You can buy the adapter and download a free application from flirc.tv. You can use the automated GUI to setup any remote control with your media PC. After completing the automated installation procedure, you are ready to start controlling the XBMC or any other media center software with the IR remote.
Another great benefit of Flirc is that you can configure the adapter with one computer and then plug Flirc into another computer and your previously paired remote just works without additional software or drivers needed.
I have been very positively surprised with the Flirc (get it here) and would recommend it to anyone who want to use an existing remote control with HTPC.
Based on my experience, the most versatile and useful iOS app (iPhone, iPad, iPod Touch) for controlling your media center is the XBMC Constellation app. I´ve been using it with my iPad to control Raspbmc on Raspberry Pi and it´s very easy to locate media files with this app.
There are some unique features such as live TV EPG support for the PVR edition of the media center. Basic controlling functionality include navigation, playback, volume control, keyboard and other special buttons.
The movie and browser fan-art is displayed beautifully on the screen and the app can display all the meta data, too.
I've been using an IR remote control that came with the Anysee USB TV tuner.
The challenge with many IR remotes is that not all keys work out of the box, so you need to customize keyboard.xml to get all the buttons working. Secondly, you need to have line of sight to the computer in order to get good reception.
While the traditional IR controlling is still the most popular method, in my own opinion RF or Bluetooth connection allows you to have much more responsive navigation that is needed when controlling a home theater computer.
I´ve been using Microsoft Arc keyboard for quite some time now and I really like its compact size and shape. Other good choices include IOGear, Logitech and Apple keyboards.
A keyboard isn´t necessarily needed when running an operating system like OpenELEC, but in a Windows environment it´s needed every now and then.
A wireless keyboard allows you to have responsive navigation and keyboard shortcuts at your finger tips. Once you remember most of the keyboard shortcuts, you can very efficiently find your way around the user interface.
The downside of the keyboard is obviously that it does not fit into one hand like a remote and it can easily look "out of the place" in the living room.
The Logitech Air Mouse has always been my favorite control device, at least until I started to use skins like Aeon Nox which do not support the mouse.
The benefits include fast browsing and scrolling speed in the menus and simple usability. The downside is that many XBMC skins don´t support mouse controlling, so you have a limited number of skins to choose from.
A mouse is not really needed with OpenELEC, but again in Windows it´s a must have.
Wiimote is a handy bluetooth remote that comes with the popular Nintendo Wii game console. The latest OpenELEC supports the Wiimote almost out of the box.
All you need to do is to activate the xbmc-wiimote service add-on from the OpenELEC addons menu and pair the Wiimote by pressing the connect button in the remote.
I'm positively surprised how well the Wiimote works with the XBMC. The remote is very responsive and easy to use. It has all the main buttons including navigation keys, enter, back, home and volume buttons. On the other hand, you do not have any additional buttons that you might used to have in other remote controls.
Connection Wake on USB? IR Learning?
Connection refers to the technology regarding how the key presses are transmitted to the receiver and to the computer. Infrared transmission is the most traditional way, but it requires a direct line of sight to the devices.
The RF (radio frequency) transmission is commonly used in wireless keyboards and mouses, but now it is available in some of the more advanced controlling devices such as the NYXBoard. Bluetooth connection works in a similar way as the RF, but has even longer range.
The advantage of a WiFi connection is that you can control the device from a huge distance.
Wake on USB means that you can turn the computer on from a hibernation mode or turned off state. For example when using a HDMI CEC adapter, you can turn both HTPC and TV on and off with one single key press.
IR learning means that you can teach commands from other remote controls that operate other home theater equipments such as TV and A/V receiver. The advantage is that you will only need one controlling device to send signals to all other devices in your living room.
Currently, the only device that supports both RF and IR commands is the Motorola NYXBoard Hybrid.
I wanted something completely flexible and usable with any hardware device such as HTPC, Raspberry Pi and Ouya, I use Flirc and Logitech Harmony Remote. Nothing can beat using a Flirc from a flexibility and customizability point of view.
If you want a simple XBMC solution and have a modern TV, then HDMI-CEC could be enough for you if you are fine with the limitations.


text:
=pod

=head1 NAME

provider-signature - The signature library E<lt>-E<gt> provider functions

=head1 SYNOPSIS

=for openssl multiple includes

 #include <openssl/core_dispatch.h>
 #include <openssl/core_names.h>

 /*
  * None of these are actual functions, but are displayed like this for
  * the function signatures for functions that are offered as function
  * pointers in OSSL_DISPATCH arrays.
  */

 /* Context management */
 void *OSSL_FUNC_signature_newctx(void *provctx, const char *propq);
 void OSSL_FUNC_signature_freectx(void *ctx);
 void *OSSL_FUNC_signature_dupctx(void *ctx);

 /* Signing */
 int OSSL_FUNC_signature_sign_init(void *ctx, void *provkey,
                                   const OSSL_PARAM params[]);
 int OSSL_FUNC_signature_sign(void *ctx, unsigned char *sig, size_t *siglen,
                              size_t sigsize, const unsigned char *tbs, size_t tbslen);

 /* Verifying */
 int OSSL_FUNC_signature_verify_init(void *ctx, void *provkey,
                                     const OSSL_PARAM params[]);
 int OSSL_FUNC_signature_verify(void *ctx, const unsigned char *sig, size_t siglen,
                                const unsigned char *tbs, size_t tbslen);

 /* Verify Recover */
 int OSSL_FUNC_signature_verify_recover_init(void *ctx, void *provkey,
                                             const OSSL_PARAM params[]);
 int OSSL_FUNC_signature_verify_recover(void *ctx, unsigned char *rout,
                                        size_t *routlen, size_t routsize,
                                        const unsigned char *sig, size_t siglen);

 /* Digest Sign */
 int OSSL_FUNC_signature_digest_sign_init(void *ctx, const char *mdname,
                                          void *provkey,
                                          const OSSL_PARAM params[]);
 int OSSL_FUNC_signature_digest_sign_update(void *ctx, const unsigned char *data,
                                     size_t datalen);
 int OSSL_FUNC_signature_digest_sign_final(void *ctx, unsigned char *sig,
                                           size_t *siglen, size_t sigsize);
 int OSSL_FUNC_signature_digest_sign(void *ctx,
                              unsigned char *sigret, size_t *siglen,
                              size_t sigsize, const unsigned char *tbs,
                              size_t tbslen);

 /* Digest Verify */
 int OSSL_FUNC_signature_digest_verify_init(void *ctx, const char *mdname,
                                            void *provkey,
                                            const OSSL_PARAM params[]);
 int OSSL_FUNC_signature_digest_verify_update(void *ctx,
                                              const unsigned char *data,
                                              size_t datalen);
 int OSSL_FUNC_signature_digest_verify_final(void *ctx, const unsigned char *sig,
                                      size_t siglen);
 int OSSL_FUNC_signature_digest_verify(void *ctx, const unsigned char *sig,
                                size_t siglen, const unsigned char *tbs,
                                size_t tbslen);

 /* Signature parameters */
 int OSSL_FUNC_signature_get_ctx_params(void *ctx, OSSL_PARAM params[]);
 const OSSL_PARAM *OSSL_FUNC_signature_gettable_ctx_params(void *ctx,
                                                           void *provctx);
 int OSSL_FUNC_signature_set_ctx_params(void *ctx, const OSSL_PARAM params[]);
 const OSSL_PARAM *OSSL_FUNC_signature_settable_ctx_params(void *ctx,
                                                           void *provctx);
 /* MD parameters */
 int OSSL_FUNC_signature_get_ctx_md_params(void *ctx, OSSL_PARAM params[]);
 const OSSL_PARAM * OSSL_FUNC_signature_gettable_ctx_md_params(void *ctx);
 int OSSL_FUNC_signature_set_ctx_md_params(void *ctx, const OSSL_PARAM params[]);
 const OSSL_PARAM * OSSL_FUNC_signature_settable_ctx_md_params(void *ctx);

=head1 DESCRIPTION

This documentation is primarily aimed at provider authors. See L<provider(7)>
for further information.

The signature (OSSL_OP_SIGNATURE) operation enables providers to implement
signature algorithms and make them available to applications via the API
functions L<EVP_PKEY_sign(3)>,
L<EVP_PKEY_verify(3)>,
and L<EVP_PKEY_verify_recover(3)> (as well
as other related functions).

All "functions" mentioned here are passed as function pointers between
F<libcrypto> and the provider in B<OSSL_DISPATCH> arrays via
B<OSSL_ALGORITHM> arrays that are returned by the provider's
provider_query_operation() function
(see L<provider-base(7)/Provider Functions>).

All these "functions" have a corresponding function type definition
named B<OSSL_FUNC_{name}_fn>, and a helper function to retrieve the
function pointer from an B<OSSL_DISPATCH> element named
B<OSSL_FUNC_{name}>.
For example, the "function" OSSL_FUNC_signature_newctx() has these:

 typedef void *(OSSL_FUNC_signature_newctx_fn)(void *provctx, const char *propq);
 static ossl_inline OSSL_FUNC_signature_newctx_fn
     OSSL_FUNC_signature_newctx(const OSSL_DISPATCH *opf);

B<OSSL_DISPATCH> arrays are indexed by numbers that are provided as
macros in L<openssl-core_dispatch.h(7)>, as follows:

 OSSL_FUNC_signature_newctx                 OSSL_FUNC_SIGNATURE_NEWCTX
 OSSL_FUNC_signature_freectx                OSSL_FUNC_SIGNATURE_FREECTX
 OSSL_FUNC_signature_dupctx                 OSSL_FUNC_SIGNATURE_DUPCTX

 OSSL_FUNC_signature_sign_init              OSSL_FUNC_SIGNATURE_SIGN_INIT
 OSSL_FUNC_signature_sign                   OSSL_FUNC_SIGNATURE_SIGN

 OSSL_FUNC_signature_verify_init            OSSL_FUNC_SIGNATURE_VERIFY_INIT
 OSSL_FUNC_signature_verify                 OSSL_FUNC_SIGNATURE_VERIFY

 OSSL_FUNC_signature_verify_recover_init    OSSL_FUNC_SIGNATURE_VERIFY_RECOVER_INIT
 OSSL_FUNC_signature_verify_recover         OSSL_FUNC_SIGNATURE_VERIFY_RECOVER

 OSSL_FUNC_signature_digest_sign_init       OSSL_FUNC_SIGNATURE_DIGEST_SIGN_INIT
 OSSL_FUNC_signature_digest_sign_update     OSSL_FUNC_SIGNATURE_DIGEST_SIGN_UPDATE
 OSSL_FUNC_signature_digest_sign_final      OSSL_FUNC_SIGNATURE_DIGEST_SIGN_FINAL
 OSSL_FUNC_signature_digest_sign            OSSL_FUNC_SIGNATURE_DIGEST_SIGN

 OSSL_FUNC_signature_digest_verify_init     OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_INIT
 OSSL_FUNC_signature_digest_verify_update   OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_UPDATE
 OSSL_FUNC_signature_digest_verify_final    OSSL_FUNC_SIGNATURE_DIGEST_VERIFY_FINAL
 OSSL_FUNC_signature_digest_verify          OSSL_FUNC_SIGNATURE_DIGEST_VERIFY

 OSSL_FUNC_signature_get_ctx_params         OSSL_FUNC_SIGNATURE_GET_CTX_PARAMS
 OSSL_FUNC_signature_gettable_ctx_params    OSSL_FUNC_SIGNATURE_GETTABLE_CTX_PARAMS
 OSSL_FUNC_signature_set_ctx_params         OSSL_FUNC_SIGNATURE_SET_CTX_PARAMS
 OSSL_FUNC_signature_settable_ctx_params    OSSL_FUNC_SIGNATURE_SETTABLE_CTX_PARAMS

 OSSL_FUNC_signature_get_ctx_md_params      OSSL_FUNC_SIGNATURE_GET_CTX_MD_PARAMS
 OSSL_FUNC_signature_gettable_ctx_md_params OSSL_FUNC_SIGNATURE_GETTABLE_CTX_MD_PARAMS
 OSSL_FUNC_signature_set_ctx_md_params      OSSL_FUNC_SIGNATURE_SET_CTX_MD_PARAMS
 OSSL_FUNC_signature_settable_ctx_md_params OSSL_FUNC_SIGNATURE_SETTABLE_CTX_MD_PARAMS

A signature algorithm implementation may not implement all of these functions.
In order to be a consistent set of functions we must have at least a set of
context functions (OSSL_FUNC_signature_newctx and OSSL_FUNC_signature_freectx) as well as a
set of "signature" functions, i.e. at least one of:

=over 4

=item OSSL_FUNC_signature_sign_init and OSSL_FUNC_signature_sign

=item OSSL_FUNC_signature_verify_init and OSSL_FUNC_signature_verify

=item OSSL_FUNC_signature_verify_recover_init and OSSL_FUNC_signature_verify_init

=item OSSL_FUNC_signature_digest_sign_init, OSSL_FUNC_signature_digest_sign_update and OSSL_FUNC_signature_digest_sign_final

=item OSSL_FUNC_signature_digest_verify_init, OSSL_FUNC_signature_digest_verify_update and OSSL_FUNC_signature_digest_verify_final

=item OSSL_FUNC_signature_digest_sign_init and OSSL_FUNC_signature_digest_sign

=item OSSL_FUNC_signature_digest_verify_init and OSSL_FUNC_signature_digest_verify

=back

OSSL_FUNC_signature_set_ctx_params and OSSL_FUNC_signature_settable_ctx_params are optional,
but if one of them is present then the other one must also be present. The same
applies to OSSL_FUNC_signature_get_ctx_params and OSSL_FUNC_signature_gettable_ctx_params, as
well as the "md_params" functions. The OSSL_FUNC_signature_dupctx function is optional.

A signature algorithm must also implement some mechanism for generating,
loading or importing keys via the key management (OSSL_OP_KEYMGMT) operation.
See L<provider-keymgmt(7)> for further details.

=head2 Context Management Functions

OSSL_FUNC_signature_newctx() should create and return a pointer to a provider side
structure for holding context information during a signature operation.
A pointer to this context will be passed back in a number of the other signature
operation function calls.
The parameter I<provctx> is the provider context generated during provider
initialisation (see L<provider(7)>). The I<propq> parameter is a property query
string that may be (optionally) used by the provider during any "fetches" that
it may perform (if it performs any).

OSSL_FUNC_signature_freectx() is passed a pointer to the provider side signature
context in the I<ctx> parameter.
This function should free any resources associated with that context.

OSSL_FUNC_signature_dupctx() should duplicate the provider side signature context in
the I<ctx> parameter and return the duplicate copy.

=head2 Signing Functions

OSSL_FUNC_signature_sign_init() initialises a context for signing given a provider side
signature context in the I<ctx> parameter, and a pointer to a provider key object
in the I<provkey> parameter.
The I<params>, if not NULL, should be set on the context in a manner similar to
using OSSL_FUNC_signature_set_ctx_params().
The key object should have been previously generated, loaded or imported into
the provider using the key management (OSSL_OP_KEYMGMT) operation (see
provider-keymgmt(7)>.

OSSL_FUNC_signature_sign() performs the actual signing itself.
A previously initialised signature context is passed in the I<ctx>
parameter.
The data to be signed is pointed to be the I<tbs> parameter which is I<tbslen>
bytes long.
Unless I<sig> is NULL, the signature should be written to the location pointed
to by the I<sig> parameter and it should not exceed I<sigsize> bytes in length.
The length of the signature should be written to I<*siglen>.
If I<sig> is NULL then the maximum length of the signature should be written to
I<*siglen>.

=head2 Verify Functions

OSSL_FUNC_signature_verify_init() initialises a context for verifying a signature given
a provider side signature context in the I<ctx> parameter, and a pointer to a
provider key object in the I<provkey> parameter.
The I<params>, if not NULL, should be set on the context in a manner similar to
using OSSL_FUNC_signature_set_ctx_params().
The key object should have been previously generated, loaded or imported into
the provider using the key management (OSSL_OP_KEYMGMT) operation (see
provider-keymgmt(7)>.

OSSL_FUNC_signature_verify() performs the actual verification itself.
A previously initialised signature context is passed in the I<ctx> parameter.
The data that the signature covers is pointed to be the I<tbs> parameter which
is I<tbslen> bytes long.
The signature is pointed to by the I<sig> parameter which is I<siglen> bytes
long.

=head2 Verify Recover Functions

OSSL_FUNC_signature_verify_recover_init() initialises a context for recovering the
signed data given a provider side signature context in the I<ctx> parameter, and
a pointer to a provider key object in the I<provkey> parameter.
The I<params>, if not NULL, should be set on the context in a manner similar to
using OSSL_FUNC_signature_set_ctx_params().
The key object should have been previously generated, loaded or imported into
the provider using the key management (OSSL_OP_KEYMGMT) operation (see
provider-keymgmt(7)>.

OSSL_FUNC_signature_verify_recover() performs the actual verify recover itself.
A previously initialised signature context is passed in the I<ctx> parameter.
The signature is pointed to by the I<sig> parameter which is I<siglen> bytes
long.
Unless I<rout> is NULL, the recovered data should be written to the location
pointed to by I<rout> which should not exceed I<routsize> bytes in length.
The length of the recovered data should be written to I<*routlen>.
If I<rout> is NULL then the maximum size of the output buffer is written to
the I<routlen> parameter.

=head2 Digest Sign Functions

OSSL_FUNC_signature_digeset_sign_init() initialises a context for signing given a
provider side signature context in the I<ctx> parameter, and a pointer to a
provider key object in the I<provkey> parameter.
The I<params>, if not NULL, should be set on the context in a manner similar to
using OSSL_FUNC_signature_set_ctx_params() and
OSSL_FUNC_signature_set_ctx_md_params().
The key object should have been
previously generated, loaded or imported into the provider using the
key management (OSSL_OP_KEYMGMT) operation (see provider-keymgmt(7)>.
The name of the digest to be used will be in the I<mdname> parameter.

OSSL_FUNC_signature_digest_sign_update() provides data to be signed in the I<data>
parameter which should be of length I<datalen>. A previously initialised
signature context is passed in the I<ctx> parameter. This function may be called
multiple times to cumulatively add data to be signed.

OSSL_FUNC_signature_digest_sign_final() finalises a signature operation previously
started through OSSL_FUNC_signature_digest_sign_init() and
OSSL_FUNC_signature_digest_sign_update() calls. Once finalised no more data will be
added through OSSL_FUNC_signature_digest_sign_update(). A previously initialised
signature context is passed in the I<ctx> parameter. Unless I<sig> is NULL, the
signature should be written to the location pointed to by the I<sig> parameter
and it should not exceed I<sigsize> bytes in length. The length of the signature
should be written to I<*siglen>. If I<sig> is NULL then the maximum length of
the signature should be written to I<*siglen>.

OSSL_FUNC_signature_digest_sign() implements a "one shot" digest sign operation
previously started through OSSL_FUNC_signature_digeset_sign_init(). A previously
initialised signature context is passed in the I<ctx> parameter. The data to be
signed is in I<tbs> which should be I<tbslen> bytes long. Unless I<sig> is NULL,
the signature should be written to the location pointed to by the I<sig>
parameter and it should not exceed I<sigsize> bytes in length. The length of the
signature should be written to I<*siglen>. If I<sig> is NULL then the maximum
length of the signature should be written to I<*siglen>.

=head2 Digest Verify Functions

OSSL_FUNC_signature_digeset_verify_init() initialises a context for verifying given a
provider side verification context in the I<ctx> parameter, and a pointer to a
provider key object in the I<provkey> parameter.
The I<params>, if not NULL, should be set on the context in a manner similar to
OSSL_FUNC_signature_set_ctx_params() and
OSSL_FUNC_signature_set_ctx_md_params().
The key object should have been
previously generated, loaded or imported into the provider using the
key management (OSSL_OP_KEYMGMT) operation (see provider-keymgmt(7)>.
The name of the digest to be used will be in the I<mdname> parameter.

OSSL_FUNC_signature_digest_verify_update() provides data to be verified in the I<data>
parameter which should be of length I<datalen>. A previously initialised
verification context is passed in the I<ctx> parameter. This function may be
called multiple times to cumulatively add data to be verified.

OSSL_FUNC_signature_digest_verify_final() finalises a verification operation previously
started through OSSL_FUNC_signature_digest_verify_init() and
OSSL_FUNC_signature_digest_verify_update() calls. Once finalised no more data will be
added through OSSL_FUNC_signature_digest_verify_update(). A previously initialised
verification context is passed in the I<ctx> parameter. The signature to be
verified is in I<sig> which is I<siglen> bytes long.

OSSL_FUNC_signature_digest_verify() implements a "one shot" digest verify operation
previously started through OSSL_FUNC_signature_digeset_verify_init(). A previously
initialised verification context is passed in the I<ctx> parameter. The data to be
verified is in I<tbs> which should be I<tbslen> bytes long. The signature to be
verified is in I<sig> which is I<siglen> bytes long.

=head2 Signature parameters

See L<OSSL_PARAM(3)> for further details on the parameters structure used by
the OSSL_FUNC_signature_get_ctx_params() and OSSL_FUNC_signature_set_ctx_params() functions.

OSSL_FUNC_signature_get_ctx_params() gets signature parameters associated with the
given provider side signature context I<ctx> and stored them in I<params>.
Passing NULL for I<params> should return true.

OSSL_FUNC_signature_set_ctx_params() sets the signature parameters associated with the
given provider side signature context I<ctx> to I<params>.
Any parameter settings are additional to any that were previously set.
Passing NULL for I<params> should return true.

Common parameters currently recognised by built-in signature algorithms are as
follows.

=over 4

=item "digest" (B<OSSL_SIGNATURE_PARAM_DIGEST>) <UTF8 string>

Get or sets the name of the digest algorithm used for the input to the
signature functions. It is required in order to calculate the "algorithm-id".

=item "properties" (B<OSSL_SIGNATURE_PARAM_PROPERTIES>) <UTF8 string>

Sets the name of the property query associated with the "digest" algorithm.
NULL is used if this optional value is not set.

=item "digest-size" (B<OSSL_SIGNATURE_PARAM_DIGEST_SIZE>) <unsigned integer>

Gets or sets the output size of the digest algorithm used for the input to the
signature functions.
The length of the "digest-size" parameter should not exceed that of a B<size_t>.

=item "algorithm-id" (B<OSSL_SIGNATURE_PARAM_ALGORITHM_ID>) <octet string>

Gets the DER encoded AlgorithmIdentifier that corresponds to the combination of
signature algorithm and digest algorithm for the signature operation.

=item "kat" (B<OSSL_SIGNATURE_PARAM_KAT>) <unsigned integer>

Sets a flag to modify the sign operation to return an error if the initial
calculated signature is invalid.
In the normal mode of operation - new random values are chosen until the
signature operation succeeds.
By default it retries until a signature is calculated.
Setting the value to 0 causes the sign operation to retry,
otherwise the sign operation is only tried once and returns whether or not it
was successful.
Known answer tests can be performed if the random generator is overridden to
supply known values that either pass or fail.

=back

OSSL_FUNC_signature_gettable_ctx_params() and OSSL_FUNC_signature_settable_ctx_params() get a
constant B<OSSL_PARAM> array that describes the gettable and settable parameters,
i.e. parameters that can be used with OSSL_FUNC_signature_get_ctx_params() and
OSSL_FUNC_signature_set_ctx_params() respectively.
See L<OSSL_PARAM(3)> for the use of B<OSSL_PARAM> as parameter descriptor.

=head2 MD parameters

See L<OSSL_PARAM(3)> for further details on the parameters structure used by
the OSSL_FUNC_signature_get_md_ctx_params() and OSSL_FUNC_signature_set_md_ctx_params()
functions.

OSSL_FUNC_signature_get_md_ctx_params() gets digest parameters associated with the
given provider side digest signature context I<ctx> and stores them in I<params>.
Passing NULL for I<params> should return true.

OSSL_FUNC_signature_set_ms_ctx_params() sets the digest parameters associated with the
given provider side digest signature context I<ctx> to I<params>.
Any parameter settings are additional to any that were previously set.
Passing NULL for I<params> should return true.

Parameters currently recognised by built-in signature algorithms are the same
as those for built-in digest algorithms. See
L<provider-digest(7)/Digest Parameters> for further information.

OSSL_FUNC_signature_gettable_md_ctx_params() and OSSL_FUNC_signature_settable_md_ctx_params()
get a constant B<OSSL_PARAM> array that describes the gettable and settable
digest parameters, i.e. parameters that can be used with
OSSL_FUNC_signature_get_md_ctx_params() and OSSL_FUNC_signature_set_md_ctx_params()
respectively. See L<OSSL_PARAM(3)> for the use of B<OSSL_PARAM> as parameter
descriptor.

=head1 RETURN VALUES

OSSL_FUNC_signature_newctx() and OSSL_FUNC_signature_dupctx() should return the newly created
provider side signature, or NULL on failure.

OSSL_FUNC_signature_gettable_ctx_params(), OSSL_FUNC_signature_settable_ctx_params(),
OSSL_FUNC_signature_gettable_md_ctx_params() and OSSL_FUNC_signature_settable_md_ctx_params(),
return the gettable or settable parameters in a constant B<OSSL_PARAM> array.

All other functions should return 1 for success or 0 on error.

=head1 SEE ALSO

L<provider(7)>

=head1 HISTORY

The provider SIGNATURE interface was introduced in OpenSSL 3.0.

=head1 COPYRIGHT

Copyright 2019-2022 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License").  You may not use
this file except in compliance with the License.  You can obtain a copy
in the file LICENSE in the source distribution or at
L<https://www.openssl.org/source/license.html>.

=cut


•	Expects more than others think is possible.
Dalal Haldeman, PhD, has been involved in science, education and healthcare marketing and communications for more than two decades. Most recently, she served as the inaugural Senior Vice President for Marketing and Communications at Johns Hopkins for eight years until her retirement earlier this year. Prior to Johns Hopkins, she was VP/Director of Marketing and Interactive Communications at the Cleveland Clinic.
At Johns Hopkins, Dr. Haldeman oversaw consumer research and engagement, e-strategy and brand expansion, data analysis and marketing, outreach and health information for wellness and disease prevention video production, multimedia and publications. She was also responsible for all media relations, public affairs and internal communications for Johns Hopkins Medicine, which is the umbrella organization for Johns Hopkins University School of Medicine and Johns Hopkins Hospital and Health System.
Using intelligence and metrics from the planning and marketing team she established at Johns Hopkins, a comprehensive marketing and digital strategy was developed to make the organization appear at the top of digital searches for health information. Visits to the Johns Hopkins website jumped from 200,000 per month to almost five million per month. Dr. Haldeman also created a physician directory that included physician videos, which has also contributed to increased traffic to the Johns Hopkins Medicine site.
Upon learning of her selection for this honor, Dr. Haldeman said, "I am so honored to be recognized with the John Eudes Excellence award. John always looked beyond the horizon and always exhibited care and compassion and a great sense of humor. He meant a lot to many of us. Very early on he foresaw why internet strategies and digital technologies would be the future for how we connect and interact. I am so honored to be recognized at this very special internet national conference among colleagues in the field who carry the spirit of thinking outside the box and who strive to be pioneers in the field. Together we carry John's legendary vision forward."
The Annual Healthcare Internet Conference brings together healthcare leaders from a variety of disciplines to collaborate and learn. It is three days dedicated to healthcare Marketing, Internet and Web Technology featuring case studies from leading hospital and healthcare organizations from across the nation, general sessions to inspire and broaden thinking about the impact of new technologies, an exhibit hall filled with technology and service solutions, and numerous networking opportunities for healthcare executives, consultants and product and service providers. The 22nd Annual Conference is being held November 5-7, 2018, in Scottsdale, AZ. www.hcic.net.
Atlanta-based Greystone.Net specializes in delivering Web solutions for healthcare organizations. Clients include hospitals, health systems, academic medical centers and health plans nationwide. In addition to Internet, intranet and portal consulting services, Greystone.Net offers a wide array of products and services to enhance the healthcare Web site. A detailed description of the firm's offerings is available at www.greystone.net.


text:
Christopher S. Yoo
Prof. Christopher S. Yoo
John H. Chestnut Professor of Law, Communication, and Computer & Information Science; Founding Director, Center for Technology, Innovation and Competition, University of Pennsylvania Law School
https://fedsoc.org/contributors/christopher-yoo
Christopher S. Yoo is the John H. Chestnut Professor of Law and a Professor at the Annenberg School for Communication and in the Computer & Information Science Department of School of Engineering and Applied Science at the University of Pennsylvania, where he is also the Founding Director of the Center for Technology, Innovation and Competition. He is the author of over one hundred scholarly works and has taught at over a dozen universities around the world. Professor Yoo received his A.B. from Harvard, his M.B.A. from UCLA, and his J.D. from Northwestern University. Before entering the academy, Professor Yoo clerked for Justice Anthony M. Kennedy of the Supreme Court of the United States and practiced law with the predecessor firm to Hogan Lovells under the supervision of now-Chief Justice John G. Roberts, Jr. Before joining the University of Pennsylvania, he taught for eight years at the Vanderbilt Law School. He is frequently called to testify before the U.S. Congress, Federal Trade Commission, Department of Justice Antitrust Division, Federal Communications Commission, foreign governments, and international organizations.
Tuesday 12:00 p.m. EST
Infrastructure, Broadband, and the New Administration
Anthony T. Clark • Kate O'Connor • David Redl • Christopher S. Yoo
Telecommunications & Electronic Media • Federalism & Separation of Powers
Telecommunications & Electronic Media Practice Group
Wednesday 12:00 p.m. EST
Do We Need to Rethink Antitrust for Big Tech?
Penn Law Federalist Society Symposium: Regulating Big Tech
3501 Sansom Street
Roger P. Alford • Jay Himes • Salil Mehra • Christopher S. Yoo
Administrative Law & Regulation • Regulatory Transparency Project
Pennsylvania Student Chapter • Regulatory Transparency Project
Thursday 3:45 p.m. EST
Competition Policy in the Telecommunications Space
The Renaissance Mayflower Hotel
Gene Kimmelman • Michael O'Rielly • Maureen K. Ohlhausen • Stephen F. Williams • Christopher S. Yoo
Law & Economics • Telecommunications & Electronic Media
Thursday 12:00 p.m. EST
Regulation of the Internet
529 14th Street, N.W.
Meredith Attwell Baker • John F. Blevins • Christopher Libertelli • Dean Reuter • Scott J. Wallsten • Christopher S. Yoo
Telecommunications & Electronic Media • Intellectual Property • Administrative Law & Regulation
Monday 11:30 a.m.
Net Neutrality: How Free Do We Want the Internet?
Chapman University School of Law Kennedy Hall, Room 237A/B 1 University Drive
Orange, California 92866
Tom Bell • Larry Downes • John Schaeffer • Christopher S. Yoo
Telecommunications & Electronic Media
Orange County Lawyers Chapter
May 25 2021 Podcast
Anthony T. Clark, Kate O'Connor, David Redl, Christopher S. Yoo
In March 2021, the Biden Administration unveiled its infrastructure plan, known as the American Jobs...
Topics: Telecommunications & Electronic Media · Federalism & Separation of Powers
Sponsors: Telecommunications & Electronic Media Practice Group
May 25 2021 Video
Apr 10 2020 Video
Roger P. Alford, Jay Himes, Salil Mehra, Christopher S. Yoo
On March 4, 2020, the Regulatory Transparency Project sponsored a symposium with the University of...
Topics: Administrative Law & Regulation · Regulatory Transparency Project
Sponsors: Pennsylvania Student Chapter · Regulatory Transparency Project
Apr 10 2020 Podcast
Nov 14 2014 Video
Gene Kimmelman, Michael O'Rielly, Maureen K. Ohlhausen, Stephen F. Williams, Christopher S. Yoo
In today's rapidly evolving telecommunications landscape, the development of new technologies and distribution platforms are...
Topics: Law & Economics · Telecommunications & Electronic Media

redpajama_set_name: RedPajamaCommonCrawl