text:
import torch
import torch.nn as nn
import math
import librosa
from .perturb import AudioAugmentor
from .segment import AudioSegment
from apex import amp

def audio_from_file(file_path, offset=0, duration=0, trim=False, target_sr=16000):
    audio = AudioSegment.from_file(file_path,
                                   target_sr=target_sr,
                                   int_values=False,
                                   offset=offset, duration=duration, trim=trim)
    samples=torch.tensor(audio.samples, dtype=torch.float).cuda()
    num_samples = torch.tensor(samples.shape[0]).int().cuda()
    return (samples.unsqueeze(0), num_samples.unsqueeze(0))

class WaveformFeaturizer(object):
    def __init__(self, input_cfg, augmentor=None):
        self.augmentor = augmentor if augmentor is not None else AudioAugmentor()
        self.cfg = input_cfg

    def max_augmentation_length(self, length):
        return self.augmentor.max_augmentation_length(length)

    def process(self, file_path, offset=0, duration=0, trim=False):
        audio = AudioSegment.from_file(file_path,
                                       target_sr=self.cfg['sample_rate'],
                                       int_values=self.cfg.get('int_values', False),
                                       offset=offset, duration=duration, trim=trim)
        return self.process_segment(audio)

    def process_segment(self, audio_segment):
        self.augmentor.perturb(audio_segment)
        return torch.tensor(audio_segment.samples, dtype=torch.float)

    @classmethod
    def from_config(cls, input_config, perturbation_configs=None):
        if perturbation_configs is not None:
            aa = AudioAugmentor.from_config(perturbation_configs)
        else:
            aa = None

        return cls(input_config, augmentor=aa)

constant = 1e-5
def normalize_batch(x, seq_len, normalize_type):
    if normalize_type == "per_feature":
        x_mean = torch.zeros((seq_len.shape[0], x.shape[1]), dtype=x.dtype,
                                                 device=x.device)
        x_std = torch.zeros((seq_len.shape[0], x.shape[1]), dtype=x.dtype,
                                                device=x.device)
        for i in range(x.shape[0]):
            x_mean[i, :] = x[i, :, :seq_len[i]].mean(dim=1)
            x_std[i, :] = x[i, :, :seq_len[i]].std(dim=1)
        # make sure x_std is not zero
        x_std += constant
        return (x - x_mean.unsqueeze(2)) / x_std.unsqueeze(2)
    elif normalize_type == "all_features":
        x_mean = torch.zeros(seq_len.shape, dtype=x.dtype, device=x.device)
        x_std = torch.zeros(seq_len.shape, dtype=x.dtype, device=x.device)
        for i in range(x.shape[0]):
            x_mean[i] = x[i, :, :seq_len[i].item()].mean()
            x_std[i] = x[i, :, :seq_len[i].item()].std()
        # make sure x_std is not zero
        x_std += constant
        return (x - x_mean.view(-1, 1, 1)) / x_std.view(-1, 1, 1)
    else:
        return x

def splice_frames(x, frame_splicing):
    """ Stacks frames together across feature dim

    input is batch_size, feature_dim, num_frames
    output is batch_size, feature_dim*frame_splicing, num_frames

    """
    seq = [x]
    for n in range(1, frame_splicing):
        tmp = torch.zeros_like(x)
        tmp[:, :, :-n] = x[:, :, n:]
        seq.append(tmp)
    return torch.cat(seq, dim=1)[:, :, ::frame_splicing]

class SpectrogramFeatures(nn.Module):
    def __init__(self, sample_rate=8000, window_size=0.02, window_stride=0.01,
                       n_fft=None,
                       window="hamming", normalize="per_feature", log=True, center=True,
                       dither=constant, pad_to=8, max_duration=16.7,
                       frame_splicing=1):
        super(SpectrogramFeatures, self).__init__()
        torch_windows = {
            'hann': torch.hann_window,
            'hamming': torch.hamming_window,
            'blackman': torch.blackman_window,
            'bartlett': torch.bartlett_window,
            'none': None,
        }
        self.win_length = int(sample_rate * window_size)
        self.hop_length = int(sample_rate * window_stride)
        self.n_fft = n_fft or 2 ** math.ceil(math.log2(self.win_length))

        window_fn = torch_windows.get(window, None)
        window_tensor = window_fn(self.win_length,
                                  periodic=False) if window_fn else None
        self.window = window_tensor

        self.normalize = normalize
        self.log = log
        self.center = center
        self.dither = dither
        self.pad_to = pad_to
        self.frame_splicing = frame_splicing

        max_length = 1 + math.ceil(
                (max_duration * sample_rate - self.win_length) / self.hop_length
        )
        max_pad = 16 - (max_length % 16)
        self.max_length = max_length + max_pad

    def get_seq_len(self, seq_len):
        x = torch.ceil(seq_len.to(dtype=torch.float) / self.hop_length).to(
            dtype=torch.int)
        if self.frame_splicing > 1:
            x = torch.ceil(x.float() / self.frame_splicing).to(dtype=torch.int)
        return x

    @torch.no_grad()
    def forward(self, inp):
        x, seq_len = inp
        dtype = x.dtype

        seq_len = self.get_seq_len(seq_len)

        # dither
        if self.dither > 0:
            x += self.dither * torch.randn_like(x)

        # do preemphasis
        if hasattr(self,'preemph') and self.preemph is not None:
            x = torch.cat((x[:, 0].unsqueeze(1), x[:, 1:] - self.preemph * x[:, :-1]),
                                        dim=1)

        # get spectrogram
        x = torch.stft(x, n_fft=self.n_fft, hop_length=self.hop_length,
                          win_length=self.win_length, center=self.center,
                          window=self.window.to(torch.float))
        x = torch.sqrt(x.pow(2).sum(-1))

        # log features if required
        if self.log:
            x = torch.log(x + 1e-20)

        # frame splicing if required
        if self.frame_splicing > 1:
            x = splice_frames(x, self.frame_splicing)

        # normalize if required
        if self.normalize:
            x = normalize_batch(x, seq_len, normalize_type=self.normalize)

        # mask to zero any values beyond seq_len in batch, pad to multiple of `pad_to` (for efficiency)
        #max_len = x.size(-1)
        #mask = torch.arange(max_len).to(seq_len.dtype).to(seq_len.device).expand(x.size(0), max_len) >= seq_len.unsqueeze(1)
        #x = x.masked_fill(mask.unsqueeze(1).to(device=x.device), 0)
        #del mask
        x = x[:, :, :seq_len.max()]   # rnnt loss requires lengths to match
        pad_to = self.pad_to
        if pad_to != 0:
            raise NotImplementedError()
        #if pad_to == "max":
        #    x = nn.functional.pad(x, (0, self.max_length - x.size(-1)))
        #elif pad_to > 0:
        #    pad_amt = x.size(-1) % pad_to
        #    if pad_amt != 0:
        #        x = nn.functional.pad(x, (0, pad_to - pad_amt))

        return x.to(dtype)

    @classmethod
    def from_config(cls, cfg, log=False):
        return cls(sample_rate=cfg['sample_rate'], window_size=cfg['window_size'],
                   window_stride=cfg['window_stride'],
                   n_fft=cfg['n_fft'], window=cfg['window'],
                   normalize=cfg['normalize'],
                   max_duration=cfg.get('max_duration', 16.7),
                   dither=cfg.get('dither', 1e-5), pad_to=cfg.get("pad_to", 0),
                   frame_splicing=cfg.get("frame_splicing", 1), log=log)

class FilterbankFeatures(nn.Module):
    def __init__(self, sample_rate=8000, window_size=0.02, window_stride=0.01,
                       window="hamming", normalize="per_feature", n_fft=None,
                       preemph=0.97,
                       nfilt=64, lowfreq=0, highfreq=None, log=True, dither=constant,
                       pad_to=8,
                       max_duration=16.7,
                       frame_splicing=1):
        super(FilterbankFeatures, self).__init__()
