text:
/*
 Ridiculously Responsive Social Sharing Buttons
 Team: @dbox, @joshuatuscan
 Site: http://www.kurtnoble.com/labs/rrssb
 Twitter: @therealkni

        ___           ___
       /__/|         /__/\        ___
      |  |:|         \  \:\      /  /\
      |  |:|          \  \:\    /  /:/
    __|  |:|      _____\__\:\  /__/::\
   /__/\_|:|____ /__/::::::::\ \__\/\:\__
   \  \:\/:::::/ \  \:\~~\~~\/    \  \:\/\
    \  \::/~~~~   \  \:\  ~~~      \__\::/
     \  \:\        \  \:\          /__/:/
      \  \:\        \  \:\         \__\/
       \__\/         \__\/
*/

;(function(window, jQuery, undefined) {
	'use strict';

	/*
	 * Public Function
	 */

	 jQuery.fn.rrssb = function( options ) {

 		// Settings that $.rrssb() will accept.
        var settings = jQuery.extend({
            description: undefined,
            emailAddress: undefined,
            emailBody: undefined,
            emailSubject: undefined,
            image: undefined,
            title: undefined,
            url: undefined
        }, options );

 		// Return the encoded strings if the settings have been changed.
        for (var key in settings) {
        	if (settings.hasOwnProperty(key) && settings[key] !== undefined) {
        		settings[key] = encodeString(settings[key]);
        	}
        };

        if (settings.url !== undefined) {
        	jQuery(this).find('.rrssb-facebook a').attr('href', 'https://www.facebook.com/sharer/sharer.php?u=' + settings.url);
        	jQuery(this).find('.rrssb-tumblr a').attr('href', 'http://tumblr.com/share/link?url=' + settings.url + (settings.title !== undefined ? '&name=' + settings.title : '')  + (settings.description !== undefined ? '&description=' + settings.description : ''));
        	jQuery(this).find('.rrssb-linkedin a').attr('href', 'http://www.linkedin.com/shareArticle?mini=true&url=' + settings.url + (settings.title !== undefined ? '&title=' + settings.title : '') + (settings.description !== undefined ? '&summary=' + settings.description : ''));
        	jQuery(this).find('.rrssb-twitter a').attr('href', 'http://twitter.com/home?status=' + (settings.description !== undefined ? settings.description : '') + '%20' + settings.url);
        	jQuery(this).find('.rrssb-reddit a').attr('href', 'http://www.reddit.com/submit?url=' + settings.url);
        	jQuery(this).find('.rrssb-googleplus a').attr('href', 'https://plus.google.com/share?url=' + (settings.description !== undefined ? settings.description : '') + '%20' + settings.url);
        	jQuery(this).find('.rrssb-pinterest a').attr('href', 'http://pinterest.com/pin/create/button/?url=' + settings.url + ((settings.image !== undefined) ? '&media=' + settings.image : '') + (settings.description !== undefined ? '&description=' + settings.description : ''));
        	jQuery(this).find('.rrssb-pocket a').attr('href', 'https://getpocket.com/save?url=' + settings.url);
        	jQuery(this).find('.rrssb-github a').attr('href', settings.url);
        }

        if (settings.emailAddress !== undefined) {
        	jQuery(this).find('.rrssb-email a').attr('href', 'mailto:' + settings.emailAddress + '?' + (settings.emailSubject !== undefined ? 'subject=' + settings.emailSubject : '') + (settings.emailBody !== undefined ? '&body=' + settings.emailBody : ''));
        }

    };

	/*
	 * Utility functions
	 */

	var encodeString = function(string) {
		// Recursively decode string first to ensure we aren't double encoding.
		if (string !== undefined && string !== null) {
			if (string.match(/%[0-9a-f]{2}/i) !== null) {
				string = decodeURIComponent(string);
				encodeString(string);
			} else {
				return encodeURIComponent(string);
			}
		}
	};

	var setPercentBtns = function() {
		// loop through each instance of buttons
		jQuery('.rrssb-buttons').each(function(index) {
			var self = jQuery(this);
			var numOfButtons = jQuery('li:visible', self).length;
			var initBtnWidth = 100 / numOfButtons;

			// set initial width of buttons
			jQuery('li', self).css('width', initBtnWidth + '%').attr('data-initwidth',initBtnWidth);
		});
	};

	var makeExtremityBtns = function() {
		// loop through each instance of buttons
		jQuery('.rrssb-buttons').each(function(index) {
			var self = jQuery(this);
			//get button width
			var containerWidth = parseFloat(jQuery(self).width());
			var buttonWidth = jQuery('li', self).not('.small').first().width();
			var smallBtnCount = jQuery('li.small', self).length;

			// enlarge buttons if they get wide enough
			if (buttonWidth > 170 && smallBtnCount < 1) {
				jQuery(self).addClass('large-format');
			} else {
				jQuery(self).removeClass('large-format');
			}

			if (containerWidth < 200) {
				jQuery(self).removeClass('small-format').addClass('tiny-format');
			} else {
				jQuery(self).removeClass('tiny-format');
			}
		});
	};

	var backUpFromSmall = function() {
		// loop through each instance of buttons
		jQuery('.rrssb-buttons').each(function(index) {
			var self = jQuery(this);
			var totalBtnSze = 0, totalTxtSze = 0, upCandidate, nextBackUp;
			var smallBtnCount = jQuery('li.small', self).length;

			if (smallBtnCount === jQuery('li', self).length) {
				var btnCalc = smallBtnCount * 42;
				var containerWidth = parseFloat(jQuery(self).width());
				upCandidate = jQuery('li.small', self).first();
				nextBackUp = parseFloat(jQuery(upCandidate).attr('data-size')) + 55;

				if ((btnCalc + nextBackUp) < containerWidth) {
					jQuery(self).removeClass('small-format');
					jQuery('li.small', self).first().removeClass('small');

					sizeSmallBtns();
				}

			} else {
				jQuery('li', self).not('.small').each(function(index) {
					var txtWidth = parseFloat(jQuery(this).attr('data-size')) + 55;
					var btnWidth = parseFloat(jQuery(this).width());

					totalBtnSze = totalBtnSze + btnWidth;
					totalTxtSze = totalTxtSze + txtWidth;
				});

				var spaceLeft = totalBtnSze - totalTxtSze;
				upCandidate = jQuery('li.small', self).first();
				nextBackUp = parseFloat(jQuery(upCandidate).attr('data-size')) + 55;

				if (nextBackUp < spaceLeft) {
					jQuery(upCandidate).removeClass('small');
					sizeSmallBtns();
				}
			}
		});
	};

	var checkSize = function(init) {
		// loop through each instance of buttons
		jQuery('.rrssb-buttons').each(function(index) {
			//console.log('starting check for: '+(index+1));
			var self = jQuery(this);
			var elems = jQuery('li', self).nextAll(), count = elems.length;

			// get buttons in reverse order and loop through each
			jQuery(jQuery('li', self).get().reverse()).each(function(index, count) {

				if (jQuery(this).hasClass('small') === false) {
					var txtWidth = parseFloat(jQuery(this).attr('data-size')) + 55;
					var btnWidth = parseFloat(jQuery(this).width());

					if (txtWidth > btnWidth) {
						//console.log($(self).attr('class')+' '+$(this).attr('class')+' txtWidth: '+txtWidth+ ' & btnWidth: '+btnWidth);
						var btn2small = jQuery('li', self).not('.small').last();
						jQuery(btn2small).addClass('small');
						//console.log($(btn2small).attr('class'));
						sizeSmallBtns();
					}
				}

				if (!--count) backUpFromSmall();
			});
		});

		// if first time running, put it through the magic layout
		if (init === true) {
			rrssbMagicLayout(sizeSmallBtns);
		}
	};

	var sizeSmallBtns = function() {
		// loop through each instance of buttons
		jQuery('.rrssb-buttons').each(function(index) {
			var self = jQuery(this);
			var regButtonCount,
					regPercent,
					pixelsOff,
					magicWidth,
					smallBtnFraction;

			// readjust buttons for small display
			var smallBtnCount = jQuery('li.small', self).length;

			// make sure there are small buttons
			if (smallBtnCount > 0 && smallBtnCount !== jQuery('li', self).length) {
				jQuery(self).removeClass('small-format');

				//make sure small buttons are square when not all small
				jQuery('li.small', self).css('width','42px');
				pixelsOff = smallBtnCount * 42;
				regButtonCount = jQuery('li', self).not('.small').length;
				regPercent = 100 / regButtonCount;
				smallBtnFraction = pixelsOff / regButtonCount;

				if (navigator.userAgent.indexOf('Chrome') >= 0 || navigator.userAgent.indexOf('Safari') >= 0) {
					magicWidth = '-webkit-calc('+regPercent+'% - '+smallBtnFraction+'px)';
				} else if (navigator.userAgent.indexOf('Firefox') >= 0) {
					magicWidth = '-moz-calc('+regPercent+'% - '+smallBtnFraction+'px)';
				} else {
					magicWidth = 'calc('+regPercent+'% - '+smallBtnFraction+'px)';
				}
				jQuery('li', self).not('.small').css('width', magicWidth);

			} else if (smallBtnCount === jQuery('li', self).length) {
				// if all buttons are small, change back to percentage
				jQuery(self).addClass('small-format');
				setPercentBtns();
			} else {
				jQuery(self).removeClass('small-format');
				setPercentBtns();
			}
		}); //end loop

		makeExtremityBtns();
	};

	var rrssbInit = function() {
		jQuery('.rrssb-buttons').each(function(index) {
			jQuery(this).addClass('rrssb-'+(index + 1));
		});

		setPercentBtns();

		// grab initial text width of each button and add as data attr
		jQuery('.rrssb-buttons li .rrssb-text').each(function(index) {
			var txtWdth = parseFloat(jQuery(this).width());
			jQuery(this).closest('li').attr('data-size', txtWdth);
		});

		checkSize(true);
	};

	var rrssbMagicLayout = function(callback) {
		//remove small buttons before each conversion try
		jQuery('.rrssb-buttons li.small').removeClass('small');

		checkSize();

		callback();
	};

	var popupCenter = function(url, title, w, h) {
		// Fixes dual-screen position                         Most browsers      Firefox
		var dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : screen.left;
		var dualScreenTop = window.screenTop !== undefined ? window.screenTop : screen.top;

		var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
		var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;

		var left = ((width / 2) - (w / 2)) + dualScreenLeft;
		var top = ((height / 3) - (h / 3)) + dualScreenTop;

		var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);

		// Puts focus on the newWindow
		if (window.focus) {
			newWindow.focus();
		}
	};

	var waitForFinalEvent = (function () {
		var timers = {};
		return function (callback, ms, uniqueId) {
			if (!uniqueId) {
				uniqueId = "Don't call this twice without a uniqueId";
			}
			if (timers[uniqueId]) {
				clearTimeout (timers[uniqueId]);
			}
			timers[uniqueId] = setTimeout(callback, ms);
		};
	})();

	// init load
	jQuery(document).ready(function(){
		/*
		 * Event listners
		 */

		jQuery('.rrssb-buttons a.popup').on('click', function(e){
			var _this = jQuery(this);
			popupCenter(_this.attr('href'), _this.find('.rrssb-text').html(), 580, 470);
			e.preventDefault();
		});

		// resize function
		jQuery(window).resize(function () {

			rrssbMagicLayout(sizeSmallBtns);

			waitForFinalEvent(function(){
				rrssbMagicLayout(sizeSmallBtns);
			}, 200, "finished resizing");
		});

		rrssbInit();
	});

	// Make global
	window.rrssbInit = rrssbInit;

})(window, jQuery);


