text:
\section{Introduction}

The Burst and Transient Source Experiment (BATSE) on board the
Compton Gamma-Ray Observatory has demonstrated that the distribution
of gamma-ray bursts is isotropic over the sky and bound in the radial
direction (Meegan et al. 1992).  This strongly indicates that the
sources of the bursts are located either at cosmological distances
(Paczy\'nski 1991, Dermer 1992, Mao \& Paczy\'nski 1992, Piran 1992)
or in an extended Galactic halo (Li \& Dermer 1992, Duncan, Li, \&
Thompson 1992).  Many models have been proposed for the cosmological
scenario (e.g., Eichler, et al., 1989, Piran, Narayan, \& Shemi, 1992,
Narayan, Paczy\'nski, \& Piran 1992, Rees \&
M\'esz\'aros 1992, Usov 1992, Woosley 1993) as well as for the
extended halo scenario (Fabian \& Podsiadlowski 1993).  For a
recent review on gamma-ray bursts, see  Paczy\'nski (1992).

Recently Kouveliotou et al. (1993) showed that the distribution of
durations of gamma-ray bursts is bimodal.  In terms of the parameter
$ \Delta t_{90} $, which is the time interval during which the integrated
counts of a burst go from 5\% to 95\% of the total integrated counts,
the bursts seem to separate cleanly into two distinct groups, with
the transition occurring around $ \Delta t_{90}  \approx 2$ s.  This confirms
similar indications from earlier experiments (Cline \& Desai 1974,
Norris et al. 1984, Dezalay et al. 1992, Hurley 1992), and is the first
compelling evidence for distinct sub-classes of gamma-ray bursts.  (We refer
here to classical gamma-ray bursts, which represent the bulk of the
bursts, and do not discuss the class of soft repeaters.)

An obvious and natural question that arises from this result is: what
is the relation between the two kinds of bursts?  One possibility is
that they represent two distinct types of sources.  For instance, it
is even conceivable that one class of sources is cosmological and
that the other is in the Galactic halo.  Alternatively, both types of
bursts may come from a common source, and the differences may arise
merely from variations in the initial conditions of the sources prior
to the bursts, or changes in the environment or the viewing angle. We
attempt to shed
some light on this question by carrying out a statistical comparison
of the properties of the two kinds of bursts.  We describe the detector
channels on BATSE and some selection effects in \S 2, present the main data
analysis in \S 3, and discuss the implications of the results in \S
4.

\section{Detector Channels and Selection Effects}

The burst catalog available in the public domain contains a list of
all gamma-ray bursts that triggered the BATSE detectors between April
1991 and March 1992 (Fishman et al. 1993).  The catalog provides the
angular positions for 260 bursts, the ratio $ {C_{\rm max}} / {C_{\rm min}} $ for 241
bursts, where $ {C_{\rm max}} $ is the maximum count rate and $ {C_{\rm min}} $ is the
detection threshold, the fluences and peak count rates for 260 bursts,
and durations for 220 bursts.

The trigger mechanism and various selection effects of BATSE have been
explained in detail in Fishman (1992).  We will repeat the essentials
here.  The BATSE on-board software tests for bursts by comparing count
rates on eight large-area detectors to the threshold levels
corresponding to three separate time intervals: 64 ms, 256 ms, and
1024 ms.  A burst trigger occurs if the count rate is above the
threshold in two or more detectors simultaneously.  The thresholds are
set by command to a specified number of standard deviations above the
background (nominally 5.5 $\sigma$), and the average background rate
is computed every 17 s.
Due to an unknown technical reason, many bursts have ``undetermined''
$ {C_{\rm max}} / {C_{\rm min}} $ in the 256 ms channel.  We therefore ignore this channel
in what follows.

For a variety of reasons, BATSE has a variable background as a
function of time, so that the detection threshold $ {C_{\rm min}} $ does not
remain constant.  Moreover, there are periods corresponding to
``overwrites'' when the sensitivity of the detectors is greatly
reduced.  These effects make an analysis of the $ {C_{\rm max}}  / {C_{\rm min}} $ data
somewhat difficult.  In order to have a more uniform sample to work
with, we select a constant threshold $ {C_{\rm cut}} $, and prune the data so as
to include only those bursts which satisfy both of the following
criteria:

\begin{itemize}
\begin{enumerate}
\item $ {C_{\rm min}}  \le  {C_{\rm cut}} $,
\item $ {C_{\rm max}}  \ge  {C_{\rm cut}} $.
\end{enumerate}
\end{itemize}

\noindent
The resulting database corresponds to those bursts which would have
been found by a detector that (i) had a constant threshold of $ {C_{\rm cut}} $,
and (ii) was turned on at those times when the real detectors on
BATSE had $ {C_{\rm min}}  \le  {C_{\rm cut}} $, and was turned off whenever the BATSE
sensitivity was poorer than $ {C_{\rm cut}} $.  By cutting the data in this
fashion, we are guaranteed to have a sample of bursts with a constant
detection threshold and a uniform selection bias.  Of course, in the
process we lose a few bursts, which causes loss of statistical
accuracy.  To minimize this, we select $ {C_{\rm cut}} $ such that the number of
bursts retained in the database is maximized.  This leads to the
choice $ {C_{\rm cut}} =71$ counts for the 64 ms channel and $ {C_{\rm cut}} =286$ counts
for the 1024 ms channel.  Fortunately, only a few bursts are
eliminated for these choices of $ {C_{\rm cut}} $; moreover, the excluded bursts
are mostly those that are labeled ``overwrites'', and would have been
eliminated in any case.

Following Kouveliotou et al. (1993) we define ``short bursts'' as
having $ \Delta t_{90}  \le 2$~s, and ``long bursts'' as having $ \Delta t_{90}  >
2$~s.  Before going into the main analysis, which we discuss in the
next section, we explain first some selection effects associated with
the different sensitivities of the 64 ms and 1024 ms channels to the
two kinds of bursts.  Fig. 1 shows $( C_{\rm max} /C_{\rm cut})_{1024}$ in the 1024 ms channel vs.
$( C_{\rm max} /C_{\rm cut})_{64}$ in the 64 ms channel for the short and long bursts.  It is
apparent that the 1024 ms channel is more sensitive to long bursts,
while the 64 ms channel is more sensitive to short bursts.  Both of
these effects are quite natural, as we now show.

The noise in the background counts increases, generally, as the square
root of the integration time.  Therefore the noise is expected to be 4
times greater in the 1024 ms channel than in the 64ms channel.  Now,
if a burst has a broad luminosity maximum extending over a time
interval greater than 1024 ms then there will be 16 times more signal
counts in the 1024 ms channel than in the 64 ms channel, and the
signal-to-noise ratio will be 4 times greater.  Long bursts are likely
to display this behavior.  On the other hand, if a burst is extremely
narrow, with a duration less than 64 ms, then the number of signal
counts will be the same in both channels.  The most extreme short
bursts will correspond to this limit.  Based on this argument, we see
that the ratio $( C_{\rm max} /C_{\rm cut})_{1024}$ to $( C_{\rm max} /C_{\rm cut})_{64}$ for the two channels must satisfy $$
{1 \over 4} <{ ( C_{\rm max} /C_{\rm cut})_{1024}
\over ( C_{\rm max} /C_{\rm cut})_{64} } < 4,  \eqno (1)
$$
with short and long bursts tending towards the lower and upper limit
respectively.

Comparing the ratio in eq (1) for the long burst  bursts, we find
$$
R_1=\left\langle { ( C_{\rm max} /C_{\rm cut})_{1024} \over ( C_{\rm max} /C_{\rm cut})_{64} } \right\rangle_{\rm long} = 2.5
\pm 0.64 , \eqno (2)
$$ where the error estimate reflects the width of the distribution.
Since $R_1$ is not very different from the maximum value of 4, we
conclude that, to a first approximation, the long bursts tend to have
broad nearly constant luminosity profiles.  For a more detailed
description of the intensity statistics,
we note that the maximum luminosity in the 64 ms channel is greater by
a factor $\sim 4/2.5=1.6$ than the luminosity in the 1024 channel.
This may be interpreted as evidence for a ``fractal'' behavior in the
burst luminosity, $$
\bar L (\Delta t)
\propto \Delta t^{-0.2},\eqno (3)
$$
where $\bar L(\Delta t)$ represents the maximum luminosity of a
burst as measured with a time constant of $\Delta t$.

In the case of the short bursts we find
$$
R_2=\left\langle {
( C_{\rm max} /C_{\rm cut})_{1024} \over ( C_{\rm max} /C_{\rm cut})_{64} } \right\rangle_{\rm short} = 0.76 \pm 0.48, \eqno
(4)
$$
which shows that the 64 ms channel is more sensitive than the
1024 ms channel.  This is almost entirely because the longer channel
dilutes the signal.  As clear evidence of this effect we note that
there is a strong correlation between the widths $ \Delta t_{90} $ of the
short bursts and the quantity ${( C_{\rm max} /C_{\rm cut})_{1024} / ( C_{\rm max} /C_{\rm cut})_{64} }$ (the correlation
coefficient is 0.49).

\section{Data Analysis}

In this section we carry out a comparison among various samples of
bursts.  We work primarily with three samples:
\begin{itemize}
\item sample $s_{64}$ consisting
of 40 short bursts which were detected in the 64 ms channel,
\item
sample $l_{1024}$ consisting of 113 long bursts detected in the 1024
ms channel, and
\item sample $l_{1024,64}$ consisting of 71 long bursts
detected in both the 1024 ms and 64 ms channels.
\end{itemize}

In comparing different samples, the key observational data we use are
the distributions of $  V/V_{\rm max} $ of the samples, where $  V/V_{\rm max}  = ( {C_{\rm max}}
/ {C_{\rm cut}} )^{-3/2}$ (Schmidt et al. 1988). Our analysis is based on a simple
hypothesis,
namely that all three populations of bursts have the same underlying
spatial distribution, and that within each population the sources are standard
candles. On this hypothesis, any apparent differences between the
samples are just because they are viewed to different distances (or
depths) on account of differences in the source luminosity and/or
detector sensitivity.  Our main result is that all the available data
are consistent with this idea.

In our analysis, we make use of the fact that the brighter bursts
agree with a homogeneous Euclidean distribution, which is
characterized by cumulative counts varying linearly as $  V/V_{\rm max} $ and a
mean $ \langle V/V_{\rm max} \rangle $ equal to 0.5.  In contrast, the fainter bursts deviate
significantly from such a distribution.  Based on this observation, we
make the following reasonable assumptions:

\noindent
(1) We assume that $ \langle V/V_{\rm max} \rangle $ decreases monotonically with increasing
depth of a sample.  Therefore, if we compare two samples of bursts
(with the same spatial distribution by hypothesis), we can say that
the sample with the smaller value of $ \langle V/V_{\rm max} \rangle $ corresponds to a greater depth or
distance.  Conversely, if two samples have the same value of $ \langle V/V_{\rm max} \rangle $
we say that they correspond to the same distance.  As a further check,
when $ \langle V/V_{\rm max} \rangle $ of two samples agree, we compare their full $  V/V_{\rm max} $
distributions by means of the Kolmogorov-Smirnov test (K-S test), and
thus investigate whether or not the two populations do indeed have
a common spatial distribution.

\noindent
(2) If two samples have different $  V/V_{\rm max} $ distributions and different
mean $ \langle V/V_{\rm max} \rangle $, but we suspect that they have intrinsically the same
spatial distribution, then we can bring the two samples into agreement
by increasing $ {C_{\rm cut}} $ for the deeper population.  In effect, we
artificially reduce the sensitivity of the detector corresponding to
the deeper sample so that its sensitivity becomes equal to that of the
shallower sample.  We can think of this operation equivalently as
reducing the luminosity of all bursts in the deep sample by a constant
factor.  Of course the procedure is meaningful only if it leads to
agreement in the mean $ \langle V/V_{\rm max} \rangle $ and also in the shapes of the $  V/V_{\rm max} $
distributions, as discussed in (1) above.

\noindent
A point that we would emphasize is that our method of analysis is virtually
model-free and applies regardless of whether bursts are Galactic or
cosmological.

To illustrate the method we consider the two samples of long bursts,
$l_{1024}$ and $l_{1024,64}$.  The discussion in \S 2 showed that the
1024 ms channel is more sensitive to long bursts than the 64 ms
channel by a factor of 2.5 (eq 2).  We therefore expect $l_{1024}$ to
correspond to a deeper sample than $l_{1024,64}$.  This is confirmed
by the mean $ \langle V/V_{\rm max} \rangle $ values, which are $0.29 \pm 0.027$ for $l_{1024}$
and $0.38 \pm 0.034$ for $l_{1024,64}$.  Both groups deviate
significantly from a uniform distribution in Euclidean space, but the
deviation is much larger for $l_{1024}$.  We can now artificially
bring the two populations to the same distance by increasing $ {C_{\rm cut}} $
for the $l_{1024}$ sample by a factor of 2.5.  On doing this we find
that the value of $ \langle V/V_{\rm max} \rangle $ for $l_{1024}$ becomes $0.37 \pm 0.035$,
which is nearly equal to the $ \langle V/V_{\rm max} \rangle $ of the $l_{1024,64}$ sample,
exactly as expected.  Furthermore, the two cumulative $V/V_{max}$
distributions agree very well with each other after this distance
correction has been done.  The K-S probability (for a worse fit than
the one obtained) is 86\%, which is excellent.  These calculations
show that the $l_{1024}$ and $l_{1024,64}$ samples do have the same
spatial distribution, with the former being a deeper sample than the
latter by a factor of $\sqrt {2.5}$ in luminosity distance.  This
is no surprise since the two samples have a large number of
bursts in common, and moreover we know that there is a good
correlation between the signals in the 1024 ms and 64 ms channels for
long bursts (cf Fig. 1).  The test however demonstrates the validity
of the method.

We next proceed to the more interesting test of comparing the short and
long bursts.  The average $\langle V/V_{max} \rangle $ of the $s_{64}$
sample is $0.31 \pm 0.042$, as compared to $0.29 \pm 0.027$ for
$l_{1024}$, which indicates that the two samples correspond to nearly
the same distance.  We now vary $ {C_{\rm cut}} $ of the $l_{1024}$ sample and
$s_{64}$ sample individually so as to find the range of values over
which the $ \langle V/V_{\rm max} \rangle $ values of the two samples agree to within $\pm
1\sigma$ (see Fig. 2). We find that
$$ R_3 = \left({{C_{\rm cut}^{'}} \over {C_{\rm cut}} }\right )_{l_{1024}}
\left({ {C_{\rm cut}}  \over {C_{\rm cut}^{'}}}\right )_{s_{64}} =
1.4^{+1.3}_{-0.6}, \eqno (5) $$
where the value $R_3=1.4$ corresponds to the case when the two $ \langle V/V_{\rm max} \rangle $
values are exactly equal..
As defined here, $\sqrt{R_3}$
represents the ratio of the limiting distances of the $l_{1024}$ and $s_{64}$
samples.  We should mention in passing that there is a second region
of good fit around $R_3\sim 6$, but the number of bursts that survive
the cut for this comparison is so small that we do not find the
solution convincing. Even the primary solution given in eq (5) suffers
to some extent from the limited number of bursts in the two samples.

We now test whether or not the $s_{64}$ and $l_{1024}$ populations are
really consistent with the same spatial distribution.  For this we do
a K-S test to compare the two distributions of $  V/V_{\rm max} $ (see Fig. 2).
We see that the test indicates fairly convincingly that the two
populations do have the same spatial distribution.  For instance, the
K-S probability is 42\% if we keep the two $ {C_{\rm cut}} $ values unchanged
($R_3=1$) and 50\% if we multiply $ {C_{\rm cut}} $ for the 1024 ms channel by
the optimum factor of 1.4 to obtain equality of $ \langle V/V_{\rm max} \rangle $.  To
illustrate the quality of the agreement, we show in Fig. 3 the $  V/V_{\rm max} $
distributions corresponding to the case when $R_3=1$.  Note how much
better the two distributions agree with each other than with the
diagonal line which represents the homogeneous Euclidean model.  The
probability that either of the observed samples is drawn from the
Euclidean distribution, is vanishingly small, $< 10^{-4}$ according
to the K-S test.

Finally, we compare the $s_{64}$ and $l_{1024,64}$ samples.
In analogy with eq (5) we define a corresponding ratio $R_4$
for this comparison,
$$
R_4\equiv \left({{C_{\rm cut}^{'}} \over {C_{\rm cut}} }\right )_{s_{64}}
\left({ {C_{\rm cut}}  \over {C_{\rm cut}^{'}}}\right )_{l_{1024,64}}. \eqno (6) $$
For consistency with the two previous comparisons, we expect $$
R_4={R_1\over R_3}= 1.8^{+2}_{-1}.\eqno (7) $$ To check this, we
change $ {C_{\rm cut}} $ for the $s_{64}$ sample from 71 counts to
${C_{\rm cut}^{'}}=1.8\times 71$ counts and compare the modified $s_{64}$ sample
with $l_{1024,64}$.  The mean $ \langle V/V_{\rm max} \rangle $ values of the two samples are
$0.41\pm 0.047$ for $s_{64}$ and $0.38\pm 0.034$ for $l_{1024,64}$,
showing excellent agreement.  Further, the K-S test gives a high
probability of 46\%, again in good agreement.  We thus conclude that
the $s_{64}$ and $l_{1024,64}$ samples are consistent with a common
spatial distribution, and that the former is deeper than the latter by
about $\sqrt{1.8}$ in luminosity distance.  (As an aside we mention
that, corresponding to the second solution $R_3\sim 6$ mentioned
earlier, there is an indication of a solution at $R_4\sim 0.5$, but
the reduction in counts in these comparisons is somewhat severe and we are
inclined not to take these solutions seriously.)

A very interesting feature of the comparison discussed in the previous
paragraph is that $R_4$ directly represents the ratio of the
luminosities of the long and the short bursts {\it in the same
detector}, viz. the 64 ms channel.  Since the 64 ms channel
corresponds to the shortest time interval used in the triggers,
it provides the closest approximation to the instantaneous luminosity
of a burst.  We thus
conclude that {\it the maximum instantaneous luminosities of the short
and long bursts are nearly equal}, to within a factor $\sim 2$.  In
fact, the difference in the luminosities may be even less than the
value indicated in (7).  This is because, in the cosmological
scenario, the K-correction (cf.  Piran 1992; Mao \& Paczy\'nski 1992)
depends on the spectral index of the gamma-ray bursts.  Although the
spectral indices of bursts have large variations, there is some
indication that the short bursts are systematically harder than the
long ones (Dezalay et al. 1992; Kouveliotou et al. 1993). The effects
of this will be to bring the luminosity ratio even closer to unity.
Utilizing the fact that we have $ {C_{\rm min}} =71$ counts in the 64ms channel,
we can {\it roughly} estimate the peak luminosity of bursts
by assuming a power law spectrum (see eq 10 below):
$$L_{\rm
 peak}\sim 2 \times 10^{43} (D_{\rm max}/{\rm Mpc})^2 ~ {\rm erg ~ s^{-1}},
\eqno(8)$$
where $D_{\rm max}$ is the maximum distance to which the bursts can be
detected in the 64 ms channel.

An important consequence of the comparisons carried out above
is that we obtain the relative depths of the
short and long burst samples. We can therefore estimate the
relative number densities in space of the two kinds of bursts.
We find
$$ {n_S\over n_L} \sim 0.4^{+0.4}_{-0.2}. \eqno (9) $$
We should however mention one caveat, namely
that BATSE may have missed some very short bursts with durations
smaller than 64 ms because of dilution.  If this is a substantial
effect, then the above ratio may be higher, possibly closer to unity.

We now estimate the ratio of the total energy outputs in the short and
long bursts. We first define an effective duration $\Delta t_{\rm eff}$ as
the duration of a burst would have if it had a constant count rate $ {C_{\rm max}} $
and the same fluence, i.e.,
$$
\Delta
t_{\rm eff} = {S \over \langle E \rangle ~  {C_{\rm max}} }, ~~~  \langle E \rangle
\equiv
{\int_{E_1}^{E_2} E^{-\alpha+1} dE \over \int_{E_1}^{E_2} E^{-\alpha}
dE}, \eqno (10)
$$
where $S$ is the fluence in units of $\rm erg ~ cm^{-2}$ in the
energy range 50--300 keV (which coincides with the trigger energy
range), $\langle E \rangle$ is the mean energy in the energy range of
50-300 keV, $ {C_{\rm max}} $ is the maximum count rate in units of
$\rm photons ~ cm^{-2} ~ s^{-1}$, and we assume a power law photon number
distribution $n(E)~dE \propto E^{-\alpha}~dE$.  Adopting $\alpha=2$
(Schaefer et al. 1992), we find that $ \langle \Delta t_{\rm eff}
\rangle \approx 0.4~{\rm s},~12.5~{\rm s}$
for the short and long bursts respectively.  Combining this with the
luminosity ratio $R_4$, we find the total energy ratio is $E_L/E_S
\approx 20$.  It is quite remarkable that the short and long bursts
differ by such large factors in their durations and total energy
outputs, but yet are so similar in their maximum luminosities.
Finally, for completeness, we mention that the short and long
bursts are both individually consistent with perfect isotropy.

\section{Discussion}

This paper has been motivated by the recent discovery of Kouveliotou et al.
(1993) that gamma-ray bursts consist of two distinct subclasses,
namely short and long bursts.  The main aim of our investigation is to
test the simple hypothesis that both populations of bursts have the
same underlying space distribution and that within each population
the sources are standard candles.  Our conclusion is that all the
available data are consistent with this hypothesis.  Even though
the distributions of $ {C_{\rm max}}  / {C_{\rm cut}} $ for the short and long bursts
sometimes appear to be different in certain detector channels, we are
always able to bring the two populations into agreement by modifying
the detector sensitivity in one or the other sample so as to reduce
the two samples to the same depth or distance.  When we do this, not
only do the mean $ \langle V/V_{\rm max} \rangle $ values agree, but also the full distributions of
$  V/V_{\rm max} $ agree when compared by means of the K-S test.  Of course,
these calculations do not prove our basic hypothesis, particularly
since we are hampered by the small number of bursts in the samples
but they make the idea quite plausible.  We therefore feel that it is unlikely
that one type of bursts (say long) is cosmological while the other
arises in the halo, or that one is in the halo and the other in the
disk (Smith \& Lamb 1993). It would be too much of an accident for the two
populations to have the same $V/V_{\rm max}$ distributions.
Instead, we favor models where the two kinds of
bursts arise in the same source.  In this case, the large difference in
durations between the short and long bursts may be caused by variations
in the initial conditions or in the environment of the source or due to
differences in the viewing angle.

Once we accept that the two kinds of bursts arise from a common source
population, we are able to estimate the relative luminosities and
number densities of the two populations.  Surprisingly, we find that
both the short and long bursts have the same peak luminosity, $L_{\rm
peak}\sim 2 \times 10^{43} (D_{\rm max}/{\rm Mpc})^2 {\rm erg ~ s^{-1}}$,
to within a factor of two.  The equality of the two peak luminosities is quite
remarkable when we consider that the durations of the short and long
bursts differ by $\sim 50$ and their total energy outputs differ by
$\sim 20$.  Incidentally, our estimate of $L_{\rm peak}$ corresponds
to the 64 ms channel.  On smaller timescales, the peak luminosity will
be larger, though not by a significant factor (see eq 3). Further, we estimate
the number density of the short bursts to be $\sim 0.4$ times that of
the long bursts.  If the difference between short and long bursts is due
to viewing angle, this ratio gives an estimate of the relative solid
angles associated with the two kinds of bursts.

An important point that we would stress is that these results are
obtained in an essentially model-independent way.  For instance, we do
not need to make any assumption on whether the sources are at
cosmological distances or in the Galaxy.

The constancy of luminosity in two classes of bursts which differ so
much in their other properties might provide a clue to the physical
origin of the bursts.  Unfortunately, it is virtually impossible to
explain the result using the most widely used limiting luminosity in
astrophysics, namely the Eddington limit.  If we assume that the
sources are not dynamically expanding (but see Piran and Shemi, 1993)
and take a fixed opacity (e.g. electron scattering), the Eddington
limit is proportional to the mass of the source, which in turn is
limited by the variability timescale, $\delta t$, i.e., $L_{\rm Edd} < 1.3
\times 10^{40} (\delta t/{\rm ms}) ~ {\rm erg ~ s^{-1}}$.  Taking $\delta t
\sim 10$ ms, the characteristic burst luminosity $L_{\rm peak}$
that we have obtained is marginally consistent with the Eddington
luminosity limit for sources of mass $\sim 10^3 M_\odot$ located at
distances $\sim 100 \rm kpc$ in the Galactic halo.  Smaller masses are
ruled out by the observed isotropy of the bursts, while larger masses
are ruled out by the variability argument.  In fact, Bhat et al. (1993) claim
to see variability down to $200~\mu$s, which rules out even the $10^3
M_\odot$ scenario.

Another robust limiting luminosity is $L_{\rm max} = c^5/G = 4\times
10^{59} ~{\rm erg ~ s}^{-1}$, which is an absolute upper limit for any
source, corresponding to the emission of the entire rest mass within
a gravitational light crossing time.  If we identify $L_{\rm peak}$ with
this limit, then we obtain the luminosity distance to the sources
to be $\sim 10^8 ~ {\rm Mpc}$, corresponding to a redshift of
$\sim 10^4$, in an $\Omega =1$ Friedmann universe. This is far
too large for any known model.

The fact that it is not easy to come up with a physical explanation
for the existence of a characteristic peak luminosity for gamma-ray
bursts implies that, if the effect is real, it may provide an
important and vital clue for understanding the origin of the bursts.
Unfortunately, as we have tried to stress, the results have only modest
statistical significance at this point.  It would be very interesting to
repeat the analysis with the complete database of bursts detected by
BATSE.

We acknowledge helpful discussions with Bohdan Paczy\'nski.  This
work was supported in part by NASA grant NAG 5-1904.

\newpage

\section{References}
\parskip=2pt

\hangindent=4em \hangafter=1 \noindent{Bhat, P. N., Fishman, G. J., Meegan, C. A., Wilson, R. B.,
Brock, M. N., \& Paciesas, W. S. 1992, Nature, 359, 217}

\hangindent=4em \hangafter=1 \noindent{Briggs, M., 1993, ApJ, in press}

\hangindent=4em \hangafter=1 \noindent{Cline, T. L., \& Desai, U. D. 1974, in the Proc. 9th ESSLAB Symposium,
37--45 (ESRO, Noodrwijk)}

\hangindent=4em \hangafter=1 \noindent{Dermer, C. D., 1992, Phys. Rev. Lett., 68, 1799}

\hangindent=4em \hangafter=1 \noindent{Dezalay, J-P., Barat, C., Talon, R., Sunyaev, R., Terekhov, O., \&
Kuznetsov, A. 1992, in AIP Conference
Proceedings 265: Gamma-Ray Bursts, ed. W. S. Paciesas \& G. J. Fishman, p. 304}

\hangindent=4em \hangafter=1 \noindent{Duncan, R. C., Li, H., \& Thompson, C. 1992, in the Conference
Proceedings of the Compton Symposium (St. Louis, Oct. 15--17), in press}

\hangindent=4em \hangafter=1 \noindent{Eichler, D., Livio, M., Piran, T., \& Schramm, D. N. 1992, Nature,
340, 126}

\hangindent=4em \hangafter=1 \noindent{Fabian, A. C., \& Podsiadlowski, P. 1993, MNRAS, in press}

\hangindent=4em \hangafter=1 \noindent{Fishman, G. J. 1992, in the Compton Observatory Science
Workshop, ed. C. R. Shrader, N. Gehrels, \& B. Dennis (NASA Conference
Publication 3137)}

\hangindent=4em \hangafter=1 \noindent{Fishman, G. J. et al. 1993, ApJS, in preparation}

\hangindent=4em \hangafter=1 \noindent{Harding, A. K. 1991, Physics Reports, 206, 327}

\hangindent=4em \hangafter=1 \noindent{Higdon, J. C., \& Lingenfelter, R. E. 1990, ARA\&A, 28, 401}

\hangindent=4em \hangafter=1 \noindent{Hurley, K. 1992, in AIP Conference Proceedings 265: Gamma-Ray
Bursts, ed. W. S. Paciesas \& G. J. Fishman, p. 3}

\hangindent=4em \hangafter=1 \noindent{Kouveliotou, C. et al., ApJL, in preparation}

\hangindent=4em \hangafter=1 \noindent{Li, H., \& Dermer, C. D. 1992, Nature, 359, 514}

\hangindent=4em \hangafter=1 \noindent{Mao, S., \& Paczy\'nski, B. 1992, ApJ, 388, L45}

\hangindent=4em \hangafter=1 \noindent{Meegan, C. A. et al. 1992, Nature, 355, 143}

\hangindent=4em \hangafter=1 \noindent{Narayan, R., Paczy\'nski, B., \& Piran, T. 1992, ApJ, 395, L83}

\hangindent=4em \hangafter=1 \noindent{Norris, J. P., Cline, T. L., Desai, U. D., \& Teegarden, B. J. 1984,
Nature, 308, 434}

\hangindent=4em \hangafter=1 \noindent{Paczy\'nski, B. 1991, Acta Astronomica, 41, 157}

\hangindent=4em \hangafter=1 \noindent{\hbox to 3pc{\leaders\hrule depth-2pt height 2.4pt\hfill}. 1992, presented at the TEXAS/PASCOS conference
at Berkeley, Dec. 1992}

\hangindent=4em \hangafter=1 \noindent{Piran, T. 1992, ApJ, 389, L45}

\hangindent=4em \hangafter=1 \noindent{Piran, T., Narayan, R., \& Shemi, A. 1992, in AIP Conference
Proceedings 265: Gamma-Ray Bursts, ed. W. S. Paciesas \& G. J. Fishman, p. 149}

\hangindent=4em \hangafter=1 \noindent{Piran, T., \& Shemi, A. 1993, ApJ, 403, L67}

\hangindent=4em \hangafter=1 \noindent{Rees, M., \& M\'esz\'aros, P. 1992, MNRAS, 258, 41P}

\hangindent=4em \hangafter=1 \noindent{Schaefer, B. E. et al. 1992, ApJ, 393, L51-L54}

\hangindent=4em \hangafter=1 \noindent{Schmidt, M., Higdon, J. C., \& Hueter, G. 1988, ApJ, 329, L85}

\hangindent=4em \hangafter=1 \noindent{Smith, I. I., \& Lamb, D. Q. 1993, ApJ, in press}

\hangindent=4em \hangafter=1 \noindent{Usov, V. V. 1992, Nature, 357, 472-475}

\hangindent=4em \hangafter=1 \noindent{Woosley, S. E. 1993, ApJ, in press}

\newpage

\section{Figure Captions}

\noindent
{\bf Fig. 1:} $ {C_{\rm max}} / {C_{\rm min}} $ for the 1024 ms channel vs. that for the
64 ms channel. All bursts with $ {C_{\rm max}} / {C_{\rm min}} $ available in both
the 64 ms and 1024 ms channels are plotted.
Open and filled circles correspond to bursts with durations shorter
and longer than 2s respectively. Note that $ {C_{\rm max}} / {C_{\rm min}} $ in the 1024 ms
channel is larger than $ {C_{\rm max}} / {C_{\rm min}} $ in the 64 ms channel for almost all
the long bursts, while the short bursts tend to have larger $ {C_{\rm max}} / {C_{\rm min}} $
in the 64 ms channel.

\vspace{0.3cm}
\noindent
{\bf Fig. 2:} The thick line shows the probability values $p_{K-S}$ obtained
with the Kolmogorov-Smirnov (K-S) test when the $l_{1024}$ and $s_{64}$
samples are compared versus the quantity $\log R_3$ (see eq 5). Also shown as
a thin line is $\Delta/\sigma$ vs. $\log R_3$, where $\Delta$ is defined
as the absolute difference of $ \langle V/V_{\rm max} \rangle $ between the two samples, and $\sigma$
is the expected standard deviation. The dotted line corresponds to a $1 \sigma$
deviation.

\vspace{0.3cm}
\noindent
{\bf Fig. 3:} $V/V_{\rm max}$ for each burst is shown versus the burst's
intensity rank normalized by the total number. The thick and thin
lines correspond to the 113 long bursts in the 1024 ms channel (sample
$l_{1024}$) and the 40 short bursts in the 64 ms channel (sample $s_{64}$).
The K-S probability that these two samples are drawn from the same
distribution is 42\%. The probabilities that these two samples are drawn
from a uniform distribution in a Euclidean space (indicated as a dashed
diagonal line) is $< 10^{-4}$.

\end{document}


Compare & book Limos for Hire in Birtley. From classic American limos to Baby Bentley limos to super stretched Hummer limos to Party buses for hire. We serve all areas of Tyne and Wear.
Looking for Limo Hire in Birtley With so many different options to choose from, it can be difficult to know how to get the best deals. Luckily, the team at Anything for Hire is here to help - and no matter what your requirements, we can help you find the perfect match.
In the 21st century, everything from booking a taxi to reserving a hotel room can be done at the touch of a button. But until now, the hire industry has been lagging embarrassingly behind. But now all that's changed thanks to our innovative online marketplace - a chance to compare Limos for Hire quotes from a wide range of local providers, all in just a few clicks.
At Anything for Hire, we provide a fast and simple way to browse and book Limo Bus Hire services in Birtley. All you need to do is tell us what you're looking for and we'll take care of the rest, connecting you with a network of trusted providers in your area. Then, you can compare all the different options at your leisure - making it easy to find the option that's right for you.
Of course, Limo Hire in Birtley covers a wide variety of services - and that's why we've partnered with the widest possible range of providers. So whatever you're looking for, we're confident that we can help you find it - without breaking the bank.
We offer Limos for Hire in all local areas including Whitley Bay, Birtley, Low Fell, Sheriff Hill, Jarrow, Hetton, Blaydon On Tyne, South Shields, Windy Nook, Dunston, Darsley Park, Gateshead, Howdon, Wallsend, Newcastle Upon Tyne, Ryton, Washington, Houghton Le Spring. Our visitors who search for Limo Hire also tend to search for Jeep Limo, Phantom Limo, American Stretch Limo, Hen Party, Kids Party, Chauffeur Car, Limo Rental, Hummer Limo, Limo Hire, Prom Car.


text:
Мавзолей Хомейни () — памятник-усыпальница, посвященная лидеру исламской революции и первому Высшему руководителю Ирана великому аятолле Рухолле Мусави Хомейни. Кроме самого Хомейни, в мавзолее захоронены его жена Хадидже и их сын Ахмад, а также соратник Али Акбар Хашеми Рафсанджани.

Комплекс находится на кладбище Бехеште-Захра, к югу от Тегерана, рядом с международным аэропортом имени Хомейни. Несмотря на то, что возведение комплекса началось в 1989 году, спустя 25 лет строительные работы всё ещё не окончены.

История

Рухолла Мусави Хомейни скончался 3 июня 1989 года в возрасте 87 лет. Сразу же после этого в правительстве президента Хашеми Рафсанджани пообещали, что будут активно содействовать развитию духовного наследия аятоллы. Сын Хомейни Ахмад решил похоронить своего отца рядом с могилами мучеников революции на кладбище Бехеште-Захра. Благодаря благотворителям, общественным организациям и государственным средствам, в течение 40 дней после смерти была построена погребальная камера. 5 июня на похороны Хомейни пришло около 10 миллионов иранцев. Во время прощания они прорвали оцепление и разорвали саван на память, после чего силы безопасности с помощью водомётов разогнали толпу, тело увезли на вертолете, а церемония была повторена через пять часов. Строительство комплекса началось позже, под руководством архитектора Мохаммеда Теграни. Параллельно, 4 ноября 1990 года президент Ирака Саддам Хусейн предложил построить мавзолей Хомейни в Кербеле.

В 1995 году рядом с Хомейни был похоронен его сын Ахмад, умерший в возрасте 49 лет по официальной версии от сердечного приступа из-за неперенесения смерти отца (Ахмад был критиком пост-хомейнистской политики, вследствие чего некоторые обозреватели утверждают, что его устранили иранские спецслужбы). В 2007 году рядом с Хомейни была похоронена его жена и мать Ахмада — Хадидже Сакафи. В 1995 году смотрителем мавзолея стал внук Рухоллы Хомейни.

20 июня 2009 года во время масштабных протестов против результатов президентских выборов, в которых с 63 процентами победил Махмуд Ахмадинежад, и разгона сторонников лидера оппозиции Мир-Хосейна Мусави, у северного входа мавзолея террорист-смертник привёл в действие взрывное устройство и погиб, убив одного человека и ранив ещё двух, а также причинив некоторый ущерб самому комплексу.

В июне 2010 года Хасан Хомейни был вынужден прервать своё выступление на мероприятии, посвящённом 21-годовщине смерти отца, из-за организованной политической провокации. Вскоре после этого стали распространяться сообщения о том, что Хасан ударил по лицу министра внутренних дел Мохаммада Мустафу Наджара, вследствие чего некоторые обозреватели отметили, что это стало попыткой очернить Хомейни, поддержавшего оппозиционное «Зелёное движение».

10 января 2017 года в мавзолее был похоронен сам Хашеми Рафсанджани, скончавшийся 8 января 2017 года в возрасте 82 лет. Запечатанный металлический гроб с лежащей на нём чалмой был удостоен общественного прощания в Тегеранском университете, во время которого молитву прочёл аятолла Хаменеи, а затем пронесён по  в сопровождении десятков тысяч людей до мавзолея, где Рафсанджани был положен рядом с Хомейни.

7 июня 2017 года несколько вооружённых человек устроили стрельбу у мавзолея, после чего один из них привёл в действие пояс смертника и погиб, ранив пять человек. Ответственность за атаку на мавзолей и произошедшее в тот же день нападение на здание парламента, в которых в общей сложности погибло 12 человек, взяла террористическая группировка «Исламское государство», хотя в Корпусе Стражей Исламской революции обвинили Саудовскую Аравию.

Назначение и использование
Смотрителем мавзолея с 1995 года является внук Хомейни и сын Ахмада, Хасан. Мавзолей является местом паломничества для миллионов мусульман Ирана и стран всего мира, ежегодно приходящих пешком и едущих на машинах почтить память Хомейни в день его смерти, а также — местом для выступлений государственных деятелей, в том числе Высшего руководителя Ирана, кроме того там проходят военные парады, символические визиты государственных деятелей, иностранных гостей и послов. Президент и члены правительства Ирана посещают мавзолей каждый год. Немусульманам вход внутрь комплекса разрешён.

В числе известных личностей-посетителей мавзолея — Али Хаменеи и Махмуд Ахмадинежад, Хасан Рухани и Садик Лариджани, Али Лариджани и Акбар Хашеми Рафсанджани, Кофи Аннан и Десмонд Туту, Ильхам Алиев и Александр Лукашенко, Серж Саргсян.

Архитектура

Площадь архитектурного комплекса из бетона и мрамора составляет более 150 тысяч квадратных метров и включает в себя жилой, культурный и туристический центр, рестораны, больницу, библиотеку, музей революции, архив фильмов, университеты для изучения ислама, семинарии, торговый центр, а также помещения для администрации и служб безопасности. Кроме этого рядом располагаются торговые центры, сады площадью более 5000 гектаров и автомобильная стоянка на 20 тысяч мест. По некоторым данным, правительство Ирана вложило в стройку, продолжающуюся уже 20 лет, около 2 миллиардов долларов США. В будущем погребальный комплекс должен стать частью нового района Тегерана — «Город солнца» (). Рядом с мавзолеем Хомейни расположена   Тегеранского метрополитена.

Центром храмового комплекса является позолоченный купол на высоком барабане, окруженном четырьмя отдельно стоящими минаретами, высотой по 91 метр каждый — годы жизни Хомейни по лунному календарю. Святыня находится в окружении большой прямоугольной площади, разработанной для огромного количества посетителей. Своими размерами и наличием киблы мавзолей напоминает мечеть, но называется Хусейнией. Внутри мавзолея расположена усыпальница со своим куполом и люстрой. В ней находятся надгробия могил, покрытые зелёным бархатом. Усыпальница представляет собой помещение с решётчатыми металлическими стенами, через отверстия в которых посетители бросают банкноты иранского риала в качестве пожертвований, либо в знак отказа от мирских благ или по туристической традиции. Купол, украшенный витражами с 72 красными тюльпанами (символ мученичества у шиитов), опирается на восемь больших мраморных колонн, окружающих саркофаг, которые вместе с другими меньшими колоннами поддерживают потолок. Пол и стены облицованы полированным белым мрамором. Пол покрыт тонкими коврами. Главный купол делится на три высоты и символизирует собой три вехи в жизни Хомейни и истории Ирана:
42 метра — 1342 год Хиджры (1963 год), то есть начало протестного движения Хомейни против шаха.
57 метров — 1357 год Хиджры (1979 год), то есть победа исламской революции.
68 метров — 1368 год Хиджры (1989 год), то есть смерть Хомейни.
С восточной и западной сторон купола находятся дворы площадью по 22 тысячи квадратных метров. Каждый двор имеет четыре портика, оформленных традиционной иранской мозаикой из 230 различных видов камней с цитатами из Корана. Над двумя портиками в северной и южной частях дворов находятся два купола, покрытые иранскими плитками цвета бирюзы. Таким образом, весь комплекс имеет пять куполов в честь пяти мусульманских святых: пророка Мухаммеда, имама Али, Фатимы Захры, имама Хасана и имама Хусейна.

Примечания

Литература

Ссылки

Здания и сооружения, заложенные в 1989 году
Культовые сооружения Тегерана
Мавзолеи Ирана
Музеи Тегерана
Мавзолеи революционеров
Храмы и мавзолеи ислама
Мавзолеи, построенные в XX веке

redpajama_set_name: RedPajamaWikipedia


The reason why performed we make it?
Having a romantic familiarity with carbon fiber and its particular capabilities on the go meant that although some had been frightened to see carbon on downhill bicycles, we were confident. We understood that we could produce a full carbon handlebar optimized for downhill rushing and after several World Cup months it's safe to say this's been a success and a benchmark of downhill handlebar performance has-been set.
"The ENVE DH handlebar is 800mm of pure pleasure put to the palms of fingers."
"Deciding on they generate perhaps ideal carbon rims on the planet it really isn't astonishing that ENVE also can make amazing carbon taverns."
Downhill operating and rushing of course is hostile and hard on both human body and gear. As a result we consistently create unique original and stand-alone carbon elements and wheels for downhill programs. Our DH handlebar is created using a 100per cent uni-directional carbon laminate that is both stiff and optimally certified. These qualities lead to a handlebar that is self-confidence inspiring through harsh terrain without creating hand pump and untimely driver exhaustion. Whilst ENVE DH club is made for the best levels of racing additionally, it is sensibly lightweight and 800mm large. Due to the reasonable weight and extra width, anybody seeking a wide hill handlebar will see pleasure operating the ENVE DH club. All ENVE handlebars tend to be afflicted by both internal and external testing to make sure that the best industry security and gratification requirements are met..


THE SCENE: A pleasant 80 degrees and gloom greated us. The scent of fresh cut grass blended well with the smell of the new rubberized track.
F3 WELCOME & DISCLAIMER Given in full verbatim from F3 corporate.
Often we as men follow the path of least resistance, take the easy way. We are called as men to often do the hard thing. In 2 Samuel 23 Benaiah, one of David's mighty warriors is described as a valiant fighter. One of his deeds is that he killed a lion in a pit on a snowy day. Benaiah hunted down and killed a lion who was corned in a pit on a snowy day. He chose to do the hard thing and became the leader of King David's personal body guard. A leader is someone who often has to DTHT.
We often focus our day to day struggles on what NOT to do. Don't do this, Don't do that, Don't think this, Don't say that. When we focus on the DON'T DOs, the rule following, we end up screwing up and aren't very compelling men to be around. I think the greatest 'sin' is the missed opportunities, when we have a chance to DTHT and selfishly choose the easy way. In theology they call this a sin of omission.
I find that when I'm living selflessly, outward focused and choosing to lay down self and put on humility, serving others, I don't struggle as much with the DON'T DOs. I encourage us all to chose to DTHT in our journey to become a HIM (High Impact Man) or in my personal faith, HIM is embodied in Jesus Christ, my Lord and Savior.
Prayers for Crayfish's body of believers at Jacob's Well, Ergo's family and expectant little one, Father Abraham's wife as she gets x-rays, and the Warrior Center brothers, Nick and Michael.


text:
UN Regulation No. 123
Adaptive Front-lighting Systems
Series of Amendments and Supplements
Revisions and Amendments
Contracting Parties (54)
Related Meetings : Working Party on Lighting and Light-signalling | Session 71
Discussion/Report
GRE-71-10
Proposal for Supplement [...] to the 01 series of amendments to Regulation No. 123
Proposal to delete the requirement that the total objective luminous flux of all LED modules producing the principal passing (main low) beam of a headlamp be greater than or equal to 1000 lumens. France argues that the requirement is design-restrictive, unnecessary given the objective criteria for luminous output and photometric grid points of the regulation, and obsolete given improvements in LED technologies.
Document Reference Number: GRE-71-10
Submitted by: France
Document date: 25 Mar 14
Document status: Superseded
UN R123 Adaptive Front-lighting Systems
GRE/2014/35 | Proposal for a Supplement to the 01 series of amendments to Regulation No. 123
72nd GRE session (20-22 Oct 2014)
43.	The expert from France proposed to delete a design restrictive requirement of a minimum luminous flux of 1,000 lm for LED in Regulations Nos. 112 and 123 (ECE/TRANS/WP.29/GRE/2014/35, ECE/TRANS/WP.29/GRE/2014/36, GRE-72-25). The expert from Poland proposed an alternative definition of photometric requirements (GRE-72-24). GRE supported the deletion of the 1,000 lm requirement, but could not agree with the requirement for light distribution of the beam pattern proposed as an alternative. GRE invited the expert from France, in cooperation with the expert from Poland, to prepare a revised proposal for consideration at the next session. All GRE experts were invited to contribute.
Proposal for a Supplement to the 01 series of amendments to Regulation No. 123
GRE/2014/35
GRE/2013/55/Rev.1
Proposal for collective amendments to Regulations Nos. 3, 4, 6, 7, 19, 23, 38, 50, 77, 87, 91, 98, 104, 112, 113, 119 and 123
Proposal to reference the compliance requirements for installation contained in Regulations Nos. 48, 53, 72 and 86 into the Regulations 3, 4, 6, 7, 19, 23, 38, 50, 77, 87, 91, 98, 104, 112, 113, 119 and 123. This proposal is a revised version of document GRE/2013/55 discussed during the October 2013 GRE session.
Document Reference Number: GRE/2013/55/Rev.1
Submitted by: Italy
Document date: 17 Jan 14
UN R3 Retro-reflecting Devices
UN R4 Rear Plate Lighting
UN R6 Direction Indicators
UN R7 Position, stop and end-outline lamps
UN R19 Front Fog Lamps
UN R23 Reversing Lights
UN R38 Rear Fog Lamps
UN R50 Motorcycle Lamps
UN R77 Parking Lamps
UN R87 Daytime Running Lamps
UN R91 Side-Marker Lamps
UN R98 Gas-discharge-light Headlamps
UN R104 Retro-reflective Markings
UN R112 Asymmetrical Beam Headlamps
UN R113 Symmetrical Headlamps
UN R119 Cornering Lamps
UN R69 Slow Vehicle Marking Plates
GRE/2013/55 | Proposal for collective amendments to Regulations Nos. 3, 4, 6, 7, 19, 23, 38, 50, 77, 87, 91, 98, 104, 112, 113, 119 and 123
GRE-70-12 | Editorial corrections to document GRE/2013/55
GRE-70-21 | Proposal for amendment to document GRE/2013/55
WP.29/2017/19 | Proposal for Supplement 17 to the 02 series of amendments to Regulation No. 3
WP.29/2017/20 | Proposal for Supplement 18 to Regulation No. 4
WP.29/2017/23 | Proposal for Supplement 9 to the 04 series of amendments to Regulation No. 19
WP.29/2017/24 | Proposal for Supplement 21 to Regulation No. 23
WP.29/2017/37 | Proposal for Supplement 9 to Regulation No. 104
WP.29/2017/38 | Proposal for Supplement 7 to the 01 series of amendments to Regulation No. 112
70th GRE session (21-23 Oct 2013)
21. The expert from Italy introduced ECE/TRANS/WP.29/GRE/2013/55 as amended by GRE-70-12 on the compliance obligation of lighting components with installation requirements. The proposal received some comments (GRE-70-21). GRE agreed to finalize this subject at its next session on the basis of a revised document, which the expert from Italy volunteered to prepare.
22. The expert from GTB introduced ECE/TRANS/WP.29/GRE/2013/45 as amended by GRE-70-02 clarifying the "type" definition with regard to manufacturer, trade name and marks. GRE adopted this proposal as reproduced in Annex III to the report and requested the secretariat to submit it to WP.29 and AC.1 for consideration at their November 2014 sessions, as part of upcoming amendments to the corresponding UN Regulations, awaiting the adoption of the revised version of ECE/TRANS/WP.29/GRE/2013/55.
171st WP.29 session (14-17 Mar 2017)
73.	The representative of EU expressed concerns (WP.29-171-04) about the legal form of amendments relating to the heat test cycle requirement in Regulation No. 113, as contained in ECE/TRANS/WP.29/2017/39 (agenda item 4.9.21). The World Forum decided to refer this document back to GRE for further consideration.
Editorial corrections to document GRE/2013/55
Proposal for amendment to document GRE/2013/55
Proposal for Supplement 17 to the 02 series of amendments to Regulation No. 3
WP.29/2017/19
Proposal for Supplement 18 to Regulation No. 4
Proposal for Supplement 9 to the 04 series of amendments to Regulation No. 19
Proposal for Supplement 21 to Regulation No. 23
Proposal for Supplement 9 to Regulation No. 104
Proposal for Supplement 7 to the 01 series of amendments to Regulation No. 112
GRE/2014/3
Proposal for Collective amendments to Regulations Nos. 4, 6, 7, 19, 23, 38, 45, 50, 65, 77, 87, 91, 98, 104, 112, 113, 119 and 123
Text prepared by the International Automotive Lighting and Light Signalling Expert Group (GTB) to clarify the definition of "type", with regard to manufacturer, trade names and marks and to introduce editorial improvements to the requirements for markings.
Although documents GRE/2013/45 and GRE-70-02 were adopted by GRE at its last (70th) session, this proposal consolidates the amendments and offers editorial improvements to the provisions concerning markings in Regulations Nos. 19, 23, 38, 65 and 119. These editorial improvements aim to clarify that the devices, and not only the samples, shall bear the trade name or mark and align the requirements with the other correctly worded regulations to avoid misunderstanding.
Document Reference Number: GRE/2014/3
Submitted by: GTB
UN R45 Headlamp Cleaners
UN R65 Special Warning Lamps
GRE/2013/45 | Proposal for Collective amendments to Regulations Nos. 4, 6, 7, 19, 23, 38, 45, 50, 77, 87, 91,98 ,104, 112, 113, 119 and 123
WP.29/2017/27 | Proposal for Supplement 11 to the 01 series of amendments to Regulation No. 45
GRE-78-06 | Proposal for a Corrigendum to Supplement 28 to the 01 series of amendments to Regulation No. 6
13.	In the view of the ongoing idle period for the existing Regulations (stage 1 of SLR), the expert from Finland sought the consent of GRE to correct a mistake in Supplement 28 to the 01 series of amendments to Regulation No. 6 (GRE-78-06). GRE agreed (see Annex II), and requested the secretariat to submit it, in the proper legal form, to WP.29 and to the Administrative Committee of the 1958 Agreement (AC.1) for consideration and vote at their March 2018 sessions.
Proposal for Collective amendments to Regulations Nos. 4, 6, 7, 19, 23, 38, 45, 50, 77, 87, 91,98 ,104, 112, 113, 119 and 123
Proposal for Supplement 11 to the 01 series of amendments to Regulation No. 45
Proposal for a Corrigendum to Supplement 28 to the 01 series of amendments to Regulation No. 6
30. Based on an updated proposal tabled by the expert from Italy (ECE/TRANS/WP.29/GRE/2013/55/Rev.1), GRE resumed consideration of the insertion of compliance obligations with installation requirements, at the time of type approval of lighting components, according to the component UN Regulations. While several experts supported the proposal, some others were of the view that the underlying issue might go beyond the competence of GRE and that WP.29 should be asked for guidance. The Chair suggested clarifying and possibly rephrasing the wording "UN Regulations … and their series of amendments in force at the time of application for type approval". GRE agreed to continue this discussion at the next session and decided that this proposal would become part of a horizontal document collecting common provisions of UN lighting and light-signalling Regulations (see agenda item 6 below).
31. The expert from GTB presented ECE/TRANS/WP.29/2014/3 clarifying the definition of "type" with regard to manufacturer, trade names and marks and to introduce editorial improvements to the requirements for markings. This document superseded ECE/TRANS/WP.29/GRE/2013/45 and GRE-70-02 adopted by GRE at its seventieth session. Various experts identified a number of issues which would require further consideration and clarification. GRE agreed to continue this discussion at the next session and suggested that ECE/TRANS/WP.29/2014/3 become part of a horizontal document collecting common provisions of UN lighting and light-signalling Regulations (see agenda item 6 below).
67. The expert from France introduced GRE-71-09 and GRE-71-10 proposing to delete an unjustified design restrictive requirement of a minimum luminous flux of 1,000 lm for LED's in UN Regulations Nos. 112 and 123. While several experts supported this proposal, some others pointed out that those alternative criteria should be developed to guarantee a minimum performance of LED light sources. GRE decided to revert to this issue at the next session and requested the secretariat, in cooperation with the expert from France, to re-issue GRE-71-09 and GRE-71-10 as official documents.

redpajama_set_name: RedPajamaCommonCrawl


text:
Dr. Nirmal Pathare
A medical microbiologist by profession, Dr. Nirmal Pathare has always had an ardent passion in fine arts, especially drawing, painting, and sculpting.
Journey as an artist
She started working with charcoal and watercolour at a young age. However, her penchant for the abstract and eagerness to experiment led her towards oil colours, a medium she extensively has been working in the recent years.
Her paintings
Her paintings present vivid exploration of light, its interaction with colours and articulate emotions on the canvases. Studying sentiments of living beings and the ability to metamorphose them visually is what makes her paintings both unique and intriguing. She has dedicated her time to be a full-time artist for the past five years.
M.Sc., PhD. (Medical Microbiology). Emeritus Professor of Microbiology
Exhibitions and Accomplishments:
'Charcoal Sketches' [Faces of Oman] selected for exhibition held in Cultural & Traditional Center in SQU.2013
Donated 'Charcoal Sketches' for Dar-Al Atta at exhibition held in Bait Al Zubair in Muscat for "GONU" storm relief fund.
Held exhibitions at Bait Al Zubair and Al Harthy art galleries during 2007-2014.
While working in Muscat for 15 years; exhibited at Sultan Qaboos University Fine Arts Society group exhibitions during 2004-2006.
Won an All-India Competitive prize for 'Amateur Interior Designing' sponsored by Johnson Designer Tiles in 1988 for full wall display.
Won the Maharashtra State Government Award for Excellence in Craftsmanship in Ceramic Sculpturing in 1987.
Won several prizes at annual art exhibitions as undergraduate and postgraduate college student at R. Ruia College and T. N. Medical College during college education.
Private Collections:
Cultural & Traditional Center, Sultan Qaboos University, Muscat.


When you are in a job transition, or looking for a new position, it helps to have as many "arrows in your quiver" as possible.
Your job search plan should include a variety of methods of gaining new employment, such as networking and responding to job postings. However, an "arrow" sometimes ignored is a recruiter.
Recruiters (in general) have received a bad rap over the years – some deservedly so. However, recruiters have been, and will continue to be, a resource for select candidates and jobs. For this reason, especially in a tough economy, recruiters shouldn't be dismissed.
When working with a recruiter a partnership is formed. For the business relationship to be successful there must be mutual respect between the two of you. Recruiters want to work with candidates who want to work with them. Respect them and you'll find yourself treated in kind.
Recruiters are people, too! Don't be quick to label them.
What recruiters can do. While recruiters don't work for you, the best ones will work with you. Heed his or her advice. Recruiters generally have information about the hiring organization, the hiring process and the role being filled not available to the general public. Realize a recruiter may present other candidates to an employer in addition to you. Try to find out where you stand.
What recruiters can't do. A recruiter's allegiance is to the hiring company. Their priority is finding candidates that fit the position – not finding you a job. Remember, recruiters only represent a sliver of the jobs on the market (generally less than 5%). Therefore it's important to have a robust job search plan that includes multiple resources.
Be professional. When you contact or are contacted by a recruiter, be discriminating about what information you share. Treat any meeting or call as an interview. Don't let the informality of a conversation convince you otherwise.
Be prepared. Before you meet or speak with a recruiter, know what you want in a new position and what types of companies are of interest to you. Have an updated resume available and your references prepared. Be upfront about items that are important to you such as salary, benefits, relocation and/or advancement opportunities.
Respect them. If a recruiter recommends you for a position, respect the time and effort they have put in on your behalf. The recruiter's credibility (and yours) is dependent on the caliber of the candidates they present. During the interview process, return their phone calls promptly and provide feedback soon after any contact with the hiring company.
Nowadays, the average professional may go on five or six job searches in a lifetime. Realize an experienced recruiter has been engaged in hundreds of job searches, if not more! Put their experience to use, when you can, to help you find the right job.
Next post: Avoiding The Black Hole!


Georgia has earned its position as a dominant commercial center. Same is also known with its contemporary, changing and entrepreneurial business culture. Same is also strategically placed at the crossroads of trade and commerce between East and West zones. Georgia is splendidly located to access markets of Central Asia and the Middle East, Europe, as well as CIS countries. Its time zone allows it to connect to all market from America to Asia with equal benefit. Being on the bridge between Europe and Asia, the economy of Georgia is highly unified with international markets. Owing to the DCFTA with EU, Georgia appreciates direct access to nearly one billion markets.
Businesses operating within Georgian-free industrial zones enjoy brisk and genuine incorporation procedures. They also enjoy tax-free trade opportunities. Free zone envisaged by tax code of Georgia where the business-friendly regulations and favorable tax and customs system apply. Georgian charter does not impose control regarding foreign ownership of companies. Therefore, any legal and natural person, resident or foreigner, is allowed to register a company in Georgia.
Autonomy from the local self-government bodies.
Kutaisi is one of the largest cities of Georgia and Kutaisi free zone is located within the city, investors who choose to invest their benefit from special investment regime. More than 20,000 employees work in Kutaisi free zone and the employments and employees are expected to increase.
Tbilisi being the capital of the republic of Georgia, has been attempted a lot to create good foreign financial investments. Tbilisi has been declared the only industrial free zone of East Georgia. It is located in Glani, 17 km away from the city. It covers 17 hectares of area. This has been created to welcome all investors from technology, trading and services, ware housing and logistics. The companies who are based in Tbilisi free zone will benefit from operational and tax advantage.
Trade between a Free Industrial Zone Enterprise and a Georgian company is taxed at 4% of the invoice value.
The free zones in Georgia are very popular from the investments perspective. There are a lot of foreign companies same are under process to bring the FDI in Georgia free trade zone. Because of tax incentives and other benefits, other companies are also planning to enter into Georgia.
Design plans of companies in free zones.
The whole process for opening of a company in Georgia free trade zone does not take more than 2 days. Individuals also need to submit few more documents to the national agency for registration. Once all information submitted then company get the registration.
Documents of naming each member of supervisory board and management board.
Under registration process, some important conditions are there which one has to abide by to get registration process completed. Same will be issued by the ministry of justice on the basis of the same company get registered in free zones. In addition to the same company has to go for yearly license approval which is again a mandatory thing.
A registration fee must be submitted as prescribed by authority.
After all this the company will receive a confirmation number and particulars related to the registration process.


JOHN DINSDALE autograph letter with drawing.
ALS. (signed with initials) 1p. 32 Torriano Avenue, N.W. To [William] Woodall.
The letter is in the form of a banner held in the hand of a self-portrait of John Dinsdale, standing on the steps of his house and bowing his head. It reads "John Dinsdale has much pleasure in accepting Mr Woodall's kind invitation for 6th May." Signed with tiny initials on the pate of his bald head!
On paper measuring approx 4.75 x 3 inches laid down on card from an album leaf with part of an unrelated photograph on verso. Fine.
John Dinsdale was an artist and illustrator who was most active in the 1880s. He contributed illustrations to the Illustrated London News, the Graphic, Punch and other periodicals and was particularly known for his illustrations in the Girls Own Paper and for his leading contribution to the Victorian periodical 'Fun', a competitor to Punch. He published a series of books with his own illustrations, including 'Sketches of Whitby', 'Sketches of London', 'Theatrical Sketches', etc. A Victorian artist whose work is now fairly obscure but a fine and well executed drawing with a humorous subject.


Whoopi Goldberg and her cohorts on "The View" are back from their Christmas vacation, and immediately they went into meltdown mode attacking President Donald Trump's stance on the government shutdown over the Southern border wall. The actress claimed Trump's a billionaire, so he should just pay for the wall himself, adding that "real" Americans don't want the wall at all. Well, Goldberg and her crew instantly regretted their words. You'll love this.
As the government shutdown enters day 12, President Trump is standing strong and not giving an inch. House Leader Nancy Pelosi was threatening Wednesday to pass "rapid legislation" to re-open the government, but the president scoffed at that idea saying the partial shutdown will last "as long as it takes" to get the funding he wants, according to Fox News.
That brings us to Whoopi Goldberg and her snarky remarks. When we last saw the 63-year-old comedian on The View, she was spouting all kinds of nonsense about President Trump paying for the wall since according to Goldberg, Americans don't want it.
"[Trump] can open up that very fat wallet he talks about and start the ball rolling," quipped Goldberg. "[Trump] can put 10% down, just 10% down because he is a construction guy and he can just get it built! I mean, how hard can it be for YOU to build the wall?" Whoopi said on December 12th.
Now, she is doubling down on her sarcastic remarks. "[Trump] said, 'I'm a deal maker, I know how to make that happen.' He's a billionaire, I said this before on the show, he should start it off with a billion dollars," Goldberg said, chuckling.
That's when Joy Behar and Whoopi shouted over each other claiming Americans really aren't on board with the wall, that's why Trump should pay for it.
The American people do want the WALL! Remember the Ebola crisis a few years back when we could have had the Ebola disease introduced to Americans in the USA! Many sick people are coming to the border with diseases resistant to our current medicines. Border patrol says 50 sick people are at our border daily. The tuberculosis that's resistant to antibiotics was among the sick people coming here. We have laws on immigration for many reasons. One reason is to prevent sick people infecting citizens and possibly causing mass infections. Another reason is to keep criminals out of our country. We now have had thousands of people killed by illegal criminals. We now have a monument in Ohio now for Americans killed by illegal criminals. People are being killed by these illegal criminals who violated our laws to get here. Good people can apply to migrate here legally. Only criminals must sneak across our borders violating our laws to get in! The USA takes in a million legal immigrants every year legally from around the world!
The American people do want the WALL! Remember the Ebola crisis a few years back when we could have had the Ebola disease introduced to Americans in the USA! Many sick people are coming to the border with diseases resistant to our current medicines. Border patrol says 50 sick people are at our border daily. The tuberculosis that's resistant to antibiotics was among the sick people coming here. We have laws on immigration for many reasons. One reason is to prevent sick people infecting citizens and possibly causing mass infections. Another reason is to keep criminals out of our country. We now have had thousands of people killed by illegal criminals. We now have a monument in Ohio for Americans killed by illegal criminals. People are being killed by these illegal criminals who violated our laws to get here. Good people can apply to migrate here legally. Only criminals must sneak across our borders violating our laws to get in! The USA takes in a million legal immigrants every year legally from around the world!


text:
Nicholas E. Bruno, 92, of Trumbull, formerly of Fairfield
Nicholas E. Bruno, age 92, of Trumbull and formerly of Fairfield, passed away on Wednesday, April 3, 2013 at the Jewish Home for the Elderly surrounded by his loving family. He was the beloved husband of Antoinette Desien Bruno.
Born in Bridgeport, on December 25, 1920, he was the son of the late James and Rose Vendetti Bruno.
A US Army Veteran of World War II, Nick had proudly served during the Battle of the Bulge and was later employed as a machinist for Bullard Company before his retirement after many years of dedicated service.
His greatest enjoyment was found in the time he spent with his family and friends. He will be greatly missed by all who knew him.
In addition to his beloved wife of 64 years, Antoinette, other survivors include his daughter, Linda Anne Newton of Milford, sons-in-law, Donald Scarpetti of Bridgeport and Stephen Dickinson of England, seven grandchildren, Christopher, Brian and Ashley Newton, Francis Zwierlein III, Donald Scarpetti II, Katherine Scarpetti and James Dickinson, a sister, Evelyn Canto of Bridgeport and several nieces and nephews.
He was predeceased by his daughters, Karen R. Dickinson and Beverly Scarpetti and a sister, Anna Bruno.
The family would like to extend a special thanks to the staff of K-3 at the Jewish Home for their outstanding and compassionate care to Nick and the entire family.
Funeral services will be held on Monday, April 8, 2013 at 9:00 a.m. at the Abriola Parkview Funeral Home, 419 White Plains Rd., Trumbull and at 10:00 a.m. at St. Stephen Church, Trumbull for a Mass of Christian Burial. Interment with full military honors will follow in St. Michael Cemetery, Stratford. Friends may call at the funeral home on Sunday from 1:00 – 5:00 p.m.
To light a virtual candle, please visit www.abriola.com.


text:
Q: xsl not generating a unique id for spans Find the following line in XSL below:
<xsl:variable name="id" select="concat('CDTableCell', position())" />
        <span id="{$id}"

I'm not getting a unique id for each of the spans after the transform. Any ideas? Shows the same id's.
xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">

My CD Collection

        <xsl:apply-templates/>

  </xsl:template>

  <xsl:template match="cd">

      <xsl:apply-templates select="title"/>
      <xsl:apply-templates select="artist"/>

  </xsl:template>

  <xsl:template match="title">
    Title:
    // Credit for help: http://stackoverflow.com/a/43546704/139698
    // As well as W3Schools
    <xsl:variable name="id" select="concat('CDTableCell', position())" />

      <xsl:value-of select="."/>

  </xsl:template>
</xsl:stylesheet>

xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="blackorwhite.xslt"?>
<catalog>
  <cd>
    <title>Empire Burlesque</title>
  </cd>
  <cd>
    <title>Hide your heart</title>
  </cd>
</catalog>

A:
I'm not getting a unique id for each of the spans after the transform.

You're not getting unique ids, because each title is the first child of its parent cd. I suggest you use the generate-id() function instead of position() (as you were advised originally).

redpajama_set_name: RedPajamaStackExchange


text:
<?xml version="1.0"?>
<!--

-->
<indexer table="record" mapper="com.ngdata.hbaseindexer.morphline.MorphlineResultToSolrMapper">
  <param name='morphlineFile' value='target/test-classes/extractHBaseCell.conf'/>
</indexer>

redpajama_set_name: RedPajamaGithub


text:
Technical Knockout: APC Disqualifies Victor Foh From Flagbearer Election, READ WHY
Inside APC sources have told the NEW AGE that Vice President Victor Foh and Minkailu Mansaray have been barred as flagbearer aspirants for breaking the party's rules.
That they both knowingly and sadly attended the last NAC meeting, thereby contravening laid down imperatives with reference to persons aspiring as flagbearers in the party.
Victor Foh and Minkailu Manaray are members in the APC National Advisory Committee and are as well persons that have shown interest in the flagbearer of the party.
Claims are that the two have faced disqualification because they recently attended the NAC meeting even though persons expressing in interest as flagbearers have longed been limited from taking part in any of NAC's functions; a strategy preventing them being referees as well as players at the same time.
They say that in the last NAC meeting, many who are members but are aspiring flagbearer candidates avoided attending the said meeting.
This, according to senior APC party officials, was because the party has agreed on completely disconnecting aspirants from the role of NAC, to avoid interference in the selection of who becomes the next APC presidential flagbearer.
It is revealed also that some NAC members the like of Kemoh Sesay, others manifestly did not attend the last NAC meeting because they don't want to face disqualification from the party's chain of command.
That Victor Foh's and Minkailu's woeful falling foul of the party's rules vis-à-vis their presence in the recently held NAC meeting has seen their names removed from list of aspirants, thus debarring them competing for the party's most enviable position- the flagbearer.
It is true Victor Foh recently enticed number of his colleagues in the NAC accompanying him to President Koroma at his state house office as he declares his intention of becoming the next Presidential bearer of the party in the 2018 elections.
On the other hand, Minkailu, who was part of number of flagbearer aspirants lately invited for a dinner by President Koroma at state lodge Hill Station, has had his name alongside Victor Foh as violators, because he was found in contravention of the party's set rules for aspirants.
All two are political heavyweights and have had unreserved interests in the flagbearer position of the APC.
Their disqualification, many say, is likely to see serious division in the party, of course, possible dissentions.
Allusions are that Victor Foh and Minkailu intend to fight back if their candidacy isn't accepted.
Even though our sources maintained that the two politicians have been barred from the contest, it is still not known who the next APC flagbearer will be.
But findings have it that President Koroma has resolved announcing the name of the selected APC flagbearer latest Wednesday 10th.
They say he has even singled out his Foreign Affairs Minister Samura Kamara as his next heir, but that he is somewhat nervous that such will result in a revolt from among the older folks of the party.
That persons mostly admired from among the 25 or so aspirants include Kaifallah Marah, Joseph Fitzgerald Kamara and John Bornor Sisay.
Tags Minkailu Mansaray Victor Foh
APC Regime Has Created Lots Of Problem, SLPP Is The Only Hope - Alie Kabba
Sacked APC Ministers Reportedly Still Carrying Government Diplomatic Passports
Monologue Presenter, David Tam-Bayoh Announces Political Ambition Ahead of 2018 Election
Kandeh Yumkella Receives SLPP Membership Card As 'Distinguish Grand Chief Patron'


DUBAI – Dubai staged a test flight on Monday for what it said would soon be the world's first drone taxi service under an ambitious plan by the United Arab Emirates city to lead the Arab world in innovation.
Meant to fly without remote control guidance and with a maximum flight duration of 30 minutes, it comes with plenty of fail-safes in case of trouble: backup batteries, rotors and for a worst case scenario, a couple of parachutes.
These include aerospace giant Airbus, which aims to put a self-piloting taxi in the air by 2020; Kitty Hawk, a company backed by Google co-founder Larry Page and Uber, which is working with partners on its own flying taxi strategy.
"Implementation would see you using your smartphone, having an app and ordering a Volocopter to the next voloport near you. The volocopter would come and autonomously pick you up and take you to your destination," CEO Florian Reuter said.
"It already is capable of flying based on GPS tracks today and we will implement full sense capability, also dealing with unknown obstacles on the way," he added, saying developers aimed to initiate the taxis within five years.
It plans to send an unmanned probe to Mars by 2021, the Arab world's first mission to space and Dubai has in many ways led their showy march into the future by introducing the region's first driverless metro and robot policemen prototypes.


text:
James Murdoch
This article is a stub. You can help by expanding it.
James Murdoch has been a member of the Tesla "Board since July 2017. Since March 2019, Mr. Murdoch has been the Chief Executive Officer of Lupa Systems, a private investment company that he founded. Previously, Mr. Murdoch held a number of leadership roles at Twenty-First Century Fox, Inc. ("21CF"), a media company, over two decades, including its Chief Executive Officer from 2015 to March 2019, its Co-Chief Operating Officer from 2014 to 2015, its Deputy Chief Operating Officer and Chairman and Chief Executive Officer, International from 2011 to 2014 and its Chairman and Chief Executive, Europe and Asia from 2007 to 2011. Previously, he served as the Chief Executive Officer of Sky plc from 2003 to 2007, and as the Chairman and Chief Executive Officer of STAR Group Limited, a subsidiary of 21CF, from 2000 to 2003. Mr. Murdoch also formerly served on the boards of News Corporation from 2013 to July 2020, of 21CF from 2017 to 2019, of Sky plc from 2016 to 2018, of GlaxoSmithKline plc from 2009 to 2012 and of Sotheby's from 2010 to 2012." [1]
Old BSkyB Profile:
"James Murdoch was appointed as a Director of the Company on 13 February 2003 and as Chief Executive Officer (CEO) with effect from 4 November 2003. On 7 December 2007, he was appointed Non-Executive Chairman of the Company having relinquished the role of CEO. James is Executive Chairman and CEO, Europe and Asia, at News Corporation and is a member of News Corporation's Board of Directors and Executive Committee. Between May 2000 and November 2003, he was Chairman and CEO of Star. James was appointed a Non-Executive Director of GlaxoSmithKline plc in May 2009." [2]
Chairman and Non-Executive Director, BSkyB.
NDS Group Ltd. – non-executive director[3]
↑ Tesla James Murdoch, organizational web page, accessed May 15, 2022.
↑ Directors, BSkyB, accessed 16 July 2010.
↑ David Leigh, Questions for News Corp over rival's collapse, Guardian, 26 March 2012.
Retrieved from "https://www.sourcewatch.org/index.php?title=James_Murdoch&oldid=827562"


text:
package org.mwg.experiments;

import org.mwg.*;
import org.mwg.core.scheduler.NoopScheduler;
import org.mwg.experiments.smartgridprofiling.utility.GaussianProfile;
import org.mwg.ml.MLPlugin;
import org.mwg.ml.algorithm.profiling.GaussianSlotNode;
import org.mwg.struct.Relation;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Random;

/**
 * Created by assaad on 27/04/16.
 */
public class SmartGridSimulationTest {
    final static int SLOTS = 12;
    final static String csvdir = "/Users/assaad/Documents/datasets/";
    //final static String csvdir = "/Users/duke/Desktop/londonpower/";

    public static void main(String[] arg) {
        final Graph graph = new GraphBuilder()
                .withPlugin(new MLPlugin())
//                .withOffHeapMemory()
                .withMemorySize(10_000_000)
//                .saveEvery(1000)
                .withStorage(new LevelDBStorage(csvdir + "leveldb/"))
                .build();
        graph.connect(new Callback<Boolean>() {
            public void on(Boolean result) {

                System.out.println("Available space initially: " + graph.space().available());

                final int[] globaltotal = {0};
                long starttime = System.nanoTime();
                try {

                    final String[] line = {""};
                    int nuser = 0;
                    String cvsSplitBy = ",";
                    final int[] powerValue = new int[1];
                    String username;
                    final String[][] splitted = new String[1][1];
                    final long[] timestamp = new long[1];

                    long minTraining = Long.MAX_VALUE;
                    long maxTraining = Long.MIN_VALUE;

                    final long[] accumulator = new long[1];
                    long halfHour = 1800 * 1000;
                    int MAXCONC = 50;
                    int MAXUSER = 5000;

                    //Two main concentrator nodes
                    Node[] concentrator = new Node[MAXCONC];
                    Node[] profiles = new Node[MAXUSER];
                    Node[] users = new Node[MAXUSER];
                    int iconc = 0;
                    int connections = 0;

                    //Loading the training set
                    File dir = new File(csvdir + "training300/");
                    File[] directoryListing = dir.listFiles();
                    if (directoryListing != null) {
                        for (File file : directoryListing) {
                            if (file.isDirectory() || file.getName().equals(".DS_Store")) {
                                continue;
                            }
                            BufferedReader br = new BufferedReader(new FileReader(file));

                            username = file.getName().split("\\.")[0];
                            Node smartmeter = graph.newNode(0, 0);
                            final Node profiler = graph.newTypedNode(0, 0, GaussianSlotNode.NAME);

                            profiler.set(GaussianSlotNode.SLOTS_NUMBER, Type.INT, SLOTS); //one slot every hour
                            smartmeter.set("name", Type.STRING, username);
                            smartmeter.addToRelation("profile", profiler);

                            graph.index(0, 0, "nodes", new Callback<NodeIndex>() {
                                @Override
                                public void on(NodeIndex result) {
                                    result.addToIndex(smartmeter,"name");
                                }
                            });

                            //create the concentrator if null
                            if (concentrator[iconc] == null) {
                                concentrator[iconc] = graph.newNode(0, 0);
                            }

                            //add the current smart meter
                            concentrator[iconc].addToRelation("smartmeters", smartmeter);
                            connections++;

                            //if connections are full, increase concentrators
                            if (connections == 100) {
                                iconc++;
                                connections = 0;
                            }

                            //Fill electrical loads of one meter
                            while ((line[0] = br.readLine()) != null) {
                                try {

                                    splitted[0] = line[0].split(cvsSplitBy);
                                    if (splitted[0].length != 2) {
                                        continue;
                                    }
                                    timestamp[0] = Long.parseLong(splitted[0][0]);
                                    powerValue[0] = Integer.parseInt(splitted[0][1]);
                                    if (timestamp[0] < minTraining) {
                                        minTraining = timestamp[0];
                                    }
                                    if (timestamp[0] > maxTraining) {
                                        maxTraining = timestamp[0];
                                    }
                                    final int pv = powerValue[0];
                                    smartmeter.travelInTime(timestamp[0], new Callback<Node>() {
                                        @Override
                                        public void on(Node result) {
                                            result.set("power", Type.DOUBLE, pv);
                                            result.relation("profile", (profilers) -> {
                                                long s = System.nanoTime();
                                                ((GaussianSlotNode) profilers[0]).learnArray(new double[]{pv});
                                                long t = System.nanoTime();
                                                accumulator[0] += (t - s);
                                                profilers[0].free();
                                            });

                                            result.free();
                                        }
                                    });
                                    globaltotal[0]++;
                                    if (globaltotal[0] % 1000000 == 0) {
                                        long endtime = System.nanoTime();
                                        double restime = (globaltotal[0]) / ((endtime - starttime) / 1000000.0);
                                        System.out.println("Loaded " + globaltotal[0] / 1000000.0 + " m power records in " + restime + " kv/s users " + nuser + " space: " + graph.space().available());
                                    }

                                } catch (Exception ex) {
                                    ex.printStackTrace();
                                }
                            }
                            profiles[nuser] = profiler;
                            users[nuser] = smartmeter;
                            nuser++;
//                            if (nuser % 1000 == 0) {
//                                System.out.println(nuser + " " + globaltotal);
//                            }
                            br.close();
                            //  System.out.println("File " + file.getName() + " parsed successfully");
                        }
                    }

                    final long[] endtime = {System.nanoTime()};
                    final double[] restime = {(endtime[0] - starttime) / 1000000000};
                    System.out.println("Loaded " + globaltotal[0] + " power records in " + restime[0] + " s !");
                    System.out.println("Profiling took: " + accumulator[0] + " ns");

                   /* for(int i=0;i<50;i++){
                        System.out.println(((long[])concentrator[i].get("smartmeters")).length);
                    }*/

                    int MAXWORLD = 10000000;
                    long calctime = 0;
                    long calctimeStart = 0;
                    long forktime = 0;
                    long forktimeStart = 0;
                    long calcCumul = 0;
                    long forkCumul = 0;

                    long worldList = 0;

                    HashMap<Long, Double> powers = new HashMap<Long, Double>(5000);

                    long[] countnull = new long[2];
                    long profileTime = System.nanoTime();
                    int totProf = 0;
                    for (int i = 0; i < MAXUSER; i++) {
                        double[] pp = new double[1];
                        for (long time = maxTraining; time < maxTraining + 48 * halfHour; time += halfHour) {
                            totProf++;
                            graph.lookup(0, time, users[i].id(), new Callback<Node>() {
                                @Override
                                public void on(Node result) {
                                    result.relation("profile", new Callback<Node[]>() {
                                        @Override
                                        public void on(Node[] result) {
                                            ((GaussianSlotNode) result[0]).predict(new Callback<double[]>() {
                                                @Override
                                                public void on(double[] result) {
                                                    if (result == null) {
                                                        countnull[0]++;
                                                    } else {
                                                        countnull[1]++;
                                                        pp[0] += result[0];
                                                    }
                                                }
                                            });
                                            result[0].free();
                                        }
                                    });
                                    result.free();
                                }
                            });
                        }
                        pp[0] = pp[0] / 48;
                        powers.put(users[i].id(), pp[0]);
                    }
                    profileTime = System.nanoTime() - profileTime;
                    System.out.println("Profile exec time per user per time, in ns: " + profileTime + " total calls: " + totProf + " should divide ");
                    System.out.println("profile null " + countnull[0] + " non null " + countnull[1]);

                    double absolute = 0;
                    for (Long l : powers.keySet()) {
                        absolute += powers.get(l);
                    }
                    System.out.println("Absolute total power " + absolute);

                    PrintWriter outPowers = new PrintWriter(new File(csvdir + "worlds.csv"));
                    PrintWriter outGaussian = new PrintWriter(new File(csvdir + "gaussian.csv"));
                    PrintWriter outTime = new PrintWriter(new File(csvdir + "worldtime.csv"));
                    PrintWriter outPerm = new PrintWriter(new File(csvdir + "permutations.csv"));

                    outTime.println("world,calctime,forktime,calcCumul,forkCumul,min");

                    outGaussian.println(absolute);
                    outGaussian.println("Profile exec time per user per time, in ns: " + profileTime + " total calls: " + totProf + " should divide ");

                    double min = Double.MAX_VALUE;
                    int bestWorld = 0;

                    System.out.println("Available space after loading: " + graph.space().available());
                    final Random rand = new Random();

                    for (int world = 0; world < MAXWORLD; world++) {
                        GaussianProfile worldProfiles = new GaussianProfile();
                        int finalWorld = world;
                        final double[] totalPowers = new double[MAXCONC];

                        calctimeStart = System.nanoTime();
                        for (int conc = 0; conc < MAXCONC; conc++) {
                            int finalConc = conc;
                            graph.lookup(worldList, 0, concentrator[conc].id(), new Callback<Node>() {
                                @Override
                                public void on(Node result) {
                                    long[] relations = (long[]) result.get("smartmeters");
                                    for (int k = 0; k < relations.length; k++) {
                                        outPerm.print(relations[k] + ",");
                                        totalPowers[finalConc] += powers.get(relations[k]);
                                    }
                                    result.free();
                                }
                            });

                        }
                        calctime = System.nanoTime() - calctimeStart;
                        calcCumul += calctime;

                        //System.out.println("Available space after calculation: "+graph.space().available());

                        for (int conc = 0; conc < MAXCONC; conc++) {
                            worldProfiles.learn(new double[]{totalPowers[conc]});
                            outPowers.print(totalPowers[conc] + ",");
                        }
                        outPowers.println();
                        outGaussian.println(worldProfiles.getMin()[0] + "," + worldProfiles.getMax()[0] + "," + worldProfiles.getAvg()[0] + "," + worldProfiles.getSum()[0] + "," + worldProfiles.getSumSquares()[0] + ",");

                        if (Math.abs(worldProfiles.getSum()[0] - absolute) > 0.1) {
                            System.out.println("ERROR: expected: " + absolute + " got: " + worldProfiles.getSum()[0]);
                        }

                        outPerm.print(worldProfiles.getSum()[0]);
                        outPerm.println();
                        outPerm.flush();

                        double vv = worldProfiles.getSumSquares()[0];
                        if (vv < min) {
                            min = vv;
                            bestWorld = world;
                        }

                        forktimeStart = System.nanoTime();
                        worldList = graph.fork(worldList);
                        for (int conc = 0; conc < MAXCONC; conc++) {

                            int xx = 0;
                            do {
                                xx = rand.nextInt(MAXCONC);
                            }
                            while (xx == conc);

                            long finalWorldList = worldList;
                            int finalXx = xx;
                            graph.lookup(worldList, 0, concentrator[conc].id(), new Callback<Node>() {
                                @Override
                                public void on(Node world1) {
                                    graph.lookup(finalWorldList, 0, concentrator[finalXx].id(), new Callback<Node>() {
                                        @Override
                                        public void on(Node world2) {
                                            long[] p1 = (long[]) world1.get("smartmeters");
                                            long[] p2 = (long[]) world2.get("smartmeters");

                                            // int situation = xx.nextInt(3);
                                            // if (situation <= 1) {
                                            for (int i = 0; i < 3; i++) {
                                                int y = rand.nextInt(p1.length);
                                                int z = rand.nextInt(p2.length);
                                                long temp = p1[y];
                                                p1[y] = p2[z];
                                                p2[z] = temp;
                                            }
                                           /* } else if (p1.length > 1) {
                                                int y = xx.nextInt(p1.length);
                                                long[] p1t = new long[p1.length - 1];
                                                long[] p2t = new long[p2.length + 1];
                                                for (int i = 0; i < p1t.length; i++) {
                                                    if (i < y) {
                                                        p1t[i] = p1[i];
                                                    } else {
                                                        p1t[i] = p1[i + 1];
                                                    }
                                                }
                                                for (int i = 0; i < p2.length; i++) {
                                                    p2t[i] = p2[i];
                                                }
                                                p2t[p2.length] = p1[y];

                                                p1 = p1t;
                                                p2 = p2t;
                                            }*/

                                            Relation rel1= (Relation) world1.getOrCreate("smartmeters",Type.RELATION);
                                            rel1.clear();
                                            rel1.addAll(p1);

                                            Relation rel2= (Relation) world2.getOrCreate("smartmeters",Type.RELATION);
                                            rel2.clear();
                                            rel2.addAll(p2);

                                            world2.free();
                                        }
                                    });
                                    world1.free();
                                }
                            });

                            // System.out.println("Available space after permutation: "+graph.space().available());

                        }
                        forktime = System.nanoTime() - forktimeStart;
                        forkCumul += forktime;
                        outTime.println(world + "," + calctime + "," + forktime + "," + calcCumul + "," + forkCumul + "," + min);

                        outGaussian.flush();
                        outPowers.flush();
                        outTime.flush();
                        if (world % 1000 == 0) {
                            System.out.println("World " + world + " totalCalcTime: " + calcCumul + " totalForkTime: " + forkCumul + " Best world is " + bestWorld + " min sumsq " + min + " space: " + graph.space().available());
                        }

                    }
                    System.out.println("World " + MAXWORLD + " totalCalcTime: " + calctime + " totalForkTime: " + forktime);

                    System.out.println("Best world is " + bestWorld + " min sumsq " + min);

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

        });
        System.out.println("test done");

    }
}


Keith's research and teaching interests include: modern French history, modern German history, military history, medical history, and the history of sports and leisure. He has taught courses on the French Revolution, 20th Century French History, War Stories and Soldiering, the History of Modern Warfare, the History of Terrorism, the History of Modern Sport, and both European Civilization and Global History.
Keith Rathbone (Ph.D., Northwestern University, 2015) researches twentieth century French social and cultural history. His manuscript, entitled A Nation in Play: Physical Culture, the State, and Society during France's Dark Years, 1932-1948, examines physical education and sports in order to better understand civic life under the dual authoritarian systems of the German Occupation and the Vichy Regime. In investigating physical culture, he addresses historiographic issues such as the continuity between the Third Republic and the Vichy Regime, the gendered ideology of Vichy sports programs, and the development of collaboration and resistance.
Keith arrives at Macquarie University after previous positions as a Postdoctoral Fellow at the Nicholas D. Chabraja Center for Historical Studies at Northwestern University and as a Visiting Assistant Professor in the Department of History at the College of Wooster. He has also lectured at the Sciences politiques de Paris and Indiana University Northwest.
Rathbone, K., 7 Dec 2018, In : French History.
Rathbone, K., 2018, (Accepted/In press) In : H-France Review.
Rathbone, K., 2018, In : Journal of sport history. 45, 2, p. 260-261 2 p.
Rathbone, K., Oct 2017, In : H-France Review. 17, 176, p. 1-5 5 p.
Rathbone, K., 2017, In : Contemporary French Civilization . 42, 3-4, p. 458-460 3 p.


Tommy Conri has been burned by love, but that doesn't stop everyone in his life urging him to find a good woman and settle down. Though he's buried himself in excuses and his work at his diner, one woman has his inner wolf sitting up and taking notice every time her brown curls bounce past his window.
Fox shifter Faith Holden owns the coffee shop across the street from her perfect man. While she's held a torch for Tommy since they were teens, they've never before been single at the same time. She's determined to muster the nerve to invite the scrumptious, reclusive wolf shifter to the town's annual Winter Wonderland Bash.
The attraction between the rival diner owners becomes irresistible as they near the holiday festivities. But Faith's dreams of sleigh rides through the snow and mistletoe kisses are dashed when Tommy's ex slithers back into town. Can Tommy forget his past wounds before he ruins his chance to make Faith his mate?
Previously published in the All He Wants for Christmas Holiday Bundle!