#        print("PADDING: {}".format(pad_to))

        torch_windows = {
            'hann': torch.hann_window,
            'hamming': torch.hamming_window,
            'blackman': torch.blackman_window,
            'bartlett': torch.bartlett_window,
            'none': None,
        }

        self.win_length = int(sample_rate * window_size) # frame size
        self.hop_length = int(sample_rate * window_stride)
        self.n_fft = n_fft or 2 ** math.ceil(math.log2(self.win_length))

        self.normalize = normalize
        self.log = log
        self.dither = dither
        self.frame_splicing = frame_splicing
        self.nfilt = nfilt
        self.preemph = preemph
        self.pad_to = pad_to
        highfreq = highfreq or sample_rate / 2
        window_fn = torch_windows.get(window, None)
        window_tensor = window_fn(self.win_length,
                                  periodic=False) if window_fn else None
        filterbanks = torch.tensor(
            librosa.filters.mel(sample_rate, self.n_fft, n_mels=nfilt, fmin=lowfreq,
                                                    fmax=highfreq), dtype=torch.float).unsqueeze(0)
        # self.fb = filterbanks
        # self.window = window_tensor
        self.register_buffer("fb", filterbanks)
        self.register_buffer("window", window_tensor)
        # Calculate maximum sequence length (# frames)
        max_length = 1 + math.ceil(
                (max_duration * sample_rate - self.win_length) / self.hop_length
        )
        max_pad = 16 - (max_length % 16)
        self.max_length = max_length + max_pad

    def get_seq_len(self, seq_len):
        x = torch.ceil(seq_len.to(dtype=torch.float) / self.hop_length).to(
            dtype=torch.int)
            # dtype=torch.long)
        if self.frame_splicing > 1:
            x = torch.ceil(x.float() / self.frame_splicing).to(dtype=torch.int)
        return x

    @torch.no_grad()
    def forward(self, inp):
        x, seq_len = inp

        dtype = x.dtype

        seq_len = self.get_seq_len(seq_len)

        # dither
        if self.dither > 0:
            x += self.dither * torch.randn_like(x)

        # do preemphasis
        if self.preemph is not None:
            x = torch.cat((x[:, 0].unsqueeze(1), x[:, 1:] - self.preemph * x[:, :-1]),
                                        dim=1)

        # do stft
        x = torch.stft(x, n_fft=self.n_fft, hop_length=self.hop_length,
                       win_length=self.win_length,
                       center=True, window=self.window.to(dtype=torch.float))

        # get power spectrum
        x = x.pow(2).sum(-1)

        # dot with filterbank energies
        x = torch.matmul(self.fb.to(x.dtype), x)

        # log features if required
        if self.log:
            x = torch.log(x + 1e-20)

        # frame splicing if required
        if self.frame_splicing > 1:
            x = splice_frames(x, self.frame_splicing)

        # normalize if required
        if self.normalize:
            x = normalize_batch(x, seq_len, normalize_type=self.normalize)

        # mask to zero any values beyond seq_len in batch, pad to multiple of `pad_to` (for efficiency)
        #max_len = x.size(-1)
        x = x[:, :, :seq_len.max()]   # rnnt loss requires lengths to match
        #mask = torch.arange(max_len).to(seq_len.dtype).to(x.device).expand(x.size(0),
        #                                                                   max_len) >= seq_len.unsqueeze(1)

        #x = x.masked_fill(mask.unsqueeze(1).to(device=x.device), 0)
        pad_to = self.pad_to
        if pad_to != 0:
            raise NotImplementedError()
        #if pad_to == "max":
        #    x = nn.functional.pad(x, (0, self.max_length - x.size(-1)))
        #elif pad_to > 0:
        #    pad_amt = x.size(-1) % pad_to
        #    if pad_amt != 0:
        #        x = nn.functional.pad(x, (0, pad_to - pad_amt))

        return x.to(dtype)

    @classmethod
    def from_config(cls, cfg, log=False):
        return cls(sample_rate=cfg['sample_rate'], window_size=cfg['window_size'],
                   window_stride=cfg['window_stride'], n_fft=cfg['n_fft'],
                   nfilt=cfg['features'], window=cfg['window'],
                   normalize=cfg['normalize'],
                   max_duration=cfg.get('max_duration', 16.7),
                   dither=cfg['dither'], pad_to=cfg.get("pad_to", 0),
                   frame_splicing=cfg.get("frame_splicing", 1), log=log)

class FeatureFactory(object):
    featurizers = {
        "logfbank": FilterbankFeatures,
        "fbank": FilterbankFeatures,
        "stft": SpectrogramFeatures,
        "logspect": SpectrogramFeatures,
        "logstft": SpectrogramFeatures
    }

    def __init__(self):
        pass

    @classmethod
    def from_config(cls, cfg):
        feat_type = cfg.get('feat_type', "logspect")
        featurizer = cls.featurizers[feat_type]
        #return featurizer.from_config(cfg, log="log" in cfg['feat_type'])
        return featurizer.from_config(cfg, log="log" in feat_type)


I've been in love with the idea of designing fabric for a long time. This past week, the kids and I did just that — we painted fabric and up-cycled, too! Click below to see more and learn how you can do this, too!
Gather up your crayons and design fabric with us, today! I just love a project that is both functional and fun; the process is full of experimentation! With the fabric we made, we were able to turn pieces into pillows, a bags and and a scarf in our one session — none looked the same. The vivid colors make beautiful art almost fail-proof. With adult supervision, this is a project for all ages and all skills.
Supplies: peeled crayons, cotton fabric, cupcake tis – tin or silicon (or option 2: microwaveable containers), iron, ironing surface, paper towels, extra cotton fabric rag, inexpensive brush, pencil with eraser, something to cover working surface: aluminum foil, butcher paper or baking paper.
Prep:-Wash fabric without fabric softener. Dry.
– Prep work surface and cover the area that you will be using to paint, either aluminum foil, butcher paper or baking paper to avoid stains from the crayons.
– Lay fabric flat on this covered surface and set out supplies — erasers (for polka dots) and/or brushes.
Oven:– Heat oven to 275ºF/140ºC.
– Fill the cupcake tins (tin or silicon) with crayons organized by color.
– Place in oven until melted. This will take about 10 minutes.
– Remove from oven and use immediately.
Microwave.– Place crayons, organized by color, in microwave safe containers.
– Place approximately an inch (3 cm) of water in a microwave proof tray that is large enough to hold the smaller containers.
– Rest each container filled with crayon stubs in this dish or tray. Make sure the water doesn't leak into the containers holding the crayons. Water is needed to provide the necessary moisture for microwaving the crayons.
– Place the tray or dish and containers into the microwave oven.
– Microwave the crayons in bursts of 30 seconds, on high. After each burst, check to see how much the crayons have melted. They should be ready to use after about three to four bursts.
Getting Started Painting:-Once the crayons have been melted, it is time to paint the design.
If you have very small children, beware that the melted crayon will be hot and should not touch the skin.
-If you want to make the polka dots, like we did, we dipped the eraser end of a pencil into the melted crayon in a dot pattern covering the full fabric. We used 3 tones of pinks and yellows.
-If you would like to "paint" with the crayons, like the sun example we've shown, dip your brush into the melted crayon and paint directly on to the surface. There are so many ways to experiment. To keep clean color, dip into one color at a time. If you would like to have more or an experimental color, we melted 3 colors onto a flat surface so that they almost marbled together and then, swooshed a paint brush into that color and painted.
-To keep the brush from cooling and hardening, dip the bush in a container of very warm water and dry between uses or the brush will harden.
Once the patterns and artwork has been created. Let dry and once dry, move to the ironing board, with a cotton rag under the fabric, place the fabric on top of the rag, on top of the ironing board. Cover your artwork with paper towel and then, top with one more cotton rag. This is important to absorb the extra color and wax as it can seep through the fabric.
Once the surface is prepared and iron is heated to "cotton," it is time to iron the painted fabric. Carefully iron the full surface that has been painted. Ironing sets the artwork and it is important that every inch of the crayon is heated. Once the full surface has been ironed to set the artwork, let cool.
Once cool, the fabric is ready for you to do what you'd like with it! Fabric will be delicate and can be washed as a delicate but, should not be dried in a drier or the artwork will fade.
Happy Making! We can't wait to see what you do with this tutorial. Happy Willowday Making!
Every few weeks some blogger friends of mine have recently started to get together for an art series that explores a different art material or art process (here | here). It's been so much fun and was a great motivation to dusted off our crayons and to try a new process. I hope you can have fun with us, too! To see other fantastic ways to explore with crayons please check out these links. You won't be disappointed!
I'm so excited about the new book that I am a contributor to: Click here for more information or to buy the Happy Handmade Ebook.