text:
/**
  * \brief example showing the usage of simulated annealing
  *        to find the minimum of x^2
  *        but now using 4 threads
  */

#include <cmath>
#include <iostream>

#include "cppOpt.h"

using namespace cppOpt;

//define your own calculation
auto toOptimize = [](OptCalculation<double>& optCalculation) {
    //defined x^2 as function to be optimised
    optCalculation.result = pow(optCalculation.get_parameter("X"), 2);
};

using namespace std;

int main() {
    //setup the optimisation
    //define your boundaries
    //to enable 4 threads, the range of example_1 is split
    OptBoundaries<double>
        optBoundaries1,
        optBoundaries2,
        optBoundaries3,
        optBoundaries4;

    optBoundaries1.add_boundary({-5.0, -2.5, "X"});
    optBoundaries2.add_boundary({-2.5, 0.0, "X"});
    optBoundaries3.add_boundary({0.0, 2.5, "X"});
    optBoundaries4.add_boundary({2.5, 5.0, "X"});

    //number of calculations
    unsigned int maxCalculations = 300;

    //we want to find the minimum
    OptTarget optTarget = OptTarget::MINIMIZE;

    //how fast the simulated annealing algorithm slows down
    //http://en.wikipedia.org/wiki/Simulated_annealing
    double coolingFactor = 0.9;

    //the chance in the beginning to follow bad solutions
    double startChance = 0.25;

    //define your coordinator
    OptCoordinator<double, true> coordinator(
        maxCalculations,
        toOptimize,
        optTarget,
        0);

    //add 4 different simulated annealing children
    coordinator.add_child(make_unique<OptSimulatedAnnealing<double>>(
        optBoundaries1,
        coolingFactor,
        startChance));

    coordinator.add_child(make_unique<OptSimulatedAnnealing<double>>(
        optBoundaries2,
        coolingFactor,
        startChance));

    coordinator.add_child(make_unique<OptSimulatedAnnealing<double>>(
        optBoundaries3,
        coolingFactor,
        startChance));

    coordinator.add_child(make_unique<OptSimulatedAnnealing<double>>(
        optBoundaries4,
        coolingFactor,
        startChance));

    //let's go
    coordinator.run_optimisation(4);

    //print result
    OptCalculation<double> best = coordinator.get_best_calculation();
    cout << best.to_string_header() << endl;
    cout << best.to_string_values() << endl;

    return 0;
}

redpajama_set_name: RedPajamaGithub


text:
* Bots
    * Aktive Komponente
    * Infiziert mit böswilliger Software
    * senden Pakete an Reflektoren mit gefälschtem Absender
* Reflektoren
    * Antwortet auf gefälschtes Paket
    * Sendet Antwort an gefälschten Absender

## Wie vermeide ich den VW-Golf Effekt?
* PDFs erlauben Code auszuführen
* Immer zuerst überprüfen vor dem Unterschreiben

## Habe ich etwa mehrere Schlüsselringe und wie sicher sind sie?
* Ja, es gibt mehrere
* Public-Keyring & Private-Keyring

## Kann ich auf einem fremden Gerät eine an mich mit PGP verschlüsselte Nachricht lesen?
Wenn ich den private key dabei habe schon

## Welche Elemente können im Mail-System (SMTP) nicht vertraulich sein?
* Absender
* Empfänger
* Betreff

## Welche organisatorischen Fehler erlaubten den beschriebenen Angriff auf die Zertifizierungsstelle?
* Hash-Kollision generieren
* Keine fortlaufende Nummern für Zertifikate
* Unsichere Hash-Verfahren
* Ablauf:
    * Nummer generieren
    * Zeit-Stempel anfügen
    * Hash generieren
    * von PKI signieren
    * gefälschter Antrag mit gleichem Hash generieren

## Was sind Rollen der grossen Rechenleistung und des exakten Timings?
* Damit Voraussagen getroffen werden können
* über Zeit-Stempel und Nummern

## Was sind wichtige Begriffe, wenn es um Walowdac geht?
* Spammer
    * Verschickt Spam Mails
    * Nimmt Kontakt auf mit Repeater
* Repeater
    * gleichen sich gegenseitig ab
    * wechseln immer wieder den Namen (nach einem Muster)
* Backend-Server
    * Kontroll-Server
    * Teilt aufgaben an Repeater mit, welcher dann weiterverbreitet


text:
package com.adobe.dp.css;

import java.io.PrintWriter;

public class CSSImpliedValue extends CSSValue {

	CSSValue wrapped;

	public CSSImpliedValue(CSSValue wrapped) {
		this.wrapped = wrapped;
	}

	public CSSValue getWrapped() {
		return wrapped;
	}

	public void serialize(PrintWriter out) {
		wrapped.serialize(out);
	}

	public int hashCode() {
		return wrapped.hashCode() + 189;
	}

	public boolean equals(Object other) {
		if (other.getClass() == getClass()) {
			CSSImpliedValue o = (CSSImpliedValue) other;
			return o.wrapped.equals(wrapped);
		}
		return false;
	}
}


text:
package org.apache.druid.emitter.opentsdb;

import com.google.common.annotations.VisibleForTesting;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import org.apache.druid.java.util.common.logger.Logger;

import javax.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;

public class OpentsdbSender
{
  /**
   * @see Opentsdb - /api/put
   */
  private static final String PATH = "/api/put";
  private static final Logger log = new Logger(OpentsdbSender.class);
  private static final long FLUSH_TIMEOUT = 60000; // default flush wait 1 min

  private final AtomicLong countLostEvents = new AtomicLong(0);
  private final int flushThreshold;
  private final BlockingQueue<OpentsdbEvent> eventQueue;
  private final ScheduledExecutorService scheduler;
  private final EventConsumer eventConsumer;
  private final long consumeDelay;
  private final Client client;
  private final WebResource webResource;

  public OpentsdbSender(
      String host,
      int port,
      int connectionTimeout,
      int readTimeout,
      int flushThreshold,
      int maxQueueSize,
      long consumeDelay
  )
  {
    this.flushThreshold = flushThreshold;
    this.consumeDelay = consumeDelay;
    eventQueue = new ArrayBlockingQueue<>(maxQueueSize);
    scheduler = Executors.newScheduledThreadPool(2, new ThreadFactoryBuilder()
        .setDaemon(true)
        .setNameFormat("OpentsdbEventSender-%s")
        .build());
    eventConsumer = new EventConsumer();

    client = Client.create();
    client.setConnectTimeout(connectionTimeout);
    client.setReadTimeout(readTimeout);
    webResource = client.resource("http://" + host + ":" + port + PATH);
  }

  public void enqueue(OpentsdbEvent event)
  {
    if (!eventQueue.offer(event)) {
      if (countLostEvents.getAndIncrement() % 1000 == 0) {
        log.error(
            "Lost total of [%s] events because of emitter queue is full. Please increase the capacity.",
            countLostEvents.get()
        );
      }
    }
  }

  public void start()
  {
    scheduler.scheduleWithFixedDelay(
        eventConsumer,
        consumeDelay,
        consumeDelay,
        TimeUnit.MILLISECONDS
    );
  }

  public void flush()
  {
    try {
      EventConsumer flushConsumer = new EventConsumer();
      Future future = scheduler.schedule(flushConsumer, 0, TimeUnit.MILLISECONDS);
      future.get(FLUSH_TIMEOUT, TimeUnit.MILLISECONDS);
      // send remaining events which size may less than flushThreshold
      eventConsumer.sendEvents();
      flushConsumer.sendEvents();
    }
    catch (Exception e) {
      log.warn(e, e.getMessage());
    }
  }

  public void close()
  {
    flush();
    client.destroy();
    scheduler.shutdown();
  }

  private class EventConsumer implements Runnable
  {
    private final List<OpentsdbEvent> events;

    public EventConsumer()
    {
      events = new ArrayList<>(flushThreshold);
    }

    @Override
    public void run()
    {
      while (!eventQueue.isEmpty() && !scheduler.isShutdown()) {
        OpentsdbEvent event = eventQueue.poll();
        events.add(event);
        if (events.size() >= flushThreshold) {
          sendEvents();
        }
      }
    }

    public void sendEvents()
    {
      if (!events.isEmpty()) {
        try {
          webResource.entity(events, MediaType.APPLICATION_JSON_TYPE).post();
        }
        catch (Exception e) {
          log.error(e, "error occurred when sending metrics to opentsdb server.");
        }
        finally {
          events.clear();
        }
      }
    }
  }

  @VisibleForTesting
  WebResource getWebResource()
  {
    return webResource;
  }
}


text:
#include "third_party/blink/renderer/core/editing/spellcheck/text_checking_paragraph.h"

#include "third_party/blink/renderer/core/dom/range.h"
#include "third_party/blink/renderer/core/editing/iterators/character_iterator.h"
#include "third_party/blink/renderer/core/editing/visible_position.h"
#include "third_party/blink/renderer/core/editing/visible_units.h"

namespace blink {

TextCheckingParagraph::TextCheckingParagraph(
    const EphemeralRange& checking_range)
    : checking_range_(checking_range),
      checking_start_(-1),
      checking_end_(-1),
      checking_length_(-1) {}

TextCheckingParagraph::TextCheckingParagraph(
    const EphemeralRange& checking_range,
    const EphemeralRange& paragraph_range)
    : checking_range_(checking_range),
      paragraph_range_(paragraph_range),
      checking_start_(-1),
      checking_end_(-1),
      checking_length_(-1) {}

TextCheckingParagraph::TextCheckingParagraph(Range* checking_range,
                                             Range* paragraph_range)
    : checking_range_(checking_range),
      paragraph_range_(paragraph_range),
      checking_start_(-1),
      checking_end_(-1),
      checking_length_(-1) {}

TextCheckingParagraph::~TextCheckingParagraph() = default;

void TextCheckingParagraph::ExpandRangeToNextEnd() {
  DCHECK(checking_range_.IsNotNull());
  SetParagraphRange(
      EphemeralRange(ParagraphRange().StartPosition(),
                     EndOfParagraph(StartOfNextParagraph(CreateVisiblePosition(
                                        ParagraphRange().StartPosition())))
                         .DeepEquivalent()));
  InvalidateParagraphRangeValues();
}

void TextCheckingParagraph::InvalidateParagraphRangeValues() {
  checking_start_ = checking_end_ = -1;
  offset_as_range_ = EphemeralRange();
  text_ = String();
}

int TextCheckingParagraph::RangeLength() const {
  DCHECK(checking_range_.IsNotNull());
  return TextIterator::RangeLength(ParagraphRange());
}

EphemeralRange TextCheckingParagraph::ParagraphRange() const {
  DCHECK(checking_range_.IsNotNull());
  if (paragraph_range_.IsNull())
    paragraph_range_ = ExpandToParagraphBoundary(CheckingRange());
  return paragraph_range_;
}

void TextCheckingParagraph::SetParagraphRange(const EphemeralRange& range) {
  paragraph_range_ = range;
}

EphemeralRange TextCheckingParagraph::Subrange(int character_offset,
                                               int character_count) const {
  DCHECK(checking_range_.IsNotNull());
  return CalculateCharacterSubrange(ParagraphRange(), character_offset,
                                    character_count);
}

bool TextCheckingParagraph::IsEmpty() const {
  // Both predicates should have same result, but we check both just to be sure.
  // We need to investigate to remove this redundancy.
  return IsRangeEmpty() || IsTextEmpty();
}

EphemeralRange TextCheckingParagraph::OffsetAsRange() const {
  DCHECK(checking_range_.IsNotNull());
  if (offset_as_range_.IsNotNull())
    return offset_as_range_;
  const Position& paragraph_start = ParagraphRange().StartPosition();
  const Position& checking_start = CheckingRange().StartPosition();
  if (paragraph_start <= checking_start) {
    offset_as_range_ = EphemeralRange(paragraph_start, checking_start);
    return offset_as_range_;
  }
  // editing/pasteboard/paste-table-001.html and more reach here.
  offset_as_range_ = EphemeralRange(checking_start, paragraph_start);
  return offset_as_range_;
}

const String& TextCheckingParagraph::GetText() const {
  DCHECK(checking_range_.IsNotNull());
  if (text_.IsEmpty())
    text_ = PlainText(ParagraphRange());
  return text_;
}

int TextCheckingParagraph::CheckingStart() const {
  DCHECK(checking_range_.IsNotNull());
  if (checking_start_ == -1)
    checking_start_ = TextIterator::RangeLength(OffsetAsRange());
  return checking_start_;
}

int TextCheckingParagraph::CheckingEnd() const {
  DCHECK(checking_range_.IsNotNull());
  if (checking_end_ == -1) {
    checking_end_ =
        CheckingStart() + TextIterator::RangeLength(CheckingRange());
  }
  return checking_end_;
}

int TextCheckingParagraph::CheckingLength() const {
  DCHECK(checking_range_.IsNotNull());
  if (-1 == checking_length_)
    checking_length_ = TextIterator::RangeLength(
        CheckingRange().StartPosition(), CheckingRange().EndPosition());
  return checking_length_;
}

}  // namespace blink


text:
//
//  RSLContactViewController.m
//  FindMyFriends4IOS
//
//  Created by lizhijie on 9/4/14.
//  Copyright (c) 2014 ___resolr___. All rights reserved.
//

#import "RSLContactViewController.h"

#import "XMPPFramework.h"
#import "XMPP.h"
#import "XMPPLogging.h"
#import "RSLConstants.h"
#import "RSLAppDelegate.h"
#import "XMPPRoomMemoryStorage.h"

#import "DDLog.h"
#import "DDTTYLogger.h"

@interface RSLContactViewController (){
    RSLAppDelegate* appDelegate;
    NSArray* roomJidArray;
    NSArray* roomNameArray;
}

@end

@implementation RSLContactViewController
@synthesize tableview;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.title = @"Rooms";
    tableview.delegate = self;
    tableview.dataSource = self;

    roomJidArray = [[NSArray alloc] init];
    roomNameArray = [[NSArray alloc] init];

    appDelegate = (RSLAppDelegate *)[[UIApplication sharedApplication] delegate];
    [appDelegate.xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()];
}

-(void)viewDidUnload
{
    [super viewDidUnload];
    [appDelegate.xmppStream removeDelegate:self];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    [self requestGroupList];
}

- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
{
//	DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);
//	DDLogVerbose(@"%@", [iq description]);
    if([iq.type isEqualToString:@"result"] && [iq.fromStr isEqualToString:JABBER_ROOM_IP]){
        NSArray* children = [[iq.children objectAtIndex:0] children];
        NSMutableArray* jidArray = [[NSMutableArray alloc] init];
        NSMutableArray* nameArray = [[NSMutableArray alloc] init];
        for (int i = 0; i < children.count; i++) {
            DDXMLElement* element = [children objectAtIndex:i];
            NSString* jid = [element attributeStringValueForName:@"jid"];
            NSString* name = [element attributeStringValueForName:@"name"];
            [jidArray addObject:jid];
            [nameArray addObject:name];
        }
        roomJidArray = jidArray;
        roomNameArray = nameArray;
        [tableview reloadData];
    }

	return NO;
}

- (void)xmppRoomDidCreate:(XMPPRoom *)sender{
//    DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);
}

- (void)xmppRoomDidJoin:(XMPPRoom *)sender{
//    DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);
//    XMPPPresence* presence = [[XMPPPresence alloc] initWithType:@"available" to:sender.roomJID];
//    [appDelegate.xmppStream sendElement:presence];

    appDelegate.mapController.roomJid = sender.roomJID;
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        [self dismissViewControllerAnimated:YES completion:nil];
    }
}

- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section
{
    return roomJidArray.count;
}

-(void)requestGroupList
{
    if (appDelegate.xmppStream.isConnected) {

        NSString* server = JABBER_ROOM_IP; //or whatever the server address for muc is
        XMPPJID *serverJID = [XMPPJID jidWithString:server];
        XMPPIQ *iq = [XMPPIQ iqWithType:@"get" to:serverJID];

        [iq addAttributeWithName:@"from" stringValue:[appDelegate.xmppStream myJID].full];
        NSXMLElement *query = [NSXMLElement elementWithName:@"query"];
        [query addAttributeWithName:@"xmlns" stringValue:@"http://jabber.org/protocol/disco#items"];
        [iq addChild:query];
        [appDelegate.xmppStream sendElement:iq];
    }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    NSString *labelFormatString = NSLocalizedString(@"Row %i", @"master table view label format string");
	cell.textLabel.text = [roomNameArray objectAtIndex:indexPath.row];

    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    XMPPRoomMemoryStorage * _roomMemory = [[XMPPRoomMemoryStorage alloc]init];
    NSString* roomID = [NSString stringWithFormat:@"%@@%@",[roomNameArray objectAtIndex:indexPath.row],JABBER_ROOM_IP];
    XMPPJID * roomJID = [XMPPJID jidWithString:roomID];
    XMPPRoom* xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:_roomMemory
                                                           jid:roomJID
                                                 dispatchQueue:dispatch_get_main_queue()];
    [xmppRoom activate:appDelegate.xmppStream];
    [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];
    [xmppRoom joinRoomUsingNickname:appDelegate.xmppStream.myJID.user
                            history:nil
                           password:nil];
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

- (IBAction)onCancel:(id)sender {
    [self dismissViewControllerAnimated:YES completion:nil];
}

- (IBAction)onAdd:(id)sender {
}
@end


text:
class CORSRule(object):
    """
    CORS rule for a bucket.

    :ivar id: A unique identifier for the rule.  The ID value can be
        up to 255 characters long.  The IDs help you find a rule in
        the configuration.

    :ivar allowed_methods: An HTTP method that you want to allow the
        origin to execute.  Each CORSRule must identify at least one
        origin and one method. Valid values are:
        GET|PUT|HEAD|POST|DELETE

    :ivar allowed_origin: An origin that you want to allow cross-domain
        requests from. This can contain at most one * wild character.
        Each CORSRule must identify at least one origin and one method.
        The origin value can include at most one '*' wild character.
        For example, "http://*.example.com". You can also specify
        only * as the origin value allowing all origins cross-domain access.

    :ivar allowed_header: Specifies which headers are allowed in a
        pre-flight OPTIONS request via the
        Access-Control-Request-Headers header. Each header name
        specified in the Access-Control-Request-Headers header must
        have a corresponding entry in the rule. Amazon S3 will send
        only the allowed headers in a response that were requested.
        This can contain at most one * wild character.

    :ivar max_age_seconds: The time in seconds that your browser is to
        cache the preflight response for the specified resource.

    :ivar expose_header: One or more headers in the response that you
        want customers to be able to access from their applications
        (for example, from a JavaScript XMLHttpRequest object).  You
        add one ExposeHeader element in the rule for each header.
        """

    def __init__(self, allowed_method=None, allowed_origin=None,
                 id=None, allowed_header=None, max_age_seconds=None,
                 expose_header=None):
        if allowed_method is None:
            allowed_method = []
        self.allowed_method = allowed_method
        if allowed_origin is None:
            allowed_origin = []
        self.allowed_origin = allowed_origin
        self.id = id
        if allowed_header is None:
            allowed_header = []
        self.allowed_header = allowed_header
        self.max_age_seconds = max_age_seconds
        if expose_header is None:
            expose_header = []
        self.expose_header = expose_header

    def __repr__(self):
        return '<Rule: %s>' % self.id

    def startElement(self, name, attrs, connection):
        return None

    def endElement(self, name, value, connection):
        if name == 'ID':
            self.id = value
        elif name == 'AllowedMethod':
            self.allowed_method.append(value)
        elif name == 'AllowedOrigin':
            self.allowed_origin.append(value)
        elif name == 'AllowedHeader':
            self.allowed_header.append(value)
        elif name == 'MaxAgeSeconds':
            self.max_age_seconds = int(value)
        elif name == 'ExposeHeader':
            self.expose_header.append(value)
        else:
            setattr(self, name, value)

    def to_xml(self):
        s = '<CORSRule>'
        for allowed_method in self.allowed_method:
            s += '<AllowedMethod>%s</AllowedMethod>' % allowed_method
        for allowed_origin in self.allowed_origin:
            s += '<AllowedOrigin>%s</AllowedOrigin>' % allowed_origin
        for allowed_header in self.allowed_header:
            s += '<AllowedHeader>%s</AllowedHeader>' % allowed_header
        for expose_header in self.expose_header:
            s += '<ExposeHeader>%s</ExposeHeader>' % expose_header
        if self.max_age_seconds:
            s += '<MaxAgeSeconds>%d</MaxAgeSeconds>' % self.max_age_seconds
        if self.id:
            s += '<ID>%s</ID>' % self.id
        s += '</CORSRule>'
        return s