text:
South West APC leaders must beware
By Femi Orebe On Sep 1, 2013
"People who always want to have their ways at all cost and never provide better arguments but rather want to force their petty ideas on others are anarchists and pocket despots who will ultimately fail' -AWO, during the Omoboriowo crisis in Ondo state, exactly 30 years ago (1983)."
Something is afoot in the South West APC and it is guaranteed to negatively affect the party if its leaders will not face up to it and deal squarely with it now that they still can. I am not one to speak from two sides of the mouth as neither my being Ekiti, nor having the rare privilege of being educated at Christ's School, Ado-Ekiti, will permit it.. I have written previously on this page about the PDP's plan to encircle the South West in a pincer-like movement, effective 2014, using mostly disgruntled or over ambitious 'members' of the progressive camp who, our leaders, unfortunately, believe are beyond reproach. And if care is not taken, these 'gentlemen' will, before their very eyes, emerge the Labour Party gubernatorial candidates in their respective states and there would be nothing they can do.
Something tells me this is a well-funded PDP project being coordinated by two Southwest governors, one serving, the other ex. At the recent launch of Prof Ropo Sekoni's book at the Muson Centre, Lagos, one of these individuals, confessed that much to both Professor Akin Oyebode and myself. And this is where a too trusting Asiwaju Bola Ahmed Tinubu, whose name, one of them keeps dropping at the drop of a hat, readily comes in.
Without a scintilla of doubt, but behind his back, I must have used close to a million words defending Tinubu at several fora in the past 10 years, all because I believe in what he represents. And this has nothing to do with my writing for The Nation newspaper. Anyway, The Nation was not established 10 years ago. I have told all who care to listen how, long before he became governor, he had been promoting and extending the frontiers of democracy. I have written about how he mobilised and sent, both Hon Wale Oshun and now, Senator Femi Lanlehin, with funds to a West African country to assist in the campaign of a presidential candidate long before he became governor. Today, hardly does any official event happen in Lagos without representations from Ghana and Sierra-Leone, owing largely to his political reach. And, but for him, nobody knows where exactly Obasanjo would have left Yoruba land. I never cease to pray that the good Lord will continue to lead him aright. Directly on his handling of the removal of Hon Bamidele as Chairman of the Ekiti ACN Caucus in the House of Representatives, an event for which many Nigerians commended the discipline and orderliness in the party, Opeyemi gleefully came back to Ekiti to tell his few followers that Asiwaju merely came to Ekiti to play politics and that he supports his aspirations all the way. Though we know this is what Fela would have called shakara, such talk, unfortunately, emboldens his misguided supporters who, unknown to Asiwaju, have also been assured of federal support in matters involving the police.
Full scale disturbances have therefore occurred each time Ope visited the state with APC members always being at the receiving end because it is also a PDP plan since the Police Affairs Minister, an Ekiti and a wannabe gubernatorial candidate, is on orders to deal with APC members.
Enroute 2023 APC must try everything not to self immolate
Ekiti '22: In order not to snatch defeat from the jaws of…
Nigeria: In all circumstances we must thank God
In respect of this plan, I recently wrote somewhere as follows: 'We are inching toward the final denouement. This scenario will soon play out in both Ekiti and Osun States where elections are due next year. Starting innocuously, sleeping agents of the PDP, who are otherwise APC 'members', but inexorably destined for the Labour Party will, acting as agent provocateurs, mess up the current peace in the South West. The police, in turn, would thereby get the alibi they need to arrest and detain, indefinitely, targeted leaders of the APC as has happened to the Interim APC Chairman, Mr Jide Awe. Now, the plot has shifted to the governor's Special Adviser on Security, who usually foils their many evil plans and whose town, Iyin -Ekiti, was the latest of Hon Bamidele's hot spots, backed by members of the Dr Fasehun wing of the OPC. Reminds one of the new UPN!
The plot is aimed at crippling the APC ahead of the 2014 election. If they succeed in Ekiti, Osun will be next. It is all a strategic bating which is not the brainwave of dunderheads, but a well-choreographed scheme of evil geniuses hell bent on having the South West under their stranglehold again. Indeed, mere writing about them is dangerous enough, but write we must if democracy must survive in this land.
In a private letter to Hon Bamidele this past week, Igede-based Abiola Olufemi affirmed that the legislator had actually started holding nocturnal meetings all over the state long before the Appeal Court decided in favour of Fayemi, all in the hope of contesting against him. He wrote him in 2011:' You were sending rice and vegetable oil all around the state and preparing the ground for your contest as you thought Fayemi was going to lose at the Appeal Court. But to your amazement, Fayemi became governor and rather than support him, you were too bitter about the senatorial ticket given to Ojudu. That was why you started branding Fayemi a non-performer, bandying about 2006 census figures in order to pillory the governor. I was so miffed that I had to react with an article I titled "Opeyemi Bamidele's Selective Amnesia". Rather than change, you granted more than ten interviews within two days, sounding more hysterical than ever. Like many of your concoctions, you claimed that the leadership had not endorsed Fayemi.
For the avoidance of doubt, you have as much right as anyone to aspire to be governor. But I ask: were you truly attacked? In this computer age, social media and the lot, you failed to provide a single photo or video evidence of the attacks. Where are the scars or the wounds? Where are Jaruu's marks on you? I don't really like him, but I don't also think you should demonise him in your attempt to make Fayemi look bad! The latest claim of attack from your camp has its roots in an incident that happened at a party in your hometown of Iyin-Ekiti on Friday, 23 August, 2013. Jaruu was uncharacteristically cool under your boys' provocation but Niyi Apase who came later with his fellow members of the Gani Adam faction of the OPC couldn't stomach it when your Fredrick Faseun faction of the OPC attacked him. You saw it all, but never called them to order since it would make a good spin for the tabloid.'
I quoted that letter at some length for the reading public to know the truth about these many 'attacks' on Opeyemi. I know, first hand, both in his quest for the Senate and this one, that party leaders sincerely pleaded with Hon Bamidele to take things easy. In the Senate case which he never ceases to claim he won, I know, as a member of the ACN state screening committee, appointed by the National Chairman of the party, that the election was inconclusive as the rerun never took place owing to threats of 'war'. In the current case, I am equally aware that long before the party leaders came to Ekiti to endorse Fayemi, both Chief Bisi Akande and Asiwaju Bola Tinubu met with the duo and actually believed they had settled it all, but Opeyemi did not do any of the things he promised the party leaders.
In conclusion, I will like to plead with those close to Hon Bamidele to let him know that he needs no alibi to move to another party, if he must, to fulfill his ambition rather than take us back to those rancorous days of the PDP in Ekiti.
APCAPC leaders
'APC states have alternative revenue sources to oil'
Senseless about Syria
Gombe NSCDC boss charges officers on ending insecurity January 22, 2022
Benue APC dragged to court over congress January 22, 2022
Lalong receives staff audit report; vows to sack civil servants with falsified data January 22, 2022
FERMA completes 10 road projects appropriated to Kebbi in 2021 January 22, 2022
Troops kill three notorious kidnappers in Plateau January 22, 2022

redpajama_set_name: RedPajamaCommonCrawl


text:
> Royalty
Why Prince Harry and Meghan Markle's baby daughter announcement is a royal first
Prince Harry and Meghan welcomed their little girl on Friday
June 06, 2021 - 17:56 BST Sharnaz Shahid, Prince Harry and Meghan Markle's baby daughter announcement is a royal first in so many ways. The couple have named their daughter Lilibet "Lili" Diana Mountbatten-Windsor
The Duke and Duchess of Sussex have welcomed their second child - a baby girl called Lilibet "Lili" Diana Mountbatten-Windsor. However, their happy news - which was announced on Sunday evening - will always be remembered for its unique announcement!
Prince Harry and Meghan released the announcement on their website Archewell and confirmed that they are on "parental leave" and will "continue to do important work and publish stories on the site".
MORE: Why Prince Harry and Meghan's baby daughter won't have a title despite very royal name
WATCH: Prince Harry and Meghan Markle welcome second child
When their son Archie Harrison was born in May 2019, Harry had work commitments three days after while his brother took two weeks off following the births of Prince George and Princess Charlotte.
MORE: Prince Harry and Meghan announce baby's name - the sweet meaning behind it
SEE: All the times Prince Harry treated wife Meghan like a queen that she is
Sharing their news, the happy couple said on their site: "On June 4th, we were blessed with the arrival of our daughter, Lili. She is more than we could have ever imagined, and we remain grateful for the love and prayers we've felt from across the globe. Thank you for your continued kindness and support during this very special time for our family."
Royal births tend to be announced the same day a royal baby is born. This time round, Prince Harry and Meghan opted to wait two days before confirming their news with the world.
Prince Harry and Meghan have named their baby girl after the Queen
The newborn baby is named after her great-grandmother the Queen - who was affectionately nicknamed Lilibet by her family - and her grandmother, the late Princess Diana. This marks the first time a royal baby has had the honour of sharing their first moniker with her Majesty.
Little Lili is also the first of the Queen's great-grandchildren to be born outside the UK.
A spokesperson for Prince Harry and Meghan released a statement, which read: "It is with great joy that Prince Harry and Meghan, The Duke and Duchess of Sussex, welcome their daughter, Lilibet "Lili" Diana Mountbatten-Windsor, to the world.
"Lili was born on Friday, June 4 at 11:40 a.m. in the trusted care of the doctors and staff at Santa Barbara Cottage Hospital in Santa Barbara, CA. She weighed 7 lbs 11 oz. Both mother and child are healthy and well, and settling in at home.
Harry and Meghan with a newborn Archie in May 2019
"Lili is named after her great-grandmother, Her Majesty The Queen, whose family nickname is Lilibet. Her middle name, Diana, was chosen to honor her beloved late grandmother, The Princess of Wales.
"This is the second child for the couple, who also have a two-year-old son named Archie Harrison Mountbatten-Windsor. The Duke and Duchess thank you for your warm wishes and prayers as they enjoy this special time as a family."
Make sure you never miss a ROYAL story! Sign up to our newsletter to get all of our celebrity, royal and lifestyle news delivered directly to your inbox.
Australia's number 1 hemp skincare brand's CBD cleanser and serum has a waitlist of over 27,000
14 of the prettiest jewellery presents to give for Galentine's Day
More about meghan markle
Prince Harry made this lifestyle change after moving to US with Meghan Markle
How Prince Harry and Meghan Markle financed their £11m property purchase – report
Prince Harry to be joined by Serena Williams at first public appearance of the year
What titles will be used for Prince Harry and Meghan's children?
Prince Charles reveals all about the royal baby
Heartbreaking story behind teddy bear given to Prince Harry and Meghan's baby revealed
There's now a new favourite name for Prince Harry and Meghan Markle's baby
The biggest hint proving Prince Harry and Meghan Markle are packed and ready to move to Windsor
London has big plans to celebrate Prince Harry and Meghan Markle's royal baby


Home Update Will the deal to preserve the Temple Mount "status quo" hold?
Will the deal to preserve the Temple Mount "status quo" hold?
Last weekend, US Secretary of State John Kerry met with Israeli, Palestinian and Jordanian leaders and came up with an understanding to preserve the religious status quo on Jerusalem's Temple Mount, as well as a Jordanian proposal, accepted by Israel, to place 24-hour surveillance cameras there to clarify any controversies about what has been occurring. The Israeli government for its part affirmed in a televised statement that it will "continue to enforce its longstanding policy: Muslims pray on the Temple Mount; non-Muslims visit the Temple Mount." The Palestinians, however, have rejected the idea of security cameras, calling them a "trap", reportedly angering the Jordanians.
This Update deals with the likelihood these understandings will resolve the long-standing violence incited by claims about the Temple Mount.
It leads with Israeli counter-terrorism expert Dr. Boaz Ganor, founder and director of the Institute for Counter-terrorism in Herzliya. He notes that the current wave of violence reflected long-standing claims about the Temple Mount made by Hamas and Islamic Jihad, but then given a tailwind in recent weeks when Palestinian Authority President Mahmoud Abbas and other Arab leaders, including Jordanian King Abdullah, endorsed these false claims. He says the wave of violence will only subside when Arab leaders, especially Abbas and Abdullah, change their messages to the Palestinian people – and he hopes the new agreement, the Israeli endorsement of it, and the security cameras will be a step in the right direction, especially if Abdullah clearly changes his discourse. For his expert analysis in full, CLICK HERE.
Next up is Palestinian Affairs reporter Khaled Abu Toameh, who explains why the Palestinian Authority is opposed to the proposal for security cameras. He says it opposes it both because it does not want the world to see what is really happening on the Mount – weapons smuggled in by Muslim worshippers but little provocation or prayer by Jewish visitors – and because the proposal will cement Jordan's role as custodian of the shrines on the Mount, which the PA wishes to supplant for itself. Abu Toameh argues that only strong condemnation by the US of the PA preference for continued incitement and escalation can hope to stem to current wave of violence. For his complete argument, CLICK HERE.
Finally, Israeli journalist and expert on Jerusalem Nadav Shragai places the agreement on the "status quo" into a longer historical context, explaining how the "status quo" developed. He goes into considerable detail about what happened in 1967 when Israel gained control of the Temple Mount along with the rest of the old city of Jerusalem, and also discusses how conditions there have had both continuity and some change since that date. He says the Kerry understandings say nothing new, but are in fact important because this is the first time Israel has publicly stated in so many words "that Jews shall not pray on the Temple Mount, and… only Muslims are allowed to do so" and the first time Jordan has acknowledged officially that Jews are allowed to visit. For the rest of Shragai's important essay, with many vital details, CLICK HERE.
Shmuel Rosner on the Kerry Temple Mount deal. He also had a good New York Times piece on the wider disagreement about the site and the strange, yet unavoidable, current status quo.
More on the security cameras controversy. Plus Israeli writer David Weinberg explains why he opposes the cameras.
David Horovitz of the Times of Israel on why, for the sake of his own people, Abbas needs to convince Palestinians that random stabbings are damaging their cause.
PA President Mahmoud Abbas seems to imply all of Israel is "occupied" land.
A profile of the terrorists committing the latest wave of attacks. Plus, an important article by Haviv Rettig Gur suggesting the latest terror wave is actually a protest against the Palestinian realisation that violent "resistance" is not going to achieve their goals.
Israeli PM Netanyahu writes a short op/ed thoroughly repudiating his previous apparent implication that the Mufti of Jerusalem inspired Hitler's final solution – while explaining the Mufti's actual role. A couple of good pieces on this controversy overall come from Melanie Phillips and Adam Levick.
Isi Leibler writes about Israel's complex and fraught relationship with Russia's President Putin, now operating out of next-door Syria. Meanwhile, Jonathan Spyer argues that Russian intervention in Syria is not actually a game changer.
Or Avi-Guy on the latest, bizarre Palestinian incitement – denying that there is a wave of stabbing attacks and insisting Israel is fabricating the whole thing to murder completely innocent Palestinians.
Sharyn Mittelman looks at who is actually trying to change the status quo on the Temple Mount.
Allon Lee discusses the legacy of Yitzhak Rabin, on the 20th Anniversary of his assassination, in a piece originally published in the Australian Jewish News. Also recommended on this topic are David Makovsky and Peter Berkowitz.
Netanyahu''s work with Abdullah and Abbas to reaffirm that there is no danger to the al-Aqsa Mosque could pay dividends.
Israel is in the throes of a nationalist and religion-driven wave of terror fueled by incitement falsely accusing it of desecrating the al-Aqsa Mosque and changing the status quo on Jerusalem's holy Temple Mount.
This kind of propaganda had been disseminated for some time by Palestinian terrorist organizations, especially Hamas and Islamic Jihad. But their inflammatory messages received a tailwind when senior Palestinian Authority (PA) officials and other Arab leaders joined the chorus, urging Israel not to "contaminate" the Temple Mount. This mainstream voice was the catalyst that drove inflamed young people into the streets, taking the law into their own hands and randomly wounding and killing Israelis.
The current wave of terror started as a succession of terrorist attacks carried out primarily by "lone wolves," using knives and axes or ramming vehicles into bystanders.
By any rational cost-benefit analysis, the initial wave seems to have failed. In most cases, the terrorist perpetrators were killed, wounded or captured, and the strategic damage they were able to inflict was limited.
As a result, the Palestinian terrorist organizations led by Hamas stepped up their incitement on the Web and published instructions on how the attackers could be more effective. The instructions are usually accompanied by video clips with recommendations on the kind of knives to use, where to stab the victims, from which angle to attack and so on. In some instances, the terrorist organizations suggest attacking in pairs or larger groups, seizing rifles from prospective military victims and opening fire in all directions.
This institutional incitement and training via the Web reflects only one aspect of the growing importance of the social media in the current wave of terror. The social networks, especially Facebook and Twitter, are used by many of the young terrorists as a platform to convey their thoughts, feelings and political messages before leaving for their attacks.
Some see this as a way of putting their suicidal actions in the desired context, stressing their supreme sacrifice and altruism.
Their words serve as a kind of spiritual last will and testament, guiding friends and family on how to act after their deaths. Without these messages, the terrorist acts they are about to commit might lose their meaning and quickly sink into oblivion in the maelstrom of conflict-related events.
Another aspect, no less important, is the glorification bestowed by the social media on the lone wolves in the wake of their terrorist acts. Spurred on by the terrorist organizations and their supporters, the networks promote escalation and encourage other potential terrorists to attack.
Each terrorist act becomes a model for emulation, sparking a vicious cycle that is fueling a terrorist epidemic.
With regard to the number of dead and wounded and the degree of damage they cause, the lone wolf attacks are limited compared to the use of explosive charges, shootings or suicide bombings. But they are more difficult to prevent because of the inherent lack of early warning intelligence. As opposed to attacks by terrorist organizations, in which there are usually a number of people in on the secret and involved in the initiating, planning, preparation and implementation, making it possible for security forces to glean intelligence through infiltration of the terrorist chain and foil attacks before they are carried out, "private initiative" terror begins and ends in the teeming brain of the individual terrorist, with nobody else in the know.
Nevertheless, the current wave of terror points to the fact that gathering open intelligence in the public domain, especially through monitoring of the social networks, could become an effective and practical substitute for traditional intelligence gathering. This could help address the intelligence lacunae in the case of lone wolf terror and, in some cases, provide an early warning of lone wolf terrorist plans.
Moreover, the incitement and instructional activities of the terrorist organizations and their supporters out on the Web could also prove to be an Achilles heel. This could also be exploited to thwart some of the terrorist attacks. In other words, while the social media networks play a significant role in the initiation, guidance and escalation of knife-wielding terror, they could also be key in thwarting or preempting terrorist acts.
Nevertheless, we need to be absolutely clear that the current wave of terror will only subside after the incitement abates and the messages from the Palestinian leadership to the Palestinian public change. And since it is totally unrealistic to expect the terrorist organizations to make any such changes, we should concentrate our efforts on PA and Arab leaders, especially Jordan's King Abdullah and PA President Mahmoud Abbas.
These two leaders adding their voices to the plaintive cries of the Palestinian terrorist organizations over the ostensible danger to the al-Aqsa Mosque and the alleged changes to the status quo on the Temple Mount was the proverbial straw that broke the camel's back. The change in their messages sparked the eruption of terrorist knifings because it signaled the mainstream's joining the extremist bandwagon.
The reaction of the street was not slow in coming. Therefore, conversely, those two leaders, especially Abdullah, could play an important role in halting the terror.
They could issue a public call to end the violence, as soon as they are convinced that there is no danger to al-Aqsa and that there is no intention of changing the status quo.
For that it is not enough for Prime Minister Benjamin Netanyahu to declare that Israel hasn't changed and does not intend to change the status quo. He has already done so several times.
As a confidence-building measure and gesture toward Abdullah, he should declare publicly and in detail what the principles of the status quo acceptable to the parties have been up until now, and solemnly pledge that they will remain exactly the same in future. His endorsement of US Secretary of State John Kerry's understanding of the status quo, backed up by closed-circuit television cameras monitoring every move on the mount and broadcasting directly to the king's palace in Amman, is a step in the right direction.
Now, if he so wishes, Abdullah could, as he has done in the past, quickly transform the Arab and Palestinian discourse and help restore order.
Prof. Boaz Ganor, the founder and executive director of the International Institute for Counter-Terrorism (ICT), is the dean and the Ronald S. Lauder chair in Counter-Terrorism at the Lauder School of Government, Diplomacy and Strategy at the Interdisciplinary Center (IDC) in Herzliya.
The Palestinian Authority (PA) will continue to work against having cameras in the hope of preventing the world from seeing what is really happening at the site and undermining Jordan's "custodianship" over Islamic holy sites in Jerusalem.
Another reason the Palestinians oppose King Abdullah's idea is their fear that cameras would expose that Palestinians have been smuggling stones, firebombs and pipe bombs into the Al-Aqsa Mosque for the past two years.
The cameras are also likely to refute the claim that Jews are "violently invading" Al-Aqsa Mosque and holding prayers on the Temple Mount. The cameras will show that Jews do not enter Al-Aqsa Mosque, as Palestinians have been claiming. Needless to say, no Jewish visitors have been caught trying to smuggle weapons into the holy site.
It remains to be seen how Secretary Kerry, who brokered the camera deal between Israel and Jordan, will react to the latest Palestinian Authority escalation of tensions. If Kerry fails to pressure the PA to stop its incitement and attempts to exclude the Jordanians from playing any positive role, the current wave of knife attacks against Jews will continue.
Why is the Palestinian Authority (PA) opposed to Jordan's proposal to install surveillance cameras at Jerusalem's Haram al-Sharif (Temple Mount), sacred to Christians, Muslims and Jews?
This is the question that many in Jordan have been asking in light of the recent agreement between Israel and Jordan that was reached under the auspices of US Secretary of State John Kerry. The idea was first raised by Jordan's King Abdullah in a bid to ease tensions at the holy site in the Old City of Jerusalem.
During the past two years, the Palestinian Authority and other parties, including Hamas and the Islamic Movement (Northern Branch) in Israel, have been waging a campaign of incitement against Jewish visits to the Haram al-Sharif. The campaign claimed that Jews were planning to destroy Al-Aqsa Mosque.
In an attempt to prevent Jews from entering the approximately 37-acre (150,000 m2) site, the Palestinian Authority and the Islamic Movement in Israel hired scores of Muslim men and women to harass the Jewish visitors and the police officers escorting them. The men are referred to as Murabitoun, while the women are called Murabitat (defenders or guardians of the faith).
Hundreds of Muslims on the Temple Mount, yelling and throwing objects, surround three Jewish men and their children, as about a dozen police officers try to hold back the angry crowd and evacuate the Jews.
The installation of surveillance cameras at the site will expose the aggressive behavior of the Murabitoun and Murabitat, and show the world who is really "desecrating" the Islamic holy sites and turning them into a base for assaulting and abusing Jewish visitors and policemen.
The cameras are also likely to refute the claim that Jews are "violently invading" Al-Aqsa Mosque and holding prayers at the Temple Mount. The Palestinian Authority, Hamas and the Islamic Movement have long been describing the Jewish visits as a "provocative and violent incursion" into Al-Aqsa Mosque. But now the cameras will show that Jews do not enter Al-Aqsa Mosque, as the Palestinians have been claiming.
Another reason the Palestinians are opposed to King Abdullah's idea is their fear that the cameras would expose that Palestinians have been smuggling stones, firebombs and pipe bombs into Al-Aqsa Mosque for the past two years. These are scenes at the PA, Hamas and the Islamic Movement do not want the world to see: they show who is really "contaminating" the Haram al-Sharif. Needless to say, no Jewish visitors have thus far been caught trying to smuggle such weapons into the holy site.
By rejecting the idea of setting up 24-hour surveillance cameras at the Haram al-Sharif, the Palestinian Authority has found itself on a course of collision with Jordan. Jordanian politicians and columnists have voiced outrage over the stance of the PA, and have dubbed it harmful to Palestinian and Islamic interests.
Sources in Ramallah explained this week that the PA's opposition to cameras should also be seen in the context of the power struggle between the Palestinians and Jordan over control of the Islamic holy sites in Jerusalem. The Jordanians have long been seeking to preserve their status as "custodians" of Al-Aqsa Mosque and other Islamic holy sites in Jerusalem. This is a status that some Palestinians and the Islamic Movement in Israel have been trying to change during the past two decades, especially after the signing of the Oslo Accords between the PLO and Israel in 1993.
The Palestinian Authority's opposition to the installation of cameras is seen as an attempt to undermine Jordan's status at the Islamic holy sites. Many Palestinians argue that they, and not the Jordanians, should be in charge of the Haram al-Sharif. Members of the PA are opposed to the cameras because it is a Jordanian proposal and reinforces Jordan's role at the holy site.
As such, the Palestinian Authority's position could be seen as an attempt to change the status quo at the holy site by driving the Jordanians out of the area. King Abdullah is obviously aware of the Palestinian attempt to prevent him from playing any role at the holy site; that is why he was quick to reach a deal with Israel about the installation of cameras. The PA, meanwhile, will continue to work against having cameras in the hope of preventing the world from seeing what is really happening at the site and undermining Jordan's "custodianship" over Islamic holy sites in Jerusalem.
It now remains to be seen how Secretary Kerry, who brokered the camera deal between Israel and Jordan, will react, if at all, to the latest Palestinian Authority attempt to continue escalating tensions at the holy site. If Kerry fails to pressure the PA to stop its incitement and repeated attempts to exclude the Jordanians from playing any positive role at the Haram al-Sharif, the current wave of knife attacks against Jews will continue.
Then-Defense Minister Moshe Dayan shaped the much talked about status quo on the Temple Mount in 1967 • Prime Minister Menachem Begin put his own touches on it • Since then, it has changed immensely, mainly in favor of Muslims who wave Hamas flags there.
U.S. Secretary of State John Kerry, who this week shepherded Israel and Jordan toward the first-ever formal written agreement on the status quo on the Temple Mount, doesn't know it, but the first seeds of the much talked about Temple Mount status quo were sown about 48 years ago on another hilltop, Mount Scopus.
Indeed, the decision to enter the Old City and liberate the Temple Mount and the Western Wall, which Dayan tried to delay, was forced upon him after ministers in the national unity government Menachem Begin and Yigal Allon took the matter directly to then-Prime Minister Levi Eshkol. The next day, the Israel Defense Forces liberated the Temple Mount, the Western Wall, and the Old City. General Motta Gur's excited announcement over the radio — "The Temple Mount is in our hands!" — has become part of the national pantheon, but the euphoria and excitement Gur gave voice to were in total contrast to reality and the status quo arrangements Dayan had made. Gur expressed excitement. Dayan, characteristically, showed pragmatism.
Acting on the advice of Meir Shamgar, who was then the chief IDF prosecutor, Dayan removed the Israeli flag that IDF paratroopers had planted on the Dome of the Rock. He later ordered Narkis to withdraw a paratroopers company that had been prepared to be stationed permanently on the northern part of the mount. Over the next few days, Dayan consulted a reserve officer named David Farhi, a lecturer on Islamic countries at the Hebrew University of Jerusalem who influenced Dayan's thinking greatly, about the future of the Temple Mount.
Dayan believed, and years later even wrote, that since the Temple Mount was for Muslims a "place of worship" whereas for Jews it was an "historical site of the past," the Muslims shouldn't be kept from treating it as such and their right to keep control over the place should be recognized.
Farhi had got his foot in the door. He backed the direction Dayan was already taking with Narkis. On June 17, 1967, Dayan invited himself to meet with the members of the Supreme Muslim Council and informed them of the steps that were to be taken: IDF soldiers would leave the Temple Mount; the management of the mosques and the compound plaza would be put into the hands of the Muslim Waqf, a branch of the Jordanian Ministry of Holy Places; Muslims would decide the rules for inside [the compound] but the limitations and prohibitions placed on Jews in the time of the British Mandate and the Jordanian rule would be removed; Jews would be allowed to visit the mount but not pray there; and Israel would be responsible for the security of the holy site and its surroundings.
A few weeks later, the Knesset passed a law applying Israeli legal jurisdiction over all parts of united Jerusalem, including the Old City and the Temple Mount.
Begin asked that the status quo Dayan put together be adjusted, and Israeli police officers were stationed at the Mughrabi Gate entrance. The move was intended to stop the custom of demanding entry fees from Israelis who wanted to visit the Temple Mount compound, while Muslims were exempt from paying. The government accepted Begin's view that the existing situation went against the principle of free access to the site. However, oversight of entrance via the other gates remained in the hands of the Waqf.
This is how the status quo, the subject of so much discussion today, came into being. The reasoning behind it, Dayan and others were to explain, sought to separate the national-territorial aspect of the Israeli-Arab conflict from its religious component. Dayan believed that he had the power to divide the two, but reality proved far more complicated. For both the Arabs and the Jews, separating nationality from religion was nearly impossible.
The bottom line was that the state of Israel, the state of the Jewish people, cast off its most holy place and left it in the hands of a competing religion, Islam, for which the Temple Mount was only the third-holiest site, after Mecca and Medina. It was a decision without precedent in relations between peoples and religions. The Muslims were surprised at Dayan's generosity. Sheikh Saad a-Din al-Alami, the mufti of Jerusalem in the days immediately after the Six-Day War, admitted as much in a conversation with him. With a few exceptions, the Jews responded to Dayan's status quo with indifference. Most of them were satisfied with the Western Wall.
Only a few former members of the Stern Gang and members of the El Har Hashem Society, an advocacy group for Jewish rights on the Temple Mount, mainly then-IDF Chief Rabbi Shlomo Goren, tried to change Dayan's decision. Goren threw up his hands after a few weeks; the rest repeatedly petitioned the High Court of Justice, which rejected each petition in turn. The justices ruled that the Jews' right to pray on the mount was superseded by the concern over public disorder, disputes, and religious friction, and accepted the government's position.
The third factor, in addition to the government and the High Court, that served to ingrain the status quo was the rabbis. In those days, nearly all the rabbis from all streams of Judaism — ultra-Orthodox and national religious — said that Jews were forbidden from entering the Temple Mount regardless of whether they did so to visit or to pray. The explanation was based on Jewish law and related to the fear that Jews would enter the place where the Temple and the Holiest of Holies once stood without having ritually cleansed themselves. Even rabbis who thought that the additions that Herod made to the Temple Mount could be identified and defined and therefore permissible to visit, as they were less holy, did not change their minds. They were afraid that the public would not be able to tell the difference between the areas that they were allowed to visit and those they were not.
Begin suggested to his fellow ministers that they not make any formal decisions forbidding Jews from praying on the mount. They listened. Then-Postal Services Minister Yisrael Yeshayahu asked in a ministerial meeting on holy sites: "Who are we to stop Jews from praying on the Temple Mount?" At the end of the meeting, the decision was worded as Begin had wanted — in positive rather than negative language — and it was decided that when Jews arrived at the Temple Mount to pray, they would be directed to the Western Wall.
Begin and Dayan addressed the future status quo on the mount as well. Dayan was willing to serve as foreign minister in Begin's first government on the condition that the government adhere to his status quo and uphold the prohibition against Jews praying on the mount. Begin agreed. When he was approached by El Har Hashem activists, including Rabbi Yoel Ben Nun, and asked to allow Jewish prayer on the Temple Mount, Begin empathized with them, but sent them to the chief rabbis, who opposed Jews visiting the mount at all.
Nearly 50 years have passed since Dayan established the status quo on the mount, and not much remains of it. The Muslims continue to increase their religious and administrative autonomy on the mount, and the prohibition against Jewish prayer is still in place and going strong. Other than these two points, the mount has undergone many changes, and the status quo and about 10 of its components have changed — mostly to the benefit of the Muslim side. The changes were and are the result of profound changes on both on the Muslim and the Jewish sides.
The most blatant change is to the Muslim prayer areas, which have expanded significantly. In 1967, only Al-Aqsa mosque served as a place of prayer, but today the Dome of the Rock, which wasn't originally a mosque, is used for women's prayer on Fridays. Two other underground mosques have been built on the Temple Mount: the al-Marwani mosque in King Solomon's Stables, and the underground "first Al-Aqsa mosque" below the above-ground one. In contrast to the past, Muslims today apply the term "Al-Aqsa" and its holy connotations not only to the mosque itself, but to all parts of the compound, including its streets and walls — even the Western Wall.
Meanwhile, Muslim politicians and religious figures have adopted the "Al-Aqsa is in danger" narrative and are wielding it like an axe. The made-up story, which is accepted as the literal truth by many in the Muslim world, has sparked more than one cycle of extreme violence, terrorist attacks, and murders of Jews.
In addition, visits by Jews to the mount, which in the past were subject to only a few restrictions, have been reduced to a large degree, and often made impossible. Today, unlike in the past, it is forbidden to visit the mosques; it is forbidden to visit the mount on the Sabbath, and the police limit the tour route and the length of the visits. Two gates once used to admit visitors are now closed to non-Muslims.
The flipside is that the number of Jews who want to visit the Temple Mount, as they are allowed to do under the status quo agreement, has grown considerably. The process began about 20 years ago when many religious Zionist rabbis changed their stance and decided to permit, even encourage, Jews to visit the Temple Mount. The Muslims saw this change as a threat to their hegemony on the Temple Mount, but the Israeli government's unequivocal declarations that it has no intention of dividing the mount or allowing Jews to pray there were and are mistrusted.
Muslim suspicions were raised by a series of attempts by Jewish zealots in the 1970s and 1980s to attack the mosques and even blow them up — Yoel Lerner's Gal underground movement, the Lifta gang, the Jewish Underground, and an Australian Christian tourist named Denis Michael Rohan, who set fire to Al-Aqsa mosque in 1969. All of these incidents, as well as a few other lesser-known cases, caused the Muslims to point a finger at the Israeli government and claim that it was part of or even behind the attempts to damage the mosques.
The accusation was baseless. Israel has repeatedly thwarted potential attacks on the mosques by Jewish extremists and arrested the masterminds of such deranged plans. But blaming Israel and Zionism for the attempts to bring down the mosques became an Arab Muslim propaganda tool.
At the same time, Israel was blocking attempts by Palestinian terrorist cells, mainly Hamas, to launch weapons from the Temple Mount. Cells that used the mount as a meeting place to plan terrorist attack were also arrested. One of these was the cell that planned to execute an attack on the Mount Scopus campus of Hebrew University and even shoot down former U.S. President George W. Bush's plane.
Another major change involves Jordan. In 1967, the Hashemite Kingdom was nothing more than the employer of the Waqf, but today it has become Israel's partner in managing the Temple Mount, as evidenced by Jordan's renovation the compound's eastern and southern walls when they started cracking. Jordan vetoed the idea of replacing the temporary Mughrabi Bridge that is still an eyesore of the Western Wall plaza. Jordan demanded that Israel limit the number of Jews who visit the Temple Mount, and Israel agreed. The Knesset even postponed a debate on the Temple Mount issue at Jordan's request.
There are two reasons for Jordan's growing influence. First is Israel's desire to weaken the Islamic Movement's stature on the Temple Mount. The Islamic Movement has consistently taken care to stir things up, and stood behind the construction of the two new mosques. Second, Israel wants to strengthen the Jordanian regime by preserving its status as guardian of Islamic holy sites in Jerusalem. Israeli policy is also informed by a host of security and economic interests it shares with the Jordanians.
However, Jordan's growing influence on the mount stems not only from these interests but also from two written agreements. The first was the peace contract between Jordan and Israel, signed in July 1994. The agreement says, among other things, that "Israel honors the special existing role of the Hashemite Kingdom of Jordan in the Muslim holy sites in Jerusalem," and that when negotiations for a permanent deal take place, Israel will give a "high priority" to Jordan's historic role in those sites. In effect, Israel has already skipped ahead and upgraded Jordan's status on the Temple Mount.
The second agreement was signed in January 2013 between King Abdullah and Palestinian Authority Prime Minister Mahmoud Abbas. This agreement stipulates that Jordan, as the "guardian of Islamic holy places in Jerusalem," will represent Muslim interests in the city in general and the interests of the PA in particular regarding the Temple Mount, until a Palestinian state whose capital is Jerusalem is established. The deal also features an apparatus for coordination between Jordan and the PA about the Temple Mount, but even though it was signed, there is tension between the two entities.
Other notable changes to the status quo: A total prohibition against flying flags on the mount, which used to be strictly enforced, has melted away. Palestinian and PA flags, Hamas flag, and even Islamic State flags fly on the mount, whereas Israeli flags are hustled away immediately. Laws pertaining to antiquities, planning, and construction, which were once relatively seriously enforced, have become almost virtual. Israel's state comptrollers have criticized the phenomenon, and it was also documented in the book "Under the Surface" by none other than former Israel Antiquities Authority Director General Shuka Dorfmann, who passed away about a year ago.
Seen in that light, the understandings reached by Kerry comprise a far-reaching innovation, for better or worse. Dayan's status quo was verbal and vague; it allowed Jews to continue to believe that they had not given up the Temple Mount, since it wasn't a long-term agreement. The rules set by Dayan allowed the Muslims to reject claims about so-called cooperation with Israel and argue that it was a deal that had been forced on them.
The great advantage of the status quo was also its great disadvantage. The Jews would never have formally agreed to forgo prayer on the mount. The Muslims would never formally agree to give up the Western Wall, which they call "al-Buraq." From that perspective, the Kerry understandings are an historic precedent.
There is nothing significantly new in the understandings, but nevertheless, this is the first time that Israel has officially declared to the world that Jews shall not pray on the Temple Mount, and that only Muslims are allowed to do so. On the other hand, it's also the first time that either the U.S. or Jordan has put out an official announcement stating that Jews may visit the mount, if not pray there.
In recent years the prohibition against Jewish prayer on the mount has been stringently enforced, whereas permission to visit has been only partially guaranteed, and in practice it has become difficult or impossible for Jews to visit the mount. This will be a test of the Kerry understandings on the Temple Mount.
The Temple Mount activist groups are saying that Prime Minister Benjamin Netanyahu brought up the prohibition against Jewish prayer on the mount out of concern for law and order and note that the Kerry declaration is devoid of any mention of the very right to pray, even if it is not exercised. Sources close to the prime minister have explained that Israel is not giving up that right, but for now is opting not to exercise it. They also pointed out that the demand that the Waqf decide who and how many Jews would enter the compound had been rejected, and clarified that for now MKs and ministers would still be banned from visiting the site. Security cameras will be installed in an orderly manner in coordination with Jordan, not haphazardly the way the Waqf tried to do this week.
Either way, it's clear that the Kerry understandings that Netanyahu and Abdullah approved have effectively killed the campaign to change the status quo and allow Jews to exercise their right to pray there. The campaign to allow Jewish prayer has been led for the past two years by public figures such as Agriculture Minister Uri Ariel, Deputy Defense Minister Eli Ben-Dahan (acting in his former capacity as Deputy Religious Services Minister), Deputy Foreign Minister Tzipi Hotovely, and Culture and Sport Minister Miri Regev when she was chair of the Knesset House Committee. But the understandings might provide an opening for the Temple Mount activists to turn to the courts for assistance in forcing the government to allow freer visits.
Previous articleWho is really challenging the "status quo" in Jerusalem?