class CORSConfiguration(list):
    """
    A container for the rules associated with a CORS configuration.
    """

    def startElement(self, name, attrs, connection):
        if name == 'CORSRule':
            rule = CORSRule()
            self.append(rule)
            return rule
        return None

    def endElement(self, name, value, connection):
        setattr(self, name, value)

    def to_xml(self):
        """
        Returns a string containing the XML version of the Lifecycle
        configuration as defined by S3.
        """
        s = '<CORSConfiguration>'
        for rule in self:
            s += rule.to_xml()
        s += '</CORSConfiguration>'
        return s

    def add_rule(self, allowed_method, allowed_origin,
                 id=None, allowed_header=None, max_age_seconds=None,
                 expose_header=None):
        """
        Add a rule to this CORS configuration.  This only adds
        the rule to the local copy.  To install the new rule(s) on
        the bucket, you need to pass this CORS config object
        to the set_cors method of the Bucket object.

        :type allowed_methods: list of str
        :param allowed_methods: An HTTP method that you want to allow the
            origin to execute.  Each CORSRule must identify at least one
            origin and one method. Valid values are:
            GET|PUT|HEAD|POST|DELETE

        :type allowed_origin: list of str
        :param allowed_origin: An origin that you want to allow cross-domain
            requests from. This can contain at most one * wild character.
            Each CORSRule must identify at least one origin and one method.
            The origin value can include at most one '*' wild character.
            For example, "http://*.example.com". You can also specify
            only * as the origin value allowing all origins
            cross-domain access.

        :type id: str
        :param id: A unique identifier for the rule.  The ID value can be
            up to 255 characters long.  The IDs help you find a rule in
            the configuration.

        :type allowed_header: list of str
        :param allowed_header: Specifies which headers are allowed in a
            pre-flight OPTIONS request via the
            Access-Control-Request-Headers header. Each header name
            specified in the Access-Control-Request-Headers header must
            have a corresponding entry in the rule. Amazon S3 will send
            only the allowed headers in a response that were requested.
            This can contain at most one * wild character.

        :type max_age_seconds: int
        :param max_age_seconds: The time in seconds that your browser is to
            cache the preflight response for the specified resource.

        :type expose_header: list of str
        :param expose_header: One or more headers in the response that you
            want customers to be able to access from their applications
            (for example, from a JavaScript XMLHttpRequest object).  You
            add one ExposeHeader element in the rule for each header.
        """
        if not isinstance(allowed_method, (list, tuple)):
            allowed_method = [allowed_method]
        if not isinstance(allowed_origin, (list, tuple)):
            allowed_origin = [allowed_origin]
        if not isinstance(allowed_origin, (list, tuple)):
            if allowed_origin is None:
                allowed_origin = []
            else:
                allowed_origin = [allowed_origin]
        if not isinstance(expose_header, (list, tuple)):
            if expose_header is None:
                expose_header = []
            else:
                expose_header = [expose_header]
        rule = CORSRule(allowed_method, allowed_origin, id, allowed_header,
                        max_age_seconds, expose_header)
        self.append(rule)


text:
/**
 * Rounds a value to the given resolution. For example, roundToNearest(2.35, 0.5) returns 2.5.
 * @param value the value to round
 * @param resolution the value will be rounded to a multiple of this value
 * @returns {number} the value rounded to the nearest multiple of `resolution`
 */
export default function roundToNearest(value, resolution) {
  return Math.round(value / resolution) * resolution;
}


text:
  Normalerweise verwendet Jenkins das lokale Maven-Repository so wie es von Maven
  bestimmt wird — das exakte Verfahren dafür scheint undokumentiert, aber es ist typischerweise
  <tt>~/.m2/repository</tt> und kann durch <localRepository> in <tt>~/.m2/settings.xml</tt>
  überschrieben werden (mehr dazu in der Maven Dokumentation).

  Dies bedeutet, dass sich alle Jobs, die auf dem gleichen Knoten ausgeführt werden, ein gemeinsames
  Maven-Repository teilen. Der Vorteil dabei ist, dass dadurch Festplattenplatz gespart werden kann.
  Nachteilig ist hingegen, dass diese Jobs sich manchmal in die Quere kommen können.
  Beispielsweise können so Builds fälschlicherweise erfolgreich sein, weil zwar alle Abhängigkeiten im lokalen
  Repository vorhanden sind, aber keine davon in den Repositories des POMs existiert.

  Es liegen außerdem Problemberichte über nebenläufige Maven-Prozesse vor, die versuchen,
  dasselbe lokale Repository zu verwenden.

  Wenn diese Option angewählt ist, startet Jenkins Maven mit <tt>$WORKSPACE/.repository</tt>
  als lokalem Maven-Repository. Dadurch verwendet jeder Job ein eigenes, isoliertes Maven-Repository.
  Dies löst die oben angesprochenen Probleme auf Kosten eines höheren Speicherplatzbedarfs auf der Festplatte.

  Wenn Sie diese Option verwenden, ziehen Sie die Installation eines Maven-Artefakt-Managers
  in Betracht: Dadurch vermeiden Sie zu häufige Zugriffe auf entfernte Maven-Repositories.

  Möchten Sie diese Option in allen Maven-Jobs aktivieren, die über Jenkins ausgeführt
  werden, folgen Sie den Anweisungen hier.


text:
namespace Envoy {
namespace Grpc {

MockAsyncClient::MockAsyncClient() {
  async_request_ = std::make_unique<testing::NiceMock<Grpc::MockAsyncRequest>>();
  ON_CALL(*this, sendRaw(_, _, _, _, _, _))
      .WillByDefault(Invoke([this](absl::string_view, absl::string_view, Buffer::InstancePtr&&,
                                   RawAsyncRequestCallbacks&, Tracing::Span&,
                                   const Http::AsyncClient::RequestOptions&) {
        send_count_++;
        return async_request_.get();
      }));

  // Because this method is used in debug logs, coverage and non-coverage builds have different
  // expectations, so add this to prevent failures due to "uninteresting mock function call".
  EXPECT_CALL(*this, destination())
      .Times(testing::AnyNumber())
      .WillRepeatedly(Return(absl::string_view("unspecified_mock_destination")));
}
MockAsyncClient::~MockAsyncClient() = default;

MockAsyncRequest::MockAsyncRequest() = default;
MockAsyncRequest::~MockAsyncRequest() = default;

MockAsyncStream::MockAsyncStream() = default;
MockAsyncStream::~MockAsyncStream() = default;

MockAsyncClientFactory::MockAsyncClientFactory() {
  ON_CALL(*this, createUncachedRawAsyncClient()).WillByDefault(Invoke([] {
    return std::make_unique<testing::NiceMock<Grpc::MockAsyncClient>>();
  }));
}
MockAsyncClientFactory::~MockAsyncClientFactory() = default;

MockAsyncClientManager::MockAsyncClientManager() {
  ON_CALL(*this, factoryForGrpcService(_, _, _))
      .WillByDefault(Invoke([](const envoy::config::core::v3::GrpcService&, Stats::Scope&, bool) {
        return std::make_unique<testing::NiceMock<Grpc::MockAsyncClientFactory>>();
      }));
}

MockAsyncClientManager::~MockAsyncClientManager() = default;

} // namespace Grpc
} // namespace Envoy


text:
package org.apache.xbean.spring.generator;

import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;

/**
 * @author Dain Sundstrom
 * @version $Id$
 * @since 1.0
 */
public class ElementMapping implements Comparable {
    private final String namespace;
    private final String elementName;
    private final String className;
    private final String description;
    private final boolean rootElement;
    private final String initMethod;
    private final String destroyMethod;
    private final String factoryMethod;
    private final String contentProperty;
    private final Set attributes;
    private final Map attributesByName;
    private final List constructors;
    private final Map maps;

    public ElementMapping(String namespace, String elementName, String className, String description, boolean rootElement, String initMethod, String destroyMethod, String factoryMethod, String contentProperty, Set attributes, List constructors, Map maps) {
        if (namespace == null) throw new NullPointerException("namespace");
        if (elementName == null) throw new NullPointerException("elementName");
        if (className == null) throw new NullPointerException("className");
        if (attributes == null) throw new NullPointerException("attributes");
        if (constructors == null) throw new NullPointerException("constructors");

        this.namespace = namespace;
        this.elementName = elementName;
        this.className = className;
        this.description = description;
        this.rootElement = rootElement;
        this.initMethod = initMethod;
        this.destroyMethod = destroyMethod;
        this.factoryMethod = factoryMethod;
        this.contentProperty = contentProperty;
        this.constructors = constructors;
        this.attributes = Collections.unmodifiableSet(new TreeSet(attributes));
        this.maps = Collections.unmodifiableMap(maps);

        Map attributesByName = new HashMap();
        for (Iterator iterator = attributes.iterator(); iterator.hasNext();) {
            AttributeMapping attribute = (AttributeMapping) iterator.next();
            attributesByName.put(attribute.getAttributeName(), attribute);
        }
        this.attributesByName = Collections.unmodifiableMap(attributesByName);
    }

    public String getNamespace() {
        return namespace;
    }

    public String getElementName() {
        return elementName;
    }

    public String getClassName() {
        return className;
    }

    public String getDescription() {
        return description;
    }

    public boolean isRootElement() {
        return rootElement;
    }

    public String getInitMethod() {
        return initMethod;
    }

    public String getDestroyMethod() {
        return destroyMethod;
    }

    public String getFactoryMethod() {
        return factoryMethod;
    }

    public String getContentProperty() {
        return contentProperty;
    }

    public Set getAttributes() {
        return attributes;
    }

    public AttributeMapping getAttribute(String attributeName) {
        return (AttributeMapping) attributesByName.get(attributeName);
    }

    public Map getMapMappings() {
        return maps;
    }

    public MapMapping getMapMapping(String name) {
        return (MapMapping) maps.get(name);
    }

    public List getConstructors() {
        return constructors;
    }

    public int hashCode() {
        return elementName.hashCode();
    }

    public boolean equals(Object obj) {
        if (obj instanceof ElementMapping) {
            return elementName.equals(((ElementMapping) obj).elementName);
        }
        return false;
    }

    public int compareTo(Object obj) {
        return elementName.compareTo(((ElementMapping) obj).elementName);
    }
}


text:
A simple query builder for Elasticsearch. Install with `pip install elasticquery`. Uses metod calls and their args/kwargs to generate query/filter/aggregate objects. Outputs dict/json representation to be passed directly to ES.