Download our 2019 Ecology and Protected Species Survey Calendar to help you plan your development and avoid the costly delays associated with missing a survey window.
The Eight Associates Ecology and Protected Species Calendar 2019 is a useful project management tool, highlighting both the optimal and sub-optimal timings for each of the UK's key protected species. The information means you can plan ahead, taking into account the limited survey windows.
"Eight Associates is a lovely company to deal with and I recommend with enthusiasm anyone who would consider them. They are diligent and professional, usually actioning before their deadlines – great team players."


text:
Q: How to set window position of Firefox browser through Selenium using FirefoxProfile or FirefoxOptions I need to change the position of the Firefox window by creating the driver with:
driver = webdriver.Firefox()

I know it's possible to change the window position after the driver was created:
driver.set_window_position()

I can't find out how to do it using Firefox profile or options:
profile = webdriver.FirefoxProfile()
profile.set_preference("some_preference", my_preference)

or
options = Options()
options.some_optins = my_options

and finally:
driver = Webdriver.Firefox(firefox_profile=profile, options=options)

A: You saw it right.
set_window_position()
set_window_position() sets the x,y position of the current window.

*

*Implementation:
  set_window_position(x, y, windowHandle='current')
  Sets the x,y position of the current window. (window.moveTo)

  Arguments :
      x: the x-coordinate in pixels to set the window position
      y: the y-coordinate in pixels to set the window position
  Usage :
      driver.set_window_position(0,0)

*Definition:
  def set_window_position(self, x, y, windowHandle='current'):
      if self.w3c:
          if windowHandle != 'current':
          warnings.warn("Only 'current' window is supported for W3C compatibile browsers.")
          return self.set_window_rect(x=int(x), y=int(y))
      else:
          self.execute(Command.SET_WINDOW_POSITION,
               {
                   'x': int(x),
                   'y': int(y),
                   'windowHandle': windowHandle
               })

So to summarize, window_position is coupled to the window handle pertaining to the browser and can be handled by webdriver instance only.
This functionality can't be handled either through:

*

*firefox_profile -> set_preference(key, value): Sets the preference that we want in the profile.

*firefox.options -> set_preference(name, value): Sets a preference.

redpajama_set_name: RedPajamaStackExchange


Can Haitian Soccer Regain its Rightful Place in World Competition?: Essay by Noe Dorestant. Site also includes reports and photos from recent tournaments in which Haiti has competed.
Sakapfet.com: Haitian Soccer: The latest information on the soccer league, international scores and stories.


Once again, French Day ("La journée française") was a big sucess! The Marseillaise, France's national anthem, was sung by all the Year 8 pupils and almost 20 staff! 40 pupils and 4 staff competed in a French Spelling Bee competition where Julians came first. Crêpes were made and eaten by Years 7 & 8 pupils. Snails, cheese, French bread and a whole French menu was served in a beautifully decorated dining hall and quizzes were played by all students across the school. The day was enjoyed by all. Thank you all for making such great efforts with your costumes!
Please see photos and a video of La Marseillaise here.