+ [Documentation](https://elasticquery.readthedocs.org/en/latest/)
+ [Queries API](https://elasticquery.readthedocs.org/en/latest/queries.html)
+ [Aggregates API](https://elasticquery.readthedocs.org/en/latest/aggregates.html)
+ [Suggesters API](https://elasticquery.readthedocs.org/en/latest/suggesters.html)

## Synopsis

```py
from elasticsearch import Elasticsearch
from elasticquery import ElasticQuery, Filter, Aggregate

# Create a query with our ES index details
q = ElasticQuery(
    es=Elasticsearch(),
    index='mapping_test',
    doc_type='doc_mapping'
)

# Query it!
q.query(
    Query.terms('my_field', ['my', 'terms'])
)

# Aggregate it!
q.aggregate(
    Aggregate.sum('my_agg', 'my_field')
)

# Print the query, then run on ES and print it's output
print q.json(indent=4)
print q.get()
```

## Development/Testing

+ Create virtualenv
+ `pip install -r requirements.pip`
+ Run `nosetests`


text:
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: issue_service.proto

package drghs_v1

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	field_mask "google.golang.org/genproto/protobuf/field_mask"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// Request message for [DevRelGitHubService.ListIssues][].
type ListIssuesRequest struct {
	// Required. The resource name of the repository associated with the
	// [Issues][Issue], in the format `owners/*/repositories/*`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Optional. Limit the number of [Issues][Issue] to include in the
	// response. Fewer Issues than requested might be returned.
	//
	// The maximum page size is `100`. If unspecified, the page size will be the
	// maximum. Further [Issues][Issue] can subsequently be obtained
	// by including the [ListIssuesResponse.next_page_token][] in a
	// subsequent request.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Optional. To request the first page of results, `page_token` must be empty.
	// To request the next page of results, page_token must be the value of
	// [ListIssuesResponse.next_page_token][] returned by a previous call to
	// [Issueservice.ListIssues][].
	//
	// The page token is valid for only 2 hours.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Optional. Filter expression used to only include resources that match the
	// filter in the response. Filter must be in following the format:
	//
	//     field1=123
	//     field2="Foo bar"
	//     field3 IN (value3, value4)
	//     field4 LIKE "%somestring%"
	//
	// Valid filter fields are: `name`, `repo.name`, `repo.owner`, and `size`.
	//
	Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
	// Optional. Specify how the results should be sorted. The fields supported
	// for sorting are `name` and `size`.
	// The default ordering is by `name`. Prefix with `-` to specify
	// descending order, e.g. `-name`.
	OrderBy  string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
	Comments bool   `protobuf:"varint,6,opt,name=comments,proto3" json:"comments,omitempty"`
	Reviews  bool   `protobuf:"varint,7,opt,name=reviews,proto3" json:"reviews,omitempty"`
	// This is a workaround to allow nullable bools
	//
	// Types that are valid to be assigned to PullRequestNullable:
	//	*ListIssuesRequest_PullRequest
	PullRequestNullable isListIssuesRequest_PullRequestNullable `protobuf_oneof:"pull_request_nullable"`
	// This is a workaround to allow nullable bools
	//
	// Types that are valid to be assigned to ClosedNullable:
	//	*ListIssuesRequest_Closed
	ClosedNullable isListIssuesRequest_ClosedNullable `protobuf_oneof:"closed_nullable"`
	// If the FieldMask is NOT set or empty, all fields are returned. If the
	// FieldMask is set, only the specified fields are returned. See
	// https://pkg.go.dev/google.golang.org/genproto/protobuf/field_mask.
	FieldMask            *field_mask.FieldMask `protobuf:"bytes,10,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ListIssuesRequest) Reset()         { *m = ListIssuesRequest{} }
func (m *ListIssuesRequest) String() string { return proto.CompactTextString(m) }
func (*ListIssuesRequest) ProtoMessage()    {}
func (*ListIssuesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_d4667488ad260932, []int{0}
}

func (m *ListIssuesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListIssuesRequest.Unmarshal(m, b)
}
func (m *ListIssuesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListIssuesRequest.Marshal(b, m, deterministic)
}
func (m *ListIssuesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListIssuesRequest.Merge(m, src)
}
func (m *ListIssuesRequest) XXX_Size() int {
	return xxx_messageInfo_ListIssuesRequest.Size(m)
}
func (m *ListIssuesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListIssuesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListIssuesRequest proto.InternalMessageInfo

func (m *ListIssuesRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *ListIssuesRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *ListIssuesRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

func (m *ListIssuesRequest) GetFilter() string {
	if m != nil {
		return m.Filter
	}
	return ""
}

func (m *ListIssuesRequest) GetOrderBy() string {
	if m != nil {
		return m.OrderBy
	}
	return ""
}

func (m *ListIssuesRequest) GetComments() bool {
	if m != nil {
		return m.Comments
	}
	return false
}

func (m *ListIssuesRequest) GetReviews() bool {
	if m != nil {
		return m.Reviews
	}
	return false
}

type isListIssuesRequest_PullRequestNullable interface {
	isListIssuesRequest_PullRequestNullable()
}

type ListIssuesRequest_PullRequest struct {
	PullRequest bool `protobuf:"varint,8,opt,name=pull_request,json=pullRequest,proto3,oneof"`
}

func (*ListIssuesRequest_PullRequest) isListIssuesRequest_PullRequestNullable() {}

func (m *ListIssuesRequest) GetPullRequestNullable() isListIssuesRequest_PullRequestNullable {
	if m != nil {
		return m.PullRequestNullable
	}
	return nil
}

// Deprecated: Do not use.
func (m *ListIssuesRequest) GetPullRequest() bool {
	if x, ok := m.GetPullRequestNullable().(*ListIssuesRequest_PullRequest); ok {
		return x.PullRequest
	}
	return false
}

type isListIssuesRequest_ClosedNullable interface {
	isListIssuesRequest_ClosedNullable()
}

type ListIssuesRequest_Closed struct {
	Closed bool `protobuf:"varint,9,opt,name=closed,proto3,oneof"`
}

func (*ListIssuesRequest_Closed) isListIssuesRequest_ClosedNullable() {}

func (m *ListIssuesRequest) GetClosedNullable() isListIssuesRequest_ClosedNullable {
	if m != nil {
		return m.ClosedNullable
	}
	return nil
}

// Deprecated: Do not use.
func (m *ListIssuesRequest) GetClosed() bool {
	if x, ok := m.GetClosedNullable().(*ListIssuesRequest_Closed); ok {
		return x.Closed
	}
	return false
}

func (m *ListIssuesRequest) GetFieldMask() *field_mask.FieldMask {
	if m != nil {
		return m.FieldMask
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*ListIssuesRequest) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*ListIssuesRequest_PullRequest)(nil),
		(*ListIssuesRequest_Closed)(nil),
	}
}

// Response message for [DevRelGitHubService.ListIssues][].
type ListIssuesResponse struct {
	// The list of [Issues][Issue].
	Issues []*Issue `protobuf:"bytes,1,rep,name=issues,proto3" json:"issues,omitempty"`
	// A token to retrieve the next page of results, or empty if there are no
	// more results in the list. Pass this value in
	// [ListIssuesRequest.page_token][] to retrieve the next page of
	// results.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	// The total number of [Issues][Issue] that matched the query.
	Total                int32    `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListIssuesResponse) Reset()         { *m = ListIssuesResponse{} }
func (m *ListIssuesResponse) String() string { return proto.CompactTextString(m) }
func (*ListIssuesResponse) ProtoMessage()    {}
func (*ListIssuesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d4667488ad260932, []int{1}
}

func (m *ListIssuesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListIssuesResponse.Unmarshal(m, b)
}
func (m *ListIssuesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListIssuesResponse.Marshal(b, m, deterministic)
}
func (m *ListIssuesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListIssuesResponse.Merge(m, src)
}
func (m *ListIssuesResponse) XXX_Size() int {
	return xxx_messageInfo_ListIssuesResponse.Size(m)
}
func (m *ListIssuesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListIssuesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListIssuesResponse proto.InternalMessageInfo

func (m *ListIssuesResponse) GetIssues() []*Issue {
	if m != nil {
		return m.Issues
	}
	return nil
}

func (m *ListIssuesResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

func (m *ListIssuesResponse) GetTotal() int32 {
	if m != nil {
		return m.Total
	}
	return 0
}

// Response message for [DevRelGitHubService.GetIssue][].
type GetIssueRequest struct {
	// Required. The fully qualified name of the [Issue][], in the format
	// `owners/*/repositories/*/issues/*`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Specifies if to include the [Issue]'s Comments
	Comments bool `protobuf:"varint,2,opt,name=comments,proto3" json:"comments,omitempty"`
	// Specifies if to inlcude the [Issue]'s Reviews
	Reviews bool `protobuf:"varint,3,opt,name=reviews,proto3" json:"reviews,omitempty"`
	// If the FieldMask is NOT set or empty, all fields are returned. If the
	// FieldMask is set, only the specified fields are returned. See
	// https://pkg.go.dev/google.golang.org/genproto/protobuf/field_mask.
	FieldMask            *field_mask.FieldMask `protobuf:"bytes,4,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *GetIssueRequest) Reset()         { *m = GetIssueRequest{} }
func (m *GetIssueRequest) String() string { return proto.CompactTextString(m) }
func (*GetIssueRequest) ProtoMessage()    {}
func (*GetIssueRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_d4667488ad260932, []int{2}
}

func (m *GetIssueRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetIssueRequest.Unmarshal(m, b)
}
func (m *GetIssueRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetIssueRequest.Marshal(b, m, deterministic)
}
func (m *GetIssueRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetIssueRequest.Merge(m, src)
}
func (m *GetIssueRequest) XXX_Size() int {
	return xxx_messageInfo_GetIssueRequest.Size(m)
}
func (m *GetIssueRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetIssueRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetIssueRequest proto.InternalMessageInfo

func (m *GetIssueRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *GetIssueRequest) GetComments() bool {
	if m != nil {
		return m.Comments
	}
	return false
}

func (m *GetIssueRequest) GetReviews() bool {
	if m != nil {
		return m.Reviews
	}
	return false
}

func (m *GetIssueRequest) GetFieldMask() *field_mask.FieldMask {
	if m != nil {
		return m.FieldMask
	}
	return nil
}

type GetIssueResponse struct {
	Issue                *Issue   `protobuf:"bytes,1,opt,name=issue,proto3" json:"issue,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetIssueResponse) Reset()         { *m = GetIssueResponse{} }
func (m *GetIssueResponse) String() string { return proto.CompactTextString(m) }
func (*GetIssueResponse) ProtoMessage()    {}
func (*GetIssueResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d4667488ad260932, []int{3}
}

func (m *GetIssueResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetIssueResponse.Unmarshal(m, b)
}
func (m *GetIssueResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetIssueResponse.Marshal(b, m, deterministic)
}
func (m *GetIssueResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetIssueResponse.Merge(m, src)
}
func (m *GetIssueResponse) XXX_Size() int {
	return xxx_messageInfo_GetIssueResponse.Size(m)
}
func (m *GetIssueResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_GetIssueResponse.DiscardUnknown(m)
}

var xxx_messageInfo_GetIssueResponse proto.InternalMessageInfo

func (m *GetIssueResponse) GetIssue() *Issue {
	if m != nil {
		return m.Issue
	}
	return nil
}

func init() {
	proto.RegisterType((*ListIssuesRequest)(nil), "drghs.v1.ListIssuesRequest")
	proto.RegisterType((*ListIssuesResponse)(nil), "drghs.v1.ListIssuesResponse")
	proto.RegisterType((*GetIssueRequest)(nil), "drghs.v1.GetIssueRequest")
	proto.RegisterType((*GetIssueResponse)(nil), "drghs.v1.GetIssueResponse")
}

func init() {
	proto.RegisterFile("issue_service.proto", fileDescriptor_d4667488ad260932)
}

var fileDescriptor_d4667488ad260932 = []byte{
	// 660 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xcd, 0x6e, 0xd3, 0x40,
	0x10, 0xc6, 0x6e, 0x93, 0x3a, 0xd3, 0x42, 0xda, 0x2d, 0xb4, 0xae, 0xdb, 0x4a, 0xc1, 0x85, 0x36,
	0xea, 0xc1, 0x56, 0xc3, 0xa9, 0x07, 0x0e, 0xe4, 0xc0, 0x8f, 0x04, 0x12, 0x72, 0xcb, 0xd9, 0x72,
	0xe2, 0x49, 0xb0, 0xe2, 0x78, 0xcd, 0xee, 0x3a, 0xa5, 0xad, 0x7a, 0xe1, 0x86, 0xc4, 0x0d, 0x89,
	0x17, 0xe3, 0x15, 0x78, 0x00, 0x9e, 0x00, 0x21, 0xaf, 0xd7, 0xf9, 0x23, 0xad, 0xc4, 0xcd, 0x33,
	0xdf, 0xec, 0x7c, 0xdf, 0x7e, 0x33, 0x6b, 0xd8, 0x8c, 0x38, 0xcf, 0xd0, 0xe7, 0xc8, 0x46, 0x51,
	0x17, 0x9d, 0x94, 0x51, 0x41, 0x89, 0x11, 0xb2, 0xfe, 0x47, 0xee, 0x8c, 0x4e, 0xac, 0xbd, 0x3e,
	0xa5, 0xfd, 0x18, 0xdd, 0x20, 0x8d, 0xdc, 0x20, 0x49, 0xa8, 0x08, 0x44, 0x44, 0x13, 0x5e, 0xd4,
	0x59, 0x0d, 0x85, 0xca, 0xa8, 0x93, 0xf5, 0xdc, 0x5e, 0x84, 0x71, 0xe8, 0x0f, 0x03, 0x3e, 0x50,
	0x15, 0x75, 0x86, 0x9c, 0x66, 0xac, 0x8b, 0xe5, 0x91, 0x6d, 0xc5, 0xe4, 0xcf, 0x03, 0x9b, 0x41,
	0x38, 0x8c, 0x92, 0x59, 0x21, 0xf6, 0x1f, 0x1d, 0x36, 0xde, 0x46, 0x5c, 0xbc, 0xc9, 0x45, 0x72,
	0x0f, 0x3f, 0x65, 0xc8, 0x05, 0xd9, 0x82, 0x6a, 0x1a, 0x30, 0x4c, 0x84, 0xa9, 0x35, 0xb4, 0x66,
	0xcd, 0x53, 0x11, 0xd9, 0x85, 0x5a, 0x1a, 0xf4, 0xd1, 0xe7, 0xd1, 0x15, 0x9a, 0x7a, 0x43, 0x6b,
	0x56, 0x3c, 0x23, 0x4f, 0x9c, 0x45, 0x57, 0x48, 0xf6, 0x01, 0x24, 0x28, 0xe8, 0x00, 0x13, 0x73,
	0x49, 0x1e, 0x94, 0xe5, 0xe7, 0x79, 0x22, 0xef, 0xd9, 0x8b, 0x62, 0x81, 0xcc, 0x5c, 0x2e, 0x7a,
	0x16, 0x11, 0xd9, 0x01, 0x83, 0xb2, 0x10, 0x99, 0xdf, 0xb9, 0x34, 0x2b, 0x12, 0x59, 0x91, 0x71,
	0xfb, 0x92, 0x58, 0x60, 0x74, 0xe9, 0x70, 0x88, 0x89, 0xe0, 0x66, 0xb5, 0xa1, 0x35, 0x0d, 0x6f,
	0x1c, 0x13, 0x13, 0x56, 0x18, 0x8e, 0x22, 0xbc, 0xe0, 0xe6, 0x8a, 0x84, 0xca, 0x90, 0x1c, 0xc1,
	0x5a, 0x9a, 0xc5, 0xb1, 0xcf, 0x8a, 0xcb, 0x98, 0x46, 0x0e, 0xb7, 0x75, 0x53, 0x7b, 0x7d, 0xcf,
	0x5b, 0xcd, 0x91, 0xf2, 0x96, 0x7b, 0x50, 0xed, 0xc6, 0x94, 0x63, 0x68, 0xd6, 0xc6, 0x25, 0x9a,
	0xa7, 0x72, 0xe4, 0x14, 0x60, 0x62, 0xb6, 0x09, 0x0d, 0xad, 0xb9, 0xda, 0xb2, 0x9c, 0x62, 0x1e,
	0x4e, 0x39, 0x0f, 0xe7, 0x65, 0x5e, 0xf2, 0x2e, 0xe0, 0x03, 0xaf, 0xd6, 0x2b, 0x3f, 0xdb, 0xdb,
	0xf0, 0x68, 0x5a, 0x81, 0x9f, 0x64, 0x71, 0x1c, 0x74, 0x62, 0x6c, 0x6f, 0x40, 0xbd, 0xe8, 0x3e,
	0x4e, 0xd9, 0xd7, 0x40, 0xa6, 0xfd, 0xe7, 0x29, 0x4d, 0x38, 0x92, 0x23, 0xa8, 0xca, 0xb5, 0xe1,
	0xa6, 0xd6, 0x58, 0x6a, 0xae, 0xb6, 0xea, 0x4e, 0xb9, 0x30, 0x8e, 0xac, 0xf4, 0x14, 0x4c, 0x0e,
	0xa1, 0x9e, 0xe0, 0x67, 0xe1, 0x4f, 0x39, 0xaf, 0x4b, 0x13, 0xef, 0xe7, 0xe9, 0xf7, 0x63, 0xf7,
	0x1f, 0x42, 0x45, 0x50, 0x11, 0xc4, 0x72, 0x2e, 0x15, 0xaf, 0x08, 0xec, 0x1f, 0x1a, 0xd4, 0x5f,
	0x61, 0x41, 0x5e, 0xba, 0x42, 0x60, 0x39, 0x09, 0x86, 0xa8, 0x26, 0x2f, 0xbf, 0x67, 0x06, 0xa1,
	0xdf, 0x3e, 0x88, 0xa5, 0xd9, 0x41, 0xcc, 0x3a, 0xb8, 0xfc, 0x1f, 0x0e, 0xda, 0xa7, 0xb0, 0x3e,
	0xd1, 0xa5, 0x3c, 0x79, 0x0a, 0x15, 0x79, 0x69, 0xa9, 0x6c, 0x81, 0x25, 0x05, 0xda, 0xfa, 0xad,
	0xc3, 0x9a, 0x4c, 0x9c, 0x15, 0x8b, 0x4e, 0xbe, 0x6a, 0xb0, 0x9e, 0x5b, 0xec, 0x61, 0x4a, 0x79,
	0x24, 0x28, 0x8b, 0x90, 0x93, 0xc7, 0x93, 0xd3, 0xf3, 0x98, 0x32, 0xc2, 0xb2, 0xef, 0x2a, 0x29,
	0x34, 0xd9, 0xce, 0x97, 0x9f, 0xbf, 0xbe, 0xeb, 0x4d, 0x72, 0x28, 0xdf, 0xef, 0xe8, 0xc4, 0xbd,
	0x2e, 0x5e, 0xca, 0x73, 0x7a, 0x91, 0x20, 0xe3, 0xee, 0xf1, 0x8d, 0xcb, 0xa6, 0x69, 0x63, 0x80,
	0xc9, 0xb4, 0xc9, 0xee, 0x2c, 0xc3, 0xcc, 0x1b, 0xb4, 0xf6, 0x16, 0x83, 0x8a, 0xf8, 0x40, 0x12,
	0xef, 0x93, 0xdd, 0x79, 0xe2, 0xe3, 0x9c, 0x53, 0x2d, 0x47, 0x0f, 0x8c, 0xd2, 0x45, 0xb2, 0x33,
	0x69, 0x37, 0x37, 0x71, 0xcb, 0x5a, 0x04, 0xdd, 0xca, 0x93, 0x2f, 0x44, 0xce, 0xa2, 0x48, 0xdc,
	0xe3, 0x9b, 0xd6, 0x37, 0x0d, 0x36, 0xa6, 0x2d, 0x7f, 0x91, 0xff, 0x68, 0xc8, 0x05, 0x90, 0x0f,
	0x69, 0x18, 0x08, 0x3c, 0x67, 0x41, 0x77, 0x80, 0xa1, 0x34, 0x90, 0x1c, 0x4c, 0xc8, 0xfe, 0x45,
	0x4b, 0x45, 0x4f, 0xee, 0x2e, 0x52, 0xda, 0xb6, 0xa4, 0xb6, 0x75, 0xfb, 0x41, 0xa9, 0x2d, 0x93,
	0xb5, 0x9d, 0xaa, 0xdc, 0xad, 0x67, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x74, 0xc5, 0x57, 0xfb,
	0x7a, 0x05, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// IssueServiceClient is the client API for IssueService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type IssueServiceClient interface {
	// Lists [Repositories][Repository].
	ListRepositories(ctx context.Context, in *ListRepositoriesRequest, opts ...grpc.CallOption) (*ListRepositoriesResponse, error)
	// Lists [Issues][Issue].
	ListIssues(ctx context.Context, in *ListIssuesRequest, opts ...grpc.CallOption) (*ListIssuesResponse, error)
	// Gets a [Issue][].
	GetIssue(ctx context.Context, in *GetIssueRequest, opts ...grpc.CallOption) (*GetIssueResponse, error)
}

type issueServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewIssueServiceClient(cc grpc.ClientConnInterface) IssueServiceClient {
	return &issueServiceClient{cc}
}

func (c *issueServiceClient) ListRepositories(ctx context.Context, in *ListRepositoriesRequest, opts ...grpc.CallOption) (*ListRepositoriesResponse, error) {
	out := new(ListRepositoriesResponse)
	err := c.cc.Invoke(ctx, "/drghs.v1.IssueService/ListRepositories", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *issueServiceClient) ListIssues(ctx context.Context, in *ListIssuesRequest, opts ...grpc.CallOption) (*ListIssuesResponse, error) {
	out := new(ListIssuesResponse)
	err := c.cc.Invoke(ctx, "/drghs.v1.IssueService/ListIssues", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *issueServiceClient) GetIssue(ctx context.Context, in *GetIssueRequest, opts ...grpc.CallOption) (*GetIssueResponse, error) {
	out := new(GetIssueResponse)
	err := c.cc.Invoke(ctx, "/drghs.v1.IssueService/GetIssue", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// IssueServiceServer is the server API for IssueService service.
type IssueServiceServer interface {
	// Lists [Repositories][Repository].
	ListRepositories(context.Context, *ListRepositoriesRequest) (*ListRepositoriesResponse, error)
	// Lists [Issues][Issue].
	ListIssues(context.Context, *ListIssuesRequest) (*ListIssuesResponse, error)
	// Gets a [Issue][].
	GetIssue(context.Context, *GetIssueRequest) (*GetIssueResponse, error)
}

// UnimplementedIssueServiceServer can be embedded to have forward compatible implementations.
type UnimplementedIssueServiceServer struct {
}

func (*UnimplementedIssueServiceServer) ListRepositories(ctx context.Context, req *ListRepositoriesRequest) (*ListRepositoriesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListRepositories not implemented")
}
func (*UnimplementedIssueServiceServer) ListIssues(ctx context.Context, req *ListIssuesRequest) (*ListIssuesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListIssues not implemented")
}
func (*UnimplementedIssueServiceServer) GetIssue(ctx context.Context, req *GetIssueRequest) (*GetIssueResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetIssue not implemented")
}

func RegisterIssueServiceServer(s *grpc.Server, srv IssueServiceServer) {
	s.RegisterService(&_IssueService_serviceDesc, srv)
}

func _IssueService_ListRepositories_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListRepositoriesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IssueServiceServer).ListRepositories(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/drghs.v1.IssueService/ListRepositories",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IssueServiceServer).ListRepositories(ctx, req.(*ListRepositoriesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IssueService_ListIssues_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListIssuesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IssueServiceServer).ListIssues(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/drghs.v1.IssueService/ListIssues",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IssueServiceServer).ListIssues(ctx, req.(*ListIssuesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _IssueService_GetIssue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetIssueRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IssueServiceServer).GetIssue(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/drghs.v1.IssueService/GetIssue",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IssueServiceServer).GetIssue(ctx, req.(*GetIssueRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _IssueService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "drghs.v1.IssueService",
	HandlerType: (*IssueServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListRepositories",
			Handler:    _IssueService_ListRepositories_Handler,
		},
		{
			MethodName: "ListIssues",
			Handler:    _IssueService_ListIssues_Handler,
		},
		{
			MethodName: "GetIssue",
			Handler:    _IssueService_GetIssue_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "issue_service.proto",
}

// IssueServiceAdminClient is the client API for IssueServiceAdmin service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type IssueServiceAdminClient interface {
	UpdateTrackedRepos(ctx context.Context, in *UpdateTrackedReposRequest, opts ...grpc.CallOption) (*UpdateTrackedReposResponse, error)
}

type issueServiceAdminClient struct {
	cc grpc.ClientConnInterface
}

func NewIssueServiceAdminClient(cc grpc.ClientConnInterface) IssueServiceAdminClient {
	return &issueServiceAdminClient{cc}
}

func (c *issueServiceAdminClient) UpdateTrackedRepos(ctx context.Context, in *UpdateTrackedReposRequest, opts ...grpc.CallOption) (*UpdateTrackedReposResponse, error) {
	out := new(UpdateTrackedReposResponse)
	err := c.cc.Invoke(ctx, "/drghs.v1.IssueServiceAdmin/UpdateTrackedRepos", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// IssueServiceAdminServer is the server API for IssueServiceAdmin service.
type IssueServiceAdminServer interface {
	UpdateTrackedRepos(context.Context, *UpdateTrackedReposRequest) (*UpdateTrackedReposResponse, error)
}

// UnimplementedIssueServiceAdminServer can be embedded to have forward compatible implementations.
type UnimplementedIssueServiceAdminServer struct {
}

func (*UnimplementedIssueServiceAdminServer) UpdateTrackedRepos(ctx context.Context, req *UpdateTrackedReposRequest) (*UpdateTrackedReposResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateTrackedRepos not implemented")
}

func RegisterIssueServiceAdminServer(s *grpc.Server, srv IssueServiceAdminServer) {
	s.RegisterService(&_IssueServiceAdmin_serviceDesc, srv)
}

func _IssueServiceAdmin_UpdateTrackedRepos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateTrackedReposRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(IssueServiceAdminServer).UpdateTrackedRepos(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/drghs.v1.IssueServiceAdmin/UpdateTrackedRepos",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(IssueServiceAdminServer).UpdateTrackedRepos(ctx, req.(*UpdateTrackedReposRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _IssueServiceAdmin_serviceDesc = grpc.ServiceDesc{
	ServiceName: "drghs.v1.IssueServiceAdmin",
	HandlerType: (*IssueServiceAdminServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "UpdateTrackedRepos",
			Handler:    _IssueServiceAdmin_UpdateTrackedRepos_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "issue_service.proto",
}


text:
// Libraries
import crypto from 'crypto';
import https from 'https';
import Promise from 'bluebird';
// Modules
import config from '../config';

export default function lookup(userData, timeout) {
  let gravatarUrl = '//www.gravatar.com/avatar/' +
      crypto.createHash('md5').update(userData.email.toLowerCase().trim()).digest('hex') +
      '?s=250';

  return new Promise((resolve) => {
    if (config.isPrivacyDisabled('useGravatar') || process.env.NODE_ENV.indexOf('testing') > -1) {
      return resolve(userData);
    }

    let timer;
    let timerEnded = false;

    let request = https.get('https:' + gravatarUrl + '&d=404&r=x', (response) => {
      clearTimeout(timer);
      if (response.statusCode !== 404 && !timerEnded) {
        gravatarUrl += '&d=mm&r=x';
        userData.image = gravatarUrl;
      }

      resolve(userData);
    });

    request.on('error', () => {
      clearTimeout(timer);
      // just resolve with no image url
      if (!timerEnded) {
        return resolve(userData);
      }
    });

    timer = setTimeout(() => {
      timerEnded = true;
      request.abort();
      return resolve(userData);
    }, timeout || 2000);
  });
}


text:
You can install **mobily-api** via composer or by
typing **composer require "wasfapp/mobily-api:dev-master"** in command line using composer.

#### Via Composer:

**mobily-api** is available on Packagist as the
[`wasfapp/mobily-api`](https://packagist.org/packages/wasfapp/mobily-api) package.

## Quickstart

### TO USE Api AFTER DOWNLOAD
 In order to use Mobily Api, you must take the following steps:
 1. Registration on the site through the following steps:

    1. Go to the following link: **[`mobily.ws`](http://www.mobily.ws/sms/index.php)**
    2. Go to page (Register now) at the top of the page
    3. Enter the information
    5. Enable sender name to send messages
 2. Download the Mobily Api and install it in your system
 3. Insert user information (ApiKEY or mobile and password) ,this information's is provided to you by the site
 In the function setInfo defines user information

### Mobily Api Portals
We provide many services that make it easy to use the api, and these are some our of the services:
1. send sms
2. send sms using message template
3. sending sms directly
4. sending status
5. Add mobile number as sender name
6. Activate mobile number as sender name
7. Check that the mobile number is activated as a sender's name
8. Possibility to change password
9. Retrieve password
10. Balance Inquiry
11. Delete sms
12. Add a text sender name
13. Activate the text sender name

## Services Example

### Send SMS message
You can  send SMS messages using the transmission gate to ensure the privacy of information and the speed of sending and ensure they arrive, and this portal provid the ability to sending messages to many numbers at once and without any effortless and tired, is the gate to send and receive messages using JSON technology And These an example of how to use the portal:
```php
<?php
require_once('Mobily_sms.inc');
$sms = new MobilySms('user name','password','ApiKEY');
$result=$sms->sendMsg('This is Message','9662222222222,9662222222222,9662222222222','NEW SMS','17:30:00','12/30/2017',1,'deleteKey','curl');
?>

```

### Send SMS using message Template
This portal offers the ability to send SMS messages using a unified message template for different numbers. This portal allows you to add fixed message text and put symbols in it. This portal transmits the information of each number with the symbols in the message to form a message for each number. the operation :

```php
<?php
require_once('Mobily_sms.inc');
$sms = new MobilySms('user name','password','ApiKEY');
$msg = "Welcome (1)، Your subscription date is up to (2)";
$msgKey = "(1),*,William,@,(2),*,12/10/2008***(1),*,jack,@,(2),*,10/10/2008";
$numbers='96622222222222,96622222222222';
$result=$sms->sendMsgWK($msg,$numbers,'aljauoni',$msgKey,'12:00:00','12/27/2017',0,'deleteKey','curl');

?>
```

### Balance Inquiry
You can inquire about mobily account balance through this portal by adding mobile number or Api KEY , this portal sends and returns JSON data and the following example shows how to use this portal :
```php
<?php
require_once('Mobily_sms.inc');
$sms = new MobilySms('user name','password','ApiKEY');
$result=$sms->balance('curl');
?>
```

### Forget Password
You can retrieve the mobily account password through this portal by adding the mobile number or Api KEY to retrieve its password and the way to send the password either on the mobile number or on the email of the account, and this portal sends and returns data from JSON Type The following example shows how to use this portal:
```php
<?php
require_once('Mobily_sms.inc');
// you must insert just user name or ApiKEY
$sms = new MobilySms('user name','password','ApiKEY');
// 1: that means send password to account mobile
$result=$sms->forgetPassword(1,'ar','curl');
// or you can use
// 2: that means send password to account email
$result=$sms->forgetPassword(2,'ar','curl');

?>
```

### Change Password
You can change the password for mobily account through this portal by adding the mobile number or Api KEY to change its password and old and new password, and this portal sends and returns data of type JSON. , And as an example of the required data:
```php
<?php
require_once('Mobily_sms.inc');
$sms = new MobilySms('user name','password','ApiKEY');
$result=$sms->changePassword('111','123','curl');

?>
```
## Documentation

The documentation for the **mobily.ws Api** is located **[`here`](http://www.mobily.ws/)**.

The PHP library documentation can be found **[`here`](http://www.mobily.ws/)**.

## Versions

`Mobily-api`'s versioning strategy can be found **[`here`](http://www.mobily.ws/)**.

## Prerequisites

* PHP >= 5.3
* The PHP JSON extension

# Getting help

If you need help installing or using the library, please contact Mobily.ws Support at **help@mobily.ws** first. mobily Support staff are well-versed in all of the mobily.ws Helper Libraries, and usually reply within 24 hours.

If you've instead found a bug in the library or would like new features added, go ahead and open issues or pull requests against this repo!


text:
package io.advantageous.qbit.logging;

import io.advantageous.boon.core.Str;
import io.advantageous.qbit.http.request.HttpRequest;
import io.advantageous.qbit.message.MethodCall;
import io.advantageous.qbit.message.Request;
import io.advantageous.qbit.message.Response;
import io.advantageous.qbit.service.AfterMethodCall;
import io.advantageous.qbit.service.BeforeMethodCall;
import io.advantageous.qbit.util.MultiMap;
import org.slf4j.MDC;

import java.util.Collections;
import java.util.Optional;
import java.util.Set;

/**
 * Provides MDC support for QBit REST services.
 * Intercepts method calls to a service.
 * Looks at the originatingRequest to see if HTTP request is the originating request.
 * If an HTTP request is the originating request then we decorate the Log with
 * MDC fields.
 *

 * [http://logback.qos.ch/manual/mdc.html](Mapped Diagnostic Context)
 *

 * You can specify the headers that you want extracted and placed inside
 * the Mapped Diagnostic Context as well.
 */
public class SetupMdcForHttpRequestInterceptor implements BeforeMethodCall, AfterMethodCall {

    public static final String REQUEST_URI = "requestUri";
    public static final String REQUEST_REMOTE_ADDRESS = "requestRemoteAddress";
    public static final String REQUEST_HTTP_METHOD = "requestHttpMethod";
    public static final String REQUEST_HEADER_PREFIX = "requestHeader.";
    public static final String REQUEST_ID = "requestId";

    /**
     * Holds the headers that we want to extract from the request.
     */
    private final Set<String> headersToAddToLoggingMappingDiagnosticsContext;

    /**
     * Construct a SetupMdcForHttpRequestInterceptor
     *
     * @param headersToAddToLoggingMappingDiagnosticsContext headers to add to the Logging Mapping Diagnostics Context.
     */
    public SetupMdcForHttpRequestInterceptor(Set<String> headersToAddToLoggingMappingDiagnosticsContext) {
        this.headersToAddToLoggingMappingDiagnosticsContext =
                Collections.unmodifiableSet(headersToAddToLoggingMappingDiagnosticsContext);
    }

    /**
     * Gets called before a method gets invoked on a service.
     * This adds request URI, remote address and request headers of the HttpRequest if found.
     *
     * @param methodCall methodCall
     * @return true to continue, always true.
     */
    @Override
    public boolean before(final MethodCall methodCall) {

        final Optional<HttpRequest> httpRequest = findHttpRequest(methodCall);
        if (httpRequest.isPresent()) {
            extractRequestInfoAndPutItIntoMappedDiagnosticContext(httpRequest.get());
        }
        return true;
    }

    private Optional<HttpRequest> findHttpRequest(Request<Object> request) {

        if (request.originatingRequest() instanceof HttpRequest) {
            return Optional.of(((HttpRequest) request.originatingRequest()));
        } else if (request.originatingRequest() != null) {
            return findHttpRequest(request.originatingRequest());
        } else {
            return Optional.empty();
        }
    }

    /**
     * Gets called after a method completes invocation on a service.
     * Used to clear the logging Mapped Diagnostic Context.
     *
     * @param call     method call
     * @param response response from method
     * @return always true
     */
    @Override
    public boolean after(final MethodCall call, final Response response) {
        MDC.clear();
        return true;
    }

    /**
     * Extract request data and put it into the logging Mapped Diagnostic Context.
     *
     * @param httpRequest httpRequest
     */
    private void extractRequestInfoAndPutItIntoMappedDiagnosticContext(final HttpRequest httpRequest) {
        MDC.put(REQUEST_URI, httpRequest.getUri());
        MDC.put(REQUEST_REMOTE_ADDRESS, httpRequest.getRemoteAddress());
        MDC.put(REQUEST_HTTP_METHOD, httpRequest.getMethod());
        MDC.put(REQUEST_ID, Long.toString(httpRequest.getMessageId()));

        extractHeaders(httpRequest);

    }

    /**
     * Extract headersToAddToLoggingMappingDiagnosticsContext data and put them into the logging mapping diagnostics context.
     *
     * @param httpRequest httpRequest
     */
    private void extractHeaders(final HttpRequest httpRequest) {
        if (headersToAddToLoggingMappingDiagnosticsContext.size() > 0) {
            final MultiMap<String, String> headers = httpRequest.getHeaders();
            headersToAddToLoggingMappingDiagnosticsContext.forEach(header -> {
                String value = headers.getFirst(header);
                if (!Str.isEmpty(value)) {
                    MDC.put(REQUEST_HEADER_PREFIX + header, value);
                }
            });
        }
    }

}


text:
import { ShoppingCartArrowUp20 } from "../../";

export = ShoppingCartArrowUp20;


text:
<!--
  ~ Copyright 2015 SamuelGjk <samuel.alva@outlook.com>
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<resources>

    <string name="close">关闭</string>
    <string name="illust">绘画</string>
    <string name="daily_illust">插画今日排行榜</string>
    <string name="settings">设置</string>

    <string name="cleaning_cache_tip">正在清除, 请稍后…</string>
    <string name="search_pixiv_illust_id">请输入P站作品id</string>
    <string name="re_enter_id">请重新输入ID</string>
    <string name="loading">正在加载…</string>
    <string name="please_wait">请稍后…</string>
    <string name="this_work_was_deleted">作品已被删除</string>
    <string name="the_id_does_not_exist">ID不存在</string>
    <string name="click_on_reload">加载失败,请点击重新加载</string>
    <string name="r18_is_prohibited">R18是被禁止的</string>

    <!-- settings -->
    <string name="operation">操作</string>
    <string name="about">关于</string>
    <string name="version">版本</string>
    <string name="license">开源协议</string>
    <string name="clean_cache">清除缓存</string>
    <string name="cache_size">缓存大小:</string>

    <!-- menu -->
    <string name="the_day_after">后一天</string>
    <string name="the_day_before">前一天</string>
    <string name="search">搜索</string>
    <string name="save">保存</string>

    <string name="no_network">看来你的网络傲娇了╮( ̄▽ ̄)╭</string>
    <string name="load_failed">加载失败,请重试</string>
    <string name="mobile_data">正在使用您那又贵量又少的数据流量,请一定要谨慎(..•˘_˘•..)</string>
    <string name="no_more">没有了=-=</string>
    <string name="no_after_day">不能穿越到未来</string>
    <string name="wait_a_minute">上一位都还没加载完呢</string>
    <string name="ranking_not_updated">今天的排行榜还未更新,自动加载前一天的排行榜</string>
</resources>


text:
package org.apache.tomcat.websocket;

import java.io.IOException;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

import jakarta.websocket.ClientEndpointConfig;
import jakarta.websocket.CloseReason;
import jakarta.websocket.ContainerProvider;
import jakarta.websocket.Endpoint;
import jakarta.websocket.EndpointConfig;
import jakarta.websocket.Session;
import jakarta.websocket.WebSocketContainer;
import jakarta.websocket.server.ServerEndpointConfig;

import org.junit.Assert;
import org.junit.Test;

import org.apache.catalina.Context;
import org.apache.catalina.servlets.DefaultServlet;
import org.apache.catalina.startup.Tomcat;
import org.apache.tomcat.websocket.TesterMessageCountClient.TesterProgrammaticEndpoint;
import org.apache.tomcat.websocket.server.TesterEndpointConfig;

public class TestWsSessionSuspendResume extends WebSocketBaseTest {

    @Test
    public void test() throws Exception {
        Tomcat tomcat = getTomcatInstance();

        Context ctx = tomcat.addContext("", null);
        ctx.addApplicationListener(Config.class.getName());

        Tomcat.addServlet(ctx, "default", new DefaultServlet());
        ctx.addServletMappingDecoded("/", "default");

        tomcat.start();

        WebSocketContainer wsContainer = ContainerProvider.getWebSocketContainer();

        ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig.Builder.create().build();
        Session wsSession = wsContainer.connectToServer(
                TesterProgrammaticEndpoint.class,
                clientEndpointConfig,
                new URI("ws://localhost:" + getPort() + Config.PATH));

        CountDownLatch latch = new CountDownLatch(2);
        wsSession.addMessageHandler(String.class, message -> {
            Assert.assertTrue("[echo, echo, echo]".equals(message));
            latch.countDown();
        });
        for (int i = 0; i < 8; i++) {
            wsSession.getBasicRemote().sendText("echo");
        }

        boolean latchResult = latch.await(30, TimeUnit.SECONDS);
        Assert.assertTrue(latchResult);

        wsSession.close();
    }

    public static final class Config extends TesterEndpointConfig {
        private static final String PATH = "/echo";

        @Override
        protected Class<?> getEndpointClass() {
            return SuspendResumeEndpoint.class;
        }

        @Override
        protected ServerEndpointConfig getServerEndpointConfig() {
            return ServerEndpointConfig.Builder.create(getEndpointClass(), PATH).build();
        }
    }

    public static final class SuspendResumeEndpoint extends Endpoint {

        @Override
        public void onOpen(Session session, EndpointConfig  epc) {
            MessageProcessor processor = new MessageProcessor(session, 3);
            session.addMessageHandler(String.class, message -> processor.addMessage(message));
        }

        @Override
        public void onClose(Session session, CloseReason closeReason) {
            try {
                session.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void onError(Session session, Throwable t) {
            t.printStackTrace();
        }
    }

    private static final class MessageProcessor {
        private final Session session;
        private final int count;
        private final List<String> messages = new ArrayList<>();

        MessageProcessor(Session session, int count) {
            this.session = session;
            this.count = count;
        }

        void addMessage(String message) {
            if (messages.size() == count) {
                ((WsSession) session).suspend();
                try {
                    session.getBasicRemote().sendText(messages.toString());
                    messages.clear();
                    ((WsSession) session).resume();
                } catch (IOException e) {
                    Assert.fail();
                }
            } else {
                messages.add(message);
            }
        }
    }
}


text:
GurtamUNIGIS-Integration
========================

Gurtam UNIGIS integration


text:
=================
API Documentation
=================

.. automodule:: crabpy_pyramid
   :members:

Utils module
============

.. automodule:: crabpy_pyramid.utils
   :members:


text:
/**
 * Crawlcondition package.
 */
package com.crawljax.condition.crawlcondition;


text:
<?php

class User {

	public function __construct() {
		session_start();
	}

	private $loggedIn = false;

	public function isLoggedIn() {
		if (isset($_SESSION['logged_in'])) {
			$out = $_SESSION['logged_in'];
		} else {
			$out = false;
		}
		return $out;
	}

	public function login() {
		$_SESSION['logged_in'] = true;
	}

	public function logout() {
		$_SESSION['logged_in'] = false;
		$_SESSION['username'] = false;
		$_SESSION['user_id'] = false;
	}
}

?>


text:
package com.baidu.hsb.parser.ast.expression.primary.function.datetime;

import java.util.List;

import com.baidu.hsb.parser.ast.expression.Expression;
import com.baidu.hsb.parser.ast.expression.primary.function.FunctionExpression;
import com.baidu.hsb.parser.ast.expression.primary.literal.IntervalPrimary;
import com.baidu.hsb.parser.visitor.SQLASTVisitor;

/**
 * @author xiongzhao@baidu.com
 */
public class Extract extends FunctionExpression {
    private IntervalPrimary.Unit unit;

    public Extract(IntervalPrimary.Unit unit, Expression date) {
        super("EXTRACT", wrapList(date));
        this.unit = unit;
    }

    public IntervalPrimary.Unit getUnit() {
        return unit;
    }

    public Expression getDate() {
        return arguments.get(0);
    }

    @Override
    public FunctionExpression constructFunction(List<Expression> arguments) {
        throw new UnsupportedOperationException("function of extract has special arguments");
    }

    @Override
    public void accept(SQLASTVisitor visitor) {
        visitor.visit(this);
    }
}


text:
CMAKE_ANDROID_API_MIN
---------------------

Default value for the :prop_tgt:`ANDROID_API_MIN` target property.
See that target property for additional information.