There aren't enough food, service, value or atmosphere ratings for Daily pusdienu restorans, Latvia yet. Be one of the first to write a review!
It is a factory canteen renovated, quite nicely. Do not expect posh restaurant food. If you want to try what an average local person eats for lunch then this the right place. We ordered several meals for the family, all of them was great.
Get quick answers from Daily pusdienu restorans staff and past visitors.


text:
Charleston Conference Panel Discusses Getting Back To Business Post-COVID
by Lisa Peet
Nov 06, 2020 | Filed in News
Because of the COVID-19 pandemic, this year the Charleston Conference took place virtually from November 2–6. Appropriately, many of the sessions focused on the changes in and around academic libraries wrought by the pandemic. A panel titled "Getting Back to Business," sponsored by the Society for Scholarly Publishing's Scholarly Kitchen blog, offered opinions from a range of scholarly publishing stakeholders, including representatives from a university library, research society, nonprofit, and publishing consultant.
Because of the COVID-19 pandemic, this year the Charleston Conference took place virtually from November 2–6. (Video recordings of the sessions will be available on their pages in Pathable for one year after the conference ends; content will then move to the conference website and be available OA from there.) Appropriately, many of the sessions focused on the changes in and around academic libraries wrought by the pandemic. A panel titled "Getting Back to Business," sponsored by the Society for Scholarly Publishing's Scholarly Kitchen blog, offered opinions from a range of scholarly publishing stakeholders, including representatives from a university library, research society, nonprofit, and publishing consultant.
In conversation with Rick Anderson, university librarian at Brigham Young University (BYU), UT; Robert Harington, associate executive director of publishing at the American Mathematical Society (AMS); Alice Meadows, director of community engagement at the National Information Standards Organization (NISO); and Joseph Esposito, senior partner at academic publishing and information services consulting firm Clarke & Esposito weighed in on how organizations can get back to their primary work even as the pandemic continues to disrupt customary processes.
Moderator Angela Cochran, VP/publisher at the American Society of Clinical Oncology, led off with an overview of the current scenario: university funding is uncertain, academic library budgets have been slashed in some areas, and many societies that depend on annual meetings and publication revenue are experiencing a double hit—at the same time that scholarly publishing submissions continue to increase by double-digit percentages. How can scholarly communications get back to core functions, she asked, and what might they want to keep from this time?
NONPROFITS CONTINUE THEIR SUPPORT
Cochran began with a question for Meadows: How can organizations in the critical not-for-profit research infrastructure, such as NISO, ensure continued funding and sustainability?
There is definitely cause to be concerned about revenues over the next few years, Meadows said. Although NISO has been insulated from any funding crunch thus far because it runs on a calendar year basis, and had collected expected revenues before the pandemic hit, the coming years will be hard on everyone—universities, publishers, vendors, organizations like NISO, and the research infrastructure as a whole. Many membership-funded organizations that have been sustainable until now will have to reexamine their approach.
Those that have relied on funders may be in a better position right now, as the stock market has been fairly resilient so far. But organizations that have supported elements of the research infrastructure should think twice about discontinuing support if a crunch does come, she added, as they need those tools and services to do the work they do creating access to research—"and to do it efficiently and well and with a minimum of burden."
PUBLISHERS LOOK TO INNOVATION
Cochran asked Esposito whether he was seeing opportunities in the new landscape for scholarly publishers. Yes, he said, there are always opportunities in times of disruption—and those opportunities increase rapidly as competing concerns often don't respond quickly enough. Those opportunities, however, are not going to be seen within the community as a whole, but at the level of individual organizations. "The situation's highly competitive, so you can't have everybody winning."
Some areas are less ripe for growth, Esposito noted. Publishers historically in the business of selling content to libraries will find that a hard market going forward. Established players in that market will probably do better, meaning that the big will get bigger. The real opportunity now is to come up with new content forms—he suggested newsletter publishing, which already has a number of robust platforms such as Substack and Mailchimp that make publishing increasingly feasible from a technical standpoint. Newsletters serve as a discovery tool, rather than publishing primary research, and can help cut through the noise of the sheer quantity of material in scholarly publishing today—noise, he noted, that's increased by the addition of material generated by open access (OA) publishing.
Esposito also predicted that more material will be machine-ingested, and that publishers that see an opportunity in creating machine-readable content will have an advantage. This is not science fiction, he added—"This is the opportunity next door."
SCHOLARLY SOCIETIES WATCHING THE BIG PICTURE
Membership-funded scholarly societies in particular are going to have a rough time in the next 12 to 24 months, said Cochran, as in-person conference revenue and publication sales decline. "How can societies position publishing operations?" she asked Harington.
Like the nonprofits Meadows mentioned, said Harington, AMS saw most of its revenues in the early part of 2020—but it, and other societies, are facing an uncertain future. AMS has been looking carefully at its workflows; everything is done in house, so that often involves finding efficiencies, he explained. For instance, AMS is currently only publishing in softcover for the time being, and doing its best to take advantage of remote work to adopt a paperless workflow. It has also offered staff voluntary separation packages with the understanding that the society's budget will probably take a major hit. Other questions remain, however: will the society publish more for online instruction going forward? What will be the end result of virtual-only conferences?
Unlike the competition among publishing concerns that Esposito spoke of, however, Harington feels that scholarly societies make decisions based more on the community as a whole than the individual organization. Article submissions are up, he confirmed, but women are suffering disproportionately in their output, likely due to their taking on multiple family roles as well as professional duties, "and we have to understand that these kinds of issues are important." Many societies are prioritizing equity, diversity, and inclusion even during challenging working conditions, he added, but more work needs to be done.
A RANGE OF ENROLLMENT IMPACTS
It appears that campuses won't be returning to normal at all this school year, and we're looking at least another semester like the last one, Cochran said. What will this mean for university libraries?
One of the surprising things that this fall semester revealed, Anderson said, was how limited an impact COVID generally had on university enrollment in the United States—an estimated reduction of about two percent across the country. But that number hides important subgroups, he added. Community colleges have been hit far harder than four-year institutions, and well-to-do white students have been more inclined to enroll in the face of uncertain instruction models than have poorer students, or students of color. The number of international students has also dropped, which in turn disproportionately affects institutional revenue because unlike domestic students, they don't qualify for most financial aid and therefore pay the full tuition and associated costs. "The impact of one fewer international student versus the impact of one fewer in-state student is very, very different."
Some universities are, in fact, struggling, Anderson said, and it will be interesting to see what students decide after going home for their winter break. Last spring, predictions had been that many would decide to take a gap year or enter the workforce, with enrollment dropping 10 to 20 percent. That didn't happen, he noted, and enrollments next semester may be similarly stable.
Fall 2021 may be a different matter, however, and may vary widely among institutions, as campus policies vary greatly and may be greater drivers of enrollment than COVID itself, Anderson noted. Library policies and experiences also vary among schools, with some stacks closed and books available only through retrieval by librarians, and others fully or partially open—Anderson contrasted the University of Utah, where he worked for 13 years, and where students are not allowed into the stacks on their own, and BYU, where the library never closed and the stacks remain open.
IMAGINING THE FUTURE
If we all keep our eye on the collective shared goal of supporting researchers, said Meadows, people will, hopefully, put their money where they can to support research. NISO is about bringing stakeholders to the table and finding solutions, she added, and that hasn't changed. Work is taking longer, with people having other pressures on their time, but there has been no shift in terms of a desire to collaborate—it's actually more important at times like this, when you don't want people staying in their own siloes.
AMS will be holding webinars for its community—authors, editors, librarians—on how to access and navigate the online environment. Some of these will be proprietary, others offered for free. "We're trying to embrace a need through a digital opportunity," said Harington. "Whether or not that's going to change the way we publish our books and journals, I don't know."
Esposito sees more consolidation and fewer players in the academic publishing network, with large companies such as Elsevier coming out on top. Wiley and Springer Nature are both pursuing similar strategies, he noted—high-volume OA publishing, and a move away from prestige journals—and he wondered if there would be room for more than one winner in that scenario.
When it comes to the projected cancelation of big deal journal packages by libraries, Esposito noted, those had been welcomed in the library community because of the efficiencies they offered, and those concerns aren't going to go away. When people begin to examine breaking up aggregations, they may see that they're paying more in content value plus the administrative costs of managing so many subscriptions.
As with library policies on different campuses, said Anderson, future planning will vary widely. BYU libraries have been instructed not to ask for more money for next year, but salaries are expected to increase at a normal rate; in other libraries, budget cut scenarios include progressive salary cuts. One of the greatest economic indicators may involve athletics, he noted. "When you can't sell 60,000 tickets to a football game every week throughout the fall semester—that's going to have an impact on your university's revenue in the coming year. I don't know to what degree we can expect that impact to trickle down to academic programs, but it can't possibly help." (Meadows pointed out that this was a problem unique to the United States.)
None of the panelists was sure what would happen around the current urgency to flip to OA models. Anderson pointed out "tremendous benefits and tremendous risks"—that pushing scientific data and results out too quickly could result in bad information living on prepublication servers. It's also hard to grasp the implications of wholesale change in the middle of a crisis, added Harington. And those decisions are not necessarily about money, said Esposito, but rather involve multiple decisions; a flip to OA will change the economic system that undergirds it at the same time.
The reality about all of their conjectures, Anderson added, is that "we laugh about how we keep saying 'unprecedented, unprecedented, unprecedented,' but no one has a good template for predicting what's going to happen."
Get Print. Get Digital. Get Both!
Lisa Peet
lpeet@mediasourceinc.com
Lisa Peet is News Editor for Library Journal.
Charleston Conference
Add Comment :-
UUID :
Be the first reader to comment.
Be respectful, and do not attack the author, people mentioned in the article, or other commenters. Take on the idea, not the messenger.
Don't use obscene, profane, or vulgar language.
Stay on point. Comments that stray from the topic at hand may be deleted.
Comments may be republished in print, online, or other forms of media.
If you see something objectionable, please let us know. Once a comment has been flagged, a staff member will investigate.
Comment Parent Id :
Fill out the form or Login / Register to comment:
(All fields required)
First Name should not be empty !!!
Last Name should not be empty !!!
email should not be empty !!!
Comment should not be empty !!!
Please check the reCaptcha
Something went wrong with Captcha Verificatioin. Please refresh and try again!
CLICK HERE TO COMMENT TO THIS ARTICLE
CONTINUE READING?
Non - Subscribers
2018 School Spending Survey Report
Don DeLillo's 'White Noise' Headed to the Screen, Noah Baumbach to Direct | Book Pulse
by Mary Bakija
Nigerian Activist, Author, Tsitsi Dangarembga, Receives 2021 PEN Award for Freedom of Expression | Book Pulse
Breathing Room: HVAC Solutions and Resources for COVID Risk Mitigation
by Lauren Stara and Andrea Bunker
Connecting the Last Mile: Libraries Find Innovative Solutions for Broadband Access
by Matt Enis
Sally Rooney's 'Beautiful World, Where Are You' Coming This Fall | Book Pulse
'The Paris Library' Tops February Indie Next List | Book Pulse
Run Your Week: Big Books, Sure Bets & Titles Making News | July 17 2018
Neal Wyatt, Jul 17, 2018
The Other Woman by Daniel Silva leads holds this week. Former President Obama has more summer reading. Downton Abbey is heading to the movies.
Materials on Hand | Materials Handling
Matt Enis, May 16, 2018
Automated systems are helping libraries move staff to patron-facing work, while manufacturers innovate new design features.
LGBTQ Collection Donated to Vancouver Archives
Lisa Peet, Jun 21, 2018
Longtime archivist, former head of the Vancouver Public Library's history division, and queer rights activist Ron Dutton donated more than 750,000 items documenting the British Columbia LGBTQ community to the City of Vancouver Archives in March.
You did not sign in correctly or your account is temporarily disabled
REGISTER FREE to keep reading
If you are already a member, please Log In
Select Institution
Not seeing your institution name? Select Other.
Business Category * Select Option Academic Library: 2 year/Community College Academic Library: 4 year/University/College Academic Library: Post Graduate Level Book Manufacturer/Bookseller Consumer Educator/Board of Educators Government Library Library Science Studies/Faculty Literary/Rights Agent Other Library Print/Film/BCST Media Public Library/System Publisher/Publishing School District School Library: Elementary School Library: High School School Library: Middle School/Junior High School Library: Other (K-8, K-12, etc.) Service Provider Special Library: Business/Association/etc. Wholesaler/Distributor/Supplier Writing, Editing, or Illustration
Job Function Select Option Adult/Public Library Services Librarian Assistant Library Director Cataloging Librarian Children's Services Librarian Circulation/Access Services Librarian Collection Development/Acquisition Librarian Librarian: Electronic Resources Librarian: Emerging Technologies Head Librarian/Department Head Library Director Library/Branch Manager LIS Student Outreach Librarian Paralibrarian/Paraprofessional Librarian: Readers Advisory Reference/Information Services Librarian Reviewer School Library Media Specialist Teacher Librarian Technical Services/Systems Librarian YA/Teen Librarian Educator User Experience Other
Passwords must include at least 8 characters.
Your password must include at least three of these elements: lower case letters, upper case letters, numbers, or special characters.
Confirm Password Show
I have read and agree to the Terms of Use You should agree the terms and services
The email you entered already exists. Please reset your password to gain access to your account.
Create a Password to complete your registration. Get access to:
Uncommon insight and timely information
Thousands of book reviews
Blogs, expert opinion, and thousands of articles
New Password Show
Passwords must include at least 8 characters. Please try your entry again.
Your password must include at least three of these elements: lower case letters, upper case letters, numbers, or special characters. Please try your entry again.
To have the latest stories delivered to your inbox, select as many free newsletters as you like below.
No thanks. Return to article


text:
Q: How to detect when all downloads finished with Selenium Webdriver and Firefox I have an instance of FirefoxDriver that performs several operations and starts downloading several files. Those files may have various sizes and when it finishes the loop and shuts down it interrupts unfinished downloads. Is there a way I can check whether there are pending downloads and then wait until they are all complete before closing Firefox Window? This is for VB.NET but I can understand C# solutions too. Thanks!

A: Firefox and Chrome when downloads a file creates and intermediate file extensions. For chrome it's crdownload, I don't remember what it's for Firefox. However, you can download a large file and check. Once download is completed this intermediate file is renamed to actual file name.
All you need to do it write a code which check if any file with crdownload extension is exist or not. if not, your download is completed.

A: With Firefox, it's possible to inject some JavaScript at a browser level, which means that you can do almost anything. But the command to set the context is not implemented in the .Net client, so you'll have to extend the class.
This example waits for at least one download and for all the downloads to be successful and then returns the full path of each file:
var options = new FirefoxOptions();
options.SetPreference("browser.download.dir", "C:\\temp");
options.SetPreference("pdfjs.disabled", true);
options.SetPreference("pdfjs.enabledCache.state", false);
options.SetPreference("browser.download.folderList", 2);
options.SetPreference("browser.download.useDownloadDir", true);
options.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");

var driver = new FirefoxDriverEx(options);
driver.Url = "https://support.mozilla.org/en-US/kb/use-adobe-reader-view-pdf-files-firefox";
driver.FindElementByCssSelector("[href*='mozilla_privacypolicy.pdf']").Click();

string[] files = driver.GetDownloads(1, TimeSpan.FromSeconds(120));

class FirefoxDriverEx : FirefoxDriver {

    public FirefoxDriverEx(FirefoxOptions options) : base(options) {
        var commands = CommandExecutor.CommandInfoRepository;
        commands.TryAddCommand("SetContext", new CommandInfo("POST", "/session/{sessionId}/moz/context"));
    }

    public string[] GetDownloads(int minimum, TimeSpan timeout) {
        const string JS_GET_DOWNLOADS = @"
          var minimum = arguments[0], callback = arguments[1];
          Components.utils.import('resource://gre/modules/Downloads.jsm', {}).Downloads
            .getList(Downloads.ALL).then(list => list.getAll())
            .then(items => items.length >= minimum && items.every(e => e.succeeded) ? items.map(e => e.target.path) : null)
            .then(callback);";

        try {
            SetContext("chrome");

            for (var endtime = DateTime.UtcNow + timeout; ; Thread.Sleep(1000)) {
                Object result = ExecuteAsyncScript(JS_GET_DOWNLOADS, minimum);
                if (result != null)
                    return ((IEnumerable<object>)result).Cast<string>().ToArray();
                if (DateTime.UtcNow > endtime)
                    throw new TimeoutException("No download available or one is not complete.");
            }
        } finally {
            SetContext("content");
        }
    }

    public void SetContext(string context) {
        var parameters = new Dictionary<string, object> { { "context", context } };
        CommandExecutor.Execute(new Command(this.SessionId, "SetContext", parameters));
    }
}


The photocopying of copyright material is restricted under the Copyright, Designs and Patents Act 1988 (and later amendments) and EU legislation. Users must satisfy themselves that any copying they undertake is legal. Guidelines on copying (incl. the MPA Code of Fair Practice for printed music) are displayed in the library. Useful links can be found on the IAML (UK&Irl) copyright pages.